From 43e4efeeb887182982bab2c879cfc70fc59af520 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Thu, 15 Sep 2022 18:28:29 +0200 Subject: [PATCH 01/52] Some typing error tests improvements --- tests/test_typing/bad/err3.catala_en | 32 ++++++++++++++++++++++++++++ tests/test_typing/bad/err4.catala_en | 30 ++++++++++++++++++++++++-- tests/test_typing/bad/err6.catala_en | 9 +------- 3 files changed, 61 insertions(+), 10 deletions(-) diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index 8556ee88..ae41cfdc 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -14,3 +14,35 @@ scope S: $ catala Typecheck [RESULT] Typechecking successful! ``` + +A bug with delayed typechecking can make the above accept the error while it is +still triggered below. + +```catala-test-inline +$ catala ocaml +[ERROR] Error during typechecking, incompatible types: +--> integer +--> decimal + +Error coming from typechecking the following expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^ + + + +Type integer coming from expression: + --> tests/test_typing/bad/err3.catala_en + | +10 | definition a equals number of (z ++ z) / 2 + | ^^^^^^ + + + +Type decimal coming from expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^^^^^^^ + + +#return code 255# +``` diff --git a/tests/test_typing/bad/err4.catala_en b/tests/test_typing/bad/err4.catala_en index 5bb89114..2b190346 100644 --- a/tests/test_typing/bad/err4.catala_en +++ b/tests/test_typing/bad/err4.catala_en @@ -6,7 +6,33 @@ scope S: definition a equals number of (z ++ z) / 2 ``` +Should be "catala Typecheck", see test err3 + ```catala-test-inline -$ catala Typecheck -[RESULT] Typechecking successful! +$ catala ocaml +[ERROR] Error during typechecking, incompatible types: +--> Enum +--> Structure + +Error coming from typechecking the following expression: + --> tests/test_typing/bad/common.catala_en + | +14 | output z content collection Structure + | ^ + + + +Type Enum coming from expression: + --> tests/test_typing/bad/err4.catala_en + | +5 | definition z equals [ Int content x ] + | ^^^^^^^^^^^^^ + + + +Type Structure coming from expression: + --> tests/test_typing/bad/common.catala_en + | +14 | output z content collection Structure + | ^^^^^^^^^ + + +#return code 255# ``` diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index 7e278563..7aacc499 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -24,14 +24,7 @@ scope S2: definition a equals if r then Int content (number of sub.z) else Dec content 0.0 ``` - -```catala-test-inline -$ catala Typecheck -[RESULT] Typechecking successful! -``` - -A bug with delayed typechecking can make the above accept the error while it is -still triggered below. +Should be "catala Typecheck", see test err3 ```catala-test-inline $ catala ocaml From 2c3be946ec16d9a36cd4d4f502215c4a8778ab30 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 16 Sep 2022 17:33:09 +0200 Subject: [PATCH 02/52] Keep type positions on the right-hand side upon unification of types This should result in more predictable error messages. Right-hand is arbitrary, but has been found empirically to give better results. --- compiler/dcalc/typing.ml | 37 +++++++++-------------- tests/test_array/bad/fold_error.catala_en | 2 +- tests/test_bool/bad/bad_assert.catala_en | 4 +-- tests/test_typing/bad/err2.catala_en | 6 ++-- tests/test_typing/bad/err3.catala_en | 2 +- tests/test_typing/bad/err6.catala_en | 4 +-- 6 files changed, 24 insertions(+), 31 deletions(-) diff --git a/compiler/dcalc/typing.ml b/compiler/dcalc/typing.ml index f1b81858..3b3eefc0 100644 --- a/compiler/dcalc/typing.ml +++ b/compiler/dcalc/typing.ml @@ -111,7 +111,8 @@ exception Type_error of A.any_expr * unionfind_typ * unionfind_typ type mark = { pos : Pos.t; uf : unionfind_typ } -(** Raises an error if unification cannot be performed *) +(** Raises an error if unification cannot be performed. The position annotation + of the second [unionfind_typ] argument is propagated (unless it is [TAny]). *) let rec unify (ctx : A.decl_ctx) (e : ('a, 'm A.mark) A.gexpr) (* used for error context *) @@ -123,39 +124,31 @@ let rec unify let t1_repr = UnionFind.get (UnionFind.find t1) in let t2_repr = UnionFind.get (UnionFind.find t2) in let raise_type_error () = raise (Type_error (A.AnyExpr e, t1, t2)) in - let repr = + let () = match Marked.unmark t1_repr, Marked.unmark t2_repr with - | TLit tl1, TLit tl2 when tl1 = tl2 -> None + | TLit tl1, TLit tl2 -> if tl1 <> tl2 then raise_type_error () | TArrow (t11, t12), TArrow (t21, t22) -> unify e t11 t21; - unify e t12 t22; - None + unify e t12 t22 | TTuple ts1, TTuple ts2 -> - if List.length ts1 = List.length ts2 then begin - List.iter2 (unify e) ts1 ts2; - None - end + if List.length ts1 = List.length ts2 then List.iter2 (unify e) ts1 ts2 else raise_type_error () | TStruct s1, TStruct s2 -> - if A.StructName.equal s1 s2 then None else raise_type_error () + if not (A.StructName.equal s1 s2) then raise_type_error () | TEnum e1, TEnum e2 -> - if A.EnumName.equal e1 e2 then None else raise_type_error () - | TOption t1, TOption t2 -> - unify e t1 t2; - None - | TArray t1', TArray t2' -> - unify e t1' t2'; - None - | TAny _, TAny _ -> None - | TAny _, _ -> Some t2_repr - | _, TAny _ -> Some t1_repr + if not (A.EnumName.equal e1 e2) then raise_type_error () + | TOption t1, TOption t2 -> unify e t1 t2 + | TArray t1', TArray t2' -> unify e t1' t2' + | TAny _, _ | _, TAny _ -> () | ( ( TLit _ | TArrow _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArray _ ), _ ) -> raise_type_error () in - let t_union = UnionFind.union t1 t2 in - match repr with None -> () | Some t_repr -> UnionFind.set t_union t_repr + ignore + @@ UnionFind.merge + (fun t1 t2 -> match Marked.unmark t2 with TAny _ -> t1 | _ -> t2) + t1 t2 let handle_type_error ctx e t1 t2 = (* TODO: if we get weird error messages, then it means that we should use the diff --git a/tests/test_array/bad/fold_error.catala_en b/tests/test_array/bad/fold_error.catala_en index b05a71d8..9904f45d 100644 --- a/tests/test_array/bad/fold_error.catala_en +++ b/tests/test_array/bad/fold_error.catala_en @@ -27,7 +27,7 @@ Type money coming from expression: --> tests/test_array/bad/fold_error.catala_en | 10 | definition list_high_count equals number for m in list of (m >=$ $7) - | ^^^ + | ^^ + Article Type integer coming from expression: diff --git a/tests/test_bool/bad/bad_assert.catala_en b/tests/test_bool/bad/bad_assert.catala_en index 0b658465..9ae702da 100644 --- a/tests/test_bool/bad/bad_assert.catala_en +++ b/tests/test_bool/bad/bad_assert.catala_en @@ -33,8 +33,8 @@ Type bool coming from expression: Type integer coming from expression: --> tests/test_bool/bad/bad_assert.catala_en | -8 | definition x equals 0 - | ^ +5 | internal x content integer + | ^^^^^^^ + Test #return code 255# ``` diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index 498faf1b..64afa818 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -24,10 +24,10 @@ Error coming from typechecking the following expression: + Type Structure array coming from expression: - --> tests/test_typing/bad/err2.catala_en + --> tests/test_typing/bad/common.catala_en | -10 | definition a equals number of (z ++ 1.1) / 2 - | ^^ +14 | output z content collection Structure + | ^^^^^^^^^^^^^^^^^^^^ + Type decimal coming from expression: diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index ae41cfdc..91b536cd 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -35,7 +35,7 @@ Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 - | ^^^^^^ + | ^ + Type decimal coming from expression: diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index 7aacc499..d380b191 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -49,8 +49,8 @@ Type decimal coming from expression: Type integer coming from expression: --> tests/test_typing/bad/common.catala_en | -11 | declaration scope S: - | ^ +12 | input x content integer + | ^^^^^^^ + #return code 255# ``` From 8bf6b5b821f8cca381a639b189a8dc81cd40d2a0 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 16 Sep 2022 18:15:30 +0200 Subject: [PATCH 03/52] Type arrow return types first --- compiler/dcalc/typing.ml | 4 ++-- tests/test_array/bad/fold_error.catala_en | 18 +++++++++--------- .../test_bool/bad/test_xor_with_int.catala_en | 2 +- tests/test_typing/bad/err2.catala_en | 10 +++++----- tests/test_typing/bad/err3.catala_en | 2 +- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/compiler/dcalc/typing.ml b/compiler/dcalc/typing.ml index 3b3eefc0..a5c221be 100644 --- a/compiler/dcalc/typing.ml +++ b/compiler/dcalc/typing.ml @@ -128,8 +128,8 @@ let rec unify match Marked.unmark t1_repr, Marked.unmark t2_repr with | TLit tl1, TLit tl2 -> if tl1 <> tl2 then raise_type_error () | TArrow (t11, t12), TArrow (t21, t22) -> - unify e t11 t21; - unify e t12 t22 + unify e t12 t22; + unify e t11 t21 | TTuple ts1, TTuple ts2 -> if List.length ts1 = List.length ts2 then List.iter2 (unify e) ts1 ts2 else raise_type_error () diff --git a/tests/test_array/bad/fold_error.catala_en b/tests/test_array/bad/fold_error.catala_en index 9904f45d..4df68c4b 100644 --- a/tests/test_array/bad/fold_error.catala_en +++ b/tests/test_array/bad/fold_error.catala_en @@ -13,8 +13,8 @@ scope A: ```catala-test-inline $ catala Interpret -s A [ERROR] Error during typechecking, incompatible types: ---> money --> integer +--> money Error coming from typechecking the following expression: --> tests/test_array/bad/fold_error.catala_en @@ -23,18 +23,18 @@ Error coming from typechecking the following expression: | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + Article -Type money coming from expression: - --> tests/test_array/bad/fold_error.catala_en - | -10 | definition list_high_count equals number for m in list of (m >=$ $7) - | ^^ - + Article - Type integer coming from expression: --> tests/test_array/bad/fold_error.catala_en - | + | 5 | context list content collection integer | ^^^^^^^ + Article + +Type money coming from expression: + --> tests/test_array/bad/fold_error.catala_en + | +10 | definition list_high_count equals number for m in list of (m >=$ $7) + | ^^ + + Article #return code 255# ``` diff --git a/tests/test_bool/bad/test_xor_with_int.catala_en b/tests/test_bool/bad/test_xor_with_int.catala_en index fd6ecace..3529f8d8 100644 --- a/tests/test_bool/bad/test_xor_with_int.catala_en +++ b/tests/test_bool/bad/test_xor_with_int.catala_en @@ -32,7 +32,7 @@ Type integer coming from expression: --> tests/test_bool/bad/test_xor_with_int.catala_en | 8 | definition test_var equals 10 xor 20 - | ^^ + | ^^ + 'xor' should be a boolean operator #return code 255# ``` diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index 64afa818..c8cf7d51 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -13,7 +13,7 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> Structure array +--> any[10] array --> decimal Error coming from typechecking the following expression: @@ -23,11 +23,11 @@ Error coming from typechecking the following expression: | ^^^^^^^^ + -Type Structure array coming from expression: - --> tests/test_typing/bad/common.catala_en +Type any[10] array coming from expression: + --> tests/test_typing/bad/err2.catala_en | -14 | output z content collection Structure - | ^^^^^^^^^^^^^^^^^^^^ +10 | definition a equals number of (z ++ 1.1) / 2 + | ^^ + Type decimal coming from expression: diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index 91b536cd..ae41cfdc 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -35,7 +35,7 @@ Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 - | ^ + | ^^^^^^ + Type decimal coming from expression: From 498429e4b7765634c05e538dc96e28524e6e1410 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 16 Sep 2022 18:29:27 +0200 Subject: [PATCH 04/52] Fix type-checking error getting delayed The issue was coming from Bindlib: it stores variable bindings as closures, so `Bindlib.box_apply f bx` actually delays the application of `f` until the term is substituted or unboxed (likely long after we are out of the `try..with` block). The proposed fix is to make sure we run the wrapper outside of bindlib applications, on explicitely unboxed terms. --- compiler/dcalc/typing.ml | 32 ++++++++++----------- tests/test_typing/bad/err1.catala_en | 36 ++++++++++++------------ tests/test_typing/bad/err2.catala_en | 4 +-- tests/test_typing/bad/err3.catala_en | 42 ++++++++++++++++++++++------ tests/test_typing/bad/err4.catala_en | 26 ++++++++--------- tests/test_typing/bad/err5.catala_en | 36 ++++++++++++------------ tests/test_typing/bad/err6.catala_en | 18 ++++++------ 7 files changed, 107 insertions(+), 87 deletions(-) diff --git a/compiler/dcalc/typing.ml b/compiler/dcalc/typing.ml index a5c221be..0395338c 100644 --- a/compiler/dcalc/typing.ml +++ b/compiler/dcalc/typing.ml @@ -630,7 +630,10 @@ and typecheck_expr_top_down unify_and_mark (A.EArray es') (unionfind_make (TArray cell_type)) let wrap ctx f e = - try f e + try + Bindlib.unbox (f e) + (* We need to unbox here, because the typing may otherwise be stored in + Bindlib closures and not yet applied, and would escape the `try..with` *) with Type_error (e, ty1, ty2) -> ( let bt = Printexc.get_raw_backtrace () in try handle_type_error ctx e ty1 ty2 @@ -644,7 +647,6 @@ let get_ty_mark { uf; pos } = A.Typed { ty = typ_to_ast uf; pos } let infer_types (ctx : A.decl_ctx) (e : 'm Ast.expr) : A.typed Ast.expr Bindlib.box = A.Expr.map_marks ~f:get_ty_mark - @@ Bindlib.unbox @@ wrap ctx (typecheck_expr_bottom_up ctx A.Var.Map.empty) e let infer_type (type m) ctx (e : m Ast.expr) = @@ -684,13 +686,9 @@ let infer_types_program prg = in let rec process_scope_body_expr env = function | A.Result e -> - let e' = wrap ctx (typecheck_expr_bottom_up ctx env) e in - Bindlib.box_apply - (fun e1 -> - wrap ctx (unify ctx e (ty e1)) ty_out; - let e1 = A.Expr.map_marks ~f:get_ty_mark e1 in - A.Result (Bindlib.unbox e1)) - e' + let e' = wrap ctx (typecheck_expr_top_down ctx env ty_out) e in + let e' = A.Expr.map_marks ~f:get_ty_mark e' in + Bindlib.box_apply (fun e -> A.Result e) e' | A.ScopeLet { scope_let_kind; @@ -700,24 +698,23 @@ let infer_types_program prg = scope_let_pos; } -> let ty_e = ast_to_typ scope_let_typ in - let e = wrap ctx (typecheck_expr_bottom_up ctx env) e0 in let var, next = Bindlib.unbind scope_let_next in let env = A.Var.Map.add var ty_e env in let next = process_scope_body_expr env next in let scope_let_next = Bindlib.bind_var (A.Var.translate var) next in + let e = wrap ctx (typecheck_expr_top_down ctx env ty_e) e0 in Bindlib.box_apply2 - (fun e scope_let_next -> - wrap ctx (unify ctx e0 (ty e)) ty_e; - let e = A.Expr.map_marks ~f:get_ty_mark e in + (fun scope_let_expr scope_let_next -> A.ScopeLet { scope_let_kind; scope_let_typ; - scope_let_expr = Bindlib.unbox e; + scope_let_expr; scope_let_next; scope_let_pos; }) - e scope_let_next + (A.Expr.map_marks ~f:get_ty_mark e) + scope_let_next in let scope_body_expr = let var, e = Bindlib.unbind body in @@ -746,6 +743,5 @@ let infer_types_program prg = }) scope_body_expr scope_next in - let scopes = wrap ctx (process_scopes A.Var.Map.empty) prg.scopes in - Bindlib.box_apply (fun scopes -> { A.decl_ctx = ctx; scopes }) scopes - |> Bindlib.unbox + let scopes = Bindlib.unbox (process_scopes A.Var.Map.empty prg.scopes) in + { A.decl_ctx = ctx; scopes } diff --git a/tests/test_typing/bad/err1.catala_en b/tests/test_typing/bad/err1.catala_en index 3f26cba7..59ed0671 100644 --- a/tests/test_typing/bad/err1.catala_en +++ b/tests/test_typing/bad/err1.catala_en @@ -13,28 +13,28 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> integer --> decimal +--> integer Error coming from typechecking the following expression: - --> tests/test_typing/bad/err1.catala_en - | -7 | Structure { -- i: 4.1 -- e: y }; - | ^^^ - + - -Type integer coming from expression: - --> tests/test_typing/bad/common.catala_en - | -8 | data i content integer - | ^^^^^^^ - + + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^ + + Type decimal coming from expression: - --> tests/test_typing/bad/err1.catala_en - | -7 | Structure { -- i: 4.1 -- e: y }; - | ^^^ - + + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^^^^^^^ + + + +Type integer coming from expression: + --> tests/test_typing/bad/err1.catala_en + | +10 | definition a equals number of (z ++ z) / 2 + | ^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index c8cf7d51..1e75438f 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -13,7 +13,7 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> any[10] array +--> any[4] array --> decimal Error coming from typechecking the following expression: @@ -23,7 +23,7 @@ Error coming from typechecking the following expression: | ^^^^^^^^ + -Type any[10] array coming from expression: +Type any[4] array coming from expression: --> tests/test_typing/bad/err2.catala_en | 10 | definition a equals number of (z ++ 1.1) / 2 diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index ae41cfdc..bb4bc57b 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -12,17 +12,9 @@ scope S: ```catala-test-inline $ catala Typecheck -[RESULT] Typechecking successful! -``` - -A bug with delayed typechecking can make the above accept the error while it is -still triggered below. - -```catala-test-inline -$ catala ocaml [ERROR] Error during typechecking, incompatible types: ---> integer --> decimal +--> integer Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en @@ -31,12 +23,37 @@ Error coming from typechecking the following expression: | ^ + +Type decimal coming from expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^^^^^^^ + + + Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 | ^^^^^^ + +#return code 255# +``` + +A bug with delayed typechecking can make the above accept the error while it is +still triggered below. + +```catala-test-inline +$ catala ocaml +[ERROR] Error during typechecking, incompatible types: +--> decimal +--> integer + +Error coming from typechecking the following expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^ + + Type decimal coming from expression: --> tests/test_typing/bad/common.catala_en @@ -44,5 +61,12 @@ Type decimal coming from expression: 15 | output a content decimal | ^^^^^^^ + + +Type integer coming from expression: + --> tests/test_typing/bad/err3.catala_en + | +10 | definition a equals number of (z ++ z) / 2 + | ^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err4.catala_en b/tests/test_typing/bad/err4.catala_en index 2b190346..0913b515 100644 --- a/tests/test_typing/bad/err4.catala_en +++ b/tests/test_typing/bad/err4.catala_en @@ -11,28 +11,28 @@ Should be "catala Typecheck", see test err3 ```catala-test-inline $ catala ocaml [ERROR] Error during typechecking, incompatible types: ---> Enum ---> Structure +--> decimal +--> integer Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en | -14 | output z content collection Structure +15 | output a content decimal | ^ + -Type Enum coming from expression: - --> tests/test_typing/bad/err4.catala_en - | -5 | definition z equals [ Int content x ] - | ^^^^^^^^^^^^^ - + - -Type Structure coming from expression: +Type decimal coming from expression: --> tests/test_typing/bad/common.catala_en | -14 | output z content collection Structure - | ^^^^^^^^^ +15 | output a content decimal + | ^^^^^^^ + + +Type integer coming from expression: + --> tests/test_typing/bad/err4.catala_en + | +6 | definition a equals number of (z ++ z) / 2 + | ^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err5.catala_en b/tests/test_typing/bad/err5.catala_en index e2e2ae00..fa1d73db 100644 --- a/tests/test_typing/bad/err5.catala_en +++ b/tests/test_typing/bad/err5.catala_en @@ -13,28 +13,28 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: +--> decimal --> integer ---> Structure Error coming from typechecking the following expression: - --> tests/test_typing/bad/err5.catala_en - | -7 | Structure { -- i: 4 -- e: y }; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - + + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^ + + + +Type decimal coming from expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^^^^^^^ + + Type integer coming from expression: - --> tests/test_typing/bad/err5.catala_en - | -8 | 1040 - | ^^^^ - + - -Type Structure coming from expression: - --> tests/test_typing/bad/err5.catala_en - | -7 | Structure { -- i: 4 -- e: y }; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - + + --> tests/test_typing/bad/err5.catala_en + | +10 | definition a equals number of (z ++ z) / 2 + | ^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index d380b191..5993a222 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -29,14 +29,21 @@ Should be "catala Typecheck", see test err3 ```catala-test-inline $ catala ocaml [ERROR] Error during typechecking, incompatible types: ---> decimal --> integer +--> decimal Error coming from typechecking the following expression: + --> tests/test_typing/bad/err6.catala_en + | +5 | sub scope S + | ^^^ + + + +Type integer coming from expression: --> tests/test_typing/bad/common.catala_en | 12 | input x content integer - | ^ + | ^^^^^^^ + Type decimal coming from expression: @@ -45,12 +52,5 @@ Type decimal coming from expression: 20 | definition sub.x equals 44. | ^^^ + - -Type integer coming from expression: - --> tests/test_typing/bad/common.catala_en - | -12 | input x content integer - | ^^^^^^^ - + #return code 255# ``` From 76569bb1af0502a0c7792eee84cd69cee303fe52 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 20 Sep 2022 14:04:07 +0200 Subject: [PATCH 05/52] Fix position on type error concerning sub-scope variable --- compiler/desugared/ast.ml | 20 ++++++++++++-------- compiler/desugared/ast.mli | 2 +- compiler/desugared/dependency.ml | 8 ++++---- compiler/desugared/desugared_to_scope.ml | 15 ++++++--------- compiler/surface/desugaring.ml | 6 ++++-- compiler/surface/name_resolution.ml | 12 ++++++------ tests/test_typing/bad/err6.catala_en | 10 +++++----- 7 files changed, 38 insertions(+), 35 deletions(-) diff --git a/compiler/desugared/ast.ml b/compiler/desugared/ast.ml index 5c6f54b2..44f1f077 100644 --- a/compiler/desugared/ast.ml +++ b/compiler/desugared/ast.ml @@ -40,7 +40,7 @@ module LabelSet : Set.S with type elt = LabelName.t = Set.Make (LabelName) module ScopeDef = struct type t = | Var of ScopeVar.t * StateName.t option - | SubScopeVar of SubScopeName.t * ScopeVar.t + | SubScopeVar of SubScopeName.t * ScopeVar.t * Pos.t (** In this case, the [ScopeVar.t] lives inside the context of the subscope's original declaration *) @@ -49,13 +49,13 @@ module ScopeDef = struct | Var (x, None), Var (y, None) | Var (x, Some _), Var (y, None) | Var (x, None), Var (y, Some _) - | Var (x, _), SubScopeVar (_, y) - | SubScopeVar (_, x), Var (y, _) -> + | Var (x, _), SubScopeVar (_, y, _) + | SubScopeVar (_, x, _), Var (y, _) -> ScopeVar.compare x y | Var (x, Some sx), Var (y, Some sy) -> let cmp = ScopeVar.compare x y in if cmp = 0 then StateName.compare sx sy else cmp - | SubScopeVar (x', x), SubScopeVar (y', y) -> + | SubScopeVar (x', x, _), SubScopeVar (y', y, _) -> let cmp = SubScopeName.compare x' y' in if cmp = 0 then ScopeVar.compare x y else cmp @@ -63,21 +63,22 @@ module ScopeDef = struct match x with | Var (x, None) -> Marked.get_mark (ScopeVar.get_info x) | Var (_, Some sx) -> Marked.get_mark (StateName.get_info sx) - | SubScopeVar (x, _) -> Marked.get_mark (SubScopeName.get_info x) + | SubScopeVar (_, _, pos) -> pos let format_t fmt x = match x with | Var (v, None) -> ScopeVar.format_t fmt v | Var (v, Some sv) -> Format.fprintf fmt "%a.%a" ScopeVar.format_t v StateName.format_t sv - | SubScopeVar (s, v) -> + | SubScopeVar (s, v, _) -> Format.fprintf fmt "%a.%a" SubScopeName.format_t s ScopeVar.format_t v let hash x = match x with | Var (v, None) -> ScopeVar.hash v | Var (v, Some sv) -> Int.logxor (ScopeVar.hash v) (StateName.hash sv) - | SubScopeVar (w, v) -> Int.logxor (SubScopeName.hash w) (ScopeVar.hash v) + | SubScopeVar (w, v, _) -> + Int.logxor (SubScopeName.hash w) (ScopeVar.hash v) end module ScopeDefMap : Map.S with type key = ScopeDef.t = Map.Make (ScopeDef) @@ -254,7 +255,10 @@ let free_variables (def : rule RuleMap.t) : Pos.t ScopeDefMap.t = (match loc with | DesugaredScopeVar (v, st) -> ScopeDef.Var (Marked.unmark v, st) | SubScopeVar (_, sub_index, sub_var) -> - ScopeDef.SubScopeVar (Marked.unmark sub_index, Marked.unmark sub_var)) + ScopeDef.SubScopeVar + ( Marked.unmark sub_index, + Marked.unmark sub_var, + Marked.get_mark sub_index )) loc_pos acc) locs acc in diff --git a/compiler/desugared/ast.mli b/compiler/desugared/ast.mli index a2f31467..91a84fc0 100644 --- a/compiler/desugared/ast.mli +++ b/compiler/desugared/ast.mli @@ -34,7 +34,7 @@ module LabelSet : Set.S with type elt = LabelName.t module ScopeDef : sig type t = | Var of ScopeVar.t * StateName.t option - | SubScopeVar of SubScopeName.t * ScopeVar.t + | SubScopeVar of SubScopeName.t * ScopeVar.t * Pos.t val compare : t -> t -> int val get_position : t -> Pos.t diff --git a/compiler/desugared/dependency.ml b/compiler/desugared/dependency.ml index b59eaf11..7c49cee9 100644 --- a/compiler/desugared/dependency.ml +++ b/compiler/desugared/dependency.ml @@ -185,7 +185,7 @@ let build_scope_dependencies (scope : Ast.scope) : ScopeDependencies.t = (Vertex.Var (v_defined, s_defined)) in ScopeDependencies.add_edge_e g edge - | ( Ast.ScopeDef.SubScopeVar (defined, _), + | ( Ast.ScopeDef.SubScopeVar (defined, _, _), Ast.ScopeDef.Var (v_used, s_used) ) -> (* here we are defining the input of a subscope using a var of the scope *) @@ -195,8 +195,8 @@ let build_scope_dependencies (scope : Ast.scope) : ScopeDependencies.t = fv_def_pos (Vertex.SubScope defined) in ScopeDependencies.add_edge_e g edge - | ( Ast.ScopeDef.SubScopeVar (defined, _), - Ast.ScopeDef.SubScopeVar (used, _) ) -> + | ( Ast.ScopeDef.SubScopeVar (defined, _, _), + Ast.ScopeDef.SubScopeVar (used, _, _) ) -> (* here we are defining the input of a scope with the output of another subscope *) if used = defined then @@ -212,7 +212,7 @@ let build_scope_dependencies (scope : Ast.scope) : ScopeDependencies.t = in ScopeDependencies.add_edge_e g edge | ( Ast.ScopeDef.Var (v_defined, s_defined), - Ast.ScopeDef.SubScopeVar (used, _) ) -> + Ast.ScopeDef.SubScopeVar (used, _, _) ) -> (* finally we define a scope var with the output of a subscope *) let edge = ScopeDependencies.E.create (Vertex.SubScope used) fv_def_pos diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index ca363f08..f5648349 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -483,7 +483,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = (fun def_key scope_def -> match def_key with | Ast.ScopeDef.Var _ -> false - | Ast.ScopeDef.SubScopeVar (sub_scope_index', _) -> + | Ast.ScopeDef.SubScopeVar (sub_scope_index', _, _) -> sub_scope_index = sub_scope_index' (* We exclude subscope variables that have 0 re-definitions and are not visible in the input of the subscope *) @@ -504,7 +504,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = let is_cond = scope_def.scope_def_is_condition in match def_key with | Ast.ScopeDef.Var _ -> assert false (* should not happen *) - | Ast.ScopeDef.SubScopeVar (_, sub_scope_var) -> + | Ast.ScopeDef.SubScopeVar (sscope, sub_scope_var, pos) -> (* This definition redefines a variable of the correct subscope. But we have to check that this redefinition is allowed with respect to the io parameters of that @@ -515,7 +515,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = | Scopelang.Ast.NoInput -> Errors.raise_multispanned_error (( Some "Incriminated subscope:", - Ast.ScopeDef.get_position def_key ) + Marked.get_mark (SubScopeName.get_info sscope) ) :: ( Some "Incriminated variable:", Marked.get_mark (ScopeVar.get_info sub_scope_var) ) @@ -533,9 +533,8 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = Errors.raise_multispanned_error [ ( Some "Incriminated subscope:", - Ast.ScopeDef.get_position def_key ); - ( Some "Incriminated variable:", - Marked.get_mark (ScopeVar.get_info sub_scope_var) ); + Marked.get_mark (SubScopeName.get_info sscope) ); + Some "Incriminated variable:", pos; ] "This subscope variable is a mandatory input but no \ definition was provided." @@ -551,9 +550,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = Scopelang.Ast.SubScopeMap.find sub_scope_index scope.scope_sub_scopes in - let var_pos = - Marked.get_mark (ScopeVar.get_info sub_scope_var) - in + let var_pos = Ast.ScopeDef.get_position def_key in Scopelang.Ast.Definition ( ( SubScopeVar ( subscop_real_name, diff --git a/compiler/surface/desugaring.ml b/compiler/surface/desugaring.ml index d0b11be1..501a6925 100644 --- a/compiler/surface/desugaring.ml +++ b/compiler/surface/desugaring.ml @@ -1002,7 +1002,7 @@ let process_def Name_resolution.get_def_key (Marked.unmark def.definition_name) def.definition_state scope_uid ctxt - (Marked.get_mark def.definition_expr) + (Marked.get_mark def.definition_name) in let scope_def_ctxt = Desugared.Ast.ScopeDefMap.find def_key scope_ctxt.scope_defs_contexts @@ -1331,7 +1331,9 @@ let desugar_program (ctxt : Name_resolution.context) (prgm : Ast.program) : in let def_key = Desugared.Ast.ScopeDef.SubScopeVar - (subscope_name, v) + ( subscope_name, + v, + Marked.get_mark (ScopeVar.get_info v) ) in Desugared.Ast.ScopeDefMap.add def_key { diff --git a/compiler/surface/name_resolution.ml b/compiler/surface/name_resolution.ml index bf30c464..b73acc34 100644 --- a/compiler/surface/name_resolution.ml +++ b/compiler/surface/name_resolution.ml @@ -150,7 +150,7 @@ let belongs_to (ctxt : context) (uid : ScopeVar.t) (scope_uid : ScopeName.t) : (** Retrieves the type of a scope definition from the context *) let get_def_typ (ctxt : context) (def : Desugared.Ast.ScopeDef.t) : typ = match def with - | Desugared.Ast.ScopeDef.SubScopeVar (_, x) + | Desugared.Ast.ScopeDef.SubScopeVar (_, x, _) (* we don't need to look at the subscope prefix because [x] is already the uid referring back to the original subscope *) | Desugared.Ast.ScopeDef.Var (x, _) -> @@ -158,7 +158,7 @@ let get_def_typ (ctxt : context) (def : Desugared.Ast.ScopeDef.t) : typ = let is_def_cond (ctxt : context) (def : Desugared.Ast.ScopeDef.t) : bool = match def with - | Desugared.Ast.ScopeDef.SubScopeVar (_, x) + | Desugared.Ast.ScopeDef.SubScopeVar (_, x, _) (* we don't need to look at the subscope prefix because [x] is already the uid referring back to the original subscope *) | Desugared.Ast.ScopeDef.Var (x, _) -> @@ -530,7 +530,7 @@ let get_def_key (state : Ast.ident Marked.pos option) (scope_uid : ScopeName.t) (ctxt : context) - (default_pos : Pos.t) : Desugared.Ast.ScopeDef.t = + (pos : Pos.t) : Desugared.Ast.ScopeDef.t = let scope_ctxt = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in match name with | [x] -> @@ -572,9 +572,9 @@ let get_def_key Scopelang.Ast.SubScopeMap.find subscope_uid scope_ctxt.sub_scopes in let x_uid = get_var_uid subscope_real_uid ctxt x in - Desugared.Ast.ScopeDef.SubScopeVar (subscope_uid, x_uid) + Desugared.Ast.ScopeDef.SubScopeVar (subscope_uid, x_uid, pos) | _ -> - Errors.raise_spanned_error default_pos + Errors.raise_spanned_error pos "This line is defining a quantity that is neither a scope variable nor a \ subscope variable. In particular, it is not possible to define struct \ fields individually in Catala." @@ -593,7 +593,7 @@ let process_definition get_def_key (Marked.unmark d.definition_name) d.definition_state s_name ctxt - (Marked.get_mark d.definition_expr) + (Marked.get_mark d.definition_name) in match s_ctxt with | None -> assert false (* should not happen *) diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index 5993a222..c58ce133 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -33,11 +33,11 @@ $ catala ocaml --> decimal Error coming from typechecking the following expression: - --> tests/test_typing/bad/err6.catala_en - | -5 | sub scope S - | ^^^ - + + --> tests/test_typing/bad/err6.catala_en + | +20 | definition sub.x equals 44. + | ^^^^^ + + Type integer coming from expression: --> tests/test_typing/bad/common.catala_en From c18de3b9803b4a1c8e5854cd9c0589b3d90d4598 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 20 Sep 2022 18:32:38 +0200 Subject: [PATCH 06/52] Tweak the order in which typing is done --- compiler/dcalc/typing.ml | 13 +++---- tests/test_bool/bad/bad_assert.catala_en | 16 ++++----- tests/test_enum/bad/quick_pattern_2.catala_en | 16 ++++----- tests/test_enum/bad/quick_pattern_3.catala_en | 16 ++++----- tests/test_enum/bad/quick_pattern_4.catala_en | 16 ++++----- tests/test_typing/bad/err1.catala_en | 30 ++++++++-------- tests/test_typing/bad/err2.catala_en | 4 +-- tests/test_typing/bad/err3.catala_en | 32 ++++++++--------- tests/test_typing/bad/err4.catala_en | 26 +++++++------- tests/test_typing/bad/err5.catala_en | 36 +++++++++---------- tests/test_typing/bad/err6.catala_en | 16 ++++----- 11 files changed, 111 insertions(+), 110 deletions(-) diff --git a/compiler/dcalc/typing.ml b/compiler/dcalc/typing.ml index 0395338c..19f53f8f 100644 --- a/compiler/dcalc/typing.ml +++ b/compiler/dcalc/typing.ml @@ -463,11 +463,7 @@ and typecheck_expr_top_down let pos_e = A.Expr.pos e in let mark e = Marked.mark { uf = tau; pos = pos_e } e in let unify_and_mark (e' : (A.dcalc, mark) A.naked_gexpr) tau' = - (* This try...with was added because of - [tests/test_bool/bad/bad_assert.catala_en] but we shouldn't need it. - TODO: debug why it is needed here. *) - (try unify ctx e tau tau' - with Type_error (e', t1, t2) -> handle_type_error ctx e' t1 t2); + unify ctx e tau' tau; Marked.mark { uf = tau; pos = pos_e } e' in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in @@ -698,11 +694,16 @@ let infer_types_program prg = scope_let_pos; } -> let ty_e = ast_to_typ scope_let_typ in + let e = wrap ctx (typecheck_expr_bottom_up ctx env) e0 in + wrap ctx (fun t -> Bindlib.box (unify ctx e0 (ty e) t)) ty_e; + (* We could use [typecheck_expr_top_down] rather than this manual + unification, but we get better messages with this order of the + [unify] parameters, which keeps location of the type as defined + instead of as inferred. *) let var, next = Bindlib.unbind scope_let_next in let env = A.Var.Map.add var ty_e env in let next = process_scope_body_expr env next in let scope_let_next = Bindlib.bind_var (A.Var.translate var) next in - let e = wrap ctx (typecheck_expr_top_down ctx env ty_e) e0 in Bindlib.box_apply2 (fun scope_let_expr scope_let_next -> A.ScopeLet diff --git a/tests/test_bool/bad/bad_assert.catala_en b/tests/test_bool/bad/bad_assert.catala_en index 9ae702da..99fda422 100644 --- a/tests/test_bool/bad/bad_assert.catala_en +++ b/tests/test_bool/bad/bad_assert.catala_en @@ -13,8 +13,8 @@ scope Foo: ```catala-test-inline $ catala Interpret -s Foo [ERROR] Error during typechecking, incompatible types: ---> bool --> integer +--> bool Error coming from typechecking the following expression: --> tests/test_bool/bad/bad_assert.catala_en @@ -23,18 +23,18 @@ Error coming from typechecking the following expression: | ^ + Test -Type bool coming from expression: - --> tests/test_bool/bad/bad_assert.catala_en - | -9 | assertion x - | ^ - + Test - Type integer coming from expression: --> tests/test_bool/bad/bad_assert.catala_en | 5 | internal x content integer | ^^^^^^^ + Test + +Type bool coming from expression: + --> tests/test_bool/bad/bad_assert.catala_en + | +9 | assertion x + | ^ + + Test #return code 255# ``` diff --git a/tests/test_enum/bad/quick_pattern_2.catala_en b/tests/test_enum/bad/quick_pattern_2.catala_en index bf623af8..ba529add 100644 --- a/tests/test_enum/bad/quick_pattern_2.catala_en +++ b/tests/test_enum/bad/quick_pattern_2.catala_en @@ -31,8 +31,8 @@ scope B: ```catala-test-inline $ catala Interpret -s A [ERROR] Error during typechecking, incompatible types: ---> F --> E +--> F Error coming from typechecking the following expression: --> tests/test_enum/bad/quick_pattern_2.catala_en @@ -41,18 +41,18 @@ Error coming from typechecking the following expression: | ^ + Article -Type F coming from expression: - --> tests/test_enum/bad/quick_pattern_2.catala_en - | -28 | definition y equals x with pattern Case3 - | ^ - + Article - Type E coming from expression: --> tests/test_enum/bad/quick_pattern_2.catala_en | 17 | context x content E | ^ + Article + +Type F coming from expression: + --> tests/test_enum/bad/quick_pattern_2.catala_en + | +28 | definition y equals x with pattern Case3 + | ^ + + Article #return code 255# ``` diff --git a/tests/test_enum/bad/quick_pattern_3.catala_en b/tests/test_enum/bad/quick_pattern_3.catala_en index 00d955bf..3c75ad90 100644 --- a/tests/test_enum/bad/quick_pattern_3.catala_en +++ b/tests/test_enum/bad/quick_pattern_3.catala_en @@ -21,8 +21,8 @@ definition y equals x with pattern Case3 ```catala-test-inline $ catala Interpret -s A [ERROR] Error during typechecking, incompatible types: ---> F --> E +--> F Error coming from typechecking the following expression: --> tests/test_enum/bad/quick_pattern_3.catala_en @@ -31,18 +31,18 @@ Error coming from typechecking the following expression: | ^ + Article -Type F coming from expression: - --> tests/test_enum/bad/quick_pattern_3.catala_en - | -18 | definition y equals x with pattern Case3 - | ^ - + Article - Type E coming from expression: --> tests/test_enum/bad/quick_pattern_3.catala_en | 13 | context x content E | ^ + Article + +Type F coming from expression: + --> tests/test_enum/bad/quick_pattern_3.catala_en + | +18 | definition y equals x with pattern Case3 + | ^ + + Article #return code 255# ``` diff --git a/tests/test_enum/bad/quick_pattern_4.catala_en b/tests/test_enum/bad/quick_pattern_4.catala_en index 2f3041f5..3e2f1130 100644 --- a/tests/test_enum/bad/quick_pattern_4.catala_en +++ b/tests/test_enum/bad/quick_pattern_4.catala_en @@ -20,8 +20,8 @@ definition y equals x with pattern Case3 ```catala-test-inline $ catala Interpret -s A [ERROR] Error during typechecking, incompatible types: ---> F --> E +--> F Error coming from typechecking the following expression: --> tests/test_enum/bad/quick_pattern_4.catala_en @@ -30,18 +30,18 @@ Error coming from typechecking the following expression: | ^ + Test -Type F coming from expression: - --> tests/test_enum/bad/quick_pattern_4.catala_en - | -17 | definition y equals x with pattern Case3 - | ^ - + Test - Type E coming from expression: --> tests/test_enum/bad/quick_pattern_4.catala_en | 12 | context x content E | ^ + Test + +Type F coming from expression: + --> tests/test_enum/bad/quick_pattern_4.catala_en + | +17 | definition y equals x with pattern Case3 + | ^ + + Test #return code 255# ``` diff --git a/tests/test_typing/bad/err1.catala_en b/tests/test_typing/bad/err1.catala_en index 59ed0671..b8bccf73 100644 --- a/tests/test_typing/bad/err1.catala_en +++ b/tests/test_typing/bad/err1.catala_en @@ -17,24 +17,24 @@ $ catala Typecheck --> integer Error coming from typechecking the following expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^ - + + --> tests/test_typing/bad/err1.catala_en + | +7 | Structure { -- i: 4.1 -- e: y }; + | ^^^ + + Type decimal coming from expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^^^^^^^ - + + --> tests/test_typing/bad/err1.catala_en + | +7 | Structure { -- i: 4.1 -- e: y }; + | ^^^ + + Type integer coming from expression: - --> tests/test_typing/bad/err1.catala_en - | -10 | definition a equals number of (z ++ z) / 2 - | ^^^^^^ - + + --> tests/test_typing/bad/common.catala_en + | +8 | data i content integer + | ^^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index 1e75438f..c8cf7d51 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -13,7 +13,7 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> any[4] array +--> any[10] array --> decimal Error coming from typechecking the following expression: @@ -23,7 +23,7 @@ Error coming from typechecking the following expression: | ^^^^^^^^ + -Type any[4] array coming from expression: +Type any[10] array coming from expression: --> tests/test_typing/bad/err2.catala_en | 10 | definition a equals number of (z ++ 1.1) / 2 diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index bb4bc57b..1774e37e 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -13,8 +13,8 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> decimal --> integer +--> decimal Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en @@ -23,19 +23,19 @@ Error coming from typechecking the following expression: | ^ + -Type decimal coming from expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^^^^^^^ - + - Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 | ^^^^^^ + + +Type decimal coming from expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^^^^^^^ + + #return code 255# ``` @@ -45,8 +45,8 @@ still triggered below. ```catala-test-inline $ catala ocaml [ERROR] Error during typechecking, incompatible types: ---> decimal --> integer +--> decimal Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en @@ -55,18 +55,18 @@ Error coming from typechecking the following expression: | ^ + -Type decimal coming from expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^^^^^^^ - + - Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 | ^^^^^^ + + +Type decimal coming from expression: + --> tests/test_typing/bad/common.catala_en + | +15 | output a content decimal + | ^^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err4.catala_en b/tests/test_typing/bad/err4.catala_en index 0913b515..2b190346 100644 --- a/tests/test_typing/bad/err4.catala_en +++ b/tests/test_typing/bad/err4.catala_en @@ -11,28 +11,28 @@ Should be "catala Typecheck", see test err3 ```catala-test-inline $ catala ocaml [ERROR] Error during typechecking, incompatible types: ---> decimal ---> integer +--> Enum +--> Structure Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en | -15 | output a content decimal +14 | output z content collection Structure | ^ + -Type decimal coming from expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^^^^^^^ - + - -Type integer coming from expression: +Type Enum coming from expression: --> tests/test_typing/bad/err4.catala_en | -6 | definition a equals number of (z ++ z) / 2 - | ^^^^^^ +5 | definition z equals [ Int content x ] + | ^^^^^^^^^^^^^ + + +Type Structure coming from expression: + --> tests/test_typing/bad/common.catala_en + | +14 | output z content collection Structure + | ^^^^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err5.catala_en b/tests/test_typing/bad/err5.catala_en index fa1d73db..e2e2ae00 100644 --- a/tests/test_typing/bad/err5.catala_en +++ b/tests/test_typing/bad/err5.catala_en @@ -13,28 +13,28 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> decimal --> integer +--> Structure Error coming from typechecking the following expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^ - + - -Type decimal coming from expression: - --> tests/test_typing/bad/common.catala_en - | -15 | output a content decimal - | ^^^^^^^ - + + --> tests/test_typing/bad/err5.catala_en + | +7 | Structure { -- i: 4 -- e: y }; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + Type integer coming from expression: - --> tests/test_typing/bad/err5.catala_en - | -10 | definition a equals number of (z ++ z) / 2 - | ^^^^^^ - + + --> tests/test_typing/bad/err5.catala_en + | +8 | 1040 + | ^^^^ + + + +Type Structure coming from expression: + --> tests/test_typing/bad/err5.catala_en + | +7 | Structure { -- i: 4 -- e: y }; + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index c58ce133..bc593d1e 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -29,8 +29,8 @@ Should be "catala Typecheck", see test err3 ```catala-test-inline $ catala ocaml [ERROR] Error during typechecking, incompatible types: ---> integer --> decimal +--> integer Error coming from typechecking the following expression: --> tests/test_typing/bad/err6.catala_en @@ -39,18 +39,18 @@ Error coming from typechecking the following expression: | ^^^^^ + -Type integer coming from expression: - --> tests/test_typing/bad/common.catala_en - | -12 | input x content integer - | ^^^^^^^ - + - Type decimal coming from expression: --> tests/test_typing/bad/err6.catala_en | 20 | definition sub.x equals 44. | ^^^ + + +Type integer coming from expression: + --> tests/test_typing/bad/common.catala_en + | +12 | input x content integer + | ^^^^^^^ + + #return code 255# ``` From 3ceb9ec80c6b85d74e2939109c90a57199b2c8c2 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 14:24:49 +0200 Subject: [PATCH 07/52] Clerk: don't stop on 1st error on tests --- build_system/clerk_driver.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build_system/clerk_driver.ml b/build_system/clerk_driver.ml index e7b23cea..b95ef533 100644 --- a/build_system/clerk_driver.ml +++ b/build_system/clerk_driver.ml @@ -885,7 +885,7 @@ let driver (add_root_test_build ninja ctx.all_file_names ctx.all_test_builds)); let ninja_cmd = - "ninja -f " ^ ninja_output ^ " " ^ ninja_flags ^ " test" + "ninja -k 0 -f " ^ ninja_output ^ " " ^ ninja_flags ^ " test" in Cli.debug_print "executing '%s'..." ninja_cmd; let return = Sys.command ninja_cmd in From abd5a4de9612b97cda9289c196068f069a3f4847 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 14:27:47 +0200 Subject: [PATCH 08/52] Tests: cleanup remaining whitespace --- tests/test_array/bad/fold_error.catala_en | 4 ++-- .../bad/array_length-empty.catala_en | 2 +- .../bad/array_length-overlap.catala_en | 2 +- .../bad/dates_get_year-empty.catala_en | 2 +- .../bad/dates_get_year-overlap.catala_en | 2 +- .../bad/dates_simple-empty.catala_en | 2 +- .../bad/dates_simple-overlap.catala_en | 2 +- tests/test_proof/bad/duration-empty.catala_en | 2 +- .../test_proof/bad/duration-overlap.catala_en | 2 +- tests/test_proof/bad/enums-empty.catala_en | 2 +- .../bad/enums-nonbool-empty.catala_en | 2 +- .../bad/enums-nonbool-overlap.catala_en | 2 +- tests/test_proof/bad/enums-overlap.catala_en | 2 +- .../test_proof/bad/enums_inj-empty.catala_en | 2 +- .../bad/enums_inj-overlap.catala_en | 2 +- .../test_proof/bad/enums_unit-empty.catala_en | 2 +- .../bad/enums_unit-overlap.catala_en | 2 +- tests/test_proof/bad/money-empty.catala_en | 2 +- tests/test_proof/bad/money-overlap.catala_en | 2 +- .../test_proof/bad/no_vars-conflict.catala_en | 2 +- tests/test_proof/bad/no_vars-empty.catala_en | 2 +- .../bad/prolala_motivating_example.catala_en | 6 ++--- .../test_proof/bad/rationals-empty.catala_en | 2 +- .../bad/rationals-overlap.catala_en | 2 +- tests/test_proof/bad/sat_solving.catala_en | 2 +- tests/test_proof/bad/structs-empty.catala_en | 2 +- .../test_proof/bad/structs-overlap.catala_en | 2 +- tests/test_scope/bad/cycle_in_scope.catala_en | 12 +++++----- tests/test_scope/bad/cyclic_scopes.catala_en | 8 +++---- tests/test_scope/bad/scope.catala_en | 4 ++-- .../bad/sub_vars_in_sub_var.catala_en | 2 +- .../bad/ambiguous_fields.catala_en | 2 +- tests/test_struct/bad/bug_107.catala_en | 4 ++-- tests/test_struct/bad/empty_struct.catala_en | 2 +- tests/test_struct/bad/nested.catala_en | 2 +- tests/test_struct/bad/nested2.catala_en | 8 +++---- .../bad/nonexisting_struct.catala_en | 2 +- .../bad/wrong_qualified_field.catala_en | 2 +- tests/test_typing/bad/err1.catala_en | 12 +++++----- tests/test_typing/bad/err2.catala_en | 12 +++++----- tests/test_typing/bad/err3.catala_en | 24 +++++++++---------- tests/test_typing/bad/err4.catala_en | 12 +++++----- tests/test_typing/bad/err5.catala_en | 12 +++++----- tests/test_typing/bad/err6.catala_en | 12 +++++----- .../bad/def_no_state.catala_en | 4 ++-- .../bad/no_cross_exceptions.catala_en | 2 +- .../bad/self_reference_first_state.catala_en | 2 +- .../bad/state_cycle.catala_en | 16 ++++++------- .../bad/unknown_state.catala_en | 4 ++-- 49 files changed, 110 insertions(+), 110 deletions(-) diff --git a/tests/test_array/bad/fold_error.catala_en b/tests/test_array/bad/fold_error.catala_en index 4df68c4b..20370e77 100644 --- a/tests/test_array/bad/fold_error.catala_en +++ b/tests/test_array/bad/fold_error.catala_en @@ -25,14 +25,14 @@ Error coming from typechecking the following expression: Type integer coming from expression: --> tests/test_array/bad/fold_error.catala_en - | + | 5 | context list content collection integer | ^^^^^^^ + Article Type money coming from expression: --> tests/test_array/bad/fold_error.catala_en - | + | 10 | definition list_high_count equals number for m in list of (m >=$ $7) | ^^ + Article diff --git a/tests/test_proof/bad/array_length-empty.catala_en b/tests/test_proof/bad/array_length-empty.catala_en index e8899c15..dc3b9d0e 100644 --- a/tests/test_proof/bad/array_length-empty.catala_en +++ b/tests/test_proof/bad/array_length-empty.catala_en @@ -14,7 +14,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/array_length-empty.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/array_length-overlap.catala_en b/tests/test_proof/bad/array_length-overlap.catala_en index 771cc6bd..232168b8 100644 --- a/tests/test_proof/bad/array_length-overlap.catala_en +++ b/tests/test_proof/bad/array_length-overlap.catala_en @@ -15,7 +15,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/array_length-overlap.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/dates_get_year-empty.catala_en b/tests/test_proof/bad/dates_get_year-empty.catala_en index f473fbb1..ba872fd9 100644 --- a/tests/test_proof/bad/dates_get_year-empty.catala_en +++ b/tests/test_proof/bad/dates_get_year-empty.catala_en @@ -17,7 +17,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/dates_get_year-empty.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/dates_get_year-overlap.catala_en b/tests/test_proof/bad/dates_get_year-overlap.catala_en index 79332df3..2a9b6ff6 100644 --- a/tests/test_proof/bad/dates_get_year-overlap.catala_en +++ b/tests/test_proof/bad/dates_get_year-overlap.catala_en @@ -17,7 +17,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/dates_get_year-overlap.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/dates_simple-empty.catala_en b/tests/test_proof/bad/dates_simple-empty.catala_en index 93056493..89e52008 100644 --- a/tests/test_proof/bad/dates_simple-empty.catala_en +++ b/tests/test_proof/bad/dates_simple-empty.catala_en @@ -16,7 +16,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/dates_simple-empty.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/dates_simple-overlap.catala_en b/tests/test_proof/bad/dates_simple-overlap.catala_en index 6046d2ae..22e0f054 100644 --- a/tests/test_proof/bad/dates_simple-overlap.catala_en +++ b/tests/test_proof/bad/dates_simple-overlap.catala_en @@ -17,7 +17,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/dates_simple-overlap.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/duration-empty.catala_en b/tests/test_proof/bad/duration-empty.catala_en index 4f0171b6..3ee96bdf 100644 --- a/tests/test_proof/bad/duration-empty.catala_en +++ b/tests/test_proof/bad/duration-empty.catala_en @@ -14,7 +14,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/duration-empty.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/duration-overlap.catala_en b/tests/test_proof/bad/duration-overlap.catala_en index d552157c..80c8c8e5 100644 --- a/tests/test_proof/bad/duration-overlap.catala_en +++ b/tests/test_proof/bad/duration-overlap.catala_en @@ -15,7 +15,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/duration-overlap.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/enums-empty.catala_en b/tests/test_proof/bad/enums-empty.catala_en index 95884a24..7689cd4f 100644 --- a/tests/test_proof/bad/enums-empty.catala_en +++ b/tests/test_proof/bad/enums-empty.catala_en @@ -25,7 +25,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x] This variable might return an empty error: --> tests/test_proof/bad/enums-empty.catala_en - | + | 15 | context x content integer | ^ + Test diff --git a/tests/test_proof/bad/enums-nonbool-empty.catala_en b/tests/test_proof/bad/enums-nonbool-empty.catala_en index 9b45e6e3..2b5592c3 100644 --- a/tests/test_proof/bad/enums-nonbool-empty.catala_en +++ b/tests/test_proof/bad/enums-nonbool-empty.catala_en @@ -23,7 +23,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x] This variable might return an empty error: --> tests/test_proof/bad/enums-nonbool-empty.catala_en - | + | 13 | context x content integer | ^ + Test diff --git a/tests/test_proof/bad/enums-nonbool-overlap.catala_en b/tests/test_proof/bad/enums-nonbool-overlap.catala_en index db627f55..495c2c94 100644 --- a/tests/test_proof/bad/enums-nonbool-overlap.catala_en +++ b/tests/test_proof/bad/enums-nonbool-overlap.catala_en @@ -23,7 +23,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x] At least two exceptions overlap for this variable: --> tests/test_proof/bad/enums-nonbool-overlap.catala_en - | + | 13 | context x content integer | ^ + Test diff --git a/tests/test_proof/bad/enums-overlap.catala_en b/tests/test_proof/bad/enums-overlap.catala_en index e2183458..5183a70e 100644 --- a/tests/test_proof/bad/enums-overlap.catala_en +++ b/tests/test_proof/bad/enums-overlap.catala_en @@ -25,7 +25,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x] At least two exceptions overlap for this variable: --> tests/test_proof/bad/enums-overlap.catala_en - | + | 15 | context x content integer | ^ + Test diff --git a/tests/test_proof/bad/enums_inj-empty.catala_en b/tests/test_proof/bad/enums_inj-empty.catala_en index 25ac33ea..95c9d724 100644 --- a/tests/test_proof/bad/enums_inj-empty.catala_en +++ b/tests/test_proof/bad/enums_inj-empty.catala_en @@ -18,7 +18,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/enums_inj-empty.catala_en - | + | 10 | context y content integer | ^ + Article diff --git a/tests/test_proof/bad/enums_inj-overlap.catala_en b/tests/test_proof/bad/enums_inj-overlap.catala_en index 3c4409fd..3f1c7844 100644 --- a/tests/test_proof/bad/enums_inj-overlap.catala_en +++ b/tests/test_proof/bad/enums_inj-overlap.catala_en @@ -20,7 +20,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/enums_inj-overlap.catala_en - | + | 10 | context y content integer | ^ + Article diff --git a/tests/test_proof/bad/enums_unit-empty.catala_en b/tests/test_proof/bad/enums_unit-empty.catala_en index b16309f4..f3c50728 100644 --- a/tests/test_proof/bad/enums_unit-empty.catala_en +++ b/tests/test_proof/bad/enums_unit-empty.catala_en @@ -23,7 +23,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/enums_unit-empty.catala_en - | + | 10 | context y content integer | ^ + Article diff --git a/tests/test_proof/bad/enums_unit-overlap.catala_en b/tests/test_proof/bad/enums_unit-overlap.catala_en index d88e49d9..f0ae6c8a 100644 --- a/tests/test_proof/bad/enums_unit-overlap.catala_en +++ b/tests/test_proof/bad/enums_unit-overlap.catala_en @@ -23,7 +23,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/enums_unit-overlap.catala_en - | + | 10 | context y content integer | ^ + Article diff --git a/tests/test_proof/bad/money-empty.catala_en b/tests/test_proof/bad/money-empty.catala_en index ba8ec714..28564db5 100644 --- a/tests/test_proof/bad/money-empty.catala_en +++ b/tests/test_proof/bad/money-empty.catala_en @@ -18,7 +18,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/money-empty.catala_en - | + | 8 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/money-overlap.catala_en b/tests/test_proof/bad/money-overlap.catala_en index 15ba38ff..f01a780f 100644 --- a/tests/test_proof/bad/money-overlap.catala_en +++ b/tests/test_proof/bad/money-overlap.catala_en @@ -19,7 +19,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/money-overlap.catala_en - | + | 8 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/no_vars-conflict.catala_en b/tests/test_proof/bad/no_vars-conflict.catala_en index 6c1fc6ea..952ec8f0 100644 --- a/tests/test_proof/bad/no_vars-conflict.catala_en +++ b/tests/test_proof/bad/no_vars-conflict.catala_en @@ -19,7 +19,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/no_vars-conflict.catala_en - | + | 8 | context y content integer | ^ + Test diff --git a/tests/test_proof/bad/no_vars-empty.catala_en b/tests/test_proof/bad/no_vars-empty.catala_en index d3bf23b3..399425f6 100644 --- a/tests/test_proof/bad/no_vars-empty.catala_en +++ b/tests/test_proof/bad/no_vars-empty.catala_en @@ -18,7 +18,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/no_vars-empty.catala_en - | + | 7 | context y content integer | ^ + Test diff --git a/tests/test_proof/bad/prolala_motivating_example.catala_en b/tests/test_proof/bad/prolala_motivating_example.catala_en index 4e004484..aad4bc4c 100644 --- a/tests/test_proof/bad/prolala_motivating_example.catala_en +++ b/tests/test_proof/bad/prolala_motivating_example.catala_en @@ -125,7 +125,7 @@ scope Amount: $ catala Proof --disable_counterexamples [ERROR] [Amount.amount] This variable might return an empty error: --> tests/test_proof/bad/prolala_motivating_example.catala_en - | + | 60 | context amount content integer | ^^^^^^ + ProLaLa 2022 Super Cash Bonus @@ -133,7 +133,7 @@ $ catala Proof --disable_counterexamples Counterexample generation is disabled so none was generated. [ERROR] [Eligibility.is_eligible] This variable might return an empty error: --> tests/test_proof/bad/prolala_motivating_example.catala_en - | + | 11 | output is_eligible content boolean | ^^^^^^^^^^^ + ProLaLa 2022 Super Cash Bonus @@ -141,7 +141,7 @@ Counterexample generation is disabled so none was generated. Counterexample generation is disabled so none was generated. [ERROR] [Eligibility.is_eligible] At least two exceptions overlap for this variable: --> tests/test_proof/bad/prolala_motivating_example.catala_en - | + | 11 | output is_eligible content boolean | ^^^^^^^^^^^ + ProLaLa 2022 Super Cash Bonus diff --git a/tests/test_proof/bad/rationals-empty.catala_en b/tests/test_proof/bad/rationals-empty.catala_en index 26cdf2e0..8342efad 100644 --- a/tests/test_proof/bad/rationals-empty.catala_en +++ b/tests/test_proof/bad/rationals-empty.catala_en @@ -14,7 +14,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] This variable might return an empty error: --> tests/test_proof/bad/rationals-empty.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/rationals-overlap.catala_en b/tests/test_proof/bad/rationals-overlap.catala_en index ebe2fff3..eafe2654 100644 --- a/tests/test_proof/bad/rationals-overlap.catala_en +++ b/tests/test_proof/bad/rationals-overlap.catala_en @@ -15,7 +15,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.y] At least two exceptions overlap for this variable: --> tests/test_proof/bad/rationals-overlap.catala_en - | + | 6 | context y content boolean | ^ + Test diff --git a/tests/test_proof/bad/sat_solving.catala_en b/tests/test_proof/bad/sat_solving.catala_en index 070cc721..3ed3c881 100644 --- a/tests/test_proof/bad/sat_solving.catala_en +++ b/tests/test_proof/bad/sat_solving.catala_en @@ -42,7 +42,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x10] This variable might return an empty error: --> tests/test_proof/bad/sat_solving.catala_en - | + | 15 | context x10 content boolean | ^^^ + Test diff --git a/tests/test_proof/bad/structs-empty.catala_en b/tests/test_proof/bad/structs-empty.catala_en index 9e4bc466..1ec8ab12 100644 --- a/tests/test_proof/bad/structs-empty.catala_en +++ b/tests/test_proof/bad/structs-empty.catala_en @@ -23,7 +23,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x] This variable might return an empty error: --> tests/test_proof/bad/structs-empty.catala_en - | + | 13 | context x content integer | ^ + Test diff --git a/tests/test_proof/bad/structs-overlap.catala_en b/tests/test_proof/bad/structs-overlap.catala_en index 7515a4e4..6c9082f0 100644 --- a/tests/test_proof/bad/structs-overlap.catala_en +++ b/tests/test_proof/bad/structs-overlap.catala_en @@ -23,7 +23,7 @@ scope A: $ catala Proof --disable_counterexamples [ERROR] [A.x] At least two exceptions overlap for this variable: --> tests/test_proof/bad/structs-overlap.catala_en - | + | 13 | context x content integer | ^ + Test diff --git a/tests/test_scope/bad/cycle_in_scope.catala_en b/tests/test_scope/bad/cycle_in_scope.catala_en index 7679a3af..552fc5b1 100644 --- a/tests/test_scope/bad/cycle_in_scope.catala_en +++ b/tests/test_scope/bad/cycle_in_scope.catala_en @@ -20,42 +20,42 @@ $ catala Interpret -s A Cycle variable z, declared: --> tests/test_scope/bad/cycle_in_scope.catala_en - | + | 7 | context z content integer | ^ + Article Used here in the definition of another cycle variable x: --> tests/test_scope/bad/cycle_in_scope.catala_en - | + | 14 | definition x equals z | ^ + Article Cycle variable y, declared: --> tests/test_scope/bad/cycle_in_scope.catala_en - | + | 6 | context y content integer | ^ + Article Used here in the definition of another cycle variable z: --> tests/test_scope/bad/cycle_in_scope.catala_en - | + | 13 | definition z under condition y < 1 consequence equals y | ^ + Article Cycle variable x, declared: --> tests/test_scope/bad/cycle_in_scope.catala_en - | + | 5 | context x content integer | ^ + Article Used here in the definition of another cycle variable y: --> tests/test_scope/bad/cycle_in_scope.catala_en - | + | 11 | definition y under condition x >= 0 consequence equals x | ^ + Article diff --git a/tests/test_scope/bad/cyclic_scopes.catala_en b/tests/test_scope/bad/cyclic_scopes.catala_en index 625f3c18..ecbd4c9d 100644 --- a/tests/test_scope/bad/cyclic_scopes.catala_en +++ b/tests/test_scope/bad/cyclic_scopes.catala_en @@ -22,28 +22,28 @@ $ catala Interpret -s A Cycle variable B, declared: --> tests/test_scope/bad/cyclic_scopes.catala_en - | + | 8 | declaration scope B: | ^ + Article Used here in the definition of another cycle variable A: --> tests/test_scope/bad/cyclic_scopes.catala_en - | + | 5 | b scope B | ^ + Article Cycle variable A, declared: --> tests/test_scope/bad/cyclic_scopes.catala_en - | + | 4 | declaration scope A: | ^ + Article Used here in the definition of another cycle variable B: --> tests/test_scope/bad/cyclic_scopes.catala_en - | + | 9 | a scope A | ^ + Article diff --git a/tests/test_scope/bad/scope.catala_en b/tests/test_scope/bad/scope.catala_en index 4ca0ebb6..5d044e40 100644 --- a/tests/test_scope/bad/scope.catala_en +++ b/tests/test_scope/bad/scope.catala_en @@ -20,14 +20,14 @@ $ catala Interpret -s A This consequence has a valid justification: --> tests/test_scope/bad/scope.catala_en - | + | 13 | definition b under condition not c consequence equals 1337 | ^^^^ + Article This consequence has a valid justification: --> tests/test_scope/bad/scope.catala_en - | + | 14 | definition b under condition not c consequence equals 0 | ^ + Article diff --git a/tests/test_scope/bad/sub_vars_in_sub_var.catala_en b/tests/test_scope/bad/sub_vars_in_sub_var.catala_en index 9a742d4e..fdef9a82 100644 --- a/tests/test_scope/bad/sub_vars_in_sub_var.catala_en +++ b/tests/test_scope/bad/sub_vars_in_sub_var.catala_en @@ -18,7 +18,7 @@ $ catala Interpret -s A [ERROR] The subscope a is used when defining one of its inputs, but recursion is forbidden in Catala --> tests/test_scope/bad/sub_vars_in_sub_var.catala_en - | + | 13 | definition a.y equals if a.x then 0 else 1 | ^^^ + Article diff --git a/tests/test_struct/bad/ambiguous_fields.catala_en b/tests/test_struct/bad/ambiguous_fields.catala_en index e85ef36b..5511cc64 100644 --- a/tests/test_struct/bad/ambiguous_fields.catala_en +++ b/tests/test_struct/bad/ambiguous_fields.catala_en @@ -21,7 +21,7 @@ $ catala Interpret -s A [ERROR] This struct field name is ambiguous, it can belong to Foo or Bar. Disambiguate it by prefixing it with the struct name. --> tests/test_struct/bad/ambiguous_fields.catala_en - | + | 16 | definition y equals x.f | ^ + Article diff --git a/tests/test_struct/bad/bug_107.catala_en b/tests/test_struct/bad/bug_107.catala_en index 0570c5d0..66c8ee16 100644 --- a/tests/test_struct/bad/bug_107.catala_en +++ b/tests/test_struct/bad/bug_107.catala_en @@ -22,14 +22,14 @@ $ catala Interpret -s A First definition: --> tests/test_struct/bad/bug_107.catala_en - | + | 4 | declaration structure S: | ^ + https://github.com/CatalaLang/catala/issues/107 Second definition: --> tests/test_struct/bad/bug_107.catala_en - | + | 8 | declaration structure S: | ^ + https://github.com/CatalaLang/catala/issues/107 diff --git a/tests/test_struct/bad/empty_struct.catala_en b/tests/test_struct/bad/empty_struct.catala_en index 44327680..72f7ba5d 100644 --- a/tests/test_struct/bad/empty_struct.catala_en +++ b/tests/test_struct/bad/empty_struct.catala_en @@ -12,7 +12,7 @@ $ catala Typecheck [ERROR] The struct Foo does not have any fields; give it some for Catala to be able to accept it. --> tests/test_struct/bad/empty_struct.catala_en - | + | 4 | declaration structure Foo: | ^^^ + Test diff --git a/tests/test_struct/bad/nested.catala_en b/tests/test_struct/bad/nested.catala_en index 88e2e798..47727474 100644 --- a/tests/test_struct/bad/nested.catala_en +++ b/tests/test_struct/bad/nested.catala_en @@ -16,7 +16,7 @@ $ catala Interpret -s A [ERROR] The type S is defined using itself, which is forbidden since Catala does not provide recursive types --> tests/test_struct/bad/nested.catala_en - | + | 5 | data x content S | ^ + Article diff --git a/tests/test_struct/bad/nested2.catala_en b/tests/test_struct/bad/nested2.catala_en index 6649b70d..491ba3f0 100644 --- a/tests/test_struct/bad/nested2.catala_en +++ b/tests/test_struct/bad/nested2.catala_en @@ -19,28 +19,28 @@ $ catala Interpret -s A Cycle type S, declared: --> tests/test_struct/bad/nested2.catala_en - | + | 4 | declaration structure S: | ^ + Article Used here in the definition of another cycle type E: --> tests/test_struct/bad/nested2.catala_en - | + | 10 | -- Case2 content S | ^ + Article Cycle type E, declared: --> tests/test_struct/bad/nested2.catala_en - | + | 8 | declaration enumeration E: | ^ + Article Used here in the definition of another cycle type S: --> tests/test_struct/bad/nested2.catala_en - | + | 5 | data x content E | ^ + Article diff --git a/tests/test_struct/bad/nonexisting_struct.catala_en b/tests/test_struct/bad/nonexisting_struct.catala_en index cea16b78..9891b5a6 100644 --- a/tests/test_struct/bad/nonexisting_struct.catala_en +++ b/tests/test_struct/bad/nonexisting_struct.catala_en @@ -18,7 +18,7 @@ $ catala Interpret -s A [ERROR] Struct Fo has not been defined before --> tests/test_struct/bad/nonexisting_struct.catala_en - | + | 13 | definition y equals x.Fo.f | ^^ + Article diff --git a/tests/test_struct/bad/wrong_qualified_field.catala_en b/tests/test_struct/bad/wrong_qualified_field.catala_en index 661682e5..b8d2edf6 100644 --- a/tests/test_struct/bad/wrong_qualified_field.catala_en +++ b/tests/test_struct/bad/wrong_qualified_field.catala_en @@ -22,7 +22,7 @@ $ catala Interpret -s A [ERROR] Struct Foo does not contain field g --> tests/test_struct/bad/wrong_qualified_field.catala_en - | + | 17 | definition y equals x.Foo.g | ^^^^^^^ + Article diff --git a/tests/test_typing/bad/err1.catala_en b/tests/test_typing/bad/err1.catala_en index b8bccf73..d015f444 100644 --- a/tests/test_typing/bad/err1.catala_en +++ b/tests/test_typing/bad/err1.catala_en @@ -18,23 +18,23 @@ $ catala Typecheck Error coming from typechecking the following expression: --> tests/test_typing/bad/err1.catala_en - | + | 7 | Structure { -- i: 4.1 -- e: y }; | ^^^ - + + + Type decimal coming from expression: --> tests/test_typing/bad/err1.catala_en - | + | 7 | Structure { -- i: 4.1 -- e: y }; | ^^^ - + + + Type integer coming from expression: --> tests/test_typing/bad/common.catala_en - | + | 8 | data i content integer | ^^^^^^^ - + + + #return code 255# ``` diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index c8cf7d51..0088d4aa 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -18,23 +18,23 @@ $ catala Typecheck Error coming from typechecking the following expression: --> tests/test_typing/bad/err2.catala_en - | + | 10 | definition a equals number of (z ++ 1.1) / 2 | ^^^^^^^^ - + + + Type any[10] array coming from expression: --> tests/test_typing/bad/err2.catala_en - | + | 10 | definition a equals number of (z ++ 1.1) / 2 | ^^ - + + + Type decimal coming from expression: --> tests/test_typing/bad/err2.catala_en - | + | 10 | definition a equals number of (z ++ 1.1) / 2 | ^^^ - + + + #return code 255# ``` diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index 1774e37e..eecc03b9 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -18,24 +18,24 @@ $ catala Typecheck Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en - | + | 15 | output a content decimal | ^ - + + + Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en - | + | 10 | definition a equals number of (z ++ z) / 2 | ^^^^^^ - + + + Type decimal coming from expression: --> tests/test_typing/bad/common.catala_en - | + | 15 | output a content decimal | ^^^^^^^ - + + + #return code 255# ``` @@ -50,23 +50,23 @@ $ catala ocaml Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en - | + | 15 | output a content decimal | ^ - + + + Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en - | + | 10 | definition a equals number of (z ++ z) / 2 | ^^^^^^ - + + + Type decimal coming from expression: --> tests/test_typing/bad/common.catala_en - | + | 15 | output a content decimal | ^^^^^^^ - + + + #return code 255# ``` diff --git a/tests/test_typing/bad/err4.catala_en b/tests/test_typing/bad/err4.catala_en index 2b190346..38cd6807 100644 --- a/tests/test_typing/bad/err4.catala_en +++ b/tests/test_typing/bad/err4.catala_en @@ -16,23 +16,23 @@ $ catala ocaml Error coming from typechecking the following expression: --> tests/test_typing/bad/common.catala_en - | + | 14 | output z content collection Structure | ^ - + + + Type Enum coming from expression: --> tests/test_typing/bad/err4.catala_en - | + | 5 | definition z equals [ Int content x ] | ^^^^^^^^^^^^^ - + + + Type Structure coming from expression: --> tests/test_typing/bad/common.catala_en - | + | 14 | output z content collection Structure | ^^^^^^^^^ - + + + #return code 255# ``` diff --git a/tests/test_typing/bad/err5.catala_en b/tests/test_typing/bad/err5.catala_en index e2e2ae00..02663f45 100644 --- a/tests/test_typing/bad/err5.catala_en +++ b/tests/test_typing/bad/err5.catala_en @@ -18,23 +18,23 @@ $ catala Typecheck Error coming from typechecking the following expression: --> tests/test_typing/bad/err5.catala_en - | + | 7 | Structure { -- i: 4 -- e: y }; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - + + + Type integer coming from expression: --> tests/test_typing/bad/err5.catala_en - | + | 8 | 1040 | ^^^^ - + + + Type Structure coming from expression: --> tests/test_typing/bad/err5.catala_en - | + | 7 | Structure { -- i: 4 -- e: y }; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - + + + #return code 255# ``` diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index bc593d1e..f14974d2 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -34,23 +34,23 @@ $ catala ocaml Error coming from typechecking the following expression: --> tests/test_typing/bad/err6.catala_en - | + | 20 | definition sub.x equals 44. | ^^^^^ - + + + Type decimal coming from expression: --> tests/test_typing/bad/err6.catala_en - | + | 20 | definition sub.x equals 44. | ^^^ - + + + Type integer coming from expression: --> tests/test_typing/bad/common.catala_en - | + | 12 | input x content integer | ^^^^^^^ - + + + #return code 255# ``` diff --git a/tests/test_variable_state/bad/def_no_state.catala_en b/tests/test_variable_state/bad/def_no_state.catala_en index 0b3cf594..f91571fc 100644 --- a/tests/test_variable_state/bad/def_no_state.catala_en +++ b/tests/test_variable_state/bad/def_no_state.catala_en @@ -15,14 +15,14 @@ $ catala Typecheck [ERROR] This definition does not indicate which state has to be considered for variable foo. --> tests/test_variable_state/bad/def_no_state.catala_en - | + | 10 | definition foo equals 2 | ^^^ + Test Variable declaration: --> tests/test_variable_state/bad/def_no_state.catala_en - | + | 5 | output foo content integer | ^^^ + Test diff --git a/tests/test_variable_state/bad/no_cross_exceptions.catala_en b/tests/test_variable_state/bad/no_cross_exceptions.catala_en index 4c455ee1..c21132f2 100644 --- a/tests/test_variable_state/bad/no_cross_exceptions.catala_en +++ b/tests/test_variable_state/bad/no_cross_exceptions.catala_en @@ -19,7 +19,7 @@ $ catala Typecheck [ERROR] Unknown label for the scope variable foo.baz: "thing" --> tests/test_variable_state/bad/no_cross_exceptions.catala_en - | + | 14 | exception thing definition foo state baz under condition true consequence equals 3 | ^^^^^ + Test diff --git a/tests/test_variable_state/bad/self_reference_first_state.catala_en b/tests/test_variable_state/bad/self_reference_first_state.catala_en index 3172b522..7418cb62 100644 --- a/tests/test_variable_state/bad/self_reference_first_state.catala_en +++ b/tests/test_variable_state/bad/self_reference_first_state.catala_en @@ -17,7 +17,7 @@ $ catala Typecheck [ERROR] It is impossible to refer to the variable you are defining when defining its first state. --> tests/test_variable_state/bad/self_reference_first_state.catala_en - | + | 10 | definition foo state bar equals foo + 1 | ^^^ + Test diff --git a/tests/test_variable_state/bad/state_cycle.catala_en b/tests/test_variable_state/bad/state_cycle.catala_en index f0bc4641..698824df 100644 --- a/tests/test_variable_state/bad/state_cycle.catala_en +++ b/tests/test_variable_state/bad/state_cycle.catala_en @@ -25,56 +25,56 @@ $ catala Typecheck Cycle variable foofoo.bar, declared: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 9 | state bar | ^^^ + Test Used here in the definition of another cycle variable foofoo.baz: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 19 | definition foofoo state baz equals foofoo + 1 | ^^^^^^ + Test Cycle variable foofoo.baz, declared: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 10 | state baz | ^^^ + Test Used here in the definition of another cycle variable foo.bar: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 13 | definition foo state bar equals foofoo | ^^^^^^ + Test Cycle variable foo.bar, declared: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 6 | state bar | ^^^ + Test Used here in the definition of another cycle variable foo.baz: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 15 | definition foo state baz equals foo + 1 | ^^^ + Test Cycle variable foo.baz, declared: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 7 | state baz | ^^^ + Test Used here in the definition of another cycle variable foofoo.bar: --> tests/test_variable_state/bad/state_cycle.catala_en - | + | 17 | definition foofoo state bar equals foo | ^^^ + Test diff --git a/tests/test_variable_state/bad/unknown_state.catala_en b/tests/test_variable_state/bad/unknown_state.catala_en index d5ab4b57..94ab8462 100644 --- a/tests/test_variable_state/bad/unknown_state.catala_en +++ b/tests/test_variable_state/bad/unknown_state.catala_en @@ -17,14 +17,14 @@ $ catala Typecheck [ERROR] This identifier is not a state declared for variable foo. --> tests/test_variable_state/bad/unknown_state.catala_en - | + | 12 | definition foo state basz equals foo + 1 | ^^^^ + Test Variable declaration: --> tests/test_variable_state/bad/unknown_state.catala_en - | + | 5 | output foo content integer | ^^^ + Test From a41de29293b3ddb2e0280936092da9dafab77737 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 14:29:15 +0200 Subject: [PATCH 09/52] Improve typing error message on array - don't print variable id on type variables, there should be no ambiguity - print "array" as "collection" to match the language - print just "collection" for "'a collection", which makes sense english-wise --- compiler/dcalc/typing.ml | 7 +++++-- tests/test_typing/bad/err2.catala_en | 4 ++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/compiler/dcalc/typing.ml b/compiler/dcalc/typing.ml index 19f53f8f..140ae8ad 100644 --- a/compiler/dcalc/typing.ml +++ b/compiler/dcalc/typing.ml @@ -104,8 +104,11 @@ let rec format_typ | TArrow (t1, t2) -> Format.fprintf fmt "@[%a →@ %a@]" format_typ_with_parens t1 format_typ t2 - | TArray t1 -> Format.fprintf fmt "@[%a@ array@]" format_typ t1 - | TAny d -> Format.fprintf fmt "any[%d]" (Any.hash d) + | TArray t1 -> ( + match Marked.unmark (UnionFind.get (UnionFind.find t1)) with + | TAny _ -> Format.pp_print_string fmt "collection" + | _ -> Format.fprintf fmt "@[collection@ %a@]" format_typ t1) + | TAny d -> Format.pp_print_string fmt "" exception Type_error of A.any_expr * unionfind_typ * unionfind_typ diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index 0088d4aa..143be4fe 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -13,7 +13,7 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> any[10] array +--> collection --> decimal Error coming from typechecking the following expression: @@ -23,7 +23,7 @@ Error coming from typechecking the following expression: | ^^^^^^^^ + -Type any[10] array coming from expression: +Type collection coming from expression: --> tests/test_typing/bad/err2.catala_en | 10 | definition a equals number of (z ++ 1.1) / 2 From 3d73071012c93188124ebefd260b3e741530c429 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 15:27:36 +0200 Subject: [PATCH 10/52] Typing tests: reword test doc for clarity --- tests/test_typing/bad/err3.catala_en | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index eecc03b9..c0920aa9 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -39,8 +39,7 @@ Type decimal coming from expression: #return code 255# ``` -A bug with delayed typechecking can make the above accept the error while it is -still triggered below. +Re-putting the same check again, to ensure that the `Typecheck` and `ocaml` subcommands output the same type error consistently (bug pointed out and fixed in 498429e). ```catala-test-inline $ catala ocaml From 55b8e9dffde10f9ff20adbb00d46ed9aaa7add24 Mon Sep 17 00:00:00 2001 From: lIlIlIlIIIIlIIIllIIlIllIIllIII <90894311+lIlIlIlIIIIlIIIllIIlIllIIllIII@users.noreply.github.com> Date: Mon, 3 Oct 2022 11:29:59 +0200 Subject: [PATCH 11/52] build/fix: bump unionFind to last version Fixes #342 --- .nix/unionfind.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.nix/unionfind.nix b/.nix/unionfind.nix index 3f7e5d59..cb26f67e 100644 --- a/.nix/unionfind.nix +++ b/.nix/unionfind.nix @@ -2,7 +2,7 @@ buildDunePackage rec { pname = "unionFind"; - version = "20200320"; + version = "20220122"; minimumOCamlVersion = "4.0.8"; @@ -10,8 +10,8 @@ buildDunePackage rec { src = fetchurl { url = - "https://gitlab.inria.fr/fpottier/unionFind/-/archive/20200320/archive.tar.gz"; - hash = "sha256-szIwK9QyAw6fIIWDOiiyfyrEFZaaErGPRLkGhIK9STI="; + "https://gitlab.inria.fr/fpottier/${pname}/-/archive/${version}/archive.tar.gz"; + hash = "sha256-85+5KNYKXsNAH568qR8/AFC9UDviLJEO/Fztc9cRHZA="; }; meta = with lib; { From 0ddff5a50bd097ad8b08777c02c94370aa9f5e91 Mon Sep 17 00:00:00 2001 From: Catala nix updated Date: Mon, 3 Oct 2022 14:18:24 +0000 Subject: [PATCH 12/52] update lock files --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index ed6feded..c46f316c 100644 --- a/flake.lock +++ b/flake.lock @@ -17,11 +17,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1664017330, - "narHash": "sha256-919WZKBTxFdTkzIK6uJXE7hwSPQb7e/ekybxxWaotR4=", + "lastModified": 1664687381, + "narHash": "sha256-9czSuDzS+OGGwq2kC4KXBLXWfYaup+oLB+AA1Md25U4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "fde244a8c7655bc28616864e2290ad9c95409c2c", + "rev": "59d2991d4256cdca1c0cda45d876c80a0fe45c31", "type": "github" }, "original": { From d93b699a4c69c3565d762bf16ae1abcfbce4ae1d Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 12 Sep 2022 17:03:44 +0200 Subject: [PATCH 13/52] Forward types in the `Expr.make_*` constructors Also add some safeguards against bad propagation of types (e.g. checking the arrow type of functions upon application); partly disabled at the moment since they don't pass yet but that'll be further work. --- compiler/desugared/desugared_to_scope.ml | 2 +- compiler/lcalc/ast.ml | 6 +- compiler/lcalc/ast.mli | 2 +- compiler/lcalc/closure_conversion.ml | 2 +- compiler/lcalc/compile_with_exceptions.ml | 17 +- compiler/lcalc/compile_without_exceptions.ml | 52 +- compiler/scopelang/scope_to_dcalc.ml | 19 +- compiler/shared_ast/expr.ml | 156 +- compiler/shared_ast/expr.mli | 32 +- compiler/shared_ast/scope.ml | 2 +- compiler/surface/desugaring.ml | 18 +- french_law/js/french_law.js | 10406 ++++++++-------- french_law/ocaml/law_source/aides_logement.ml | 6890 +++++----- .../law_source/allocations_familiales.ml | 1066 +- .../python/src/allocations_familiales.py | 234 +- .../191_fix_record_name_confusion.catala_en | 20 +- tests/test_scope/good/simple.catala_en | 4 +- 17 files changed, 9870 insertions(+), 9058 deletions(-) diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index f5648349..61da32da 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -288,7 +288,7 @@ let rec rule_tree_to_expr in Expr.make_abs [| Var.Map.find new_param ctx.var_mapping |] - default [typ] emark + default [typ] def_pos else default | _ -> (* should not happen *) assert false diff --git a/compiler/lcalc/ast.ml b/compiler/lcalc/ast.ml index 722e0416..b79774d0 100644 --- a/compiler/lcalc/ast.ml +++ b/compiler/lcalc/ast.ml @@ -74,12 +74,12 @@ let make_matchopt_with_abs_arms arg e_none e_some = [match arg with | None () -> e_none | Some v -> e_some]. It binds v to e_some, permitting it to be used inside the expression. There is no requirements on the form of both e_some and e_none. *) -let make_matchopt m v tau arg e_none e_some = +let make_matchopt pos v tau arg e_none e_some = let x = Var.make "_" in make_matchopt_with_abs_arms arg - (Expr.make_abs [| x |] e_none [TLit TUnit, Expr.mark_pos m] m) - (Expr.make_abs [| v |] e_some [tau] m) + (Expr.make_abs [| x |] e_none [TLit TUnit, pos] pos) + (Expr.make_abs [| v |] e_some [tau] pos) let handle_default = Var.make "handle_default" let handle_default_opt = Var.make "handle_default_opt" diff --git a/compiler/lcalc/ast.mli b/compiler/lcalc/ast.mli index 39385648..dd4ac4c4 100644 --- a/compiler/lcalc/ast.mli +++ b/compiler/lcalc/ast.mli @@ -43,7 +43,7 @@ val make_matchopt_with_abs_arms : 'm expr Bindlib.box val make_matchopt : - 'm mark -> + Utils.Pos.t -> 'm expr Var.t -> typ -> 'm expr Bindlib.box -> diff --git a/compiler/lcalc/closure_conversion.ml b/compiler/lcalc/closure_conversion.ml index 25127083..e1a9aacf 100644 --- a/compiler/lcalc/closure_conversion.ml +++ b/compiler/lcalc/closure_conversion.ml @@ -162,7 +162,7 @@ let closure_conversion_expr (type m) (ctx : m ctx) (e : m expr) : (Array.concat [Array.make 1 inner_c_var; vars]) new_closure_body ((TAny, binder_pos) :: typs) - (Marked.get_mark e) + (Expr.pos e) in ( Expr.make_let_in code_var (TAny, Expr.pos e) diff --git a/compiler/lcalc/compile_with_exceptions.ml b/compiler/lcalc/compile_with_exceptions.ml index 68fbca43..a0fd1fe6 100644 --- a/compiler/lcalc/compile_with_exceptions.ml +++ b/compiler/lcalc/compile_with_exceptions.ml @@ -23,10 +23,11 @@ type 'm ctx = ('m D.expr, 'm A.expr Var.t) Var.Map.t (** This environment contains a mapping between the variables in Dcalc and their correspondance in Lcalc. *) -let thunk_expr (e : 'm A.expr Bindlib.box) (mark : 'm mark) : - 'm A.expr Bindlib.box = +let thunk_expr (type m) (e : m A.expr Bindlib.box) : m A.expr Bindlib.box = let dummy_var = Var.make "_" in - Expr.make_abs [| dummy_var |] e [TAny, Expr.mark_pos mark] mark + let pos = Expr.pos (Bindlib.unbox e) in + let arg_t = Marked.mark pos (TLit TUnit) in + Expr.make_abs [| dummy_var |] e [arg_t] pos let rec translate_default (ctx : 'm ctx) @@ -35,19 +36,17 @@ let rec translate_default (cons : 'm D.expr) (mark_default : 'm mark) : 'm A.expr Bindlib.box = let exceptions = - List.map - (fun except -> thunk_expr (translate_expr ctx except) mark_default) - exceptions + List.map (fun except -> thunk_expr (translate_expr ctx except)) exceptions in let exceptions = Expr.make_app (Expr.make_var (Var.translate A.handle_default, mark_default)) [ Expr.earray exceptions mark_default; - thunk_expr (translate_expr ctx just) mark_default; - thunk_expr (translate_expr ctx cons) mark_default; + thunk_expr (translate_expr ctx just); + thunk_expr (translate_expr ctx cons); ] - mark_default + (Expr.mark_pos mark_default) in exceptions diff --git a/compiler/lcalc/compile_without_exceptions.ml b/compiler/lcalc/compile_without_exceptions.ml index 4ee4f447..d878ee7a 100644 --- a/compiler/lcalc/compile_without_exceptions.ml +++ b/compiler/lcalc/compile_without_exceptions.ml @@ -158,7 +158,8 @@ let disjoint_union_maps (pos : Pos.t) (cs : ('e, 'a) Var.Map.t list) : hoists, has the non-empty value in e_v. *) let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : 'm A.expr Bindlib.box * 'm hoists = - let pos = Marked.get_mark e in + let mark = Marked.get_mark e in + let pos = Expr.mark_pos mark in match Marked.unmark e with (* empty-producing/using terms. We hoist those. (D.EVar in some cases, EApp(D.EVar _, [ELit LUnit]), EDefault _, ELit LEmptyDefault) I'm unsure @@ -172,23 +173,23 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : let v' = Var.make (Bindlib.name_of v) in (* Cli.debug_print @@ Format.asprintf "Found an unpure variable %a, created a variable %a to replace it" Print.var v Print.var v'; *) - Expr.make_var (v', pos), Var.Map.singleton v' e + Expr.make_var (v', mark), Var.Map.singleton v' e else (find ~info:"should never happen" v ctx).naked_expr, Var.Map.empty | EApp ((EVar v, p), [(ELit LUnit, _)]) -> if not (find ~info:"search for a variable" v ctx).is_pure then let v' = Var.make (Bindlib.name_of v) in (* Cli.debug_print @@ Format.asprintf "Found an unpure variable %a, created a variable %a to replace it" Print.var v Print.var v'; *) - Expr.make_var (v', pos), Var.Map.singleton v' (EVar v, p) + Expr.make_var (v', mark), Var.Map.singleton v' (EVar v, p) else Errors.raise_spanned_error (Expr.pos e) "Internal error: an pure variable was found in an unpure environment." | EDefault (_exceptions, _just, _cons) -> let v' = Var.make "default_term" in - Expr.make_var (v', pos), Var.Map.singleton v' e + Expr.make_var (v', mark), Var.Map.singleton v' e | ELit LEmptyError -> let v' = Var.make "empty_litteral" in - Expr.make_var (v', pos), Var.Map.singleton v' e + Expr.make_var (v', mark), Var.Map.singleton v' e (* This one is a very special case. It transform an unpure expression environement to a pure expression. *) | ErrorOnEmpty arg -> @@ -197,25 +198,25 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : let x = Var.make "non_empty_argument" in let arg' = translate_expr ctx arg in + let rty = Expr.maybe_ty mark in ( A.make_matchopt_with_abs_arms arg' (Expr.make_abs [| silent_var |] - (Bindlib.box (ERaise NoValueProvided, pos)) - [TAny, Expr.pos e] - pos) - (Expr.make_abs [| x |] (Expr.make_var (x, pos)) [TAny, Expr.pos e] pos), + (Bindlib.box (ERaise NoValueProvided, Expr.with_ty mark rty)) + [rty] pos) + (Expr.make_abs [| x |] (Expr.make_var (x, mark)) [rty] pos), Var.Map.empty ) (* pure terms *) | ELit ((LBool _ | LInt _ | LRat _ | LMoney _ | LUnit | LDate _ | LDuration _) as l) -> - Expr.elit l pos, Var.Map.empty + Expr.elit l mark, Var.Map.empty | EIfThenElse (e1, e2, e3) -> let e1', h1 = translate_and_hoist ctx e1 in let e2', h2 = translate_and_hoist ctx e2 in let e3', h3 = translate_and_hoist ctx e3 in - let e' = Expr.eifthenelse e1' e2' e3' pos in + let e' = Expr.eifthenelse e1' e2' e3' mark in (*(* equivalent code : *) let e' = let+ e1' = e1' and+ e2' = e2' and+ e3' = e3' in (A.EIfThenElse (e1', e2', e3'), pos) in *) @@ -224,7 +225,7 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : (* same behavior as in the ICFP paper: if e1 is empty, then no error is raised. *) let e1', h1 = translate_and_hoist ctx e1 in - Expr.eassert e1' pos, h1 + Expr.eassert e1' mark, h1 | EAbs (binder, ts) -> let vars, body = Bindlib.unmbind binder in let ctx, lc_vars = @@ -235,7 +236,7 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : The code should behave correctly in the without this assumption if we put here an is_pure=false, but the types are more compilcated. (unimplemented for now) *) - let ctx = add_var pos var true ctx in + let ctx = add_var mark var true ctx in let lc_var = (find var ctx).var in ctx, lc_var :: lc_vars) in @@ -247,7 +248,7 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : let new_binder = Bindlib.bind_mvar lc_vars new_body in ( Bindlib.box_apply - (fun new_binder -> EAbs (new_binder, List.map translate_typ ts), pos) + (fun new_binder -> EAbs (new_binder, List.map translate_typ ts), mark) new_binder, hoists ) | EApp (e1, args) -> @@ -257,7 +258,7 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : in let hoists = disjoint_union_maps (Expr.pos e) (h1 :: h_args) in - let e' = Expr.eapp e1' args' pos in + let e' = Expr.eapp e1' args' mark in e', hoists | ETuple (args, s) -> let args', h_args = @@ -265,14 +266,14 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : in let hoists = disjoint_union_maps (Expr.pos e) h_args in - Expr.etuple args' s pos, hoists + Expr.etuple args' s mark, hoists | ETupleAccess (e1, i, s, ts) -> let e1', hoists = translate_and_hoist ctx e1 in - let e1' = Expr.etupleaccess e1' i s ts pos in + let e1' = Expr.etupleaccess e1' i s ts mark in e1', hoists | EInj (e1, i, en, ts) -> let e1', hoists = translate_and_hoist ctx e1 in - let e1' = Expr.einj e1' i en ts pos in + let e1' = Expr.einj e1' i en ts mark in e1', hoists | EMatch (e1, cases, en) -> let e1', h1 = translate_and_hoist ctx e1 in @@ -281,13 +282,13 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : in let hoists = disjoint_union_maps (Expr.pos e) (h1 :: h_cases) in - let e' = Expr.ematch e1' cases' en pos in + let e' = Expr.ematch e1' cases' en mark in e', hoists | EArray es -> let es', hoists = es |> List.map (translate_and_hoist ctx) |> List.split in - Expr.earray es' pos, disjoint_union_maps (Expr.pos e) hoists - | EOp op -> Bindlib.box (EOp op, pos), Var.Map.empty + Expr.earray es' mark, disjoint_union_maps (Expr.pos e) hoists + | EOp op -> Bindlib.box (EOp op, mark), Var.Map.empty and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : 'm A.expr Bindlib.box = @@ -303,6 +304,7 @@ and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : ~init:(if append_esome then A.make_some e' else e') ~f:(fun acc (v, (hoist, mark_hoist)) -> (* Cli.debug_print @@ Format.asprintf "hoist using A.%a" Print.var v; *) + let pos = Expr.mark_pos mark_hoist in let c' : 'm A.expr Bindlib.box = match hoist with (* Here we have to handle only the cases appearing in hoists, as defined @@ -322,7 +324,7 @@ and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : just'; cons'; ] - mark_hoist + pos | ELit LEmptyError -> A.make_none mark_hoist | EAssert arg -> let arg' = translate_expr ctx arg in @@ -336,13 +338,13 @@ and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : (Expr.make_abs [| silent_var |] (Bindlib.box (ERaise NoValueProvided, mark_hoist)) [TAny, Expr.mark_pos mark_hoist] - mark_hoist) + pos) (Expr.make_abs [| x |] (Bindlib.box_apply (fun arg -> EAssert arg, mark_hoist) (Expr.make_var (x, mark_hoist))) [TAny, Expr.mark_pos mark_hoist] - mark_hoist) + pos) | _ -> Errors.raise_spanned_error (Expr.mark_pos mark_hoist) "Internal Error: An term was found in a position where it should \ @@ -353,7 +355,7 @@ and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : ] *) (* Cli.debug_print @@ Format.asprintf "build matchopt using %a" Print.var v; *) - A.make_matchopt mark_hoist v + A.make_matchopt pos v (TAny, Expr.mark_pos mark_hoist) c' (A.make_none mark_hoist) acc) diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 4b696cb6..493ea26c 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -67,12 +67,21 @@ let pos_mark (pos : Pos.t) : untyped mark = Untyped { pos } let pos_mark_as e = pos_mark (Marked.get_mark e) let merge_defaults - (caller : untyped Dcalc.Ast.expr Bindlib.box) - (callee : untyped Dcalc.Ast.expr Bindlib.box) : - untyped Dcalc.Ast.expr Bindlib.box = + (caller : 'a Dcalc.Ast.expr Bindlib.box) + (callee : 'a Dcalc.Ast.expr Bindlib.box) : 'a Dcalc.Ast.expr Bindlib.box = let caller = let m = Marked.get_mark (Bindlib.unbox caller) in - Expr.make_app caller [Bindlib.box (ELit LUnit, m)] m + let pos = Expr.mark_pos m in + Expr.make_app caller + [ + Bindlib.box + ( ELit LUnit, + Expr.map_mark + (fun _ -> pos) + (fun _ -> Marked.mark pos (TLit TUnit)) + m ); + ] + pos in let body = Bindlib.box_apply2 @@ -429,7 +438,7 @@ let translate_rule | Reentrant -> Expr.make_abs [| silent_var |] new_e [TLit TUnit, var_def_pos] - (pos_mark var_def_pos) + var_def_pos in ( (fun next -> Bindlib.box_apply2 diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index 618e6dba..29925141 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -98,7 +98,7 @@ let pos (type m) (x : ('a, m mark) Marked.t) : Pos.t = let ty (_, m) : typ = match m with Typed { ty; _ } -> ty -let with_ty (type m) (ty : typ) (x : ('a, m mark) Marked.t) : +let set_ty (type m) (ty : typ) (x : ('a, m mark) Marked.t) : ('a, typed mark) Marked.t = Marked.mark (match Marked.get_mark x with @@ -138,6 +138,15 @@ let fold_marks ty = ty_f (List.map (function Typed m -> m) ms); } +let map_ty (type m) (ty_f : typ -> typ) (m : m mark) : m mark = + map_mark (fun pos -> pos) ty_f m + +let with_ty (type m) (m : m mark) ?pos (ty : typ) : m mark = + map_mark (fun default -> Option.value pos ~default) (fun _ -> ty) m + +let maybe_ty (type m) ?(typ = TAny) (m : m mark) : typ = + match m with Untyped { pos } -> Marked.mark pos typ | Typed { ty; _ } -> ty + (* - Traversal functions - *) (* shallow map *) @@ -205,74 +214,6 @@ let box e = let untype e = map_marks ~f:(fun m -> Untyped { pos = mark_pos m }) e -(* - Expression building helpers - *) - -let make_var (x, mark) = - Bindlib.box_apply (fun x -> x, mark) (Bindlib.box_var x) - -let make_abs xs e taus mark = - Bindlib.box_apply (fun b -> EAbs (b, taus), mark) (Bindlib.bind_mvar xs e) - -let make_app e u mark = - Bindlib.box_apply2 (fun e u -> EApp (e, u), mark) e (Bindlib.box_list u) - -let empty_thunked_term mark = - let silent = Var.make "_" in - let pos = mark_pos mark in - Bindlib.unbox - (make_abs [| silent |] - (Bindlib.box (ELit LEmptyError, mark)) - [TLit TUnit, pos] - (map_mark - (fun pos -> pos) - (fun ty -> - Marked.mark pos (TArrow (Marked.mark pos (TLit TUnit), ty))) - mark)) - -let make_let_in x tau e1 e2 pos = - let m_e1 = Marked.get_mark (Bindlib.unbox e1) in - let m_e2 = Marked.get_mark (Bindlib.unbox e2) in - let m_abs = - map_mark2 - (fun _ _ -> pos) - (fun m1 m2 -> Marked.mark pos (TArrow (m1.ty, m2.ty))) - m_e1 m_e2 - in - make_app (make_abs [| x |] e2 [tau] m_abs) [e1] m_e2 - -let make_multiple_let_in xs taus e1s e2 pos = - (* let m_e1s = List.map (fun e -> Marked.get_mark (Bindlib.unbox e)) e1s in *) - let m_e1s = - fold_marks List.hd - (fun tys -> TTuple (List.map (fun t -> t.ty) tys), (List.hd tys).pos) - (List.map (fun e -> Marked.get_mark (Bindlib.unbox e)) e1s) - in - let m_e2 = Marked.get_mark (Bindlib.unbox e2) in - let m_abs = - map_mark2 - (fun _ _ -> pos) - (fun m1 m2 -> Marked.mark pos (TArrow (m1.ty, m2.ty))) - m_e1s m_e2 - in - make_app (make_abs xs e2 taus m_abs) e1s m_e2 - -let make_default exceptions just cons mark = - let rec bool_value = function - | ELit (LBool b), _ -> Some b - | EApp ((EOp (Unop (Log (l, _))), _), [e]), _ - when l <> PosRecordIfTrueBool - (* we don't remove the log calls corresponding to source code - definitions !*) -> - bool_value e - | _ -> None - in - match exceptions, bool_value just, cons with - | [], Some true, cons -> cons - | exceptions, Some true, (EDefault ([], just, cons), mark) -> - EDefault (exceptions, just, cons), mark - | [except], Some false, _ -> except - | exceptions, _, cons -> EDefault (exceptions, just, cons), mark - (* Tests *) let is_value (type a) (e : (a, _) gexpr) = @@ -756,3 +697,80 @@ let rec size : type a. (a, 't) gexpr -> int = | EEnumInj (e1, _, _) -> 1 + size e1 | EMatchS (e1, _, cases) -> EnumConstructorMap.fold (fun _ e acc -> acc + 1 + size e) cases (size e1) + +(* - Expression building helpers - *) + +let make_var (x, mark) = + Bindlib.box_apply (fun x -> x, mark) (Bindlib.box_var x) + +let make_abs xs e taus pos = + let mark = + map_mark + (fun _ -> pos) + (fun ety -> + List.fold_right + (fun tx acc -> Marked.mark pos (TArrow (tx, acc))) + taus ety) + (Marked.get_mark (Bindlib.unbox e)) + in + Bindlib.box_apply (fun b -> EAbs (b, taus), mark) (Bindlib.bind_mvar xs e) + +let make_app e u pos = + Bindlib.box_apply2 + (fun e u -> + let mark = + fold_marks + (fun _ -> pos) + (function + | [] -> assert false + | fty :: argtys -> + List.fold_left + (fun tf tx -> + match Marked.unmark tf with + | TArrow (tx', tr) -> + assert (Marked.unmark tx' = TAny || equal_typ tx.ty tx'); + (* wrong arg type *) + tr + | TAny -> tf + | _ -> Marked.same_mark_as TAny tf + (* TODO: enable this assert and debug cases where we propagate wrong types! + * Format.kasprintf failwith "Attempt to construct application of 'function' of type %a" + * (fun ppf t -> Print.typ {ctx_enums = EnumMap.empty; ctx_structs = StructMap.empty} ppf t) tf + * (\* apply of non-arrow type *\) *)) + fty.ty argtys) + (List.map Marked.get_mark (e :: u)) + in + EApp (e, u), mark) + e (Bindlib.box_list u) + +let empty_thunked_term mark = + let silent = Var.make "_" in + let pos = mark_pos mark in + Bindlib.unbox + (make_abs [| silent |] + (Bindlib.box (ELit LEmptyError, mark)) + [TLit TUnit, pos] + pos) + +let make_let_in x tau e1 e2 mpos = + make_app (make_abs [| x |] e2 [tau] mpos) [e1] (pos (Bindlib.unbox e2)) + +let make_multiple_let_in xs taus e1s e2 mpos = + make_app (make_abs xs e2 taus mpos) e1s (pos (Bindlib.unbox e2)) + +let make_default exceptions just cons mark = + let rec bool_value = function + | ELit (LBool b), _ -> Some b + | EApp ((EOp (Unop (Log (l, _))), _), [e]), _ + when l <> PosRecordIfTrueBool + (* we don't remove the log calls corresponding to source code + definitions !*) -> + bool_value e + | _ -> None + in + match exceptions, bool_value just, cons with + | [], Some true, cons -> cons + | exceptions, Some true, (EDefault ([], just, cons), mark) -> + EDefault (exceptions, just, cons), mark + | [except], Some false, _ -> except + | exceptions, _, cons -> EDefault (exceptions, just, cons), mark diff --git a/compiler/shared_ast/expr.mli b/compiler/shared_ast/expr.mli index 27346023..ac2c19b2 100644 --- a/compiler/shared_ast/expr.mli +++ b/compiler/shared_ast/expr.mli @@ -103,9 +103,13 @@ val eraise : except -> 't -> (lcalc, 't) gexpr box val no_mark : 'm mark -> 'm mark val mark_pos : 'm mark -> Pos.t -val pos : ('e, _ mark) gexpr -> Pos.t -val ty : (_, typed mark) Marked.t -> typ -val with_ty : typ -> ('a, _ mark) Marked.t -> ('a, typed mark) Marked.t + +val with_ty : 'm mark -> ?pos:Pos.t -> typ -> 'm mark +(** Adds the given type information only on typed marks *) + +val map_ty : (typ -> typ) -> 'm mark -> 'm mark +(** Identity on untyped marks*) + val map_mark : (Pos.t -> Pos.t) -> (typ -> typ) -> 'm mark -> 'm mark val map_mark2 : @@ -118,6 +122,15 @@ val map_mark2 : val fold_marks : (Pos.t list -> Pos.t) -> (typed list -> typ) -> 'm mark list -> 'm mark +val maybe_ty : ?typ:naked_typ -> 'm mark -> typ +(** Returns the corresponding type on a typed expr, or [typ] (defaulting to + [TAny]) at the current position on an untyped one *) + +(** Manipulation of marked expressions *) + +val pos : ('e, 'm mark) gexpr -> Pos.t +val ty : ('e, typed mark) Marked.t -> typ +val set_ty : typ -> ('a, 'm mark) Marked.t -> ('a, typed mark) Marked.t val untype : ('a, 'm mark) gexpr -> ('a, untyped mark) gexpr box (** {2 Traversal functions} *) @@ -161,16 +174,16 @@ val map_marks : f:('t1 -> 't2) -> ('a, 't1) gexpr -> ('a, 't2) gexpr box val make_var : ('a, 't) gexpr Var.t * 'b -> (('a, 't) naked_gexpr * 'b) box val make_abs : - ('a, 't) gexpr Var.vars -> - ('a, 't) gexpr box -> + ('a, 'm mark) gexpr Var.vars -> + ('a, 'm mark) gexpr box -> typ list -> - 't -> - ('a, 't) gexpr box + Pos.t -> + ('a, 'm mark) gexpr box val make_app : ('a any, 'm mark) gexpr box -> ('a, 'm mark) gexpr box list -> - 'm mark -> + Pos.t -> ('a, 'm mark) gexpr box val empty_thunked_term : @@ -181,7 +194,7 @@ val make_let_in : typ -> ('a, 'm mark) gexpr box -> ('a, 'm mark) gexpr box -> - Utils.Pos.t -> + Pos.t -> ('a, 'm mark) gexpr box val make_multiple_let_in : @@ -238,6 +251,7 @@ val compare : ('a, 't) gexpr -> ('a, 't) gexpr -> int (** Standard comparison function, suitable for e.g. [Set.Make]. Ignores position information *) +val equal_typ : typ -> typ -> bool val compare_typ : typ -> typ -> int val is_value : ('a any, 't) gexpr -> bool val free_vars : ('a any, 't) gexpr -> ('a, 't) gexpr Var.Set.t diff --git a/compiler/shared_ast/scope.ml b/compiler/shared_ast/scope.ml index 91d5f2ae..93e22875 100644 --- a/compiler/shared_ast/scope.ml +++ b/compiler/shared_ast/scope.ml @@ -130,7 +130,7 @@ let to_expr (ctx : decl_ctx) (body : 'e scope_body) (mark_scope : 'm mark) : let body_expr = unfold_body_expr ctx body_expr in Expr.make_abs [| var |] body_expr [TStruct body.scope_body_input_struct, Expr.mark_pos mark_scope] - mark_scope + (Expr.mark_pos mark_scope) let format ?(debug : bool = false) diff --git a/compiler/surface/desugaring.ml b/compiler/surface/desugaring.ml index 501a6925..489ecd2d 100644 --- a/compiler/surface/desugaring.ml +++ b/compiler/surface/desugaring.ml @@ -148,13 +148,13 @@ let rec translate_expr Bindlib.unbox (Expr.make_abs [| nop_var |] (Bindlib.box (ELit (LBool false), emark)) - [tau] emark) + [tau] pos) else let ctxt, binding_var = Name_resolution.add_def_local_var ctxt (Marked.unmark binding) in let e2 = translate_expr scope inside_definition_of ctxt e2 in - Bindlib.unbox (Expr.make_abs [| binding_var |] e2 [tau] emark)) + Bindlib.unbox (Expr.make_abs [| binding_var |] e2 [tau] pos)) (EnumMap.find enum_uid ctxt.enums) in Bindlib.box_apply @@ -344,7 +344,7 @@ let rec translate_expr let fn = Expr.make_abs [| v |] (translate_expr scope inside_definition_of ctxt e2) - [tau] emark + [tau] pos in Bindlib.box_apply2 (fun fn arg -> EApp (fn, [arg]), emark) @@ -491,7 +491,7 @@ let rec translate_expr (Bindlib.box ( ELit (LBool (EnumConstructor.compare c_uid c_uid' = 0)), emark )) - [tau] emark)) + [tau] pos)) (EnumMap.find enum_uid ctxt.enums) in Bindlib.box_apply @@ -514,7 +514,7 @@ let rec translate_expr Expr.make_abs [| param |] (translate_expr scope inside_definition_of ctxt predicate) [TAny, pos] - emark + pos in Bindlib.box_apply2 (fun f_pred collection -> @@ -557,7 +557,7 @@ let rec translate_expr Expr.make_abs [| param |] (translate_expr scope inside_definition_of ctxt predicate) [TAny, pos] - emark + pos in let f_pred_var = Var.make "predicate" in let f_pred_var_e = @@ -586,9 +586,7 @@ let rec translate_expr acc_var_e item_var_e f_pred_var_e in let fold_f = - Expr.make_abs [| acc_var; item_var |] fold_body - [TAny, pos; TAny, pos] - emark + Expr.make_abs [| acc_var; item_var |] fold_body [TAny, pos; TAny, pos] pos in let fold = Bindlib.box_apply3 @@ -680,7 +678,7 @@ let rec translate_expr | Ast.Date -> KDate, (TLit TDate, pos) | _ -> Errors.raise_spanned_error pos - "ssible to compute the %s of two values of type %a" + "It is impossible to compute the %s of two values of type %a" (if max_or_min then "max" else "min") SurfacePrint.format_primitive_typ t in diff --git a/french_law/js/french_law.js b/french_law/js/french_law.js index c35f27d6..aac480f5 100644 --- a/french_law/js/french_law.js +++ b/french_law/js/french_law.js @@ -3,137 +3,139 @@ globalThis!=="object"&&(this?b():(a.defineProperty(a.prototype,"_T_",{configurable:true,get:b}),_T_));function b(){var b=this||self;b.globalThis=b;delete -a.prototype._T_}}(Object));(function(a0){"use strict";var -bCT=a0,bCW=typeof -module==="object"&&module.exports||a0,BB="38527",BA=1133,fs=857,cu="\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales",By=2074,Bz=319,oj="logement_foyer",Iy="Article L521-1",jk="Paragraphe 2 : Ouverture du droit et liquidation.",Bx=794,mB=1056,il=289,mA=365180284,Bw="Changement",Iw="26714",Ix=775,mz=539,Bv="locatif.date_courante",Iv=163,oi="SaintMartin",Bu="1015",ec="Section 1 : Seuils de constitution d'un impay\xc3\xa9",Bt="559500",cH="Article 1",fr="aide_finale_formule",Bs="35630",gK=122,rU="Article 31",jP="50",bc="Unexpected '",eJ=299,Iu="34700",ik=181,my="Article 19",oh=862,jO=305,hL=607,el=128,jj="Avant",qL="identifiant",of="Oui",It="43000",og=1127,qK="Article D832-26",eI=683,hK=573,Br=383,eZ=146,mx=">",oe=575,Ir=731,Is=153,od=1027,oc=2050,ek=297,ob="Article 17",aD="Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",Bq=914,Iq=1062,eY="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",gb=1125,oa="baseMensuelleAllocationsFamiliales",Bp="35762",bJ=739,s="Calcul du montant de l'allocation logement",Ip=358,d6=2011,qJ=2023,d5=295,Io=462,hJ="Article L841-1",qI="ServicesSociauxAllocationVerseeALaFamille",Im=1183,In=1515,Bn="186000",Bo="Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",Bm="16.25",qH="0.0315",ji="traitement_aide_finale_diminu\xc3\xa9",bI=989,Il="\xc3\xa9ligibilit\xc3\xa9_commune.date_courante",ij=1042,Bl="40758",n$="e",qG=896,Bk=1452,ii=313,hI="Autre",Bj="locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s",Ik=505,Bh=1392,Bi=1150,Ij="Article L822-2",Bg=980,Ih=4178,Ii=421,ga="smic",Be="39445",Bf=1071,c9="Article D842-6",Bc=-43,Bd="Neuf",hH=612,rT="Article 27",Ig="inf",If="calculetteAidesAuLogementGardeAlternee",qF=306,Ie=4696,Bb="27365",Id="Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",Ic=2548,mw=685,Ib="41392",Ba=1002,jN=111,mv=929,A$=676,Ia="Location",A_=967,A9="240400",qE=269,H$=898,rS="Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale",gJ=619,H_="33500",jh="CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9",aj="Article D823-9",bL="traitement_aide_finale_minoration_forfaitaire",H9=1009,qD="\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",H8="infinity",hG="2.5",H7="3663",ej="Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement",eb="examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr",A8="\\t",H6=955,aS="examples/aides_logement/code_construction_legislatif.catala_fr",A7=330,H5=385,mu=1057,aQ="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",A6=1629,jM=112,qC=831,hF="1000",A5=1131,ea=563,H4=4145,mt=538,dK="examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr",jL=701,A4="210600",n_=599,H3="Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'",A3=1146,qB=1638,A2=1782,A1="Couple",jg=687,ms="SaintPierreEtMiquelon",hE=110,ct="PrestationsFamiliales",ih=464,H2="\xc3\x89l\xc3\xa9mentPrestationsFamiliales",n9=679,H1="214700",hD=615,dT="Calcul\xc3\x89quivalenceLoyerMinimale",n8=554,HZ="42926",H0=1096,A0=-32,AZ="39016",jf=847,n7="AllocationLogementFamiliale",d$=1023,HY="interfaceAllocationsFamiliales",co=561,rR=769,mr="AllocationLogementSociale",AY=835,AX="plafond_l512_3_2",ig=639,n6=542,qA="Chapitre II : Des contributions pour le remboursement de la dette sociale.",hC=117,aZ="examples/allocations_familiales/decrets_divers.catala_fr",AW=348,HX=5035,jK="compl\xc3\xa9ment_d\xc3\xa9gressif",qz="Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9",HU="240200",HV="accession_propri\xc3\xa9t\xc3\xa9.copropri\xc3\xa9t\xc3\xa9",HW="Assert_failure",AV=778,rQ="Section 1 : Secteur locatif ordinaire",HT="568400",rP="0.32",AU="40961",HS=2418,HR=350,jJ="Non",ie=508,AR=2780,AS=1664,AT=185,jI="Article R824-2",HQ=219,mq=1128,HO=2537,HP=1e14,AQ="D331_76_1",n5="Article R521-3",AP="17607",cI=935,ae=2022,HM="34865",HN="Fatal error: exception %s\n",AO="261800",n4=865,cO=740,AN=777,mp="Article 2",HL=1648,AM=2057,fT=256,eH=558,AL="Article L521-3",HK="Article R822-1",AJ="45064",AK=2275,HJ="taux_francs_vers_euros",aP="Archives l\xc3\xa9gislatives et r\xc3\xa9glementaires",AI=667,AH=3402,mo=924,jH="abattement_d\xc3\xa9pense_nette_minimale_d832_10",n3=699,HH="mensualit\xc3\xa9_\xc3\xa9ligible",HI=1075,mn="D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance",rO="ENOENT",AG=1736,fi=288,qy="0.0006",hB=315,qw="EnfantLePlus\xc3\x82g\xc3\xa9",qx=259,HG=841,mm=556,AF=3404,HF=885,bS="examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr",AE="228000",HE="ENOTEMPTY",AD=2579,rN="Article 13",HD="calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge",AC="D331_59_8",HB="Loyer",HC="35947",AA=3681,AB=162,d4=564,Az="brut_horaire",HA=1496,Hz=4634,Ay="Sous-section 1 : Aides personnelles au logement",Hy="calculAidePersonnaliseeLogementAccessionPropriete",ml=547,je="Article D755-5",f$=588,Hx=4166,fS=680,Hw="Article D842-4",Hv=4633,ei=314,rM="%d",Aw=1653,Ax="Z.of_substring_base: invalid digit",Hu="ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille",Av=3128,hA=637,mk=285,Au="buffer.ml",d="Prologue : aides au logement",Ht=708,z="Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",rL=1558,Hq="167600",Hr="39590",Hs="accession_propri\xc3\xa9t\xc3\xa9.date_signature_pr\xc3\xaat",Hp=3405,gI=2008,qv="0.0179",At=1089,c3=1051,Ho=4057,As="245700",hz=1121,B="Prologue",mj="calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge",Hn="Metropole",du=100,jG="prise_en_compte_personne_\xc3\xa0_charge",gH=851,Ap=4243,mi=702,Aq=420,Ar=1397,Hl=5033,Hm=1754,fq=300,aa="3",a8="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",Ao=230,n1=413,n2="169.",An=3900,Am=0.5,Al=790,cZ="Article D521-1",Hk="conventionn\xc3\xa9_livre_III_titre_V_chap_III",n0=622,Ak=374,Hj=399,Hi=965,nZ="Article D842-11",d3="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",Aj=2166,dF=107,mg=161,mh=381,mf="Article D842-12",Ai=937,id=690,nY="prestations_familiales",jF="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",Ah="26440",Ag=649,Hh="201700",rK="Unix.Unix_error",Ae=1060,Af=1139,Hg="calculAidePersonnaliseeLogement",nX=553,Ad="Stack_overflow",Hf=1655,fh="condition_2_r823_4",bz="Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer",aX="\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement",Ac="/static/",qu=253,Ab=894,hy=368,He="Not_found",z$="1085",Aa=235,qt="\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02",Hd=1576,z_="41268",be="examples/allocations_familiales/epilogue.catala_fr",nW=695,Hc="calcul_apl_logement_foyer.date_courante",ck=848054398,nV="Mayotte",Hb="smic.date_courante",z9=260,nU="1224",G$="calcul_apl_locatif",Ha="accession_propri\xc3\xa9t\xc3\xa9.situation_r822_11_13_17",dE="calcul_plafond_mensualit\xc3\xa9_d832_10_3",z8=979,qs="rmdir",nT=696,G_=1069,G9=32752,z7="33623",rJ="19100",z6="37478",f_="calcul_nombre_parts",rI="Article 23",nS="Article R842-5",z5=1026,dt=149,bR="montant",eh="Article L521-2",bQ="examples/allocations_familiales/../smic/smic.catala_fr",rH=675,z2="calculAllocationLogementLocatif",z3="37906",z4="false",jE=849,nR="Invalid integer: ",z1="PasDeChangement",bH="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement",a9=106,G8=346,nQ=875,me=186,d_=0x80,f9="Chapitre 1er : Dispositions relatives aux prestations",rG="Fatal error: exception ",nP="\xc3\xa9ligibilit\xc3\xa9_commune",z0=3538,rF="0.0234",G7="43378",md=4333,zY="calcul_apl_logement_foyer.date_conventionnement",zZ=913,zX=1413,mc=1054,rE="25978",ds=303,G6=493,G5="Section 2 : R\xc3\xa8gles de non-cumul",zW=5003,rD="_",zV="eligibilitePrimeDeDemenagement",mb=517,qr="compare: functional value",fp=1970,ic=833,zU=444,b7="0.",zR=114,zS="40928",zT="19300",G4=1030,ma=411,l$=978,zQ="197700",zP="Invalid_argument",ib=656,qq=823,G3="EndCall([ ",nO="0.9",G1="Article R822-22",G2="prise_en_charge",zO="calcul_aide_personnalis\xc3\xa9e_logement",GZ="34301",G0="577500",zN="%ni",GX=3358,GY=1465,fo=324,GW=4593,am=2020,GV="PersonneSeule",zM=1418,nN=559,qp="0.0238",rC="Article 9",GU="225100",GT="AutresPersonnes",d2="6",ia=495,GS=672,zK="173600",l_=858,zL=602,p="0",aR="Section 3 : Logements-foyers",qo="Article L161-17-2",c="examples/aides_logement/prologue.catala_fr",l9=543,GR="eligibiliteAidesPersonnelleLogement",nM=817,bg=248,zI=4124,zJ=341,nL=322,zH=3540,h$=2007,GQ="208200",zD="Zone1",zE="Locataire",hx=301,zF="R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro",zG="37457",zC=396,GP="562800",zA="535744",zB=1538,GO=2374,zz="235800",l8=555,b6=403,nK=540,cj=930,GN="resetLog",zy="\xc3\xa2ge_l512_3_2",T="AllocationsFamiliales",zx="situation_familiale_calcul_apl",qn="GardeAlterneeAllocataireUnique",zw=3475,GM="haut",h_=631,GK=4840,GL=1456,jd=1024,GJ=1143,zt="204761",zu="3.1",zv=4406,rB=726,l7=133,rA="35780",zs="calculAidePersonnaliseeLogementFoyer",GI=4976,GH=567,GG=2514,jD=945,zr=982,fR=366,fg=0xffffff,GF="34829",zq=524,l6="locatif",GE=812,nJ="Titre III: Titre III : Dispositions communes relatives au financement",GD="36378",aC="Calculette globale",l5=286,GC="149600",zp=3370,zn=2559,zo=671,jC="Article R824-1",cY=1994,zm=805,cG=2010,zl=3989,GB=1405,bG="Prologue : prestations familiales",rz=2147483647,Gz=772,GA="774",nI=689,zk=", characters ",f8=456,qm="180100",f7="BaseMensuelleAllocationsFamiliales",zj="prestations_familiales.r\xc3\xa9sidence",Gy="819",bk="Chapitre IV : Calcul des allocations de logement en secteur accession",zi="AllocationJournali\xc3\xa8rePresenceParentale",Gx=4603,hw=611,zh=".0",zg=4127,Gw="36733",l4=977,zf=1665,ql="AllocationFamilialesAvril2008",Gv=2033,gG=693,nG=855,nH=535,Gt=920,Gu="AllocationRentreeScolaire",ze="mensualit\xc3\xa9_minimale",jB="2.",l3=691,Gs=3495,l2=737,fn="5612",zd="Concubins",Gr=4927,dJ="calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9",Gq="Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",zc=5043,za=816,zb="SaintBarth\xc3\xa9lemy",ad="Partie l\xc3\xa9gislative",hv=2003,jc="Article R823-4",y$="32956",bm="examples/allocations_familiales/securite_sociale_D.catala_fr",y_="294500",ry=1504,qk="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr",y9="locatif.logement_meubl\xc3\xa9_d842_2",Gp=1612,hu=934,d1="RessourcesAidesPersonnelleLogement",jA=1035,Go=5057,f6="Montant des plafonds de ressources",bl="Annexe",f5="Section 1 : B\xc3\xa9n\xc3\xa9ficiaires",Gn="3524",y8="Article D832-27",Gl=3471,Gm=1101,y7="Zone3",jb="500",Gk="locatif.type_aide",rx=770,l1=471,dS=2015,y5=2595,y6="40144",Gj=1791,fm="prise_en_compte",l0=533,Gi=5031,ht=613,y4=838,Gh="223900",y3="ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux",Gg=138,y1="225500",y2=1585,h9=1998,w="Livre VIII : Aides personnelles au logement",ja="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6",y0=4960,qj="nan",Ge="38892",Gf="accession_propri\xc3\xa9t\xc3\xa9.mensualit\xc3\xa9_principale",yZ=2461,yY="calculNombrePartLogementFoyer",lZ=646,jz="Impay\xc3\xa9D\xc3\xa9penseLogement",bB="Calculette avec garde altern\xc3\xa9e",Gd=0xdfff,hs="4.3",eG="/",fQ=1017,yX=3967,Gc=2157,yW=951,Gb=1179,rw="ENOTDIR",yV="\\r",rv="0.0068",ru=513,Ga="calcul_allocation_logement",yS="coefficient_prise_en_charge",yT=734,yU=206,jy="Article D161-2-1-9",rt=674,nF="Guyane",nD="PasDeTravaux",nE=311,lY=255,F$=1603,F_=2816,F9="Revenu",bK="droit_ouvert_majoration",G="Partie r\xc3\xa9glementaire",c$="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",F8=3450,yR="Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",F7="Sous-section 4 : Prise en compte du patrimoine",i="D\xc3\xa9clarations des champs d'application",yQ="End_of_file",F6="calcul_apl_logement_foyer.condition_2_du_832_25",yO="calculAllocationLogementFoyer",yP=1313,i$="traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9",ff="Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer",h8="Article 24",yN=3678,qi="Failure",F5="267871",h7=630,yL=1480,yM=771,yK="167800",F4=906,yJ=664,a6="CalculetteAidesAuLogement",yI=1367,$=684,lX=715,qh="\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",yH=0xdc00,yG="389618",nC="3.",yF=1473,yD="185800",yE=5110,rr="0.0201",rs=1072,nB=880,F3="Sys_error",yC=4003,fP="Article D521-2",yB=4230,lW=703,F2=2701,rq="nombre_personnes_\xc3\xa0_charge_prises_en_compte",fO="Sous-section 4 : Assurance vieillesse",F1="Printexc.handle_uncaught_exception",eF="Article D832-24",nz=618,nA="30500",yA=1079,yy="194810",yz=3928,lU=745,lV="int_of_string",P="examples/aides_logement/arrete_2019-09-27.catala_fr",yx="Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux",ny="Article 37",yw="39340",yv="name",cR=103,yu=447,yt=3720,F0=428,aK="Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement",FZ=792,yr=3174,ys=1622,jx="traitement_aide_finale_redevance",d0=132,yq=" ])",FX="1.4",nx=698,FY=803,lT="31797",yo="19484",yp=839,cF=988,cN="Article 7",yn=773,FW="%Li",ym=3963,lS=864,gz=591,qg="r\xc3\xa9muneration_mensuelle",c8=302,yl=205,cM="Article 14",yk="34570",qf="date_de_naissance",nw=1090,lR="base_mensuelle_allocations_familiales",h6=927,yj=4220,lQ="_z",yi=2755,h5=2000,rp=1951,FV="locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers",lP=860,FU=4042,yh=2929,FT=3961,eX=136,c2="Titre IV : Allocations de logement",ro=959,yg="retrieveRawEvents",eg="InterfaceAllocationsFamiliales",lO=985,FR=4851,FS=1077,FQ=4078,i_="Pendant",qe="%a",gy=", ",fe="5422",ye=4574,yf=199,dr=2018,FP="17012",nv="calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25",yd="AllocationJournalierePresenceParentale",FO=4267,b0="Chapitre III : Calcul des aides personnelles au logement en secteur locatif",FN="' kind for the enumeration 'ElementPrestationsFamiliales.t'",hr=682,lN=467,by="Prestations familiales",FK="Enfant\xc3\x80Charge",FL="calculette",FM="GardeAltern\xc3\xa9eAllocataireUnique",eE="Article D823-16",FJ="172500",FI="n_nombre_parts_d832_25",h4=609,qd=2047,rn="Apres",yc="locatif.zone",ya=4129,bE="examples/aides_logement/../prestations_familiales/prologue.catala_fr",yb=359,FH=1809,hq=706,x$=1514,FG="179800",fl=" ",x_=1662,lM=361,K="Secteur locatif",FF="Undefined_recursive_module",ag="output",x9="195500",lL="accession_propri\xc3\xa9t\xc3\xa9",FE=3585,FC="base_mensuelle_allocations_familiales.date_courante",FD=776,qc="199900",jw=536,FB=1800,cL=-976970511,x6=918,x7="' kind for the enumeration 'SituationObligationScolaire.t'",x8="%.16g",FA="220100",nu=189,i9="droit_ouvert_forfaitaire",i8=620,x5="%i",qb="0.01",Fz="262985",x3="409505",x4=1669,Fx=2865,Fy=670,x2="LogementFoyer",rm=1679,Fw="139700",nt="PrestationAccueilJeuneEnfant",x1=3965,Fv="Article L822-4",h3=856,x0="41252",Ft="0.1",Fu="Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9",rl=382,lK="5399",qa="2805",xZ=4200,Fs=3745,hp=123,Fr=5075,ho=570,xY="calcul_apl_logement_foyer.type_logement_foyer",Fq="accession_propri\xc3\xa9t\xc3\xa9.local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire",hm="0.0173",hn=608,Fo=3386,Fp=768,L="Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement",lJ=159,xX="LocationAccession",Fm="logement_foyer.date_conventionnement",Fn=1067,lI=577,Fk=3855,Fl=183,p_="a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales",p$=836,Fj="41338",dD=0xff,h2=139,lH="Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance",Fh=4640,Fi=-12,lG="calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies",lF=458,p9="Article 15",di="0.75",i7="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",Fg="22355",lE=3654863,Ff="140800",ns=145,rk=175,rj="Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",eD=455,Fe=1997,xW="163000",i6="0.5",Fc="Article R842-14",Fd=1688,xT=900,i5=641,xU=764,xV="fd ",lD=1120,xS=1116,xQ="41751",hl=610,xR=1763,xO="181800",xP=1672,ri=409,xM=4636,xN="41316",bM="traitement_aide_finale_contributions_sociales_arrondi",xL="cat\xc3\xa9gorie_calcul_apl",lC=993,xJ=3949,xK="757",b$="Prise en compte des ressources pour les aides personnelles au logement",jv="coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte",xI=377,p8=1081,dq=848,Fb=1651,fN=2001,p7="Compl\xc3\xa9mentFamilial",lB=633,Fa="smic.r\xc3\xa9sidence",av="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",f4=1018,lA=108,E$="Article D832-18",lz=-2147483648,eW=2002,x="1",xH="Chapitre II : Dispositions applicables aux ressources",E_=4997,xG=1657,rh=890,h1=606,xF="Article R822-7",E8="42605",E9=845,xE=3787,xC="VendeurQuandDemandeurAContratLocationAccession",xD="Article R755-0-2",fM=406,E7="calculNombrePartsAccessionPropriete",E6="allocationFamilialesAvril2008",rg=": Not a directory",xB="b",E4="18900",E5="Article D521-3",aB="CalculAidePersonnalis\xc3\xa9eLogement",E2=1450,E3="accession_propri\xc3\xa9t\xc3\xa9.nombre_personnes_\xc3\xa0_charge",xA="D331_63_64",dZ=2012,gF=287,E0="42469",E1="Out_of_memory",xz=3675,F="examples/aides_logement/code_construction_reglementaire.catala_fr",ab="4",rf="index out of bounds",EZ=2379,EX="27900",nq=601,EY=668,nr="_bigarr02",xw="31264",xx=4600,ly=881,xy=975,EW="LaR\xc3\xa9union",lx="Article L822-5",lw=574,EV="981600",xv=1151,hk=292,eC=0xffff,EU="accession_propri\xc3\xa9t\xc3\xa9.type_travaux_logement",h0=2009,ET="%.17g",lv="calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25",xt=1454,xu=400,ES=3975,c_="100.",EP=3277,EQ="1.25",ER=143,xs=3990,EO="logement_foyer.type_logement_foyer",xq="44729",xr=4363,eV="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",hj=963043957,O="5",hi=142,bx=741,c1=126,hZ="AllocationSoutienFamilial",lu=840,EN="SousLocataire",xo=4249,xp="34713",xn=5155,np=628,EM=1458,Z="Section 1 : Calcul, liquidation et versement des aides",no=124,xk="0.98",xl=4242,xm=3312,gx="Article L512-3",xh="633129",xi=4035,xj=422,EJ=2106,EK=427,EL=917,dp=150,xg="41440",lt=135,EI=899,dn="\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement",dI="Sous-section 2 : Calcul de l'aide en secteur locatif",i4=252,EH="enfant_le_plus_\xc3\xa2g\xc3\xa9",I="examples/allocations_familiales/prologue.catala_fr",ar="CalculAidePersonnalis\xc3\xa9eLogementFoyer",eB=".",nn=147,EG=0xf0,xf="eligibilitePrestationsFamiliales",cQ="12.",cd=694,xe=1661,ls="Guadeloupe",nm=744,xd=276,bj=116,nl="230500",xc="enfantLePlusAge",nk=576,lr=627,eA=515,dm=365,dY=294,bt="traitement_aide_finale_montant_minimal",xb="impossible case",re=1073,dX="examples/allocations_familiales/securite_sociale_R.catala_fr",f3="R\xc3\xa8gles diverses",lq=500,EF=-1080,xa=5024,EE="18185",hY=872,hh=638,w_=1098,w$="SaintBarthelemy",rd=1063,w9=3673,ED=-1023,nj=859,gw="1272",w8="ressources_m\xc3\xa9nage_avec_arrondi",EB="ouvertureDroitsRetraite",EC="\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement",EA="204700",rc="Article L755-12",w7=1083,w6="TravauxPourAcquisitionD832_15_1",Ez="Ancien",aU=853,p6=870,rb="lib/read.mll",w5=5164,gE="1229",w4=1530,hX=939,Ey="Article premier",lp=501,w3=1773,w2=3322,a2="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement",Ex=974,dl=1048,lo='"',hW=460,Ew="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",ln="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr",ax="CalculAllocationLogement",Ev="3539",ra="<",wZ="208500",fL=931,w0="prestations_familiales.date_courante",w1=0x800,lm=617,lk=182,ll=398,ni="\xc3\xa9ligibilit\xc3\xa9",Eu=1152,wX="233000",wY=0.012,wW="calculAidePersonnaliseeLogementLocatif",bY="Article 33",Et=719,Er=3679,Es="M\xc3\xa9tropole",wV=4304,wU=842,Ep="40696",Eq=209,wT=131,Eo="ressources_m\xc3\xa9nage_arrondies_seuil",wS=204,q$="Article D815-1",En=834,hV="conditions_hors_\xc3\xa2ge",bD=783,wR=3810,eU="traitement_aide_finale_abattement",Em=727,ba="Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte",wP=726928360,as=562,wQ="221100",p5=165,wO="([^/]+)",lj=700,El="Article 39",q_=0xf,wM="logement_foyer.nombre_personnes_\xc3\xa0_charge",wN="798",Ek="BailleurSocial",i3="montant_initial_m\xc3\xa9tropole_majoration",nh=372,cv=125,wL=4108,p4=818,wK="Division_by_zero",Ej=1092,wJ=1844,nf=520,ng=736,p3="Article L832-3",q9=430,wI=708012133,Ei="SituationObligationScolaire",Eh=2790,fK=589,Ef="AutrePersonne\xc3\x80Charge",Eg="44440",ne=879,li=532,Ee="AllocationJeuneEnfant",dR=2014,Ed=4195,ez=552,Ec="22262",nd=659,Eb="Article D842-17",nc=697,Ea="Article L751-1",f2=503,ju=119,i2="montant_avec_garde_altern\xc3\xa9e_majoration",D$="70",eT=412,dW=104,wG="calculette_sans_garde_altern\xc3\xa9e",wH="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",nb=321,wF="version_avril_2008",D9=468,D_=279,wD="38361",wE="locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9",na=714,D8=439,fJ=2013,D6="ouverture_droits_retraite",D7=102,D5=1464,D4=4638,hg="100000.",wC="18261",hf=101,m$="calcul_nombre_parts.situation_familiale_calcul_apl",D3="logement_foyer.ressources_m\xc3\xa9nage_arrondies",D2=4778,D1="body",dC="Calcul des contributions sociales s'appliquant aux aides personnelles au logement",wB="Unexpected '%s' kind for the enumeration 'Collectivite.t'",D0=4760,DZ=5029,q8="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",gD=1e7,wA=4676,fd=254,DY="calcul_apl_logement_foyer.zone",dQ=407,DW="6.",DX="accession_propri\xc3\xa9t\xc3\xa9.zone",wz="1003",DV=4131,gv="Article L841-2",DT=2097,DU=" : flags Open_text and Open_binary are not compatible",wy=902,DR=779,DS=2596,i1="Article D832-15",fI="Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales",wx="43248",DQ=4961,gC=1992,dV="examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr",ww="\\\\",v="Code de la construction et de l'habitation",wt=1489,wu=1695,wv="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",DP="Article 38",lh=188,f1=1045,DN=463,DO="0.04",wr="0.0226",ws=270,wq="192500",DM="230700",wp="217600",m_=926,DL="0.0463",p2="GardeAlterneePartageAllocations",p1="\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0",m9="0.55",DK=1449,m8=109,dk="droit_ouvert",H="Champs d'applications",wo=479,DJ=669,wn=1660,wm="locatif.nombre_personnes_\xc3\xa0_charge",bi="ContributionsSocialesAidesPersonnelleLogement",hU="Article D832-10",bF="Interface du programme",p0=-97,f0=944,aO="examples/aides_logement/archives.catala_fr",DI=469,DF=953,DG=666,DH=1461,wl=281,wk=1713,wj="218700",pY="Article D823-20",pZ="ServicesSociauxAllocationVerseeAuxServicesSociaux",jt="d\xc3\xa9pense_nette_minimale_d832_27",hT=195,ey="1.",dP=1015,wh=1094,wi="DecisionTaken(_)",DE=3779,m7=1040,wg="45200",dh="d\xc3\xa9pense_nette_minimale",we=844,wf=728,pX="Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es",i0="Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base",DD=141,DC=4329,q7="Article D823-17",DB="Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole",hS=596,m6="AllocationLogement",wc="5186",wd="Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'",wa="accession_propri\xc3\xa9t\xc3\xa9.date_courante",wb=1065,lg=155,fZ=518,DA="calcul_apl_logement_foyer.situation_familiale_calcul_apl",v_="142303",lf=316,v$="37778",d9=296,m5=565,q6=799,Dz=215,gu="Article D832-11",Dy=4917,v9="LaReunion",m4=947,Dx="AgrandirOuRendreHabitableD331_63",aV="Montant du salaire minimum de croissance",le=557,eS=621,Dw=3266,Dv=1835,pW="0.3",v8="true",pV=2395,bd="Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution",Du=2672,fY=370,M="Titre II : Dispositions communes aux aides personnelles au logement",v7=781,Dt="25116",pT="Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.",pU="1500",v5=1594,v6=" is too large for shifting.",Dq=4168,Dr="237200",m3=502,Ds=1567,lc="242800",ld="Map.bal",q5="5208",Dp="0.08",v4="@[",ap="Titre III : Aide personnalis\xc3\xa9e au logement",Do="Apr\xc3\xa8s",v3=1185,v2=2766,ac="Code de la s\xc3\xa9curit\xc3\xa9 sociale",Dn="42892",v1=665,lb=688,v0=2505,la="ml_z_overflow",Dm=5023,Dl=677,vZ="1.8",Dk=807,js="contributions_sociales.date_courante",gB=850,k$=309,vY="calcul_apl_logement_foyer.redevance",Di=3452,Dj=3473,Dh=-752863768,q3="202500",jr=705,q4="Article D832-17",Df=3336,Dg=904,m2=360,Db="Article 10",Dc=765,Dd="allocationsFamiliales",De="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",vX="582700",m1=167,vW=915,C$=274,Da="4986",aE="CalculAidePersonnalis\xc3\xa9eLogementLocatif",C_=433,m0=531,eR="abattement_d\xc3\xa9pense_nette_minimale",C9=1466,C8="Sys_blocked_io",pS="b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement",cn="Articles valables du 1er octobre 2020 au 1er octobre 2021",C7=1826,gt="Chapitre 2 : Champ d'application",vV="0.0588",mZ="Chapitre 2 : Champ d'application.",C6=2570,C5=362,vU=1663,mY=457,C4="49",V="\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement",cX="Article D842-15",C3=892,vT=246,k_=1016,vR="37900",vS="%u",k9="Article L831-1",aG="Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession",fH="calcul_\xc3\xa9quivalence_loyer_minimale",vQ="logement_foyer.zone",C2=2489,fG=298,pR=3630,C1="Article 40",b_="\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement",vO="19402",vP=2123,C0=4315,iZ=925,U="2",cE=127,mX=711,vM="Article 30",vN="@{",bX="Montant de la base mensuelle des allocations familiales",vL=" : flags Open_rdonly and Open_wronly are not compatible",vK="0.232",q2="OuvertureDroitsRetraite",hR=787,vH="Zone2",vI="43505",vJ=4662,CZ=1703,mW="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",cP="-",vG=1714,CY=336,he=603,CX=1659,vE="n_nombre_parts_d832_11",vF=" : file already exists",k8=397,CW=4473,iY="EffectiveEtPermanente",bs=987,CU="calculAllocationLogementAccessionPropriete",CV="41481",CT=4133,fc="0.0045",fb="Date d'ouverture des droits \xc3\xa0 la retraite",CR="accession_propri\xc3\xa9t\xc3\xa9.date_entr\xc3\xa9e_logement",CS="retrieveEvents",CQ=1468,vD="20165",CP=1463,CO="2699",k6=625,k7=644,vC=1462,vA="Infini",vB="prestationsFamiliales",fF="Article 43",vz="\\b",vy=4188,aI="Titre IV : Allocations de Logement",k5="Martinique",mV=404,dH="Article D832-25",vx=487,CN=673,q1=837,k4=942,vv=916,vw=12520,CM="Collectivit\xc3\xa9",c0=401,CL="42228",vu=981,cm="Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement",CK=2301,aN="Chapitre 1er : Allocations familiales",hd=2016,vt="AllocationEducationEnfantHandicape",CJ="832200",k3=984,CH=963,CI="AllocationRentr\xc3\xa9eScolaire",b9=1000,W="CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9",CG=4081,_="",q0=737456202,mU="Sous-section 2 : Principes de neutralisation et d'abattement",CF="^",CE=4829,k2="Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement",hc=0x3f,CD="' kind for the enumeration 'Collectivite.t'",vs=4281,qZ="184000",vr="251500",pQ=334,vq=5027,dU="Article 16",CC="Article D842-9",vp="Match_failure",vo=4614,hb=716,hQ=785,aq=2021,hP="0.085",jp="d\xc3\xa9pense_nette_minimale_d832_10",jq="CalculNombrePartLogementFoyer",CB="35130",iX="montant_initial_majoration",fk="+",CA=1061,fX=587,Cz="1057",Cy=1980,vn=425,Cx="%li",ha="Smic",Cw="234600",Cv="39051",vm="20900",mT="calcul_apl_logement_foyer",qY="208600",Cu=4465,g$=431,pP=267,Ct="impayeDepenseLogement",vl=801,Cr="calcul_nombre_parts.condition_2_du_832_25",Cs="logement_foyer.redevance",vj=1086,vk=0xe0,vi=1126,Cq="20100",Cp="D331_32",eQ="contributions_sociales",mS=580,fj=1020,k1=250,vh="calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies",C="Secteur logement-foyer",pN="Article L831-2",pO=115,J="Allocations familiales",mQ=624,mR=1034,pM="0.027",g_=545,Co="locatif.ressources_m\xc3\xa9nage_arrondies",ve=3350,vf="\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage",vg="allocations_familiales",qX=1255,hO="Article 8",bZ="examples/allocations_familiales/securite_sociale_L.catala_fr",k0=594,bw=2019,mP="Article R521-1",qW="jsError",eP=0x8000,iW=1055,bA="Chapitre Ier : Champ d'application",Cn="Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire",Cm="43074",vc=4994,kZ=946,vd="6.55957",vb="eligibiliteAidePersonnaliseeLogement",kY="Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources",qV=2437,g9=371,fE=320,pL=814,hN=129,u$=766,va="\n",jo="abattement_d\xc3\xa9pense_nette_minimale_d832_27",kX=497,aA="Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement",pK="3.7",jn=537,fW=414,kW=310,X="Tous secteurs",u_="Article 34",cc="calcul_plafond_mensualit\xc3\xa9_d842_6_base",kV=1033,hM=2005,Cl=-48,pJ="9",Cj=3734,Ck="1025",cl="camlinternalFormat.ml",eO=549,mO=312,u9=1729,mN=148,Ci="132000",mM=730,pI="0.0185",u8="924600",jm=713,c7=2017,fD=1124,Ch="date_naissance",dj=317,kT="Article R822-2",kU=878,ai="CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9",Cg=3297,ef="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",pH=1141,qU="obligation_scolaire",u7="EEXIST",eN=293,eM=550,u6=4291,u5=733,Cf=4629,ex=121,Cd=961,Ce="prestations_familiales.prestation_courante",u4=1222,mL=1999,Cb="\xc3\xa9ligibilit\xc3\xa9_commune.demandeur",qT=1649,Cc="\\n",kS=544,Ca=4260,u3=3558,dB=120,kR="16",u2=4024,B_="23138",B$="Article D832-14",qS=512,u1=0x7ff0,u0="eligibiliteAllocationLogement",kQ=928,bv="Articles valables du 1er octobre 2021 au 1er juillet 2022",mK=861,uY="montant_forfaitaire_charges",uZ=1547,ew="traitement_aide_finale_d\xc3\xa9pense_nette_minimale",uX=732,qR=177,B9=1470,uW="0x",B8="Ascendant",kP="0.005",o="Calcul du montant de l'aide personnalis\xc3\xa9e au logement",g8=499,uV=797,kO="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",B7=3723,uU="locatif.situation_familiale_calcul_apl",mJ=645,B6="40888",uR="bas",uS="0.208",uT=957,uQ="210900",B5="219900",bu="traitement_aide_finale",uO="r\xc3\xa9gime_outre_mer_l751_1",bb=105,uP="Invalid function call ([ ",uN="Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",eL=551,kN="Article R512-2",uL=4421,uM=1135,B4="31664",B3=4403,uK="44693",fV=454,g7="0.45",uJ=1165,pG="2710",pF=429,af="input",uI="39839",uH=1745,B1=2594,B2="\xc3\xa9ligibilit\xc3\xa9_logement",pE="0.2",uG=157,B0=4162,dG=364,kM="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",uF=390,mI=498,fC="examples/aides_logement/autres_sources.catala_fr",BZ=2627,uE="calculAllocationLogement",uD=1384,pD="mkdir",BX=2608,BY=379,gs="Article L822-3",uB=4080,uC="logement_foyer.situation_familiale_calcul_apl",Y="Chapitre III : Modalit\xc3\xa9s de liquidation et de versement",mH=592,mG=": No such file or directory",pC=378,fU="Chapitre VII : Calcul des allocations de logement en secteur logement-foyer",gA="Titre 5 : D\xc3\xa9partements d'outre-mer",kK=948,kL=992,uA="766",uz=4648,cW="CalculetteAidesAuLogementGardeAltern\xc3\xa9e",uw="locatif.colocation",ux=1819,uy=151,BW="calculetteAidesAuLogement",qQ="Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",pB=1137,BV="Descendant",b8="\xc3\x89ligibilit\xc3\xa9AllocationLogement",a$="D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte",mF=220,uv=919,mD=626,mE=600,BU="\xc3\xa9ligibilit\xc3\xa9_apl",uu="taux",pA="Demandeur",bW="CalculAllocationLogementLocatif",jl=843,BS=1046,BT="BeginCall([ ",ci=868,ut=332,qP=822,iV="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1",qO=921,BR="GardeAltern\xc3\xa9ePartageAllocations",kJ=932,bf="\xc3\x89pilogue",al="CalculAllocationLogementFoyer",BP=2900,BQ="943900",BO="bmaf",BN="calculEquivalenceLoyerMinimale",mC=867,kI=2006,g6="0.95",BL="contributionsSocialesAidesPersonnelleLogement",BM="ressourcesAidesPersonnelleLogement",kH=863,uq=3765,cs=363,ur="Pervasives.do_at_exit",us="utf8",BK="222300",pz="ComplementFamilial",up=5089,py=1001,BJ="225000",kG=657,uo=1667,BI="locatif.logement_est_chambre",kF=529,un="\xc3\xa9ligibilit\xc3\xa9_allocation_logement",qN="0.0283",BH=2654,um=217,BG=3945,ul=2409,ee=854,uk="logement_foyer.date_courante",qM="0.16",kE=643,a7="Article 18",px=1460,BD=418,BE="36815",BF="accession_propri\xc3\xa9t\xc3\xa9.situation_familiale_calcul_apl",eK=134,uj=461,BC=3220,ed="Section 2 : Conditions relatives aux ressources",aJ="\xc3\x89ligibilit\xc3\xa9 aux allocations de logement";function -bB_(d,b,e,c,f){if(c<=b)for(var +a.prototype._T_}}(Object));(function(aN){"use strict";var +bBJ=aN,bBM=typeof +module==="object"&&module.exports||aN,Bv="38527",i0=1133,fp=857,cs="\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales",Bu=2074,p7="logement_foyer",GP="Article L521-1",lu="Paragraphe 2 : Ouverture du droit et liquidation.",iZ=794,ow=1056,ov=365180284,Bt="Changement",GO="26714",Bs="locatif.date_courante",GN=163,p6="SaintMartin",Br="1015",d8="Section 1 : Seuils de constitution d'un impay\xc3\xa9",Bq="559500",cH="Article 1",fo="aide_finale_formule",Bp="35630",gW=122,tl="Article 31",lU="50",bi="Unexpected '",eD=299,GM="34700",kx=181,ou="Article 19",p5=862,lT=305,ee=128,lt="Avant",sp="identifiant",p3="Oui",GL="43000",p4=1127,so="Article D832-26",eC=683,iY=573,Bo=383,eX=146,ot=">",p2=575,kw=153,p1=1027,p0=2050,ed=297,pZ="Article 17",am="Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",kv=1062,eW="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",pY="baseMensuelleAllocationsFamiliales",Bn="35762",B="Calcul du montant de l'allocation logement",GK=358,dW=2011,sn=2023,dV=295,GJ=462,iX="Article L841-1",sm="ServicesSociauxAllocationVerseeALaFamille",GI=1183,ku=1515,Bl="186000",Bm="Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",Bk="16.25",sl="0.0315",ls="traitement_aide_finale_diminu\xc3\xa9",GH="\xc3\xa9ligibilit\xc3\xa9_commune.date_courante",Bj="40758",pX="e",gD=896,iW=1452,kt=313,iV="Autre",Bi="locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s",Bg=1392,Bh=1150,GG="Article L822-2",ks=421,f7="smic",Bf="39445",iU=1071,bC="Article D842-6",Bd=-43,Be="Neuf",tk="Article 27",GF="inf",GE="calculetteAidesAuLogementGardeAlternee",Bc=4305,sk=306,GD=4696,Bb="27365",GC="Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",os=685,GB="41392",Ba=1002,lS=111,or=929,GA="Location",iT=967,A$="240400",sj=269,kr=898,tj="Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale",gV=619,Gz="33500",lr="CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9",J="Article D823-9",bH="traitement_aide_finale_minoration_forfaitaire",Gy=1009,si="\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",Gx="infinity",iS="2.5",Gw="3663",ec="Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement",A_=2609,eB="examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr",A9="\\t",kq=955,aH="examples/aides_logement/code_construction_legislatif.catala_fr",A8=330,Gv=385,oq=1057,aS="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",iR=1629,lR=112,iP="1000",iQ=1131,d7=563,Gu=4145,c8="examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr",lQ=701,A7="210600",Gt="Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'",iO=1146,gC=1638,iN=1782,A6="Couple",lq=687,op="SaintPierreEtMiquelon",iM=110,cr="PrestationsFamiliales",kp=464,Gs="\xc3\x89l\xc3\xa9mentPrestationsFamiliales",pW=679,Gr="214700",A5=2597,iL=615,dK="Calcul\xc3\x89quivalenceLoyerMinimale",pV=554,Gq="42926",ko=1096,A4=-32,A3="39016",lp=847,pU="AllocationLogementFamiliale",d6=1023,Gp="interfaceAllocationsFamiliales",cn=561,oo="AllocationLogementSociale",Go=3766,A2="plafond_l512_3_2",kn=639,sh="Chapitre II : Des contributions pour le remboursement de la dette sociale.",iK=117,aY="examples/allocations_familiales/decrets_divers.catala_fr",A1=348,Gn=5035,lP="compl\xc3\xa9ment_d\xc3\xa9gressif",sg="Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9",Gk="240200",Gl="accession_propri\xc3\xa9t\xc3\xa9.copropri\xc3\xa9t\xc3\xa9",Gm="Assert_failure",ti="Section 1 : Secteur locatif ordinaire",Gj="568400",th="0.32",A0="40961",Gi=2418,Gh=350,lO="Non",km=508,iJ=1664,AZ=185,lN="Article R824-2",Gg=219,on=1128,Ge=2537,Gf=1e14,AY="D331_76_1",pT="Article R521-3",AX="17607",af=2022,AW=3359,Gc="34865",Gd="Fatal error: exception %s\n",AV="261800",pS=865,om="Article 2",kl=1648,AU=2057,eA=256,ez=558,AT="Article L521-3",Gb="Article R822-1",AR="45064",AS=2275,Ga="taux_francs_vers_euros",aR="Archives l\xc3\xa9gislatives et r\xc3\xa9glementaires",AQ=3402,ol=924,lM="abattement_d\xc3\xa9pense_nette_minimale_d832_10",pR=699,F$="mensualit\xc3\xa9_\xc3\xa9ligible",kk=1075,ok="D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance",tg="ENOENT",iI=1736,sf=288,se="0.0006",iH=315,sc="EnfantLePlus\xc3\x82g\xc3\xa9",sd=259,oj=556,b9="examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr",F_=885,AP="228000",F9="ENOTEMPTY",tf="Article 13",F8="calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge",AO="D331_59_8",F6="Loyer",F7="35947",iG=3681,AN=162,dU=564,AM="brut_horaire",kj=1496,ki=4634,F5="x",AL="Sous-section 1 : Aides personnelles au logement",F4="calculAidePersonnaliseeLogementAccessionPropriete",oi=547,lo="Article D755-5",fS=680,F3="Article D842-4",kh=4633,eb=314,te="%d",iF=1653,AK="Z.of_substring_base: invalid digit",F2="ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille",iE=637,oh=285,AJ="buffer.ml",e="Prologue : aides au logement",I="Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",gU=1558,FZ="167600",F0="39590",F1="accession_propri\xc3\xa9t\xc3\xa9.date_signature_pr\xc3\xaat",pQ=3405,gT=2008,sb="0.0179",AI=1089,FY=1051,FX=4057,AH="245700",iD=1121,H="Prologue",og="calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge",FW="Metropole",c7=100,lL="prise_en_compte_personne_\xc3\xa0_charge",gS=851,oe=702,of=4243,iC=420,AG=1397,kf=5033,kg=1754,fn=300,aa="3",a$="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",AF=230,pO=413,pP="169.",AD=2549,AE=0.5,iB=790,cW="Article D521-1",FV="conventionn\xc3\xa9_livre_III_titre_V_chap_III",pN=622,AC=374,ke=965,pM="Article D842-11",dT="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",AB=2166,dy=107,oc=161,od=381,ob="Article D842-12",kd=690,pL="prestations_familiales",lK="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",AA="26440",iA=649,FT=3901,FU="201700",td="Unix.Unix_error",Az=3631,iy=1060,iz=1139,FS="calculAidePersonnaliseeLogement",pK=553,Ay="Stack_overflow",kc=1655,ff="condition_2_r823_4",a9="Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer",aW="\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement",Ax="/static/",sa=253,FR=2791,ix=894,FQ="Not_found",Av="1085",Aw=235,r$="\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02",kb=1576,Au="41268",a2="examples/allocations_familiales/epilogue.catala_fr",pJ=695,FP="calcul_apl_logement_foyer.date_courante",At=2702,cc=848054398,FN=3496,pI="Mayotte",FO="smic.date_courante",As=260,pH="1224",FL="calcul_apl_locatif",FM="accession_propri\xc3\xa9t\xc3\xa9.situation_r822_11_13_17",dx="calcul_plafond_mensualit\xc3\xa9_d832_10_3",r_="rmdir",pG=696,ka=1069,FK=32752,Ar="33623",tc="19100",Aq="37478",f6="calcul_nombre_parts",tb="Article 23",pF="Article R842-5",Ap=1026,dn=149,bN="montant",ea="Article L521-2",b4="examples/allocations_familiales/../smic/smic.catala_fr",Am="calculAllocationLogementLocatif",An="37906",Ao="false",lJ=849,pE="Invalid integer: ",Al="PasDeChangement",bt="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement",ba=106,FJ=346,pD=875,oa=186,dJ=0x80,eV="Chapitre 1er : Dispositions relatives aux prestations",ta="Fatal error: exception ",pC="\xc3\xa9ligibilit\xc3\xa9_commune",Ak=3538,s$="0.0234",FI="43378",Ai=4333,Aj="calcul_apl_logement_foyer.date_conventionnement",Ah=1413,n$=1054,s_="25978",dm=303,FG=493,FH=3541,FF="Section 2 : R\xc3\xa8gles de non-cumul",Ag=5003,s9="_",Af="eligibilitePrimeDeDemenagement",n_=517,r9="compare: functional value",fm=1970,j$=833,Ae=444,b3="0.",Ab=114,Ac="40928",Ad="19300",Aa=3129,FE=1030,n9=411,z$=978,z_="197700",z9="Invalid_argument",FD=656,r8=823,FC="EndCall([ ",pB="0.9",FA="Article R822-22",FB="prise_en_charge",z8="calcul_aide_personnalis\xc3\xa9e_logement",Fy="34301",Fz="577500",z7="%ni",j_=1465,fl=324,pA=4593,as=2020,Fx="PersonneSeule",z6=1418,pz=559,r7="0.0238",s8="Article 9",Fw="225100",Fv="AutresPersonnes",dS="6",j9=495,r6=808,z4="173600",n8=858,z5=602,q="0",ao="Section 3 : Logements-foyers",ln="Article L161-17-2",d="examples/aides_logement/prologue.catala_fr",Fu="eligibiliteAidesPersonnelleLogement",py=817,bh=248,z3=341,px=322,z2=3856,j8=2007,Ft="208200",zY="Zone1",zZ="Locataire",iw=301,z0="R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro",z1="37457",Fr=4292,Fs="562800",zX="535744",iv=1538,Fq=2374,zW="235800",n7=555,b2=403,ci=930,Fp="resetLog",zV="\xc3\xa2ge_l512_3_2",W="AllocationsFamiliales",zU="situation_familiale_calcul_apl",r5="GardeAlterneeAllocataireUnique",iu=3475,Fo="haut",zT=4334,Fn=4840,j7=1456,lm=1024,j6=1143,zR="204761",zS="3.1",n6=133,s7="35780",zQ="calculAidePersonnaliseeLogementFoyer",Fm=4976,Fl=2514,lI=945,fR=366,fe=0xffffff,Fk="34829",zO=524,zP=4179,n5="locatif",j5=812,j4="Titre III: Titre III : Dispositions communes relatives au financement",Fj="36378",ax="Calculette globale",n4=286,Fi="149600",zM=3370,zN=3586,lH="Article R824-1",cV=1994,it=805,cG=2010,zL=3989,bJ="Prologue : prestations familiales",Fh=1405,s6=2147483647,Fg="774",pw=689,zK=", characters ",f5=456,r4="180100",f4="BaseMensuelleAllocationsFamiliales",zJ="prestations_familiales.r\xc3\xa9sidence",Ff="819",bo="Chapitre IV : Calcul des allocations de logement en secteur accession",zI="AllocationJournali\xc3\xa8rePresenceParentale",Fe=4603,zH=".0",is=4127,Fd="36733",n3=977,ir=1665,r3="AllocationFamilialesAvril2008",Fc=2033,gR=693,pv=855,Fb="AllocationRentreeScolaire",zG="mensualit\xc3\xa9_minimale",lG="2.",n2=691,n1=737,fk="5612",zF="Concubins",Fa=4927,dC="calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9",E$="Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",zE=5043,iq=816,zD="SaintBarth\xc3\xa9lemy",ab="Partie l\xc3\xa9gislative",ip=2003,ll="Article R823-4",zC="32956",bq="examples/allocations_familiales/securite_sociale_D.catala_fr",zB="294500",gQ=1504,r2="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr",zA="locatif.logement_meubl\xc3\xa9_d842_2",j3=1612,dR="RessourcesAidesPersonnelleLogement",E_=5057,f3="Montant des plafonds de ressources",bp="Annexe",eU="Section 1 : B\xc3\xa9n\xc3\xa9ficiaires",zz=2767,E9="3524",zy="Article D832-27",E8=2866,zx=3946,E6=3471,E7=1101,zw="Zone3",lk="500",E5="locatif.type_aide",fQ=471,dI=2015,zu=2595,zv="40144",j2=1791,fj="prise_en_compte",j1=5031,E4="223900",zt="ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux",E3=138,zs="225500",io=1585,j0=1998,m="Livre VIII : Aides personnelles au logement",lj="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6",n0=4960,r1="nan",E1="38892",E2="accession_propri\xc3\xa9t\xc3\xa9.mensualit\xc3\xa9_principale",zr=2461,zq="calculNombrePartLogementFoyer",nZ=646,lF="Impay\xc3\xa9D\xc3\xa9penseLogement",bg="Calculette avec garde altern\xc3\xa9e",E0=0xdfff,im="4.3",ey="/",fP=1017,il=3967,EZ=2157,ik=951,EY=1179,s5="ENOTDIR",s4=1073741823,zp="\\r",s3="0.0068",s2=513,EX="calcul_allocation_logement",zn="coefficient_prise_en_charge",zo=206,zm=3811,lE="Article D161-2-1-9",pu="Guyane",ps="PasDeTravaux",pt=311,zl=2930,nY=255,jZ=1603,EW="Revenu",bG="droit_ouvert_majoration",s="Partie r\xc3\xa9glementaire",c6="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",zk="Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",EV="Sous-section 4 : Prise en compte du patrimoine",j="D\xc3\xa9clarations des champs d'application",zj=4221,zi="End_of_file",EU="calcul_apl_logement_foyer.condition_2_du_832_25",zg="calculAllocationLogementFoyer",zh=1313,li="traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9",fd="Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer",jY="Article 24",ij=3678,r0="Failure",ET="267871",ii=1480,ES=4268,zf="167800",jX=906,a8="CalculetteAidesAuLogement",ze=1367,$=684,nX=715,rZ="\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",zd=0xdc00,zc="389618",pr="3.",ih=1473,za="185800",zb=5110,s0="0.0201",s1=1072,pq=880,ER="Sys_error",y$=4003,fO="Article D521-2",y_=4230,nW=703,sZ="nombre_personnes_\xc3\xa0_charge_prises_en_compte",ex="Sous-section 4 : Assurance vieillesse",EQ="Printexc.handle_uncaught_exception",cU="Article D832-24",po=618,pp="30500",ig=1079,y8="194810",y9=3928,nU=745,nV="int_of_string",S="examples/aides_logement/arrete_2019-09-27.catala_fr",y7="Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux",EP=4201,pn="Article 37",y6="39340",y5="name",cO=103,y4=447,jW=428,ak="Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement",y3=3991,jV=792,ie=1622,lD="traitement_aide_finale_redevance",dQ=132,y2=" ])",EO="1.4",pm=698,jU=803,nT="31797",y1="19484",cL="Article 7",EN="%Li",id=3963,nS=864,gB=591,y0=2580,rY="r\xc3\xa9muneration_mensuelle",c4=302,yZ=205,cK="Article 14",yY="34570",rX="date_de_naissance",f2=1090,nR="base_mensuelle_allocations_familiales",jT=927,nQ="_z",jS=2000,sY=1951,EM="locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers",nP=860,EL=4042,EK=3961,eT=136,b8="Titre IV : Allocations de logement",gP=959,yX="retrieveRawEvents",d$="InterfaceAllocationsFamiliales",nO=985,EJ=4851,jR=1077,EI=4078,lh="Pendant",rW="%a",gA=", ",fc="5422",yV=4574,yW=199,dl=2018,EH="17012",pl="calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25",yU="AllocationJournalierePresenceParentale",bV="Chapitre III : Calcul des aides personnelles au logement en secteur locatif",EG="' kind for the enumeration 'ElementPrestationsFamiliales.t'",ic=682,fN=467,bD="Prestations familiales",ED="Enfant\xc3\x80Charge",EE="calculette",EF="GardeAltern\xc3\xa9eAllocataireUnique",ew="Article D823-16",EC="172500",EB="n_nombre_parts_d832_25",rV=2047,sX="Apres",yS=4125,yT="locatif.zone",ib=4129,bF="examples/aides_logement/../prestations_familiales/prologue.catala_fr",yR=4316,jQ=1809,ia=1514,EA="179800",fi=" ",h$=1662,yQ=361,N="Secteur locatif",Ez="Undefined_recursive_module",yP=3721,ah="output",yO="195500",nN="accession_propri\xc3\xa9t\xc3\xa9",Ey="base_mensuelle_allocations_familiales.date_courante",rU="199900",jP=1800,cJ=-976970511,yM="' kind for the enumeration 'SituationObligationScolaire.t'",yN="%.16g",Ex="220100",pk=189,yL=4422,lg="droit_ouvert_forfaitaire",lf=620,yK="%i",rT="0.01",Ew="262985",yJ="409505",h_=1669,yI="LogementFoyer",gO=1679,Ev="139700",pj="PrestationAccueilJeuneEnfant",h9=3965,Eu="Article L822-4",jO=856,yH="41252",Es="0.1",Et="Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9",sW=382,nM="5399",rS="2805",Er=3745,ev=123,Eq=5075,h8=570,yG="calcul_apl_logement_foyer.type_logement_foyer",Ep="accession_propri\xc3\xa9t\xc3\xa9.local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire",h7="0.0173",Eo=3386,O="Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement",fM=159,yF="LocationAccession",En="logement_foyer.date_conventionnement",jN=1067,nL=577,Em=183,rR="a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales",El="41338",dw=0xff,nK="Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance",jM=4640,Ek=-12,nJ="calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies",yE=4167,nI=458,rQ="Article 15",de="0.75",le="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",Ej="22355",nH=3654863,Ei="140800",pi=145,sV=175,sU="Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",eu=455,Eh=1997,yD="163000",ld="0.5",ph="Article R842-14",jL=1688,h6=900,lc=641,yC="fd ",yB=2571,nG=1120,yA=1116,yz="41751",h5=1763,yy="181800",h4=1672,sT=409,h3=4636,yx="41316",bI="traitement_aide_finale_contributions_sociales_arrondi",yw="cat\xc3\xa9gorie_calcul_apl",nF=993,yu=3949,yv="757",cd="Prise en compte des ressources pour les aides personnelles au logement",lC="coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte",h2=377,gz=1081,dk=848,jK=1651,fL=2001,rP="Compl\xc3\xa9mentFamilial",yt=633,Eg="smic.r\xc3\xa9sidence",aB="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",f1=1018,nE=108,Ef="Article D832-18",nD=-2147483648,eS=2002,z="1",ys="Chapitre II : Dispositions applicables aux ressources",Ee=4997,h1=1657,gN=890,nC="Article R822-7",Ed="42605",yr=3787,yo="VendeurQuandDemandeurAContratLocationAccession",yp="Article R755-0-2",yq=406,Ec="calculNombrePartsAccessionPropriete",Eb="allocationFamilialesAvril2008",sS=": Not a directory",yn="b",D$="18900",Ea="Article D521-3",aF="CalculAidePersonnalis\xc3\xa9eLogement",jJ=1450,D_="accession_propri\xc3\xa9t\xc3\xa9.nombre_personnes_\xc3\xa0_charge",ym="D331_63_64",dP=2012,D8="42469",D9="Out_of_memory",r="examples/aides_logement/code_construction_reglementaire.catala_fr",ae="4",sR="index out of bounds",D7=2379,D6="27900",pg="_bigarr02",yl="31264",nA=4600,nB=881,D5=0xffffffff,D4="LaR\xc3\xa9union",nz="Article L822-5",D3=4261,ny=574,D2="981600",yk=1151,h0=292,et=0xffff,D1="accession_propri\xc3\xa9t\xc3\xa9.type_travaux_logement",jI=2009,D0="%.17g",nx="calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25",hZ=1454,yj=400,DZ=3975,c5="100.",DW=3277,DX="1.25",DY=143,DV="logement_foyer.type_logement_foyer",yh="44729",yi=4363,eR="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",gy=963043957,R="5",nw=142,cY=126,jH="AllocationSoutienFamilial",yg=840,DU="SousLocataire",yf="34713",ye=5155,pf=628,jG=1458,F="Section 1 : Calcul, liquidation et versement des aides",pe=124,yd="0.98",gx="Article L512-3",yb="633129",yc=422,DT=2106,jF=427,dj=150,x$=3267,ya="41440",nv=135,DS=899,di="\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement",dB="Sous-section 2 : Calcul de l'aide en secteur locatif",lb=252,DR="enfant_le_plus_\xc3\xa2g\xc3\xa9",L="examples/allocations_familiales/prologue.catala_fr",aw="CalculAidePersonnalis\xc3\xa9eLogementFoyer",es=".",pd=147,DQ=0xf0,x_="eligibilitePrestationsFamiliales",cN="12.",cb=694,hY=1661,nu="Guadeloupe",pc=744,x9=276,bm=116,pb="230500",x8="enfantLePlusAge",pa=576,nt=627,dh=365,dO=294,bx="traitement_aide_finale_montant_minimal",x7="impossible case",gM=1073,dN="examples/allocations_familiales/securite_sociale_R.catala_fr",eQ="R\xc3\xa8gles diverses",ns=500,DP=-1080,hX=5024,DO="18185",hV=638,hW=1098,x6="SaintBarthelemy",gL=1063,x5=3673,DN=-1023,o$=859,gw="1272",x4="ressources_m\xc3\xa9nage_avec_arrondi",DL="ouvertureDroitsRetraite",DM="\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement",DK="204700",sQ="Article L755-12",hU=1083,x3="TravauxPourAcquisitionD832_15_1",DJ="Ancien",aU=853,sP="lib/read.mll",x2=5164,gK="1229",hT=1530,DI="Article premier",nr=501,hS=1773,x1=3322,a1="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement",nq='"',DH="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",np="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr",aD="CalculAllocationLogement",DG="3539",sO="<",xY="208500",fK=931,xZ="prestations_familiales.date_courante",x0=0x800,no=617,nn=182,xX=398,o_="\xc3\xa9ligibilit\xc3\xa9",DF=1152,xV="233000",xW=0.012,DE=2781,xU="calculAidePersonnaliseeLogementLocatif",bT="Article 33",jE=719,jD=3679,DD="M\xc3\xa9tropole",DB="40696",DC=209,xT=131,DA="ressources_m\xc3\xa9nage_arrondies_seuil",xS=204,sN="Article D815-1",jC="conditions_hors_\xc3\xa2ge",eP="traitement_aide_finale_abattement",bd="Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte",xQ=726928360,ay=562,xR="221100",rO=165,xP="([^/]+)",nm=700,Dz="Article 39",sM=0xf,sL=809,xN="logement_foyer.nombre_personnes_\xc3\xa0_charge",xO="798",Dy="BailleurSocial",la="montant_initial_m\xc3\xa9tropole_majoration",o9=372,cu=125,xM=4108,gv=818,xL="Division_by_zero",jB=1092,hR=1844,o7=520,o8=736,rN="Article L832-3",sK=430,xK=708012133,Dx="SituationObligationScolaire",Dv="AutrePersonne\xc3\x80Charge",Dw="44440",o6=879,Du="AllocationJeuneEnfant",dH=2014,Dt=4195,er=552,Ds="22262",o5=659,Dr="Article D842-17",o4=697,Dq="Article L751-1",f0=503,lB=119,k$="montant_avec_garde_altern\xc3\xa9e_majoration",Dp="70",eO=412,dM=104,xI="calculette_sans_garde_altern\xc3\xa9e",xJ="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",o3=321,xH="version_avril_2008",jA=468,Do=279,xF="38361",xG="locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9",o2=714,Dn=439,fJ=2013,Dl="ouverture_droits_retraite",Dm=102,jz=1464,jy=4638,hQ="100000.",xE="18261",hP=101,o1="calcul_nombre_parts.situation_familiale_calcul_apl",Dk="logement_foyer.ressources_m\xc3\xa9nage_arrondies",Dj=4778,Di="body",fI="Calcul des contributions sociales s'appliquant aux aides personnelles au logement",xD="Unexpected '%s' kind for the enumeration 'Collectivite.t'",Dh=4760,jx=5029,sJ="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",gJ=1e7,xC=4676,fb=254,Dg="calcul_apl_logement_foyer.zone",xB=407,De="6.",Df="accession_propri\xc3\xa9t\xc3\xa9.zone",xy=2628,xz=3676,xA="1003",jw=4131,dv="Article L841-2",Dc=2097,Dd=" : flags Open_text and Open_binary are not compatible",hO=902,Da=779,Db=2596,d5="Article D832-15",eq="Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales",xx="43248",o0=4961,gI=1992,eN="examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr",xw="\\\\",l="Code de la construction et de l'habitation",hM=1489,hN=1695,xv="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",C$="Article 38",xu=2817,nl=188,C9=463,C_="0.04",xs="0.0226",xt=270,xr="192500",C8="230700",xq="217600",oZ=926,C7="0.0463",rM="GardeAlterneePartageAllocations",rL="\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0",oY="0.55",jv=1449,oX=109,dg="droit_ouvert",K="Champs d'applications",xp=479,hL=1660,xm=2655,xn=4250,xo="locatif.nombre_personnes_\xc3\xa0_charge",bl="ContributionsSocialesAidesPersonnelleLogement",ju="Article D832-10",bn="Interface du programme",rK=-97,fZ=944,aQ="examples/aides_logement/archives.catala_fr",jt=469,jr=953,js=1461,xl=281,hK=1713,C6=3313,xk="218700",rI="Article D823-20",rJ="ServicesSociauxAllocationVerseeAuxServicesSociaux",lA="d\xc3\xa9pense_nette_minimale_d832_27",jq=195,ep="1.",dG=1015,hJ=1094,xj="DecisionTaken(_)",C5=3779,xi="45200",dd="d\xc3\xa9pense_nette_minimale",rH="Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es",k_="Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base",C4=4329,sI="Article D823-17",C3="Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole",jp=596,oW="AllocationLogement",xf=2901,xg="5186",xh="Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'",xe="accession_propri\xc3\xa9t\xc3\xa9.date_courante",hI=1065,fH=155,fY=518,C2="calcul_apl_logement_foyer.situation_familiale_calcul_apl",xc="142303",nk=316,xd="37778",d4=296,oV=565,gH=799,C1=215,d3="Article D832-11",C0=4917,xb="LaReunion",oU=947,CZ="AgrandirOuRendreHabitableD331_63",a0="Montant du salaire minimum de croissance",nj=557,eM=621,jo=1835,rG="0.3",xa="true",rF=2395,be="Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution",fX=370,x="Titre II : Dispositions communes aux aides personnelles au logement",CY="25116",k9="Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.",rE="1500",hH=1594,w$=" is too large for shifting.",CW=4168,CX="237200",oT=502,jn=1567,nh="242800",ni="Map.bal",sH="5208",CV="0.08",w_="@[",ac="Titre III : Aide personnalis\xc3\xa9e au logement",CU="Apr\xc3\xa8s",w9=1185,ad="Code de la s\xc3\xa9curit\xc3\xa9 sociale",CT="42892",ng=688,w8=2505,nf="ml_z_overflow",jm=5023,w7="1.8",CS=807,lz="contributions_sociales.date_courante",gG=850,ne=309,w6="calcul_apl_logement_foyer.redevance",CR=3452,jl=3473,CQ=-752863768,sF="202500",sG="Article D832-17",CO=3336,CP=360,jk=904,CL="Article 10",CM="allocationsFamiliales",CN="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",w5="582700",oS=167,CJ=274,CK="4986",aG="CalculAidePersonnalis\xc3\xa9eLogementLocatif",CI=433,oR=531,eL="abattement_d\xc3\xa9pense_nette_minimale",jj=1466,CH="Sys_blocked_io",rD="b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement",cm="Articles valables du 1er octobre 2020 au 1er octobre 2021",ji=1826,gu="Chapitre 2 : Champ d'application",w4="0.0588",oQ="Chapitre 2 : Champ d'application.",CG=362,hG=1663,oP=457,CF="49",Z="\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement",bw="Article D842-15",jh=892,nd=246,nc=1016,w2="37900",w3="%u",nb="Article L831-1",aJ="Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession",fG="calcul_\xc3\xa9quivalence_loyer_minimale",w1="logement_foyer.zone",CE=2489,fF=298,CD="Article 40",b7="\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement",wZ="19402",w0=2123,k8=925,X="2",cF=127,oO=711,wX="Article 30",wY="@{",ch="Montant de la base mensuelle des allocations familiales",wW=" : flags Open_rdonly and Open_wronly are not compatible",wV="0.232",sE="OuvertureDroitsRetraite",jg=787,wS="Zone2",wT="43505",wU=4662,CC=3451,jf=1703,oN="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",cM="-",hF=1714,CB=336,hE=603,je=1659,wQ="n_nombre_parts_d832_11",wR=" : file already exists",wP=397,CA=4473,k7="EffectiveEtPermanente",Cy="calculAllocationLogementAccessionPropriete",Cz="41481",Cx=4133,fa="0.0045",fE="Date d'ouverture des droits \xc3\xa0 la retraite",Cv="accession_propri\xc3\xa9t\xc3\xa9.date_entr\xc3\xa9e_logement",Cw="retrieveEvents",jd=1468,wO="20165",jc=1463,Cu="2699",m$=625,na=644,hD=1462,wM="Infini",wN="prestationsFamiliales",fD="Article 43",wL="\\b",aj="Titre IV : Allocations de Logement",m_="Martinique",oM=404,ct="Article D832-25",wK=487,m9=942,wJ=12520,Ct="Collectivit\xc3\xa9",cX=401,Cs="42228",cl="Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement",Cr=2301,aP="Chapitre 1er : Allocations familiales",hC=2016,wI="AllocationEducationEnfantHandicape",Cq="832200",m8=984,jb=963,Cp="AllocationRentr\xc3\xa9eScolaire",b6=1000,Y="CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9",oL=4081,_="",sD=737456202,ja="Sous-section 2 : Principes de neutralisation et d'abattement",Co="^",Cm=2673,Cn=4829,m7="Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement",hB=0x3f,Cl="' kind for the enumeration 'Collectivite.t'",wH=4281,sC="184000",wG="251500",rC=334,hA=5027,dL="Article 16",Ck="Article D842-9",wF="Match_failure",wE=4614,hz=716,i$=785,av=2021,i_="0.085",lx="d\xc3\xa9pense_nette_minimale_d832_10",ly="CalculNombrePartLogementFoyer",Cj="35130",k6="montant_initial_majoration",fh="+",i9=1061,Ci="1057",Ch=1980,hy=425,Cg="%li",hx="Smic",Cf="234600",Ce="39051",wD="20900",oK="calcul_apl_logement_foyer",sB="208600",Cd=4465,hw=431,rB=267,Cc="impayeDepenseLogement",hv=801,Ca="calcul_nombre_parts.condition_2_du_832_25",Cb="logement_foyer.redevance",hu=1086,wC=0xe0,wB=3175,wA=1126,B$="20100",B_="D331_32",eK="contributions_sociales",fW=580,fg=1020,ht=250,wz="calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies",Q="Secteur logement-foyer",rA="Article L831-2",M="Allocations familiales",oJ=624,rz="0.027",wy=545,B9="locatif.ressources_m\xc3\xa9nage_arrondies",wv=3350,ww="\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage",wx="allocations_familiales",sA=1255,i8="Article 8",bU="examples/allocations_familiales/securite_sociale_L.catala_fr",m6=594,bB=2019,oI="Article R521-1",sz="jsError",eJ=0x8000,k5=1055,bk="Chapitre Ier : Champ d'application",B8="Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire",B7="43074",m4=4994,m5=946,wu="6.55957",wt="eligibiliteAidePersonnaliseeLogement",m3="Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources",sy=2437,hs=371,fC=320,gt=814,i7=129,ws="\n",lw="abattement_d\xc3\xa9pense_nette_minimale_d832_27",m2=497,al="Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement",ry="3.7",fV=414,m1=310,ck="Tous secteurs",wr="Article 34",ca="calcul_plafond_mensualit\xc3\xa9_d842_6_base",i6=2005,B6=-48,rx="9",B4=3734,B5="1025",cj="camlinternalFormat.ml",eI=549,oH=312,wq=3221,hr=1729,oG=148,B3="132000",oF=730,rw="0.0185",wp="924600",lv=713,c3=2017,B2="date_naissance",df=317,mZ="Article R822-2",m0=878,an="CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9",B1=3297,d_="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",gs=1141,sx="obligation_scolaire",wo="EEXIST",eH=293,eG=550,wn=2560,B0=4629,eo=121,i5=961,BZ="prestations_familiales.prestation_courante",wm=1222,oE=1999,BX="\xc3\xa9ligibilit\xc3\xa9_commune.demandeur",gF=1649,BY="\\n",wl=3558,du=120,mY="16",wk=4024,BV="23138",BW="Article D832-14",sw=512,wj=0x7ff0,wi="eligibiliteAllocationLogement",mX=928,bA="Articles valables du 1er octobre 2021 au 1er juillet 2022",oD=861,wh="montant_forfaitaire_charges",hq=1547,en="traitement_aide_finale_d\xc3\xa9pense_nette_minimale",sv=177,i4=1470,wg="0x",BU="Ascendant",mW="0.005",w="Calcul du montant de l'aide personnalis\xc3\xa9e au logement",ho=499,hp=797,mV="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",BT=3723,wf="locatif.situation_familiale_calcul_apl",oC=645,BS="40888",wd="bas",we="0.208",hn=957,wc="210900",BR="219900",bz="traitement_aide_finale",wa="r\xc3\xa9gime_outre_mer_l751_1",bf=105,wb="Invalid function call ([ ",v$="Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",eF=551,v_=4407,mU="Article R512-2",hm=1135,BQ="31664",BP=4403,v9="44693",fU=454,hl="0.45",v8=1165,rv="2710",gr=429,ag="input",v7="39839",hk=1745,BO="\xc3\xa9ligibilit\xc3\xa9_logement",ru="0.2",hj=157,BN=4162,dA=364,mT="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",v6=390,oB=498,fB="examples/aides_logement/autres_sources.catala_fr",v5="calculAllocationLogement",v4=1384,rt="mkdir",i3=379,gq="Article L822-3",v3="logement_foyer.situation_familiale_calcul_apl",D="Chapitre III : Modalit\xc3\xa9s de liquidation et de versement",oA=592,oz=": No such file or directory",gp=378,fT="Chapitre VII : Calcul des allocations de logement en secteur logement-foyer",gE="Titre 5 : D\xc3\xa9partements d'outre-mer",mR=948,mS=992,v2="766",v1=4648,cT="CalculetteAidesAuLogementGardeAltern\xc3\xa9e",vZ="locatif.colocation",hi=1819,v0=151,BM="calculetteAidesAuLogement",su="Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",go=1137,BL="Descendant",b5="\xc3\x89ligibilit\xc3\xa9AllocationLogement",bc="D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte",oy=220,ox=626,BK="\xc3\xa9ligibilit\xc3\xa9_apl",vY="taux",rs="Demandeur",bS="CalculAllocationLogementLocatif",st=843,i2=1046,BJ="BeginCall([ ",vX=332,ss=822,k4="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1",BI="GardeAltern\xc3\xa9ePartageAllocations",mQ=932,a3="\xc3\x89pilogue",aq="CalculAllocationLogementFoyer",BH="943900",BG="bmaf",BE="calculEquivalenceLoyerMinimale",BF=4036,mP=2006,hh="0.95",BC="contributionsSocialesAidesPersonnelleLogement",BD="ressourcesAidesPersonnelleLogement",mO=863,cq=363,vV="Pervasives.do_at_exit",vW="utf8",BB="222300",rr="ComplementFamilial",vU=5089,BA="225000",hg=1667,Bz="locatif.logement_est_chambre",vT="\xc3\xa9ligibilit\xc3\xa9_allocation_logement",sr="0.0283",vS=217,vR=2409,d9=854,vQ="logement_foyer.date_courante",sq="0.16",mN=643,a_="Article 18",gn=1460,i1=418,Bx="36815",By="accession_propri\xc3\xa9t\xc3\xa9.situation_familiale_calcul_apl",eE=134,vP=2756,dz="Section 2 : Conditions relatives aux ressources",Bw=4189,aM="\xc3\x89ligibilit\xc3\xa9 aux allocations de logement";function +bAP(d,b,e,c,f){if(c<=b)for(var a=1;a<=f;a++)e[c+a]=d[b+a];else for(var a=f;a>=1;a--)e[c+a]=d[b+a];return 0}function -r$(c,b,a){var +bAQ(b,d,c,e){for(var +a=0;a=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?r$(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else -if(b.t==2&&f==b.c.length){b.c+=d.t==4?r$(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)om(b);var +f9(d,e,b,f,c){if(c==0)return 0;if(f==0&&(c>=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?qj(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else +if(b.t==2&&f==b.c.length){b.c+=d.t==4?qj(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)p_(b);var g=d.c,h=b.c;if(d.t==4)if(f<=e)for(var a=0;a=0;a--)h[f+a]=g[e+a];else{var i=Math.min(c,g.length-e);for(var a=0;a>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function -io(a){if(a.t==2)a.c+=ir(a.l-a.c.length,"\0");else -a.c=r$(a.c,0,a.c.length);a.t=0}function -I7(a){if(a.length<24){for(var -b=0;bcE)return false;return true}else +gX(a){if(a.t==2)a.c+=kC(a.l-a.c.length,"\0");else +a.c=qj(a.c,0,a.c.length);a.t=0}function +Hn(a){if(a.length<24){for(var +b=0;bcF)return false;return true}else return!/[^\x00-\x7f]/.test(a)}function -sb(e){for(var -j=_,c=_,g,f,h,a,b=0,i=e.length;bqS){c.substr(0,1);j+=c;c=_;j+=e.slice(b,d)}else -c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else -if(a>eC)c+=String.fromCharCode(0xd7c0+(a>>10),yH+(a&0x3FF));else -c+=String.fromCharCode(a);if(c.length>jd){c.substr(0,1);j+=c;c=_}}return j+c}function -e0(c,a,b){this.t=c;this.c=a;this.l=b}e0.prototype.toString=function(){switch(this.t){case -9:return this.c;default:io(this);case -0:if(I7(this.c)){this.t=9;return this.c}this.t=8;case -8:return this.c}};e0.prototype.toUtf16=function(){var -a=this.toString();if(this.t==9)return a;return sb(a)};e0.prototype.slice=function(){var +tD(e){for(var +j=_,c=_,g,f,h,a,b=0,i=e.length;bsw){c.substr(0,1);j+=c;c=_;j+=e.slice(b,d)}else +c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else +if(a>et)c+=String.fromCharCode(0xd7c0+(a>>10),zd+(a&0x3FF));else +c+=String.fromCharCode(a);if(c.length>lm){c.substr(0,1);j+=c;c=_}}return j+c}function +eY(c,a,b){this.t=c;this.c=a;this.l=b}eY.prototype.toString=function(){switch(this.t){case +9:return this.c;default:gX(this);case +0:if(Hn(this.c)){this.t=9;return this.c}this.t=8;case +8:return this.c}};eY.prototype.toUtf16=function(){var +a=this.toString();if(this.t==9)return a;return tD(a)};eY.prototype.slice=function(){var a=this.t==4?this.c.slice():this.c;return new -e0(this.t,a,this.l)};function -IJ(a){return new -e0(0,a,a.length)}function -a(a){return IJ(a)}function -r8(c,b){bCL(c,a(b))}var -bN=[0];function -bT(a){r8(bN.Invalid_argument,a)}function -IH(){bT(rf)}function -b1(a,c,b){b&=dD;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}om(a)}a.c[c]=b;return 0}function -gL(b,a,c){if(a>>>0>=b.l)IH();return b1(b,a,c)}function -jR(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case +eY(this.t,a,this.l)};function +G0(a){return new +eY(0,a,a.length)}function +a(a){return G0(a)}function +tz(c,b){bBz(c,a(b))}var +bK=[0];function +bO(a){tz(bK.Invalid_argument,a)}function +GY(){bO(sR)}function +bW(a,c,b){b&=dw;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}p_(a)}a.c[c]=b;return 0}function +dX(b,a,c){if(a>>>0>=b.l)GY();return bW(b,a,c)}function +lW(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case 0:return a.c.charCodeAt(b);case 4:return a.c[b]}}function -dL(c,a){if(c.fun)return dL(c.fun,a);if(typeof +dD(c,a){if(c.fun)return dD(c.fun,a);if(typeof c!=="function")return c;var b=c.length|0;if(b===0)return c.apply(null,a);var e=a.length|0,d=b-e|0;if(d==0)return c.apply(null,a);else -if(d<0)return dL(c.apply(null,a.slice(0,b)),a.slice(b));else +if(d<0)return dD(c.apply(null,a.slice(0,b)),a.slice(b));else return function(){var e=arguments.length==0?1:arguments.length,d=new Array(a.length+e);for(var b=0;b>>0>=a.length-1)jQ();return a}function -ok(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function -bCg(){return[0]}function -ce(a){if(a<0)bT("Bytes.create");return new -e0(a?2:9,_,a)}function -jX(a){throw a}function -jY(){jX(bN.Division_by_zero)}function -IM(b,a){if(a==0)jY();return b/a|0}function -eo(a){a.t&6&&io(a);return a.c}var -bCY=Math.log2&&Math.log2(1.1235582092889474E+307)==fj;function -I6(a){if(bCY)return Math.floor(Math.log2(a));var +b=0;b>>0>=a.length-1)lV();return a}function +p8(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function +bAY(){return[0]}function +bX(a){if(a<0)bO("Bytes.create");return new +eY(a?2:9,_,a)}function +l4(a){throw a}function +kB(){l4(bK.Division_by_zero)}function +G3(b,a){if(a==0)kB();return b/a|0}function +dY(a){a.t&6&&gX(a);return a.c}var +bBO=Math.log2&&Math.log2(1.1235582092889474E+307)==fg;function +Hm(a){if(bBO)return Math.floor(Math.log2(a));var b=0;if(a==0)return-Infinity;if(a>=1)while(a>=2){a/=2;b++}else while(a<1){a*=2;b--}return b}function -r0(c){var -a=new(a0.Float32Array)(1);a[0]=c;var -b=new(a0.Int32Array)(a.buffer);return b[0]|0}var -IT=Math.pow(2,-24);function -aW(b,c,a){this.lo=b&fg;this.mi=c&fg;this.hi=a&eC}aW.prototype.caml_custom="_j";aW.prototype.copy=function(){return new -aW(this.lo,this.mi,this.hi)};aW.prototype.ucompare=function(a){if(this.hi>a.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.loa.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.lo>24),c=-this.hi+(b>>24);return new -aW(a,b,c)};aW.prototype.add=function(a){var +aV(a,b,c)};aV.prototype.add=function(a){var b=this.lo+a.lo,c=this.mi+a.mi+(b>>24),d=this.hi+a.hi+(c>>24);return new -aW(b,c,d)};aW.prototype.sub=function(a){var +aV(b,c,d)};aV.prototype.sub=function(a){var b=this.lo-a.lo,c=this.mi-a.mi+(b>>24),d=this.hi-a.hi+(c>>24);return new -aW(b,c,d)};aW.prototype.mul=function(a){var -b=this.lo*a.lo,c=(b*IT|0)+this.mi*a.lo+this.lo*a.mi,d=(c*IT|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new -aW(b,c,d)};aW.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};aW.prototype.isNeg=function(){return this.hi<<16<0};aW.prototype.and=function(a){return new -aW(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};aW.prototype.or=function(a){return new -aW(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};aW.prototype.xor=function(a){return new -aW(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};aW.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new -aW(this.lo<>24-a,this.hi<>24-a);if(a<48)return new -aW(0,this.lo<>48-a);return new -aW(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new -aW(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new -aW(this.hi>>a-48,0,0)};aW.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var +aV(b,c,d)};aV.prototype.mul=function(a){var +b=this.lo*a.lo,c=(b*G_|0)+this.mi*a.lo+this.lo*a.mi,d=(c*G_|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new +aV(b,c,d)};aV.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};aV.prototype.isNeg=function(){return this.hi<<16<0};aV.prototype.and=function(a){return new +aV(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};aV.prototype.or=function(a){return new +aV(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};aV.prototype.xor=function(a){return new +aV(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};aV.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new +aV(this.lo<>24-a,this.hi<>24-a);if(a<48)return new +aV(0,this.lo<>48-a);return new +aV(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new +aV(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new +aV(this.hi>>a-48,0,0)};aV.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var c=this.hi<<16>>16;if(a<24)return new -aW(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var +aV(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var b=this.hi<<16>>31;if(a<48)return new -aW(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&eC);return new -aW(this.hi<<16>>a-32,b,b)};aW.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&fg;this.lo=this.lo<<1&fg};aW.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&fg;this.mi=(this.mi>>>1|this.hi<<23)&fg;this.hi=this.hi>>>1};aW.prototype.udivmod=function(e){var +aV(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&et);return new +aV(this.hi<<16>>a-32,b,b)};aV.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&fe;this.lo=this.lo<<1&fe};aV.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&fe;this.mi=(this.mi>>>1|this.hi<<23)&fe;this.hi=this.hi>>>1};aV.prototype.udivmod=function(e){var c=0,b=this.copy(),a=e.copy(),d=new -aW(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};aW.prototype.div=function(a){var -b=this;if(a.isZero())jY();var -d=b.hi^a.hi;if(b.hi&eP)b=b.neg();if(a.hi&eP)a=a.neg();var -c=b.udivmod(a).quotient;if(d&eP)c=c.neg();return c};aW.prototype.mod=function(b){var -a=this;if(b.isZero())jY();var -d=a.hi;if(a.hi&eP)a=a.neg();if(b.hi&eP)b=b.neg();var -c=a.udivmod(b).modulus;if(d&eP)c=c.neg();return c};aW.prototype.toInt=function(){return this.lo|this.mi<<24};aW.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};aW.prototype.toArray=function(){return[this.hi>>8,this.hi&dD,this.mi>>16,this.mi>>8&dD,this.mi&dD,this.lo>>16,this.lo>>8&dD,this.lo&dD]};aW.prototype.lo32=function(){return this.lo|(this.mi&dD)<<24};aW.prototype.hi32=function(){return this.mi>>>8&eC|this.hi<<16};function -gf(b,c,a){return new -aW(b,c,a)}function -op(a){if(!isFinite(a)){if(isNaN(a))return gf(1,0,u1);return a>0?gf(0,0,u1):gf(0,0,0xfff0)}var -f=a==0&&1/a==-Infinity?eP:a>=0?0:eP;if(f)a=-a;var -b=I6(a)+d$;if(b<=0){b=0;a/=Math.pow(2,-z5)}else{a/=Math.pow(2,b-od);if(a<16){a*=2;b-=1}if(b==0)a/=2}var +aV(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};aV.prototype.div=function(a){var +b=this;if(a.isZero())kB();var +d=b.hi^a.hi;if(b.hi&eJ)b=b.neg();if(a.hi&eJ)a=a.neg();var +c=b.udivmod(a).quotient;if(d&eJ)c=c.neg();return c};aV.prototype.mod=function(b){var +a=this;if(b.isZero())kB();var +d=a.hi;if(a.hi&eJ)a=a.neg();if(b.hi&eJ)b=b.neg();var +c=a.udivmod(b).modulus;if(d&eJ)c=c.neg();return c};aV.prototype.toInt=function(){return this.lo|this.mi<<24};aV.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};aV.prototype.toArray=function(){return[this.hi>>8,this.hi&dw,this.mi>>16,this.mi>>8&dw,this.mi&dw,this.lo>>16,this.lo>>8&dw,this.lo&dw]};aV.prototype.lo32=function(){return this.lo|(this.mi&dw)<<24};aV.prototype.hi32=function(){return this.mi>>>8&et|this.hi<<16};function +f_(b,c,a){return new +aV(b,c,a)}function +qb(a){if(!isFinite(a)){if(isNaN(a))return f_(1,0,wj);return a>0?f_(0,0,wj):f_(0,0,0xfff0)}var +f=a==0&&1/a==-Infinity?eJ:a>=0?0:eJ;if(f)a=-a;var +b=Hm(a)+d6;if(b<=0){b=0;a/=Math.pow(2,-Ap)}else{a/=Math.pow(2,b-p1);if(a<16){a*=2;b-=1}if(b==0)a/=2}var d=Math.pow(2,24),c=a|0;a=(a-c)*d;var e=a|0;a=(a-e)*d;var -g=a|0;c=c&q_|f|b<<4;return gf(g,e,c)}function -jU(a){return a.toArray()}function -IG(c,b,g){c.write(32,b.dims.length);c.write(32,b.kind|b.layout<<8);if(b.caml_custom==nr)for(var -a=0;a>4;if(c==qd)return(f|g|b&q_)==0?b&eP?-Infinity:Infinity:NaN;var -e=Math.pow(2,-24),a=(f*e+g)*e+(b&q_);if(c>0){a+=16;a*=Math.pow(2,c-od)}else -a*=Math.pow(2,-z5);if(b&eP)a=-a;return a}function -rV(b){var +a(e*GV(c));return d}function +tt(c){var +a=new(aN.Int32Array)(1);a[0]=c;var +b=new(aN.Float32Array)(a.buffer);return b[0]}function +lY(a){return new +aV(a[7]<<0|a[6]<<8|a[5]<<16,a[4]<<0|a[3]<<8|a[2]<<16,a[1]<<0|a[0]<<8)}function +kA(d){var +f=d.lo,g=d.mi,b=d.hi,c=(b&0x7fff)>>4;if(c==rV)return(f|g|b&sM)==0?b&eJ?-Infinity:Infinity:NaN;var +e=Math.pow(2,-24),a=(f*e+g)*e+(b&sM);if(c>0){a+=16;a*=Math.pow(2,c-p1)}else +a*=Math.pow(2,-Ap);if(b&eJ)a=-a;return a}function +tm(b){var d=b.length,c=1;for(var -a=0;a>>24&dD|(a&eC)<<8,a>>>16&eC)}function -r2(a){return a.hi32()}function -r3(a){return a.lo32()}var -bCb=nr;function -gc(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}gc.prototype.caml_custom=bCb;gc.prototype.offset=function(b){var +a=0;a>>24&dw|(a&et)<<8,a>>>16&et)}function +tu(a){return a.hi32()}function +tv(a){return a.lo32()}var +bAT=pg;function +f8(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}f8.prototype.caml_custom=bAT;f8.prototype.offset=function(b){var c=0;if(typeof b==="number")b=[b];if(!(b instanceof -Array))bT("bigarray.js: invalid offset");if(this.dims.length!=b.length)bT("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var -a=0;a=this.dims[a])jQ();c=c*this.dims[a]+b[a]}else +Array))bO("bigarray.js: invalid offset");if(this.dims.length!=b.length)bO("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var +a=0;a=this.dims[a])lV();c=c*this.dims[a]+b[a]}else for(var -a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])jQ();c=c*this.dims[a]+(b[a]-1)}return c};gc.prototype.get=function(a){switch(this.kind){case +a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])lV();c=c*this.dims[a]+(b[a]-1)}return c};f8.prototype.get=function(a){switch(this.kind){case 7:var -d=this.data[a*2+0],b=this.data[a*2+1];return IS(d,b);case +d=this.data[a*2+0],b=this.data[a*2+1];return G9(d,b);case 10:case 11:var -e=this.data[a*2+0],c=this.data[a*2+1];return[fd,e,c];default:return this.data[a]}};gc.prototype.set=function(a,b){switch(this.kind){case -7:this.data[a*2+0]=r3(b);this.data[a*2+1]=r2(b);break;case +e=this.data[a*2+0],c=this.data[a*2+1];return[fb,e,c];default:return this.data[a]}};f8.prototype.set=function(a,b){switch(this.kind){case +7:this.data[a*2+0]=tv(b);this.data[a*2+1]=tu(b);break;case 10:case -11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};gc.prototype.fill=function(b){switch(this.kind){case +11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};f8.prototype.fill=function(b){switch(this.kind){case 7:var -c=r3(b),e=r2(b);if(c==e)this.data.fill(c);else +c=tv(b),e=tu(b);if(c==e)this.data.fill(c);else for(var a=0;ab.data[a])return 1}break}return 0};function -im(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}im.prototype=new -gc();im.prototype.offset=function(a){if(typeof +ky(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}ky.prototype=new +f8();ky.prototype.offset=function(a){if(typeof a!=="number")if(a instanceof Array&&a.length==1)a=a[0];else -bT("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])jQ();return a};im.prototype.get=function(a){return this.data[a]};im.prototype.set=function(a,b){this.data[a]=b;return 0};im.prototype.fill=function(a){this.data.fill(a);return 0};function -IC(c,d,a,b){var -e=IE(c);if(rV(a)*e!=b.length)bT("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new -im(c,d,a,b);return new -gc(c,d,a,b)}function -dv(b){if(!bN.Failure)bN.Failure=[bg,a(qi),-3];r8(bN.Failure,b)}function -ID(b,v,r){var -i=b.read32s();if(i<0||i>16)dv("input_value: wrong number of bigarray dimensions");var -p=b.read32s(),j=p&dD,o=p>>8&1,h=[];if(r==nr)for(var +bO("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])lV();return a};ky.prototype.get=function(a){return this.data[a]};ky.prototype.set=function(a,b){this.data[a]=b;return 0};ky.prototype.fill=function(a){this.data.fill(a);return 0};function +GT(c,d,a,b){var +e=GV(c);if(tm(a)*e!=b.length)bO("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new +ky(c,d,a,b);return new +f8(c,d,a,b)}function +dp(b){if(!bK.Failure)bK.Failure=[bh,a(r0),-3];tz(bK.Failure,b)}function +GU(b,v,r){var +i=b.read32s();if(i<0||i>16)dp("input_value: wrong number of bigarray dimensions");var +p=b.read32s(),j=p&dw,o=p>>8&1,h=[];if(r==pg)for(var a=0;a>>32-15;a=iq(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function -bCn(a,b){a=en(a,r3(b));a=en(a,r2(b));return a}function -IR(a,b){return bCn(a,op(b))}function -IF(c){var -b=rV(c.dims),d=0;switch(c.kind){case +l=kA(lY(e));g.set(a,[fb,m,l])}break}v[0]=(4+i)*4;return GT(j,o,h,f)}function +GS(a,b,c){return a.compare(b,c)}function +gb(a,b){return Math.imul(a,b)}function +cx(b,a){a=gb(a,0xcc9e2d51|0);a=a<<15|a>>>32-15;a=gb(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function +bA8(a,b){a=cx(a,tv(b));a=cx(a,tu(b));return a}function +tq(a,b){return bA8(a,qb(b))}function +GW(c){var +b=tm(c.dims),d=0;switch(c.kind){case 2:case 3:case -12:if(b>fT)b=fT;var -e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=en(d,e)}e=0;switch(b&3){case +12:if(b>eA)b=eA;var +e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=cx(d,e)}e=0;switch(b&3){case 3:e=c.data[a+2]<<16;case 2:e|=c.data[a+1]<<8;case -1:e|=c.data[a+0];d=en(d,e)}break;case +1:e|=c.data[a+0];d=cx(d,e)}break;case 4:case -5:if(b>el)b=el;var -e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=en(d,e)}if((b&1)!=0)d=en(d,c.data[a]);break;case +5:if(b>ee)b=ee;var +e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=cx(d,e)}if((b&1)!=0)d=cx(d,c.data[a]);break;case 6:if(b>64)b=64;for(var -a=0;a64)b=64;for(var -a=0;a32)b=32;b*=2;for(var -a=0;a64)b=64;for(var -a=0;a32)b=32;for(var -a=0;a0?b(c,f,e):b(f,c,e);if(e&&a!=a)return d;if(+a!=+a)return+a;if((a|0)!=0)return a|0}return d}function -os(a){return a +l0(a){return a instanceof -e0}function -r4(a){return os(a)}function -IL(a){if(typeof -a==="number")return b9;else -if(os(a))return i4;else -if(r4(a))return 1252;else +eY}function +qe(a){return l0(a)}function +G2(a){if(typeof +a==="number")return b6;else +if(l0(a))return lb;else +if(qe(a))return 1252;else if(a instanceof -Array&&a[0]===a[0]>>>0&&a[0]<=lY){var -b=a[0]|0;return b==fd?0:b}else +Array&&a[0]===a[0]>>>0&&a[0]<=nY){var +b=a[0]|0;return b==fb?0:b}else if(a instanceof -String)return vw;else +String)return wJ;else if(typeof -a=="string")return vw;else +a=="string")return wJ;else if(a instanceof -Number)return b9;else -if(a&&a.caml_custom)return qX;else +Number)return b6;else +if(a&&a.caml_custom)return sA;else if(a&&a.compare)return 1256;else if(typeof a=="function")return 1247;else if(typeof -a=="symbol")return 1251;return py}function -gg(a,b){if(ab.c?1:0}function -r_(a,b){return II(a,b)}function -ol(a,b,d){var +a=="symbol")return 1251;return 1001}function +f$(a,b){if(ab.c?1:0}function +tB(a,b){return GZ(a,b)}function +p9(a,b,d){var e=[];for(;;){if(!(d&&a===b)){var -f=IL(a);if(f==k1){a=a[1];continue}var -g=IL(b);if(g==k1){b=b[1];continue}if(f!==g){if(f==b9){if(g==qX)return IK(a,b,-1,d);return-1}if(g==b9){if(f==qX)return IK(b,a,1,d);return 1}return fb)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case 1251:if(a!==b){if(!d)return NaN;return 1}break;case 1252:var -a=eo(a),b=eo(b);if(a!==b){if(ab)return 1}break;case +a=dY(a),b=dY(b);if(a!==b){if(ab)return 1}break;case 12520:var a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case 246:case 254:default:if(a.length!=b.length)return a.length1)e.push(a,b,1);break}}if(e.length==0)return 0;var h=e.pop();b=e.pop();a=e.pop();if(h+10)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=_;a.t=2}else{a.c=ir(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)om(a);for(b+=c;c0&&b===b)return b;a=a.replace(/_/g,_);b=+a;if(a.length>0&&b===b||/^[+-]?nan$/i.test(a))return b;var +g(a,b){return+(p9(a,b,false)==0)}function +bA0(a,c,b,d){if(b>0)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=_;a.t=2}else{a.c=kC(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)p_(a);for(b+=c;c0&&b===b)return b;a=a.replace(/_/g,_);b=+a;if(a.length>0&&b===b||/^[+-]?nan$/i.test(a))return b;var c=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(a);if(c){var -d=c[3].replace(/0+$/,_),f=parseInt(c[1]+c[2]+d,16),e=(c[5]|0)-4*d.length;b=f*Math.pow(2,e);return b}if(/^\+?inf(inity)?$/i.test(a))return Infinity;if(/^-inf(inity)?$/i.test(a))return-Infinity;dv("float_of_string")}function -r7(d){d=eo(d);var -e=d.length;if(e>31)bT("format_int: format too long");var -a={justify:fk,signstyle:cP,filler:fl,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var +d=c[3].replace(/0+$/,_),f=parseInt(c[1]+c[2]+d,16),e=(c[5]|0)-4*d.length;b=f*Math.pow(2,e);return b}if(/^\+?inf(inity)?$/i.test(a))return Infinity;if(/^-inf(inity)?$/i.test(a))return-Infinity;dp("float_of_string")}function +ty(d){d=dY(d);var +e=d.length;if(e>31)bO("format_int: format too long");var +a={justify:fh,signstyle:cM,filler:fi,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var c=0;c=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function -rY(b,f){if(b.uppercase)f=f.toUpperCase();var -e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=cP))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var -c=_;if(b.justify==fk&&b.filler==fl)for(var -d=e;d=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function +to(b,f){if(b.uppercase)f=f.toUpperCase();var +e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=cM))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var +c=_;if(b.justify==fh&&b.filler==fi)for(var +d=e;d20){c-=20;a/=Math.pow(10,c);a+=new -Array(c+1).join(p);if(b>0)a=a+eB+new -Array(b+1).join(p);return a}else +c=parseInt(a.toString().split(fh)[1]);if(c>20){c-=20;a/=Math.pow(10,c);a+=new +Array(c+1).join(q);if(b>0)a=a+es+new +Array(b+1).join(q);return a}else return a.toFixed(b)}}var -a,e=r7(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=qj;e.filler=fl}else -if(!isFinite(c)){a=Ig;e.filler=fl}else +a,e=ty(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=r1;e.filler=fi}else +if(!isFinite(c)){a=GF;e.filler=fi}else switch(e.conv){case"e":var -a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==n$)a=a.slice(0,b-1)+p+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var -h=a.indexOf(n$),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var -b=h-1;while(a.charAt(b)==p)b--;if(a.charAt(b)==eB)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==n$)a=a.slice(0,b-1)+p+a.slice(b-1);break}else{var +a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==pX)a=a.slice(0,b-1)+q+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var +h=a.indexOf(pX),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var +b=h-1;while(a.charAt(b)==q)b--;if(a.charAt(b)==es)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==pX)a=a.slice(0,b-1)+q+a.slice(b-1);break}else{var f=d;if(g<0){f-=g+1;a=c.toFixed(f)}else while(a=c.toFixed(f),a.length>d+1)f--;if(f){var -b=a.length-1;while(a.charAt(b)==p)b--;if(a.charAt(b)==eB)b--;a=a.slice(0,b+1)}}break}return rY(e,a)}function -on(e,c){if(eo(e)==rM)return a(_+c);var -b=r7(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else +b=a.length-1;while(a.charAt(b)==q)b--;if(a.charAt(b)==es)b--;a=a.slice(0,b+1)}}break}return to(e,a)}function +p$(e,c){if(dY(e)==te)return a(_+c);var +b=ty(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else c>>>=0;var -d=c.toString(b.base);if(b.prec>=0){b.filler=fl;var -f=b.prec-d.length;if(f>0)d=ir(f,p)+d}return rY(b,d)}var -IZ=0;function -da(){return IZ++}function -bCk(a){if(a==0||!isFinite(a))return[0,a,0];var +d=c.toString(b.base);if(b.prec>=0){b.filler=fi;var +f=b.prec-d.length;if(f>0)d=kC(f,q)+d}return to(b,d)}var +Hf=0;function +c0(){return Hf++}function +bA2(a){if(a==0||!isFinite(a))return[0,a,0];var c=a<0;if(c)a=-a;var -b=Math.max(-d$,I6(a)+1);a*=Math.pow(2,-b);while(a=1){a*=Am;b++}if(c)a=-a;return[0,a,b]}function -ep(a){return a.toUtf16()}function -jZ(){return typeof -a0.process!=="undefined"&&typeof -a0.process.versions!=="undefined"&&typeof -a0.process.versions.node!=="undefined"}function -bCZ(){function -a(a){if(a.charAt(0)===eG)return[_,a.substring(1)];return}function +b=Math.max(-d6,Hm(a)+1);a*=Math.pow(2,-b);while(a=1){a*=AE;b++}if(c)a=-a;return[0,a,b]}function +eg(a){return a.toUtf16()}function +l5(){return typeof +aN.process!=="undefined"&&typeof +aN.process.versions!=="undefined"&&typeof +aN.process.versions.node!=="undefined"}function +bBP(){function +a(a){if(a.charAt(0)===ey)return[_,a.substring(1)];return}function b(c){var g=/^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/,a=g.exec(c),b=a[1]||_,e=Boolean(b&&b.charAt(1)!==":");if(Boolean(a[2]||e)){var -d=a[1]||_,f=a[2]||_;return[d,c.substring(d.length+f.length)]}return}return jZ()&&a0.process&&a0.process.platform?a0.process.platform==="win32"?b:a:a}var -sf=bCZ();function -I4(a){return a.slice(-1)!==eG?a+eG:a}if(jZ()&&a0.process&&a0.process.cwd)var -jS=a0.process.cwd().replace(/\\/g,eG);else +d=a[1]||_,f=a[2]||_;return[d,c.substring(d.length+f.length)]}return}return l5()&&aN.process&&aN.process.platform?aN.process.platform==="win32"?b:a:a}var +tH=bBP();function +Hk(a){return a.slice(-1)!==ey?a+ey:a}if(l5()&&aN.process&&aN.process.cwd)var +lX=aN.process.cwd().replace(/\\/g,ey);else var -jS="/static";jS=I4(jS);function -bCC(a){a=ep(a);if(!sf(a))a=jS+a;var -e=sf(a),d=e[1].split(eG),b=[];for(var +lX="/static";lX=Hk(lX);function +bBm(a){a=eg(a);if(!tH(a))a=lX+a;var +e=tH(a),d=e[1].split(ey),b=[];for(var c=0;c1)b.pop();break;case".":break;default:b.push(d[c]);break}b.unshift(e[0]);b.orig=a;return b}function -bCQ(e){for(var -f=_,b=f,a,h,c=0,g=e.length;cqS){b.substr(0,1);f+=b;b=_;f+=e.slice(c,d)}else -b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(d_|a&hc)}else -if(a<0xd800||a>=Gd)b+=String.fromCharCode(vk|a>>12,d_|a>>6&hc,d_|a&hc);else -if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))Gd)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(EG|a>>18,d_|a>>12&hc,d_|a>>6&hc,d_|a&hc)}if(b.length>jd){b.substr(0,1);f+=b;b=_}}return f+b}function -bCf(a){var -b=9;if(!I7(a))b=8,a=bCQ(a);return new -e0(b,a,a.length)}function -aT(a){return bCf(a)}var -bDe=["E2BIG","EACCES","EAGAIN","EBADF","EBUSY","ECHILD","EDEADLK","EDOM",u7,"EFAULT","EFBIG","EINTR","EINVAL","EIO","EISDIR","EMFILE","EMLINK","ENAMETOOLONG","ENFILE","ENODEV",rO,"ENOEXEC","ENOLCK","ENOMEM","ENOSPC","ENOSYS",rw,HE,"ENOTTY","ENXIO","EPERM","EPIPE","ERANGE","EROFS","ESPIPE","ESRCH","EXDEV","EWOULDBLOCK","EINPROGRESS","EALREADY","ENOTSOCK","EDESTADDRREQ","EMSGSIZE","EPROTOTYPE","ENOPROTOOPT","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EOPNOTSUPP","EPFNOSUPPORT","EAFNOSUPPORT","EADDRINUSE","EADDRNOTAVAIL","ENETDOWN","ENETUNREACH","ENETRESET","ECONNABORTED","ECONNRESET","ENOBUFS","EISCONN","ENOTCONN","ESHUTDOWN","ETOOMANYREFS","ETIMEDOUT","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ELOOP","EOVERFLOW"];function -gP(d,f,e,a){var -b=bDe.indexOf(d);if(b<0){if(a==null)a=-9999;b=[0,a]}var +bBG(e){for(var +f=_,b=f,a,h,c=0,g=e.length;csw){b.substr(0,1);f+=b;b=_;f+=e.slice(c,d)}else +b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(dJ|a&hB)}else +if(a<0xd800||a>=E0)b+=String.fromCharCode(wC|a>>12,dJ|a>>6&hB,dJ|a&hB);else +if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))E0)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(DQ|a>>18,dJ|a>>12&hB,dJ|a>>6&hB,dJ|a&hB)}if(b.length>lm){b.substr(0,1);f+=b;b=_}}return f+b}function +bAX(a){var +b=9;if(!Hn(a))b=8,a=bBG(a);return new +eY(b,a,a.length)}function +aT(a){return bAX(a)}var +bB6=["E2BIG","EACCES","EAGAIN","EBADF","EBUSY","ECHILD","EDEADLK","EDOM",wo,"EFAULT","EFBIG","EINTR","EINVAL","EIO","EISDIR","EMFILE","EMLINK","ENAMETOOLONG","ENFILE","ENODEV",tg,"ENOEXEC","ENOLCK","ENOMEM","ENOSPC","ENOSYS",s5,F9,"ENOTTY","ENXIO","EPERM","EPIPE","ERANGE","EROFS","ESPIPE","ESRCH","EXDEV","EWOULDBLOCK","EINPROGRESS","EALREADY","ENOTSOCK","EDESTADDRREQ","EMSGSIZE","EPROTOTYPE","ENOPROTOOPT","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EOPNOTSUPP","EPFNOSUPPORT","EAFNOSUPPORT","EADDRINUSE","EADDRNOTAVAIL","ENETDOWN","ENETUNREACH","ENETRESET","ECONNABORTED","ECONNRESET","ENOBUFS","EISCONN","ENOTCONN","ESHUTDOWN","ETOOMANYREFS","ETIMEDOUT","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ELOOP","EOVERFLOW"];function +g1(d,f,e,a){var +b=bB6.indexOf(d);if(b<0){if(a==null)a=-9999;b=[0,a]}var c=[b,aT(f||_),aT(e||_)];return c}var -IX={};function -e3(a){return IX[a]}function -gO(b,a){throw[0,b].concat(a)}function -bCe(a){return new -e0(4,a,a.length)}function -bp(a){r8(bN.Sys_error,a)}function -bCJ(a){bp(a+mG)}function -bCd(b,a){if(a>>>0>=b.l)IH();return jR(b,a)}function -dw(a){return a.l}function -Iz(){}function -cw(a){this.data=a}cw.prototype=new -Iz();cw.prototype.truncate=function(a){var -b=this.data;this.data=ce(a|0);gd(b,0,this.data,0,a)};cw.prototype.length=function(){return dw(this.data)};cw.prototype.write=function(b,d,g,a){var +Hd={};function +e2(a){return Hd[a]}function +g0(b,a){throw[0,b].concat(a)}function +bAW(a){return new +eY(4,a,a.length)}function +bu(a){tz(bK.Sys_error,a)}function +bBx(a){bu(a+oz)}function +bAV(b,a){if(a>>>0>=b.l)GY();return lW(b,a)}function +dq(a){return a.l}function +GQ(){}function +cv(a){this.data=a}cv.prototype=new +GQ();cv.prototype.truncate=function(a){var +b=this.data;this.data=bX(a|0);f9(b,0,this.data,0,a)};cv.prototype.length=function(){return dq(this.data)};cv.prototype.write=function(b,d,g,a){var c=this.length();if(b+a>=c){var -e=ce(b+a),f=this.data;this.data=e;gd(f,0,this.data,0,c)}em(d,g,this.data,b,a);return 0};cw.prototype.read=function(c,a,d,b){var -e=this.length();gd(this.data,c,a,d,b);return 0};cw.prototype.read_one=function(a){return bCd(this.data,a)};cw.prototype.close=function(){};cw.prototype.constructor=cw;function -c4(b,a){this.content={};this.root=b;this.lookupFun=a}c4.prototype.nm=function(a){return this.root+a};c4.prototype.create_dir_if_needed=function(d){var -c=d.split(eG),b=_;for(var -a=0;a>1|1;if(h=0)}function -bCo(a,c,k){if(!isFinite(a)){if(isNaN(a))return aT(qj);return aT(a>0?H8:"-infinity")}var +a=c}qg[d]=a+1;return h==b[a+1]?b[a]:0}function +G8(a,b){return+(p9(a,b,false)>=0)}function +tr(d,b){var +e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b.charCodeAt(a)|b.charCodeAt(a+1)<<8|b.charCodeAt(a+2)<<16|b.charCodeAt(a+3)<<24;d=cx(d,c)}c=0;switch(e&3){case +3:c=b.charCodeAt(a+2)<<16;case +2:c|=b.charCodeAt(a+1)<<8;case +1:c|=b.charCodeAt(a);d=cx(d,c)}d^=e;return d}function +bA9(a,b){return tr(a,dY(b))}function +bA6(d,b){var +e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b[a]|b[a+1]<<8|b[a+2]<<16|b[a+3]<<24;d=cx(d,c)}c=0;switch(e&3){case +3:c=b[a+2]<<16;case +2:c|=b[a+1]<<8;case +1:c|=b[a];d=cx(d,c)}d^=e;return d}function +Ha(a){switch(a.t&6){default:gX(a);case +0:return a.c;case +4:return a.c}}function +bA5(b,c){var +a=Ha(c);return typeof +a==="string"?tr(b,a):bA6(b,a)}function +bA7(a){a^=a>>>16;a=gb(a,0x85ebca6b|0);a^=a>>>13;a=gb(a,0xc2b2ae35|0);a^=a>>>16;return a}function +bA4(j,l,n,m){var +f,g,h,d,c,b,a,e,i;d=l;if(d<0||d>eA)d=eA;c=j;b=n;f=[m];g=0;h=1;while(g0){a=f[g++];if(a&&a.caml_custom){if(kz[a.caml_custom]&&kz[a.caml_custom].hash){var +k=kz[a.caml_custom].hash(a);b=cx(b,k);c--}}else +if(a +instanceof +Array&&a[0]===(a[0]|0))switch(a[0]){case +248:b=cx(b,a[2]);c--;break;case +250:f[--g]=a[1];break;default:var +o=a.length-1<<10|a[0];b=cx(b,o);for(e=1,i=a.length;e=d)break;f[h++]=a[e]}break}else +if(l0(a)){b=bA5(b,a);c--}else +if(qe(a)){b=bA9(b,a);c--}else +if(typeof +a==="string"){b=tr(b,a);c--}else +if(a===(a|0)){b=cx(b,a+a+1);c--}else +if(a===+a){b=tq(b,a);c--}}b=bA7(b);return b&0x3FFFFFFF}function +bA_(a,c,k){if(!isFinite(a)){if(isNaN(a))return aT(r1);return aT(a>0?Gx:"-infinity")}var i=a==0&&1/a==-Infinity?1:a>=0?0:1;if(i)a=-a;var d=0;if(a==0);else if(a<1)while(a<1&&d>-1022){a*=2;d--}else while(a>=2){a/=2;d++}var -j=d<0?_:fk,e=_;if(i)e=cP;else +j=d<0?_:fh,e=_;if(i)e=cM;else switch(k){case -43:e=fk;break;case -32:e=fl;break;default:break}if(c>=0&&c<13){var +43:e=fh;break;case +32:e=fi;break;default:break}if(c>=0&&c<13){var g=Math.pow(2,c*4);a=Math.round(a*g)/g}var b=a.toString(16);if(c>=0){var -h=b.indexOf(eB);if(h<0)b+=eB+ir(c,p);else{var -f=h+1+c;if(b.length>24&fg,a>>31&eC)}function -bCz(a){return a.toInt()}function -bCt(a){return+a.isNeg()}function -bCw(a){return a.neg()}function -bCr(g,c){var -a=r7(g);if(a.signedconv&&bCt(c)){a.sign=-1;c=bCw(c)}var -b=_,h=bCx(a.base),f="0123456789abcdef";do{var -e=c.udivmod(h);c=e.quotient;b=f.charAt(bCz(e.modulus))+b}while(!bCu(c));if(a.prec>=0){a.filler=fl;var -d=a.prec-b.length;if(d>0)b=ir(d,p)+b}return rY(a,b)}function -bCy(a,b){return a.or(b)}function -oq(a){return a.toFloat()}function -bCI(c){var -a=0,e=aL(c),b=10,d=1;if(e>0)switch(d8(c,a)){case +h=b.indexOf(es);if(h<0)b+=es+kC(c,q);else{var +f=h+1+c;if(b.length>24&fe,a>>31&et)}function +bBj(a){return a.toInt()}function +bBd(a){return+a.isNeg()}function +bBg(a){return a.neg()}function +bBb(g,c){var +a=ty(g);if(a.signedconv&&bBd(c)){a.sign=-1;c=bBg(c)}var +b=_,h=bBh(a.base),f="0123456789abcdef";do{var +e=c.udivmod(h);c=e.quotient;b=f.charAt(bBj(e.modulus))+b}while(!bBe(c));if(a.prec>=0){a.filler=fi;var +d=a.prec-b.length;if(d>0)b=kC(d,q)+b}return to(a,b)}function +bBi(a,b){return a.or(b)}function +qc(a){return a.toFloat()}function +bBw(c){var +a=0,e=aK(c),b=10,d=1;if(e>0)switch(d0(c,a)){case 45:a++;d=-1;break;case -43:a++;d=1;break}if(a+10)switch(d8(c,a)){case 66:b=2;a+=2;break;case 117:case 85:a+=2;break}return[a,d,b]}function -I0(a){if(a>=48&&a<=57)return a-48;if(a>=65&&a<=90)return a-55;if(a>=97&&a<=gK)return a-87;return-1}function -or(f){var -h=bCI(f),c=h[0],i=h[1],d=h[2],g=aL(f),j=-1>>>0,e=c=d)dv(lV);var -a=b;for(c++;c=d)break;a=d*a+b;if(a>j)dv(lV)}if(c!=g)dv(lV);a=i*a;if(d==10&&(a|0)!=a)dv(lV);return a|0}function -gh(a){return a.slice(1)}function -gM(c){var +Hg(a){if(a>=48&&a<=57)return a-48;if(a>=65&&a<=90)return a-55;if(a>=97&&a<=gW)return a-87;return-1}function +qd(f){var +h=bBw(f),c=h[0],i=h[1],d=h[2],g=aK(f),j=-1>>>0,e=c=d)dp(nV);var +a=b;for(c++;c=d)break;a=d*a+b;if(a>j)dp(nV)}if(c!=g)dp(nV);a=i*a;if(d==10&&(a|0)!=a)dp(nV);return a|0}function +ga(a){return a.slice(1)}function +gY(c){var d=c.length,b=new Array(d+1);b[0]=0;for(var a=0;a0){var c=new Array(b);for(var -a=0;ad$){a-=d$;b*=Math.pow(2,d$);if(a>d$){a-=d$;b*=Math.pow(2,d$)}}if(a<-d$){a+=d$;b*=Math.pow(2,-d$)}b*=Math.pow(2,a);return b}function -IU(a,b){return+(ol(a,b,false)<0)}function -jV(b){b=eo(b);var +a=0;ad6){a-=d6;b*=Math.pow(2,d6);if(a>d6){a-=d6;b*=Math.pow(2,d6)}}if(a<-d6){a+=d6;b*=Math.pow(2,-d6)}b*=Math.pow(2,a);return b}function +G$(a,b){return+(p9(a,b,false)<0)}function +l1(b){b=dY(b);var d=b.length/2,c=new Array(d);for(var a=0;a>16;return c}function -r5(b,t,a){var -n=2,o=3,r=5,d=6,h=7,g=8,j=9,m=1,l=2,q=3,s=4,p=5;if(!b.lex_default){b.lex_base=jV(b[m]);b.lex_backtrk=jV(b[l]);b.lex_check=jV(b[p]);b.lex_trans=jV(b[s]);b.lex_default=jV(b[q])}var -e,c=t,k=IA(a[n]);if(c>=0){a[h]=a[r]=a[d];a[g]=-1}else +tw(b,t,a){var +n=2,o=3,r=5,d=6,h=7,g=8,j=9,m=1,l=2,q=3,s=4,p=5;if(!b.lex_default){b.lex_base=l1(b[m]);b.lex_backtrk=l1(b[l]);b.lex_check=l1(b[p]);b.lex_trans=l1(b[s]);b.lex_default=l1(b[q])}var +e,c=t,k=GR(a[n]);if(c>=0){a[h]=a[r]=a[d];a[g]=-1}else c=-c-1;for(;;){var f=b.lex_base[c];if(f<0)return-f-1;var i=b.lex_backtrk[c];if(i>=0){a[h]=a[d];a[g]=i}if(a[d]>=a[o])if(a[j]==0)return-c-1;else -e=fT;else{e=k[a[d]];a[d]++}if(b.lex_check[f+e]==c)c=b.lex_trans[f+e];else -c=b.lex_default[c];if(c<0){a[d]=a[h];if(a[g]==-1)dv("lexing: empty token");else +e=eA;else{e=k[a[d]];a[d]++}if(b.lex_check[f+e]==c)c=b.lex_trans[f+e];else +c=b.lex_default[c];if(c<0){a[d]=a[h];if(a[g]==-1)dp("lexing: empty token");else return a[g]}else -if(e==fT)a[j]=0}}function -ou(a,d){if(a<0)jQ();var +if(e==eA)a[j]=0}}function +e0(a,d){if(a<0)lV();var a=a+1|0,b=new Array(a);b[0]=0;for(var c=1;c>>32-b,c)}function +g(c,b,d,e,h,f,g){return a(b&d|~b&e,c,b,h,f,g)}function +h(d,b,e,c,h,f,g){return a(b&c|e&~c,d,b,h,f,g)}function +i(c,b,d,e,h,f,g){return a(b^d^e,c,b,h,f,g)}function +j(c,b,d,e,h,f,g){return a(d^(b|~e),c,b,h,f,g)}function +k(f,n){var +e=n;f[e>>2]|=dJ<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var +k=[0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476];for(e=0;e>8*m&0xFF;return o}return function(i,g,f){var +e=[],h=Ha(i);if(typeof +h==="string"){var +d=h;for(var +a=0;a>2]=d.charCodeAt(b)|d.charCodeAt(b+1)<<8|d.charCodeAt(b+2)<<16|d.charCodeAt(b+3)<<24}for(;a>2]|=d.charCodeAt(a+g)<<8*(a&3)}else{var +c=h;for(var +a=0;a>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return bBD(k(e,f))}}();function +bBo(c,b,a){return bBn(fq(c),b,a)}function +bBp(){return 0}var +e1=new Array();function -gN(c){var -a=e2[c];if(!a.opened)bp("Cannot flush a closed channel");if(!a.buffer||a.buffer==_)return 0;if(a.fd&&bN.fds[a.fd]&&bN.fds[a.fd].output){var -b=bN.fds[a.fd].output;switch(b.length){case +gZ(c){var +a=e1[c];if(!a.opened)bu("Cannot flush a closed channel");if(!a.buffer||a.buffer==_)return 0;if(a.fd&&bK.fds[a.fd]&&bK.fds[a.fd].output){var +b=bK.fds[a.fd].output;switch(b.length){case 2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=_;return 0}function -I2(e,f){var -b=e2[e],d=a(f),c=aL(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function -bCU(a){var -a=sb(a),b=a0;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +Hi(e,f){var +b=e1[e],d=a(f),c=aK(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function +bBK(a){var +a=tD(a),b=aN;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.error&&c.error(a)}}function -bCV(a){var -a=sb(a),b=a0;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +bBL(a){var +a=tD(a),b=aN;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.log&&c.log(a)}}function -oz(c,e,d,a){if(bN.fds===undefined)bN.fds=new +qk(c,e,d,a){if(bK.fds===undefined)bK.fds=new Array();a=a?a:{};var -b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;bN.fds[c]=b;if(!bN.fd_last_idx||c>bN.fd_last_idx)bN.fd_last_idx=c;return c}function -bDf(c,b,g){var +b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;bK.fds[c]=b;if(!bK.fd_last_idx||c>bK.fd_last_idx)bK.fd_last_idx=c;return c}function +bB7(c,b,g){var a={};while(b){switch(b[1]){case 0:a.rdonly=1;break;case 1:a.wronly=1;break;case @@ -733,82 +793,91 @@ a={};while(b){switch(b[1]){case 5:a.excl=1;break;case 6:a.binary=1;break;case 7:a.text=1;break;case -8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)bp(eo(c)+vL);if(a.text&&a.binary)bp(eo(c)+DU);var -d=Jb(c),e=d.device.open(d.rest,a),f=bN.fd_last_idx?bN.fd_last_idx:0;return oz(f+1,I2,e,a)}oz(0,I2,new -cw(ce(0)));oz(1,bCV,new -cw(ce(0)));oz(2,bCU,new -cw(ce(0)));function -bCE(a){var -c=bN.fds[a];if(c.flags.wronly)bp(xV+a+" is writeonly");var -d=null;if(a==0&&jZ()){var -e=require("fs");d=function(){return aT(e.readFileSync(0,us))}}var -b={file:c.file,offset:c.offset,fd:a,opened:true,out:false,refill:d};e2[b.fd]=b;return b.fd}function -IV(c){var -b=bN.fds[c];if(b.flags.rdonly)bp(xV+c+" is readonly");var -a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:_};e2[a.fd]=a;return a.fd}function -bCF(){var +8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)bu(dY(c)+wW);if(a.text&&a.binary)bu(dY(c)+Dd);var +d=Ht(c),e=d.device.open(d.rest,a),f=bK.fd_last_idx?bK.fd_last_idx:0;return qk(f+1,Hi,e,a)}qk(0,Hi,new +cv(bX(0)));qk(1,bBL,new +cv(bX(0)));qk(2,bBK,new +cv(bX(0)));function +bBq(a){var +c=bK.fds[a];if(c.flags.wronly)bu(yC+a+" is writeonly");var +d=null;if(a==0&&l5()){var +e=require("fs");d=function(){return aT(e.readFileSync(0,vW))}}var +b={file:c.file,offset:c.offset,fd:a,opened:true,out:false,refill:d};e1[b.fd]=b;return b.fd}function +Hb(c){var +b=bK.fds[c];if(b.flags.rdonly)bu(yC+c+" is readonly");var +a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:_};e1[a.fd]=a;return a.fd}function +bBr(){var b=0;for(var -a=0;a>>0)return a[0];else -if(os(a))return i4;else -if(r4(a))return i4;else +if(l0(a))return lb;else +if(qe(a))return lb;else if(a instanceof Function||typeof a=="function")return 247;else -if(a&&a.caml_custom)return lY;else -return b9}function -d7(b,c,a){if(a&&a0.toplevelReloc)b=a0.toplevelReloc(a);bN[b+1]=c;if(a)bN[a]=c}function -r9(a,b){IX[eo(a)]=b;return 0}function -bCM(a){a[2]=IZ++;return a}function -bCc(a,b){if(a===b)return 1;a.t&6&&io(a);b.t&6&&io(b);return a.c==b.c?1:0}function -oy(a,b){return bCc(a,b)}function -bCO(){bT(rf)}function -bO(b,a){if(a>>>0>=aL(b))bCO();return d8(b,a)}function -N(a,b){return 1-oy(a,b)}function -bCP(){return 0x7FFFFFFF/4|0}function -bCK(){jX(bN.Not_found)}function -I3(c){var -a=a0,b=ep(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return aT(a.process.env[b]);if(a0.jsoo_static_env&&a0.jsoo_static_env[b])return aT(a0.jsoo_static_env[b]);bCK()}function -sa(a){var +if(a&&a.caml_custom)return nY;else +return b6}function +dZ(b,c,a){if(a&&aN.toplevelReloc)b=aN.toplevelReloc(a);bK[b+1]=c;if(a)bK[a]=c}function +tA(a,b){Hd[dY(a)]=b;return 0}function +bBA(a){a[2]=Hf++;return a}function +bAU(a,b){if(a===b)return 1;a.t&6&&gX(a);b.t&6&&gX(b);return a.c==b.c?1:0}function +qi(a,b){return bAU(a,b)}function +bBC(){bO(sR)}function +by(b,a){if(a>>>0>=aK(b))bBC();return d0(b,a)}function +P(a,b){return 1-qi(a,b)}function +bBE(){return 0x7FFFFFFF/4|0}function +bBy(){l4(bK.Not_found)}function +Hj(c){var +a=aN,b=eg(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return aT(a.process.env[b]);if(aN.jsoo_static_env&&aN.jsoo_static_env[b])return aT(aN.jsoo_static_env[b]);bBy()}function +bBF(){if(aN.crypto)if(typeof +aN.crypto.getRandomValues==="function"){var +a=new(aN.Uint32Array)(1);aN.crypto.getRandomValues(a);return[0,a[0]]}else +if(aN.crypto.randomBytes==="function"){var +b=aN.crypto.randomBytes(4),a=new(aN.Uint32Array)(b);return[0,a[0]]}var +c=new +Date().getTime(),d=c^D5*Math.random();return[0,d]}function +tC(a){var b=1;while(a&&a.joo_tramp){a=a.joo_tramp.apply(null,a.joo_args);b++}return a}function cy(b,a){return{joo_tramp:b,joo_args:a}}function -I1(a){return a}function -m(a){if(a +Hh(a){return a}function +o(a){if(a instanceof -Array)return a;if(a0.RangeError&&a +Array)return a;if(aN.RangeError&&a instanceof -a0.RangeError&&a.message&&a.message.match(/maximum call stack/i))return I1(bN.Stack_overflow);if(a0.InternalError&&a +aN.RangeError&&a.message&&a.message.match(/maximum call stack/i))return Hh(bK.Stack_overflow);if(aN.InternalError&&a instanceof -a0.InternalError&&a.message&&a.message.match(/too much recursion/i))return I1(bN.Stack_overflow);if(a +aN.InternalError&&a.message&&a.message.match(/too much recursion/i))return Hh(bK.Stack_overflow);if(a instanceof -a0.Error&&e3(qW))return[0,e3(qW),a];return[0,bN.Failure,aT(String(a))]}var -ao=function(z){"use strict";var -f=gD,aa=7,s=9007199254740992,H=q(s),M="0123456789abcdefghijklmnopqrstuvwxyz",g=bCT.BigInt,F=typeof +aN.Error&&e2(sz))return[0,e2(sz),a];return[0,bK.Failure,aT(String(a))]}var +au=function(y){"use strict";var +f=gJ,aa=7,s=9007199254740992,H=p(s),M="0123456789abcdefghijklmnopqrstuvwxyz",g=bBJ.BigInt,F=typeof g==="function";function d(a,b,c,f){if(typeof a==="undefined")return d[0];if(typeof b!=="undefined")return+b===10&&!c?e(a):ae(a,b,c,f);return e(a)}function -a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=lQ}a.prototype=Object.create(d.prototype);function -b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=lQ}b.prototype=Object.create(d.prototype);function -c(a){this.value=a;this.caml_custom=lQ}c.prototype=Object.create(d.prototype);function +a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=nQ}a.prototype=Object.create(d.prototype);function +b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=nQ}b.prototype=Object.create(d.prototype);function +c(a){this.value=a;this.caml_custom=nQ}c.prototype=Object.create(d.prototype);function l(a){return-s0)a.push(0);return a.concat(c)}function C(b,c){var a=Math.max(b.length,c.length);if(a<=30)return L(b,c);a=Math.ceil(a/2);var f=b.slice(a),d=b.slice(0,a),i=c.slice(a),h=c.slice(0,a),e=C(d,h),g=C(f,i),k=C(t(d,f),t(h,i)),j=t(t(e,W(w(w(k,e),g),a)),W(g,2*a));m(j);return j}function -aj(a,b){return-(wY*a)-wY*b+0.000015*a*b>0}a.prototype.multiply=function(j){var +aj(a,b){return-(xW*a)-xW*b+0.000015*a*b>0}a.prototype.multiply=function(j){var h=e(j),c=this.value,b=h.value,i=this.sign!==h.sign,g;if(h.isSmall){if(b===0)return d[0];if(b===1)return this;if(b===-1)return this.negate();g=Math.abs(b);if(g=0;d--){j=g-1;if(b[d+h]!==l)j=Math.floor((b[d+h]*g+b[d+h-1])/l);c=0;e=0;m=i.length;for(a=0;a=v){b=b.multiply(j);a-=v-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var a,b=e(d).toJSNumber();if(!X(b))throw new -Error(String(b)+v6);if(b<0)return this.shiftLeft(-b);var +Error(String(b)+w$);if(b<0)return this.shiftLeft(-b);var c=this;while(b>=v){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,j);c=a[1].isNegative()?a[0].prev():a[0];b-=v-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function I(h,a,q){a=e(a);var m=h.isNegative(),p=a.isNegative(),l=m?h.not():h,o=p?a.not():a,b=0,c=0,k=null,n=null,f=[];while(!l.isZero()||!o.isZero()){k=i(l,j);b=k[1].toJSNumber();if(m)b=j-1-b;n=i(o,j);c=n[1].toJSNumber();if(p)c=j-1-c;l=k[0];o=n[0];f.push(q(b,c))}var -g=q(m?1:0,p?1:0)!==0?ao(-1):ao(0);for(var -d=f.length-1;d>=0;d-=1)g=g.multiply(j).add(ao(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return I(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return I(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return I(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var +g=q(m?1:0,p?1:0)!==0?au(-1):au(0);for(var +d=f.length-1;d>=0;d-=1)g=g.multiply(j).add(au(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return I(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return I(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return I(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var G=1<<30,$=(f&-f)*(f&-f)|G;function D(c){var a=c.value,b=typeof a==="number"?a|G:typeof a==="bigint"?a|g(G):a[0]+a[1]*f|$;return b&-b}function Q(b,a){if(a.compareTo(b)<=0){var -f=Q(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:ao(1),e:0}}a.prototype.bitLength=function(){var -a=this;if(a.compareTo(ao(0))<0)a=a.negate().subtract(ao(1));if(a.compareTo(ao(0))===0)return ao(0);return ao(Q(a,ao(2)).e).add(ao(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function +f=Q(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:au(1),e:0}}a.prototype.bitLength=function(){var +a=this;if(a.compareTo(au(0))<0)a=a.negate().subtract(au(1));if(a.compareTo(au(0))===0)return au(0);return au(Q(a,au(2)).e).add(au(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function S(a,b){a=e(a);b=e(b);return a.greater(b)?a:b}function K(a,b){a=e(a);b=e(b);return a.lesser(b)?a:b}function P(a,b){a=e(a).abs();b=e(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var @@ -998,55 +1067,55 @@ c=d[1],f,g;while(a.isEven()&&b.isEven()){f=K(D(a),D(b));a=a.divide(f);b=b.divide ad(a,b){a=e(a).abs();b=e(b).abs();return a.divide(P(a,b)).multiply(b)}function ag(a,b){a=e(a);b=e(b);var g=K(a,b),n=S(a,b),h=n.subtract(g).add(1);if(h.isSmall)return g.add(Math.floor(Math.random()*h));var -j=y(h,f).value,l=[],k=true;for(var +j=x(h,f).value,l=[],k=true;for(var c=0;c=i){if(c===x&&i===1)continue;throw new -Error(c+" is not a valid digit in base "+g+eB)}}g=e(g);var -h=[],j=b[0]===cP;for(a=j?1:0;a=i){if(c===z&&i===1)continue;throw new +Error(c+" is not a valid digit in base "+g+es)}}g=e(g);var +h=[],j=b[0]===cM;for(a=j?1:0;a=0;a--){b=b.add(e[a].times(c));c=c.times(f)}return g?b.negate():b}function -ah(b,a){a=a||M;if(b=0){e=c.divmod(b);c=e.quotient;var d=e.remainder;if(d.isNegative()){d=b.minus(d).abs();c=c.next()}g.push(d.toJSNumber())}g.push(c.toJSNumber());return{value:g.reverse(),isNegative:f}}function Z(d,c,b){var -a=y(d,c);return(a.isNegative?cP:_)+a.value.map(function(a){return ah(a,b)}).join(_)}a.prototype.toArray=function(a){return y(this,a)};b.prototype.toArray=function(a){return y(this,a)};c.prototype.toArray=function(a){return y(this,a)};a.prototype.toString=function(a,f){if(a===z)a=10;if(a!==10)return Z(this,a,f);var +a=x(d,c);return(a.isNegative?cM:_)+a.value.map(function(a){return ah(a,b)}).join(_)}a.prototype.toArray=function(a){return x(this,a)};b.prototype.toArray=function(a){return x(this,a)};c.prototype.toArray=function(a){return x(this,a)};a.prototype.toString=function(a,f){if(a===y)a=10;if(a!==10)return Z(this,a,f);var d=this.value,c=d.length,e=String(d[--c]),h="0000000",b;while(--c>=0){b=String(d[c]);e+=h.slice(b.length)+b}var -g=this.sign?cP:_;return g+e};b.prototype.toString=function(a,b){if(a===z)a=10;if(a!=10)return Z(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function +g=this.sign?cM:_;return g+e};b.prototype.toString=function(a,b){if(a===y)a=10;if(a!=10)return Z(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function V(d){if(l(+d)){var n=+d;if(n===r(n))return F?new c(g(n)):new b(n);throw new -Error(nR+d)}var -s=d[0]===cP;if(s)d=d.slice(1);var +Error(pE+d)}var +s=d[0]===cM;if(s)d=d.slice(1);var h=d.split(/e/i);if(h.length>2)throw new -Error(nR+h.join(n$));if(h.length===2){var -e=h[1];if(e[0]===fk)e=e.slice(1);e=+e;if(e!==r(e)||!l(e))throw new -Error(nR+e+" is not a valid exponent.");var -f=h[0],i=f.indexOf(eB);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new +Error(pE+h.join(pX));if(h.length===2){var +e=h[1];if(e[0]===fh)e=e.slice(1);e=+e;if(e!==r(e)||!l(e))throw new +Error(pE+e+" is not a valid exponent.");var +f=h[0],i=f.indexOf(es);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new Error("Cannot include negative exponent part for integers");f+=new -Array(e+1).join(p);d=f}var +Array(e+1).join(q);d=f}var t=/^([0-9][0-9]*)$/.test(d);if(!t)throw new -Error(nR+d);if(F)return new -c(g(s?cP+d:d));var -q=[],j=d.length,o=aa,k=j-o;while(j>0){q.push(+d.slice(k,j));k-=o;if(k<0)k=0;j-=o}m(q);return new -a(q,s)}function +Error(pE+d);if(F)return new +c(g(s?cM+d:d));var +p=[],j=d.length,o=aa,k=j-o;while(j>0){p.push(+d.slice(k,j));k-=o;if(k<0)k=0;j-=o}m(p);return new +a(p,s)}function af(a){if(F)return new c(g(a));if(l(a)){if(a!==r(a))throw new Error(a+" is not an integer.");return new @@ -1056,281 +1125,295 @@ a==="number")return af(a);if(typeof a==="string")return V(a);if(typeof a==="bigint")return new c(a);return a}for(var -k=0;k0)d[-k]=e(-k)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=S;d.min=K;d.gcd=P;d.lcm=ad;d.isInstance=function(d){return d +k=0;k0)d[-k]=e(-k)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=S;d.min=K;d.gcd=P;d.lcm=ad;d.isInstance=function(d){return d instanceof a||d instanceof b||d instanceof c};d.randBetween=ag;d.fromArray=function(b,a,c){return U(b.map(e),e(a||10),c)};return d}();function -cT(a){var -b=a.toJSNumber()|0;if(a.equals(ao(b)))return b;return a}function -I8(a){return cT(ao(a).abs())}function -I9(a,b){return cT(ao(a).add(ao(b)))}function -eq(a,b){return ao(a).compare(ao(b))}function -it(b,a){a=ao(a);if(a.equals(ao(0)))jY();return cT(ao(b).divide(ao(a)))}function -bDa(b,a){a=ao(a);if(a.equals(ao(0)))jY();return cT(ao(b).mod(a))}function -sc(a,b){return[0,it(a,b),bDa(a,b)]}function -I_(a,b){return it(a,b)}function -bC0(a,b){return ao(a).equals(ao(b))?1:0}function -db(a){return ao(a).compare(ao.zero)}function -se(a,b){return cT(ao(a).subtract(ao(b)))}function -bC1(a,b){var -c=db(a),d=db(b);if(c*d<0)if(!ao(a).mod(ao(b)).equals(ao(0)))return se(it(a,b),ao(1));return it(a,b)}function -bC3(a,b){return cT(ao.gcd(ao(a),ao(b)).abs())}function -bCR(c,e,g){e=ao(e);var +cQ(a){var +b=a.toJSNumber()|0;if(a.equals(au(b)))return b;return a}function +Ho(a){return cQ(au(a).abs())}function +Hp(a,b){return cQ(au(a).add(au(b)))}function +eh(a,b){return au(a).compare(au(b))}function +kE(b,a){a=au(a);if(a.equals(au(0)))kB();return cQ(au(b).divide(au(a)))}function +bB2(b,a){a=au(a);if(a.equals(au(0)))kB();return cQ(au(b).mod(a))}function +tE(a,b){return[0,kE(a,b),bB2(a,b)]}function +Hq(a,b){return kE(a,b)}function +bBQ(a,b){return au(a).equals(au(b))?1:0}function +c9(a){return au(a).compare(au.zero)}function +tG(a,b){return cQ(au(a).subtract(au(b)))}function +bBR(a,b){var +c=c9(a),d=c9(b);if(c*d<0)if(!au(a).mod(au(b)).equals(au(0)))return tG(kE(a,b),au(1));return kE(a,b)}function +bBT(a,b){return cQ(au.gcd(au(a),au(b)).abs())}function +bBH(c,e,g){e=au(e);var a=e.toArray(Math.pow(2,32));c.write(8,a.isNegative?1:0);var f=a.value.length,d=f*4;c.write(32,d);for(var -b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&dD);c.write(8,a.value[b]>>>8&dD);c.write(8,a.value[b]>>>16&dD);c.write(8,a.value[b]>>>24&dD)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function -bCS(b,g){var +b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&dw);c.write(8,a.value[b]>>>8&dw);c.write(8,a.value[b]>>>16&dw);c.write(8,a.value[b]>>>24&dw)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function +bBI(b,g){var e;switch(b.read8u()){case 1:e=true;break;case -0:e=false;break;default:dv("input_value: z (malformed input)")}var -f=b.read32u(),c=ao(0);for(var +0:e=false;break;default:dp("input_value: z (malformed input)")}var +f=b.read32u(),c=au(0);for(var d=0;d>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return cT(c)}function -bC4(d){var -b=ao(d).toArray(Math.pow(2,32)),a=0;for(var -c=0;c>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return cQ(c)}function +bBU(d){var +b=au(d).toArray(Math.pow(2,32)),a=0;for(var +c=0;c=48&&a<=57)return a-48;if(a>=97&&a<=D7)return a-97+10;if(a>=65&&a<=70)return a-65+10}var -d=0;if(a[d]==fk)a=a.substring(1);else -if(a[d]==cP)d++;if(a[d]==rD)bT(Ax);a=a.replace(/_/g,_);if(a==cP||a==_)a=p;for(;d=c)bT(Ax)}return cT(ao(a,c))}function -gQ(d,a,b,c){a=eo(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function -oA(a){a=ao(a);if(!bC2(a))jX(e3(la));var -b=ao(0xffffffff),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=IS(d,c);return e}function -bCB(a){switch(a[2]){case-8:case-11:case-12:return 1;default:return 0}}function -bCj(b){var -a=_;if(b[0]==0){a+=b[1][1];if(b.length==3&&b[2][0]==0&&bCB(b[1]))var +if(e==F5||e=="X")c=16;else +if(e==yn||e=="B")c=2;if(c!=10){a=a.substring(b+1);if(g==-1)a=cM+a}}}}function +h(a){if(a>=48&&a<=57)return a-48;if(a>=97&&a<=Dm)return a-97+10;if(a>=65&&a<=70)return a-65+10}var +d=0;if(a[d]==fh)a=a.substring(1);else +if(a[d]==cM)d++;if(a[d]==s9)bO(AK);a=a.replace(/_/g,_);if(a==cM||a==_)a=q;for(;d=c)bO(AK)}return cQ(au(a,c))}function +g2(d,a,b,c){a=dY(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function +ql(a){a=au(a);if(!bBS(a))l4(e2(nf));var +b=au(D5),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=G9(d,c);return e}function +bBl(a){switch(a[2]){case-8:case-11:case-12:return 1;default:return 0}}function +bA1(b){var +a=_;if(b[0]==0){a+=b[1][1];if(b.length==3&&b[2][0]==0&&bBl(b[1]))var e=b[2],f=1;else var f=2,e=b;a+="(";for(var -d=f;df)a+=gy;var +d=f;df)a+=gA;var c=e[d];if(typeof c=="number")a+=c.toString();else if(c instanceof -e0)a+=lo+c.toString()+lo;else +eY)a+=nq+c.toString()+nq;else if(typeof -c=="string")a+=lo+c.toString()+lo;else -a+=rD}a+=")"}else -if(b[0]==bg)a+=b[1];return a}function -IN(a){if(a +c=="string")a+=nq+c.toString()+nq;else +a+=s9}a+=")"}else +if(b[0]==bh)a+=b[1];return a}function +G4(a){if(a instanceof -Array&&(a[0]==0||a[0]==bg)){var -c=e3(F1);if(c)c(a,false);else{var -d=bCj(a),b=e3(ur);if(b)b(0);a0.console.error(rG+d+va)}}else +Array&&(a[0]==0||a[0]==bh)){var +c=e2(EQ);if(c)c(a,false);else{var +d=bA1(a),b=e2(vV);if(b)b(0);aN.console.error(ta+d+ws)}}else throw a}function -bCN(){var -a=a0;if(a.process&&a.process.on)a.process.on("uncaughtException",function(b,c){IN(b);a.process.exit(2)});else -if(a.addEventListener)a.addEventListener("error",function(a){if(a.error)IN(a.error)})}bCN();function -r(a,b){return a.length==1?a(b):dL(a,[b])}function -az(a,b,c){return a.length==2?a(b,c):dL(a,[b,c])}function -cK(a,b,c,d){return a.length==3?a(b,c,d):dL(a,[b,c,d])}function -ui(a,b,c,d,e){return a.length==4?a(b,c,d,e):dL(a,[b,c,d,e])}function -pw(a,b,c,d,e,f){return a.length==5?a(b,c,d,e,f):dL(a,[b,c,d,e,f])}function -bB9(a,b,c,d,e,f,g){return a.length==6?a(b,c,d,e,f,g):dL(a,[b,c,d,e,f,g])}function -bB8(a,b,c,d,e,f,g,h){return a.length==7?a(b,c,d,e,f,g,h):dL(a,[b,c,d,e,f,g,h])}bCl();var -oC=[bg,a(E1),-1],sk=[bg,a(F3),-2],j0=[bg,a(qi),-3],sg=[bg,a(zP),-4],oD=[bg,a(wK),-6],dx=[bg,a(He),-7],si=[bg,a(vp),-8],sj=[bg,a(Ad),-9],bn=[bg,a(HW),-11],sl=[bg,a(FF),Fi],bB6=[4,0,0,0,[12,45,[4,0,0,0,0]]],oP=[0,[11,a('File "'),[2,0,[11,a('", line '),[4,0,0,0,[11,a(zk),[4,0,0,0,[12,45,[4,0,0,0,[11,a(": "),[2,0,0]]]]]]]]]],a('File "%s", line %d, characters %d-%d: %s')],bB7=[4,0,0,0,[12,46,0]],uh=[0,a("eventsManager"),a("computeAllocationsFamiliales"),a("computeAidesAuLogement")];d7(11,sl,FF);d7(10,bn,HW);d7(9,[bg,a(C8),-10],C8);d7(8,sj,Ad);d7(7,si,vp);d7(6,dx,He);d7(5,oD,wK);d7(4,[bg,a(yQ),-5],yQ);d7(3,sg,zP);d7(2,j0,qi);d7(1,sk,F3);d7(0,oC,E1);var -Jp=a("output_substring"),Jm=a("%.12g"),Jl=a(eB),Jj=a(v8),Jk=a(z4),Jc=a("Stdlib.Exit"),Je=gf(0,0,G9),Jf=gf(0,0,65520),Jg=gf(1,0,G9),Js=a(ww),Jt=a("\\'"),Ju=a(vz),Jv=a(A8),Jw=a(Cc),Jx=a(yV),Jr=a("Char.chr"),JA=a("nth"),JB=a("List.nth"),Jz=a("tl"),Jy=a("hd"),JE=a("String.blit / Bytes.blit_string"),JD=a("Bytes.blit"),JC=a("String.sub / Bytes.sub"),JJ=a("String.contains_from / Bytes.contains_from"),JG=a(_),JF=a("String.concat"),JL=a("Array.blit"),JQ=a("Map.remove_min_elt"),JR=[0,0,0,0],JS=[0,a("map.ml"),xu,10],JT=[0,0,0],JM=a(ld),JN=a(ld),JO=a(ld),JP=a(ld),JU=a("Stdlib.Queue.Empty"),J0=a("Buffer.add_substring/add_subbytes"),JZ=a("Buffer.add: cannot grow buffer"),JY=[0,a(Au),93,2],JX=[0,a(Au),94,2],JW=a("Buffer.sub"),J9=a("%c"),J_=a("%s"),J$=a(x5),Ka=a(Cx),Kb=a(zN),Kc=a(FW),Kd=a("%f"),Ke=a("%B"),Kf=a("%{"),Kg=a("%}"),Kh=a("%("),Ki=a("%)"),Kj=a(qe),Kk=a("%t"),Kl=a("%?"),Km=a("%r"),Kn=a("%_r"),Ko=[0,a(cl),gB,23],Kz=[0,a(cl),pL,21],Kr=[0,a(cl),815,21],KA=[0,a(cl),p4,21],Ks=[0,a(cl),819,21],KB=[0,a(cl),qP,19],Kt=[0,a(cl),qq,19],KC=[0,a(cl),826,22],Ku=[0,a(cl),827,22],KD=[0,a(cl),qC,30],Kv=[0,a(cl),832,30],Kx=[0,a(cl),p$,26],Kp=[0,a(cl),q1,26],Ky=[0,a(cl),846,28],Kq=[0,a(cl),jf,28],Kw=[0,a(cl),gH,23],LG=a(vS),LE=[0,a(cl),rL,4],LF=a("Printf: bad conversion %["),LH=[0,a(cl),1626,39],LI=[0,a(cl),qT,31],LJ=[0,a(cl),1650,31],LK=a("Printf: bad conversion %_"),LL=a(vN),LM=a(v4),LN=a(vN),LO=a(v4),LS=[0,[11,a("invalid box description "),[3,0,0]],a("invalid box description %S")],LQ=a(_),LR=[0,0,4],LT=a(_),LU=a(xB),LV=a("h"),LW=a("hov"),LX=a("hv"),LY=a("v"),LC=a(qj),LA=a("neg_infinity"),LB=a(H8),Lz=a(eB),Lu=[0,cR],Li=a("%+nd"),Lj=a("% nd"),Ll=a("%+ni"),Lm=a("% ni"),Ln=a("%nx"),Lo=a("%#nx"),Lp=a("%nX"),Lq=a("%#nX"),Lr=a("%no"),Ls=a("%#no"),Lh=a("%nd"),Lk=a(zN),Lt=a("%nu"),K7=a("%+ld"),K8=a("% ld"),K_=a("%+li"),K$=a("% li"),La=a("%lx"),Lb=a("%#lx"),Lc=a("%lX"),Ld=a("%#lX"),Le=a("%lo"),Lf=a("%#lo"),K6=a("%ld"),K9=a(Cx),Lg=a("%lu"),KU=a("%+Ld"),KV=a("% Ld"),KX=a("%+Li"),KY=a("% Li"),KZ=a("%Lx"),K0=a("%#Lx"),K1=a("%LX"),K2=a("%#LX"),K3=a("%Lo"),K4=a("%#Lo"),KT=a("%Ld"),KW=a(FW),K5=a("%Lu"),KH=a("%+d"),KI=a("% d"),KK=a("%+i"),KL=a("% i"),KM=a("%x"),KN=a("%#x"),KO=a("%X"),KP=a("%#X"),KQ=a("%o"),KR=a("%#o"),KG=a(rM),KJ=a(x5),KS=a(vS),J1=a("@]"),J2=a("@}"),J3=a("@?"),J4=a("@\n"),J5=a("@."),J6=a("@@"),J7=a("@%"),J8=a("@"),KE=a("CamlinternalFormat.Type_mismatch"),L2=a(_),L3=[0,[11,a(gy),[2,0,[2,0,0]]],a(", %s%s")],Mq=[0,[11,a(rG),[2,0,[12,10,0]]],a(HN)],Mr=[0,[11,a("Fatal error in uncaught exception handler: exception "),[2,0,[12,10,0]]],a("Fatal error in uncaught exception handler: exception %s\n")],Mp=a("Fatal error: out of memory in uncaught exception handler"),Mn=[0,[11,a(rG),[2,0,[12,10,0]]],a(HN)],Mj=[0,[2,0,[12,10,0]],a("%s\n")],Mb=a("Raised at"),Mc=a("Re-raised at"),Md=a("Raised by primitive operation at"),Me=a("Called from"),Mf=a(" (inlined)"),Mh=a(_),Mg=[0,[2,0,[12,32,[2,0,[11,a(' in file "'),[2,0,[12,34,[2,0,[11,a(", line "),[4,0,0,0,[11,a(zk),bB6]]]]]]]]]],a('%s %s in file "%s"%s, line %d, characters %d-%d')],Mi=[0,[2,0,[11,a(" unknown location"),0]],a("%s unknown location")],L8=a("Out of memory"),L9=a("Stack overflow"),L_=a("Pattern matching failed"),L$=a("Assertion failed"),Ma=a("Undefined recursive module"),L4=[0,[12,40,[2,0,[2,0,[12,41,0]]]],a("(%s%s)")],L5=a(_),L6=a(_),L7=[0,[12,40,[2,0,[12,41,0]]],a("(%s)")],L1=[0,[4,0,0,0,0],a(rM)],LZ=[0,[3,0,0],a("%S")],L0=a(rD),Mk=[0,a(_),a("(Cannot print locations:\n bytecode executable program file not found)"),a("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"),a("(Cannot print locations:\n bytecode executable program file has wrong magic number)"),a("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")],bB4=a("OCAMLRUNPARAM"),bB2=a("CAMLRUNPARAM"),Ms=a(_),MR=[3,0,3],MS=a(eB),MM=a(mx),MN=a("<\/"),MO=a(_),MI=a(mx),MJ=a(ra),MK=a(_),MG=a("\n"),MC=a(_),MD=a(_),ME=a(_),MF=a(_),MB=[0,a(_)],Mx=a(_),My=a(_),Mz=a(_),MA=a(_),Mv=[0,a(_),0,a(_)],Mu=a(_),Mt=a("Stdlib.Format.String_tag"),M3=a(_),M_=[0,a("lib/dates.ml"),226,2],M9=[0,[4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]],a("%04d-%02d-%02d")],M7=[0,[12,91,[4,0,0,0,[11,a(" years, "),[4,0,0,0,[11,a(" months, "),[4,0,0,0,[11,a(" days]"),0]]]]]]],a("[%d years, %d months, %d days]")],M4=a("Dates_calc.Dates.InvalidDate"),M5=a("Dates_calc.Dates.AmbiguousComputation"),Nd=gf(1,0,0),M$=a("Z.Overflow"),Na=a(la),Nh=a(_),Ni=a("+inf"),Nj=a("-inf"),Nk=a(Ig),Nl=a("undef"),Nn=[0,a("q.ml"),486,25],Nm=a("Q.of_string: invalid digit"),Nf=a(xb),Ne=a(xb),NW=[0,a(rb),72,32],NT=[0,a(rb),72,32],NS=a(_),NO=a("NaN value not allowed in standard JSON"),NP=[0,[8,[0,0,3],0,[0,16],0],a(x8)],NR=[0,[8,[0,0,3],0,[0,17],0],a(ET)],NQ=a(zh),NM=a("Infinity value not allowed in standard JSON"),NN=a("-Infinity value not allowed in standard JSON"),NI=a("NaN"),NJ=[0,[8,[0,0,3],0,[0,16],0],a(x8)],NL=[0,[8,[0,0,3],0,[0,17],0],a(ET)],NK=a(zh),NG=a("Infinity"),NH=a("-Infinity"),NE=a(v8),NF=a(z4),ND=a("null"),Nx=a(vz),Ny=a(A8),Nz=a(Cc),NA=a("\\f"),NB=a(yV),NC=a('\\"'),Nw=a(ww),Nv=[0,[11,a("src="),[3,0,[11,a(" start="),[4,3,0,0,[11,a(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]],a("src=%S start=%i len=%i\n%!")],Nt=a("\\u00"),Nq=[0,a(rb),72,32],No=a("Yojson.Json_error"),Ns=[0,a(p1),a(qh),a(qt),a(q8),a(qD),a(_),a(_),a(_),a(_),a(_),a(_)],NV=[0,a(p1),a(qh),a(qt),a(q8),a(qD),a(_),a(_),a(_),a(_),a(_),a(_)],NY=[0,a(p1),a(qh),a(qt),a(q8),a(qD),a(_),a(_),a(_),a(_),a(_),a(_)],OR=a("unreachable due to the [is_subscope_call] test"),OT=a("unreachable due to the [is_subscope_input_var_def] test"),OU=a("]"),OV=a("["),OW=a(" ]): expected variable definition (function output), found: "),OX=a(gy),OY=a(uP),OZ=a(" ]): expected variable definition (function output), found: end of tokens"),O0=a(gy),O1=a(uP),OS=a("Unexpected event: "),O3=a("Missing function output variable definition."),O2=a("Invalid start of function call."),OQ=a(af),OP=a(ag),O4=[0,[11,a("An error occurred while parsing raw events: "),[2,0,[12,10,0]]],a("An error occurred while parsing raw events: %s\n")],OF=a(yq),OG=a(gy),OH=[0,[11,a(BT),0],a(BT)],OI=a(yq),OJ=a(gy),OK=[0,[11,a(G3),0],a(G3)],OL=a(gy),OM=[0,[11,a("VariableDefinition([ "),[2,0,[11,a(" ], "),[2,0,[12,41,0]]]]],a("VariableDefinition([ %s ], %s)")],ON=[0,[11,a(wi),0],a(wi)],Op=[0,cL,a("VarComputation")],Oq=[0,cL,a("FunCall")],Or=a(D1),Os=a("inputs"),Ot=a(yv),Ou=[0,cL,a("SubScopeCall")],Ov=a("fun_calls"),Ow=a("value"),Ox=a(yv),Oy=a("pos"),Oz=a(ag),OA=a(D1),OB=a(af),OC=a("fun_name"),Oe=[0,ck,[0,[0,cL,a("Unit")],0]],Of=[0,ck,[0,[0,cL,a("Unembeddable")],0]],Og=[0,cL,a("Bool")],Oh=[0,cL,a("Money")],Oi=[0,cL,a("Integer")],Oj=[0,cL,a("Decimal")],Ok=[0,cL,a("Date")],Ol=[0,cL,a("Duration")],Om=[0,cL,a("Enum")],On=[0,cL,a("Struct")],Oo=[0,cL,a("Array")],Od=[0,[15,0],a(qe)],Oc=[0,[15,0],a(qe)],N0=a("law_headings"),N1=a("end_column"),N2=a("end_line"),N3=a("start_column"),N4=a("start_line"),N5=a("filename"),N6=a("Runtime_ocaml.Runtime.EmptyError"),N7=a("Runtime_ocaml.Runtime.AssertionFailed"),N8=a("Runtime_ocaml.Runtime.ConflictError"),N9=a("Runtime_ocaml.Runtime.UncomparableDurations"),N$=a("Runtime_ocaml.Runtime.ImpossibleDate"),Ob=a("Runtime_ocaml.Runtime.NoValueProvided"),O5=a("Jsoo_runtime.Error.Exn"),O6=a(qW),Pm=[0,[2,0,[11,a(" in file "),[2,0,[11,a(", position "),[4,0,0,0,[12,58,[4,0,0,0,[11,a("--"),[4,0,0,0,[12,58,bB7]]]]]]]]]],a("%s in file %s, position %d:%d--%d:%d.")],Pn=a("No rule applies in the given context to give a value to the variable"),Po=a("A conflict happened between two rules giving a value to the variable"),Pp=a("A failure happened in the assertion"),Pf=a("Begin call"),Pg=a("End call"),Ph=a("Variable definition"),Pi=a("Decision taken"),Pd=a(_),Pb=a("date_of_jsoo: invalid date"),O$=[0,a(yg),a(CS),a(GN)],Pa=[0,a(yg),a(GN),a(CS)],abB=[0,a(be),89,14,89,29,[0,a(bF),[0,a(bf),0]]],abu=[0,a(be),du,18,du,64,[0,a(bF),[0,a(bf),0]]],abv=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abt=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abp=[0,a(be),86,14,86,53,[0,a(bF),[0,a(bf),0]]],abl=[0,a(be),85,14,85,50,[0,a(bF),[0,a(bf),0]]],abh=[0,a(be),88,14,88,46,[0,a(bF),[0,a(bf),0]]],abd=[0,a(be),87,14,87,54,[0,a(bF),[0,a(bf),0]]],aa_=[0,a(be),96,18,96,72,[0,a(bF),[0,a(bf),0]]],aa$=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],aa9=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],aa4=[0,a(be),92,18,92,67,[0,a(bF),[0,a(bf),0]]],aa5=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],aa3=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],aaZ=[0,a(be),bj,14,bj,30,[0,a("Article L131-1"),[0,a(bF),[0,a(bf),0]]]],aaW=[0,0],aaX=[1,0],aaY=[2,0],aa0=[0,a(be),75,11,75,27,[0,a(bF),[0,a(bf),0]]],aaV=[0,a(be),75,11,75,27,[0,a(bF),[0,a(bf),0]]],aa1=[0,a(eg),[0,a("enfants_\xc3\xa0_charge"),0]],aa6=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],aa7=[0,a(eg),[0,a("allocations_familiales.personne_charge_effective_permanente_est_parent"),0]],aa2=[0,a(I),85,10,85,57,[0,a(J),[0,a(H),[0,a(B),0]]]],aba=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abb=[0,a(eg),[0,a("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"),0]],aa8=[0,a(I),86,10,86,62,[0,a(J),[0,a(H),[0,a(B),0]]]],abe=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abf=[0,a(eg),[0,a("allocations_familiales.ressources_m\xc3\xa9nage"),0]],abc=[0,a(I),87,10,87,27,[0,a(J),[0,a(H),[0,a(B),0]]]],abi=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abj=[0,a(eg),[0,a("allocations_familiales.r\xc3\xa9sidence"),0]],abg=[0,a(I),88,10,88,19,[0,a(J),[0,a(H),[0,a(B),0]]]],abm=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abn=[0,a(eg),[0,a("allocations_familiales.date_courante"),0]],abk=[0,a(I),91,10,91,23,[0,a(J),[0,a(H),[0,a(B),0]]]],abq=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abr=[0,a(eg),[0,a("allocations_familiales.enfants_\xc3\xa0_charge"),0]],abo=[0,a(I),94,10,94,26,[0,a(J),[0,a(H),[0,a(B),0]]]],abw=[0,a(be),76,3,76,25,[0,a(bF),[0,a(bf),0]]],abx=[0,a(eg),[0,a("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"),0]],abs=[0,a(I),pO,10,pO,54,[0,a(J),[0,a(H),[0,a(B),0]]]],aby=[0,a(eg),[0,a(vg),[0,a(T),0]]],abz=[0,a(eg),[0,a(vg),[0,a(T),0]]],abC=[0,a(be),79,10,79,25,[0,a(bF),[0,a(bf),0]]],abA=[0,a(be),79,10,79,25,[0,a(bF),[0,a(bf),0]]],abD=[0,a(eg),[0,a("i_montant_vers\xc3\xa9"),0]],aaQ=[0,a(be),44,14,44,27,[0,a(f3),[0,a(bf),0]]],aaP=a(p),aaL=[0,a(bm),Fl,14,Fl,62,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],aaG=[0,a(T),[0,a(jK),[0,a(af),0]]],aaH=[0,a(T),[0,a(jK),0]],aaI=[0,a(T),[0,a(jK),[0,a(ag),0]]],aaJ=[0,a(T),[0,a(jK),0]],aaK=a(p),aaC=[0,a(bm),nu,14,nu,61,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],aay=[0,a(be),38,14,38,38,[0,a(f3),[0,a(bf),0]]],aat=[0,a(T),[0,a(i2),[0,a(af),0]]],aau=[0,a(T),[0,a(i2),0]],aav=[0,a(T),[0,a(i2),[0,a(ag),0]]],aaw=[0,a(T),[0,a(i2),0]],aas=a(p),aax=a(p),aao=[0,a(be),36,14,36,32,[0,a(f3),[0,a(bf),0]]],aan=a(p),aaj=[0,a(dX),lh,5,lh,43,[0,a("Article R521-4"),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],$_=[0,a(T),[0,a(fm),[0,a(af),0]]],$$=[0,a(T),[0,a(fm),0]],aaa=[0,a(T),[0,a(fm),[0,a(ag),0]]],aab=[0,a(T),[0,a(fm),0]],aac=a(ey),aah=a(i6),aai=a(b7),aad=[0,a(T),[0,a(iX),[0,a(af),0]]],aae=[0,a(T),[0,a(iX),0]],aaf=[0,a(T),[0,a(iX),[0,a(ag),0]]],aag=[0,a(T),[0,a(iX),0]],aak=[0,a(I),el,11,el,49,[0,a(J),[0,a(H),[0,a(B),0]]]],$9=[0,a(I),el,11,el,49,[0,a(J),[0,a(H),[0,a(B),0]]]],$6=[0,a(dX),cv,14,cv,46,[0,a(n5),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],$Z=a(cQ),$0=[0,a(bm),pP,5,qE,42,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],$W=a(cQ),$X=a(ey),$Y=a(cQ),$1=[0,a(I),eX,11,eX,52,[0,a(J),[0,a(H),[0,a(B),0]]]],$T=a(cQ),$U=[0,a(bm),277,5,D_,41,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],$Q=a(cQ),$R=a(ey),$S=a(cQ),$V=[0,a(I),eX,11,eX,52,[0,a(J),[0,a(H),[0,a(B),0]]]],$2=[0,a(I),eX,11,eX,52,[0,a(J),[0,a(H),[0,a(B),0]]]],$P=[0,a(bm),mk,14,mk,55,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],$O=a(p),$D=[0,a(T),[0,a(bK),[0,a(af),0]]],$E=[0,a(T),[0,a(bK),0]],$F=[0,a(T),[0,a(bK),[0,a(ag),0]]],$G=[0,a(T),[0,a(bK),0]],$H=a(x),$I=[0,a(bm),pC,5,rl,57,[0,a(je),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(a8),[0,a(ac),0]]]]]]],$C=a("0.0369"),$J=[0,a(I),cE,11,cE,37,[0,a(J),[0,a(H),[0,a(B),0]]]],$v=[0,a(T),[0,a(bK),[0,a(af),0]]],$w=[0,a(T),[0,a(bK),0]],$x=[0,a(T),[0,a(bK),[0,a(ag),0]]],$y=[0,a(T),[0,a(bK),0]],$z=a(x),$A=[0,a(bm),388,5,391,58,[0,a(je),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(a8),[0,a(ac),0]]]]]]],$u=a("0.0567"),$B=[0,a(I),cE,11,cE,37,[0,a(J),[0,a(H),[0,a(B),0]]]],$K=[0,a(I),cE,11,cE,37,[0,a(J),[0,a(H),[0,a(B),0]]]],$t=[0,a(bm),22,14,22,40,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],$p=[0,a(T),[0,a(i3),[0,a(af),0]]],$q=[0,a(T),[0,a(i3),0]],$r=[0,a(T),[0,a(i3),[0,a(ag),0]]],$s=[0,a(T),[0,a(i3),0]],$L=[0,a(I),cE,11,cE,37,[0,a(J),[0,a(H),[0,a(B),0]]]],$o=[0,a(I),cE,11,cE,37,[0,a(J),[0,a(H),[0,a(B),0]]]],$i=a(x),$j=[0,a(bm),355,5,356,69,[0,a(je),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(a8),[0,a(ac),0]]]]]]],$k=[0,a(I),dW,11,dW,31,[0,a(J),[0,a(H),[0,a(B),0]]]],$f=[8,0],$g=[0,a(aZ),uy,24,uy,44,[0,a(cN),[0,a(a$),[0,a(ba),0]]]],$h=[0,a(I),dW,11,dW,31,[0,a(J),[0,a(H),[0,a(B),0]]]],$l=[0,a(I),dW,11,dW,31,[0,a(J),[0,a(H),[0,a(B),0]]]],$e=[0,a(bm),18,14,18,34,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],$a=[0,a(bm),yf,14,yf,39,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],_7=[0,a(T),[0,a(i9),[0,a(af),0]]],_8=[0,a(T),[0,a(i9),0]],_9=[0,a(T),[0,a(i9),[0,a(ag),0]]],__=[0,a(T),[0,a(i9),0]],_$=a(x),_6=a(p),_X=[0,a(T),[0,a(bK),[0,a(af),0]]],_Y=[0,a(T),[0,a(bK),0]],_Z=[0,a(T),[0,a(bK),[0,a(ag),0]]],_0=[0,a(T),[0,a(bK),0]],_1=[0,a(bm),60,5,60,38,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],_W=a(qM),_2=[0,a(I),c1,11,c1,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_Q=[0,a(T),[0,a(bK),[0,a(af),0]]],_R=[0,a(T),[0,a(bK),0]],_S=[0,a(T),[0,a(bK),[0,a(ag),0]]],_T=[0,a(T),[0,a(bK),0]],_U=[0,a(bm),hf,5,hf,38,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],_P=a(Dp),_V=[0,a(I),c1,11,c1,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_J=[0,a(T),[0,a(bK),[0,a(af),0]]],_K=[0,a(T),[0,a(bK),0]],_L=[0,a(T),[0,a(bK),[0,a(ag),0]]],_M=[0,a(T),[0,a(bK),0]],_N=[0,a(bm),Gg,5,Gg,38,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],_I=a(DO),_O=[0,a(I),c1,11,c1,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_C=[0,a(T),[0,a(bK),[0,a(af),0]]],_D=[0,a(T),[0,a(bK),0]],_E=[0,a(T),[0,a(bK),[0,a(ag),0]]],_F=[0,a(T),[0,a(bK),0]],_G=[0,a(be),27,5,27,44,[0,a(f3),[0,a(bf),0]]],_B=a(p),_H=[0,a(I),c1,11,c1,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_3=[0,a(I),c1,11,c1,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_A=[0,a(I),c1,11,c1,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_x=[0,a(dX),el,14,el,41,[0,a(n5),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],_v=a(b7),_w=a(b7),_n=[8,0],_o=[0,a(aZ),HR,5,HR,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],_k=a(x),_l=a(vK),_m=a(p),_p=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_h=[8,0],_i=[0,a(aZ),Ip,5,Ip,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],_e=a(x),_f=a("0.2379"),_g=a(p),_j=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_b=[8,0],_c=[0,a(aZ),fR,5,fR,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Z_=a(x),Z$=a("0.2437"),_a=a(p),_d=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Z7=[8,0],Z8=[0,a(aZ),Ak,5,Ak,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Z4=a(x),Z5=a("0.2496"),Z6=a(p),Z9=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Z1=[8,0],Z2=[0,a(aZ),rl,5,rl,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],ZY=a(x),ZZ=a("0.2555"),Z0=a(p),Z3=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],ZV=[8,0],ZW=[0,a(aZ),uF,5,uF,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],ZS=a(x),ZT=a("0.2613"),ZU=a(p),ZX=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],ZP=[8,0],ZQ=[0,a(aZ),ll,5,ll,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],ZM=a(x),ZN=a("0.2672"),ZO=a(p),ZR=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],ZJ=[8,0],ZK=[0,a(aZ),fM,5,fM,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],ZG=a(x),ZH=a("0.2804"),ZI=a(p),ZL=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],ZD=[8,0],ZE=[0,a(aZ),fW,5,fW,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],ZA=a(x),ZB=a("0.2936"),ZC=a(p),ZF=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Zx=[8,0],Zy=[0,a(aZ),xj,5,xj,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Zu=a(x),Zv=a("0.3068"),Zw=a(p),Zz=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_q=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Zs=[8,0],Zt=[0,a(aZ),qR,14,qR,50,[0,a(cN),[0,a(a$),[0,a(ba),0]]]],Zp=a(x),Zq=a(rP),Zr=a(p),_r=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Zm=[0,a(bm),38,14,38,50,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Zj=a(x),Zk=a(rP),Zl=a(p),Zn=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Zh=[0,a(bm),79,14,79,50,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Ze=a(x),Zf=a(qM),Zg=a(p),Zi=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Zc=[0,a(bm),hC,14,hC,50,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Y$=a(x),Za=a(Dp),Zb=a(p),Zd=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Zo=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Y6=[0,a(bm),43,14,43,59,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Y2=a(U),Y3=a(U),Y4=a("0.41"),Y5=a(p),Y7=[0,a(I),dF,11,dF,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Y0=[0,a(bm),84,14,84,59,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],YW=a(U),YX=a(U),YY=a("0.205"),YZ=a(p),Y1=[0,a(I),dF,11,dF,56,[0,a(J),[0,a(H),[0,a(B),0]]]],YU=[0,a(bm),gK,14,gK,59,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],YQ=a(U),YR=a(U),YS=a("0.1025"),YT=a(p),YV=[0,a(I),dF,11,dF,56,[0,a(J),[0,a(H),[0,a(B),0]]]],YL=[0,a(bm),mF,5,mF,43,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],YK=a("0.20234"),YM=[0,a(I),ex,11,ex,47,[0,a(J),[0,a(H),[0,a(B),0]]]],YI=[0,a(bm),234,5,Aa,46,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],YH=a("0.10117"),YJ=[0,a(I),ex,11,ex,47,[0,a(J),[0,a(H),[0,a(B),0]]]],YF=[0,a(bm),bg,5,bg,43,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],YE=a("0.05059"),YG=[0,a(I),ex,11,ex,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Yx=a(cQ),Yy=[0,a(bm),p5,5,166,68,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Yu=a(cQ),Yv=a(ey),Yw=a(cQ),Yz=[0,a(I),eK,11,eK,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Yr=a(cQ),Ys=[0,a(bm),174,5,rk,68,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Yo=a(cQ),Yp=a(ey),Yq=a(cQ),Yt=[0,a(I),eK,11,eK,31,[0,a(J),[0,a(H),[0,a(B),0]]]],YA=[0,a(I),eK,11,eK,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Yn=[0,a(bm),ik,14,ik,34,[0,a(cZ),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Ym=a(p),YB=[0,a(I),eK,11,eK,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Yl=[0,a(I),eK,11,eK,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Yc=[0,a(T),[0,a(eV),[0,a(af),0]]],Yd=[0,a(T),[0,a(eV),0]],Ye=[0,a(T),[0,a(eV),[0,a(ag),0]]],Yf=[0,a(T),[0,a(eV),0]],Yg=[0,a(bZ),hB,5,318,21,[0,a(AL),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],Yh=[0,a(I),cv,11,cv,34,[0,a(J),[0,a(H),[0,a(B),0]]]],X5=[0,a(T),[0,a(jF),[0,a(af),0]]],X6=[0,a(T),[0,a(jF),0]],X7=[0,a(T),[0,a(jF),[0,a(ag),0]]],X8=[0,a(T),[0,a(jF),0]],X9=[0,a(T),[0,a(eV),[0,a(af),0]]],X_=[0,a(T),[0,a(eV),0]],X$=[0,a(T),[0,a(eV),[0,a(ag),0]]],Ya=[0,a(T),[0,a(eV),0]],Yb=[0,a(bZ),fq,5,c8,21,[0,a(AL),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],Yi=[0,a(I),cv,11,cv,34,[0,a(J),[0,a(H),[0,a(B),0]]]],X4=[0,a(I),cv,11,cv,34,[0,a(J),[0,a(H),[0,a(B),0]]]],Yj=[0,a(I),cv,11,cv,34,[0,a(J),[0,a(H),[0,a(B),0]]]],X3=[0,a(I),cv,11,cv,34,[0,a(J),[0,a(H),[0,a(B),0]]]],XU=[8,0],XV=a(x),XW=[0,a(aZ),lJ,6,lJ,71,[0,a(cN),[0,a(a$),[0,a(ba),0]]]],XX=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],XS=a(x),XT=[0,a(bZ),ri,5,410,72,[0,a(rc),[0,a(eY),[0,a(i7),[0,a(d3),[0,a(ad),[0,a(ac),0]]]]]]],XY=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],XZ=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],XQ=a(U),XR=[0,a(bZ),hf,5,hf,70,[0,a(Iy),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],X0=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],XP=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],XH=[8,0],XI=[0,a(aZ),251,5,i4,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],XE=a(p),XF=a("0.145"),XG=a(p),XJ=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],XB=[8,0],XC=[0,a(aZ),z9,5,261,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Xy=a(p),Xz=a("0.1393"),XA=a(p),XD=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Xv=[8,0],Xw=[0,a(aZ),qE,5,ws,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Xs=a(p),Xt=a("0.1335"),Xu=a(p),Xx=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Xp=[8,0],Xq=[0,a(aZ),278,5,D_,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Xm=a(p),Xn=a("0.1278"),Xo=a(p),Xr=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Xj=[8,0],Xk=[0,a(aZ),gF,5,fi,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Xg=a(p),Xh=a("0.122"),Xi=a(p),Xl=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Xd=[8,0],Xe=[0,a(aZ),d9,5,ek,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Xa=a(p),Xb=a("0.1163"),Xc=a(p),Xf=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],W9=[8,0],W_=[0,a(aZ),jO,5,qF,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],W6=a(p),W7=a("0.1105"),W8=a(p),W$=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],W3=[8,0],W4=[0,a(aZ),ei,5,hB,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],W0=a(p),W1=a("0.0976"),W2=a(p),W5=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],WX=[8,0],WY=[0,a(aZ),323,5,fo,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],WU=a(p),WV=a("0.0847"),WW=a(p),WZ=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],WR=[8,0],WS=[0,a(aZ),ut,5,333,53,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],WO=a(p),WP=a("0.0717"),WQ=a(p),WT=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],WL=[8,0],WM=[0,a(aZ),zJ,5,zJ,49,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],WI=a(p),WJ=a("5728"),WK=a(p),WN=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],XK=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],WG=[8,0],WH=[0,a(aZ),m1,14,m1,49,[0,a(cN),[0,a(a$),[0,a(ba),0]]]],WD=a(p),WE=a(vV),WF=a(p),XL=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],WA=a(x),WB=[0,a(bm),dG,5,dm,71,[0,a(je),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(a8),[0,a(ac),0]]]]]]],Wz=a(vV),WC=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Wy=[0,a(bm),lM,29,lM,64,[0,a(je),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(a8),[0,a(ac),0]]]]]]],Wx=a(p),Wt=[0,a(dX),hi,14,hi,34,[0,a(n5),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],Wm=[0,a(T),[0,a(fm),[0,a(af),0]]],Wn=[0,a(T),[0,a(fm),0]],Wo=[0,a(T),[0,a(fm),[0,a(ag),0]]],Wp=[0,a(T),[0,a(fm),0]],Wq=a(ey),Wr=a(i6),Ws=a(b7),Wl=a(b7),Wh=[0,a(dX),AB,14,AB,34,[0,a(n5),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],Wa=[8,0],Wb=[0,a(aZ),g$,5,g$,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],V9=a(U),V_=a(DL),V$=a(p),Wc=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],V6=[8,0],V7=[0,a(aZ),D8,5,D8,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],V3=a(U),V4=a("0.0539"),V5=a(p),V8=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],V0=[8,0],V1=[0,a(aZ),yu,5,yu,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],VX=a(U),VY=a("0.0615"),VZ=a(p),V2=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],VU=[8,0],VV=[0,a(aZ),eD,5,eD,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],VR=a(U),VS=a("0.069"),VT=a(p),VW=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],VO=[8,0],VP=[0,a(aZ),DN,5,DN,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],VL=a(U),VM=a("0.0766"),VN=a(p),VQ=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],VI=[8,0],VJ=[0,a(aZ),l1,5,l1,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],VF=a(U),VG=a("0.0842"),VH=a(p),VK=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],VC=[8,0],VD=[0,a(aZ),wo,5,wo,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Vz=a(U),VA=a("0.0918"),VB=a(p),VE=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Vw=[8,0],Vx=[0,a(aZ),vx,5,vx,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Vt=a(U),Vu=a("0.1089"),Vv=a(p),Vy=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Vq=[8,0],Vr=[0,a(aZ),ia,5,ia,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Vn=a(U),Vo=a("0.1259"),Vp=a(p),Vs=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Vk=[8,0],Vl=[0,a(aZ),f2,5,f2,69,[0,a(bl),[0,a(a$),[0,a(ba),0]]]],Vh=a(U),Vi=a("0.143"),Vj=a(p),Vm=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Wd=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Vg=[0,a(aZ),me,14,me,59,[0,a(cN),[0,a(a$),[0,a(ba),0]]]],Vd=a(U),Ve=a(qM),Vf=a(p),U$=[0,a(aZ),hT,14,hT,67,[0,a(cN),[0,a(a$),[0,a(ba),0]]]],U7=a(aa),U8=a(aa),U9=a(DL),U_=a(p),U0=a(x),U1=[0,a(bZ),423,6,424,72,[0,a(rc),[0,a(eY),[0,a(i7),[0,a(d3),[0,a(ad),[0,a(ac),0]]]]]]],U2=[0,a(I),dB,11,dB,35,[0,a(J),[0,a(H),[0,a(B),0]]]],UV=[0,a(ct),[0,a(hV),[0,a(af),0]]],UW=[0,a(ct),[0,a(hV),0]],UX=[0,a(ct),[0,a(hV),[0,a(ag),0]]],UY=[0,a(ct),[0,a(hV),0]],UZ=[0,a(bZ),ju,5,c1,59,[0,a(Iy),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],U3=[0,a(I),dB,11,dB,35,[0,a(J),[0,a(H),[0,a(B),0]]]],UU=[0,a(I),dB,11,dB,35,[0,a(J),[0,a(H),[0,a(B),0]]]],U4=[0,a(I),dB,11,dB,35,[0,a(J),[0,a(H),[0,a(B),0]]]],UT=[0,a(I),dB,11,dB,35,[0,a(J),[0,a(H),[0,a(B),0]]]],UN=a(x),UO=[0,a(bZ),pF,5,q9,71,[0,a(rc),[0,a(eY),[0,a(i7),[0,a(d3),[0,a(ad),[0,a(ac),0]]]]]]],UP=[0,a(I),d0,11,d0,34,[0,a(J),[0,a(H),[0,a(B),0]]]],UM=[0,a(be),30,9,30,32,[0,a(f3),[0,a(bf),0]]],UQ=[0,a(I),d0,11,d0,34,[0,a(J),[0,a(H),[0,a(B),0]]]],UL=[0,a(I),d0,11,d0,34,[0,a(J),[0,a(H),[0,a(B),0]]]],UF=[0,a(aZ),23,5,23,69,[0,a(Id),[0,a(f6),0]]],UD=a(GP),UE=a("5628600"),UG=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],UB=[0,a(aZ),56,5,56,69,[0,a(uN),[0,a(f6),0]]],Uz=a(HT),UA=a("5684900"),UC=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],Ux=[0,a(aZ),89,5,89,69,[0,a(wv),[0,a(f6),0]]],Uv=a(G0),Uw=a("5775900"),Uy=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],Ut=[0,a(aZ),bj,5,bj,69,[0,a(cH),[0,a(Ew),[0,a(f6),0]]]],Ur=a(vX),Us=a("5827900"),Uu=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],UH=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],Uq=[0,a(bm),ds,14,ds,30,[0,a(E5),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],Uo=a(Bt),Up=a("5595000"),Ui=[0,a(aZ),30,5,30,69,[0,a(Id),[0,a(f6),0]]],Ug=a(GP),Uh=a("7877000"),Uj=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],Ue=[0,a(aZ),63,5,63,69,[0,a(uN),[0,a(f6),0]]],Uc=a(HT),Ud=a("7955800"),Uf=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],Ua=[0,a(aZ),96,5,96,69,[0,a(wv),[0,a(f6),0]]],T_=a(G0),T$=a("8083100"),Ub=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],T8=[0,a(aZ),d0,5,d0,69,[0,a(cH),[0,a(Ew),[0,a(f6),0]]]],T6=a(vX),T7=a("8155800"),T9=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],Uk=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],T5=[0,a(bm),ii,14,ii,31,[0,a(E5),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],T3=a(Bt),T4=a("7830000"),TZ=[0,a(be),33,14,33,36,[0,a(f3),[0,a(bf),0]]],T0=[0,a(I),mN,11,mN,33,[0,a(J),[0,a(H),[0,a(B),0]]]],TY=[0,a(I),mN,11,mN,33,[0,a(J),[0,a(H),[0,a(B),0]]]],TV=[0,a(bZ),75,14,75,64,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],TR=[0,a(ct),[0,a(dk),[0,a(af),0]]],TS=[0,a(ct),[0,a(dk),0]],TT=[0,a(ct),[0,a(dk),[0,a(ag),0]]],TU=[0,a(ct),[0,a(dk),0]],TM=[0,a(dX),83,19,83,69,[0,a(mP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],TN=[0,a(I),eZ,11,eZ,38,[0,a(J),[0,a(H),[0,a(B),0]]]],TL=[0,a(dX),56,14,56,41,[0,a(mP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],TO=[0,a(I),eZ,11,eZ,38,[0,a(J),[0,a(H),[0,a(B),0]]]],TK=[0,a(I),eZ,11,eZ,38,[0,a(J),[0,a(H),[0,a(B),0]]]],TF=[0,a(be),32,14,32,40,[0,a(f3),[0,a(bf),0]]],Tz=[0,a(I),uG,14,uG,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Tv=[0,a(I),Is,14,Is,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Tu=[1,0],Tq=[0,a(I),lg,14,lg,50,[0,a(J),[0,a(H),[0,a(B),0]]]],Tk=[0,a(I),lJ,14,lJ,32,[0,a(J),[0,a(H),[0,a(B),0]]]],Te=[0,a(dX),64,14,64,44,[0,a(mP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],Td=a(aa),S$=[0,a(bm),eN,14,eN,35,[0,a(fP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(a8),[0,a(ac),0]]]]]]],S_=a(aa),S5=[0,a(bZ),qx,5,z9,56,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],S4=[1,0],S6=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],SZ=[0,a(bZ),ws,5,271,48,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SY=[0,0],S0=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],SX=[0,a(bZ),HQ,5,HQ,70,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SW=[0,0],S1=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],SV=[0,a(bZ),Eq,5,Eq,69,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SU=[0,0],S2=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],ST=[0,a(bZ),nu,5,nu,60,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SS=[0,0],S3=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],S7=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],SR=[0,a(I),98,11,98,20,[0,a(J),[0,a(H),[0,a(B),0]]]],SN=[0,a(bZ),Dz,5,Dz,70,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SM=[1,0],SO=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],SK=[0,a(bZ),fd,5,lY,56,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SJ=[2,0],SL=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],SF=[0,a(bZ),264,5,265,48,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SE=[0,0],SG=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],SD=[0,a(bZ),yl,5,yl,69,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SC=[0,0],SH=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],SB=[0,a(bZ),AT,5,AT,60,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],SA=[0,0],SI=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],SP=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],Sz=[0,a(I),97,11,97,26,[0,a(J),[0,a(H),[0,a(B),0]]]],SQ=[0,a(T),[0,a(fm),0]],S8=[0,a(T),[0,a("versement"),0]],Ta=[0,a(I),ns,11,ns,32,[0,a(J),[0,a(H),[0,a(B),0]]]],S9=[0,a(I),ns,11,ns,32,[0,a(J),[0,a(H),[0,a(B),0]]]],Tb=[0,a(T),[0,a("nombre_enfants_l521_1"),0]],Tf=[0,a(I),nn,11,nn,41,[0,a(J),[0,a(H),[0,a(B),0]]]],Tc=[0,a(I),nn,11,nn,41,[0,a(J),[0,a(H),[0,a(B),0]]]],Tg=[0,a(T),[0,a("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]],Th=[0,a(T),[0,a(wF),[0,a(ql),0]]],Ti=[0,a(T),[0,a(wF),[0,a(ql),0]]],Tl=[0,a(I),hi,3,hi,7,[0,a(J),[0,a(H),[0,a(B),0]]]],Tm=[0,a(T),[0,a("bmaf.date_courante"),0]],Tj=[0,a(eb),5,10,5,23,[0,a(bX),0]],Tn=[0,a(T),[0,a(BO),[0,a(f7),0]]],To=[0,a(T),[0,a(BO),[0,a(f7),0]]],Tr=[0,a(I),h2,3,h2,25,[0,a(J),[0,a(H),[0,a(B),0]]]],Ts=[0,a(T),[0,a(w0),0]],Tp=[0,a(I),62,10,62,23,[0,a(by),[0,a(H),[0,a(B),0]]]],Tw=[0,a(I),h2,3,h2,25,[0,a(J),[0,a(H),[0,a(B),0]]]],Tx=[0,a(T),[0,a(Ce),0]],Tt=[0,a(I),63,10,63,29,[0,a(by),[0,a(H),[0,a(B),0]]]],TA=[0,a(I),h2,3,h2,25,[0,a(J),[0,a(H),[0,a(B),0]]]],TB=[0,a(T),[0,a(zj),0]],Ty=[0,a(I),64,10,64,19,[0,a(by),[0,a(H),[0,a(B),0]]]],TC=[0,a(T),[0,a(nY),[0,a(ct),0]]],TD=[0,a(T),[0,a(nY),[0,a(ct),0]]],TG=[0,a(I),DD,3,DD,21,[0,a(J),[0,a(H),[0,a(B),0]]]],TH=[0,a(T),[0,a("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"),0]],TE=[0,a(I),79,10,79,17,[0,a(J),[0,a(H),[0,a(B),0]]]],TI=[0,a(T),[0,a(EH),[0,a(qw),0]]],TJ=[0,a(T),[0,a(EH),[0,a(qw),0]]],TP=[0,a(T),[0,a(eV),0]],TW=[0,a(I),95,11,95,61,[0,a(J),[0,a(H),[0,a(B),0]]]],TQ=[0,a(I),95,11,95,61,[0,a(J),[0,a(H),[0,a(B),0]]]],TX=[0,a(T),[0,a("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"),0]],T1=[0,a(T),[0,a(jF),0]],Ul=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],T2=[0,a(I),dp,11,dp,28,[0,a(J),[0,a(H),[0,a(B),0]]]],Um=[0,a(T),[0,a("plafond_II_d521_3"),0]],UI=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],Un=[0,a(I),dt,11,dt,27,[0,a(J),[0,a(H),[0,a(B),0]]]],UJ=[0,a(T),[0,a("plafond_I_d521_3"),0]],UR=[0,a(I),d0,11,d0,34,[0,a(J),[0,a(H),[0,a(B),0]]]],UK=[0,a(I),d0,11,d0,34,[0,a(J),[0,a(H),[0,a(B),0]]]],US=[0,a(T),[0,a("droit_ouvert_compl\xc3\xa9ment"),0]],U5=[0,a(T),[0,a(i9),0]],Va=[0,a(I),hC,11,hC,64,[0,a(J),[0,a(H),[0,a(B),0]]]],U6=[0,a(I),hC,11,hC,64,[0,a(J),[0,a(H),[0,a(B),0]]]],Vb=[0,a(T),[0,a("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"),0]],We=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Vc=[0,a(I),bj,11,bj,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Wf=[0,a(T),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"),0]],Wi=[0,a(I),hE,11,hE,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Wg=[0,a(I),hE,11,hE,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Wj=[0,a(T),[0,a("nombre_total_enfants"),0]],Wu=[0,a(I),m8,11,m8,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Wk=[0,a(I),m8,11,m8,31,[0,a(J),[0,a(H),[0,a(B),0]]]],Wv=[0,a(T),[0,a("nombre_moyen_enfants"),0]],XM=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],Ww=[0,a(I),bb,11,bb,46,[0,a(J),[0,a(H),[0,a(B),0]]]],XN=[0,a(T),[0,a("montant_initial_base_premier_enfant"),0]],X1=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],XO=[0,a(I),cR,11,cR,28,[0,a(J),[0,a(H),[0,a(B),0]]]],X2=[0,a(T),[0,a("droit_ouvert_base"),0]],Yk=[0,a(T),[0,a(bK),0]],YC=[0,a(T),[0,a(jK),0]],YN=[0,a(I),ex,11,ex,47,[0,a(J),[0,a(H),[0,a(B),0]]]],YD=[0,a(I),ex,11,ex,47,[0,a(J),[0,a(H),[0,a(B),0]]]],YO=[0,a(T),[0,a("montant_vers\xc3\xa9_forfaitaire_par_enfant"),0]],Y8=[0,a(I),dF,11,dF,56,[0,a(J),[0,a(H),[0,a(B),0]]]],YP=[0,a(I),dF,11,dF,56,[0,a(J),[0,a(H),[0,a(B),0]]]],Y9=[0,a(T),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"),0]],_s=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],Y_=[0,a(I),a9,11,a9,47,[0,a(J),[0,a(H),[0,a(B),0]]]],_t=[0,a(T),[0,a("montant_initial_base_deuxi\xc3\xa8me_enfant"),0]],_y=[0,a(I),lA,11,lA,38,[0,a(J),[0,a(H),[0,a(B),0]]]],_u=[0,a(I),lA,11,lA,38,[0,a(J),[0,a(H),[0,a(B),0]]]],_z=[0,a(T),[0,a("rapport_enfants_total_moyen"),0]],_4=[0,a(T),[0,a(i3),0]],$b=[0,a(I),gK,11,gK,36,[0,a(J),[0,a(H),[0,a(B),0]]]],_5=[0,a(I),gK,11,gK,36,[0,a(J),[0,a(H),[0,a(B),0]]]],$c=[0,a(T),[0,a("montant_vers\xc3\xa9_forfaitaire"),0]],$m=[0,a(I),dW,11,dW,31,[0,a(J),[0,a(H),[0,a(B),0]]]],$d=[0,a(I),dW,11,dW,31,[0,a(J),[0,a(H),[0,a(B),0]]]],$n=[0,a(T),[0,a("montant_initial_base"),0]],$M=[0,a(T),[0,a(iX),0]],$3=[0,a(I),eX,11,eX,52,[0,a(J),[0,a(H),[0,a(B),0]]]],$N=[0,a(I),eX,11,eX,52,[0,a(J),[0,a(H),[0,a(B),0]]]],$4=[0,a(T),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"),0]],$7=[0,a(I),jN,11,jN,43,[0,a(J),[0,a(H),[0,a(B),0]]]],$5=[0,a(I),jN,11,jN,43,[0,a(J),[0,a(H),[0,a(B),0]]]],$8=[0,a(T),[0,a("montant_avec_garde_altern\xc3\xa9e_base"),0]],aal=[0,a(T),[0,a(i2),0]],aap=[0,a(I),jM,11,jM,29,[0,a(J),[0,a(H),[0,a(B),0]]]],aam=[0,a(I),jM,11,jM,29,[0,a(J),[0,a(H),[0,a(B),0]]]],aaq=[0,a(T),[0,a("montant_vers\xc3\xa9_base"),0]],aaz=[0,a(I),hN,11,hN,35,[0,a(J),[0,a(H),[0,a(B),0]]]],aar=[0,a(I),hN,11,hN,35,[0,a(J),[0,a(H),[0,a(B),0]]]],aaA=[0,a(T),[0,a("montant_vers\xc3\xa9_majoration"),0]],aaD=[0,a(I),l7,11,l7,58,[0,a(J),[0,a(H),[0,a(B),0]]]],aaB=[0,a(I),l7,11,l7,58,[0,a(J),[0,a(H),[0,a(B),0]]]],aaE=[0,a(T),[0,a("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"),0]],aaM=[0,a(I),lt,11,lt,59,[0,a(J),[0,a(H),[0,a(B),0]]]],aaF=[0,a(I),lt,11,lt,59,[0,a(J),[0,a(H),[0,a(B),0]]]],aaN=[0,a(T),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"),0]],aaR=[0,a(I),du,10,du,23,[0,a(J),[0,a(H),[0,a(B),0]]]],aaO=[0,a(I),du,10,du,23,[0,a(J),[0,a(H),[0,a(B),0]]]],aaS=[0,a(T),[0,a("montant_vers\xc3\xa9"),0]],aaT=[0,a(bZ),231,5,Aa,6,[0,a(eh),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],Su=[0,a("examples/allocations_familiales/autres_codes.catala_fr"),24,5,24,63,[0,a("Article L821-3"),[0,a(Ay),[0,a(G5),[0,a(yx),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]]]],Sv=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],Sq=[0,a(bZ),60,5,62,64,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],Sr=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],Sp=[0,a(bZ),49,5,50,50,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],Ss=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],St=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],Sw=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],So=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],Sx=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],Sn=[0,a(I),57,10,57,22,[0,a(by),[0,a(H),[0,a(B),0]]]],Sj=[0,a(bZ),68,5,71,57,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],Sk=[0,a(I),58,10,58,29,[0,a(by),[0,a(H),[0,a(B),0]]]],Si=[0,a(I),58,10,58,29,[0,a(by),[0,a(H),[0,a(B),0]]]],Sl=[0,a(I),58,10,58,29,[0,a(by),[0,a(H),[0,a(B),0]]]],Sh=[0,a(I),58,10,58,29,[0,a(by),[0,a(H),[0,a(B),0]]]],Sd=[0,a(dX),um,18,um,41,[0,a(xD),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(c$),[0,a(ac),0]]]]]]],Sb=a(n2),Sc=a(m9),Se=[0,a(I),59,11,59,27,[0,a(by),[0,a(H),[0,a(B),0]]]],Sa=[0,a(dX),31,14,31,30,[0,a(kN),[0,a(mZ),[0,a(ef),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],R_=a(n2),R$=a(m9),RZ=[0,0],R1=[1,0],R2=[2,0],R3=[3,0],R4=[4,0],R5=[5,0],R0=[0,a(bZ),357,5,C5,30,[0,a(Ea),[0,a(yR),[0,a(i7),[0,a(d3),[0,a(ad),[0,a(ac),0]]]]]]],R6=[0,a(I),61,10,61,33,[0,a(by),[0,a(H),[0,a(B),0]]]],RY=[0,a(I),61,10,61,33,[0,a(by),[0,a(H),[0,a(B),0]]]],RS=[0,a(I),68,14,68,28,[0,a(by),[0,a(H),[0,a(B),0]]]],RO=[0,a(I),69,14,69,32,[0,a(by),[0,a(H),[0,a(B),0]]]],RK=[0,a(dX),21,14,21,26,[0,a(kN),[0,a(mZ),[0,a(ef),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],RL=[0,a(I),60,10,60,22,[0,a(by),[0,a(H),[0,a(B),0]]]],RJ=[0,a(I),60,10,60,22,[0,a(by),[0,a(H),[0,a(B),0]]]],RM=[0,a(ct),[0,a(zy),0]],RP=[0,a(I),65,3,65,7,[0,a(by),[0,a(H),[0,a(B),0]]]],RQ=[0,a(ct),[0,a(Hb),0]],RN=[0,a(bQ),9,10,9,23,[0,a(B),[0,a(aV),0]]],RT=[0,a(I),65,3,65,7,[0,a(by),[0,a(H),[0,a(B),0]]]],RU=[0,a(ct),[0,a(Fa),0]],RR=[0,a(bQ),10,10,10,19,[0,a(B),[0,a(aV),0]]],RV=[0,a(ct),[0,a(ga),[0,a(ha),0]]],RW=[0,a(ct),[0,a(ga),[0,a(ha),0]]],R7=[0,a(I),61,10,61,33,[0,a(by),[0,a(H),[0,a(B),0]]]],RX=[0,a(I),61,10,61,33,[0,a(by),[0,a(H),[0,a(B),0]]]],R8=[0,a(ct),[0,a(uO),0]],Sf=[0,a(I),59,11,59,27,[0,a(by),[0,a(H),[0,a(B),0]]]],R9=[0,a(I),59,11,59,27,[0,a(by),[0,a(H),[0,a(B),0]]]],Sg=[0,a(ct),[0,a(AX),0]],Sm=[0,a(ct),[0,a(hV),0]],Sy=[0,a(ct),[0,a(dk),0]],RF=[0,a(eb),28,5,29,34,[0,a(DB),[0,a(bX),0]]],RE=a(xN),RG=[0,a(eb),6,10,6,17,[0,a(bX),0]],RC=[0,a(eb),48,5,49,34,[0,a(Bo),[0,a(bX),0]]],RB=a(xg),RD=[0,a(eb),6,10,6,17,[0,a(bX),0]],Rz=[0,a(eb),64,5,65,34,[0,a(De),[0,a(bX),0]]],Ry=a(CV),RA=[0,a(eb),6,10,6,17,[0,a(bX),0]],Rw=[0,a(eb),82,5,83,34,[0,a(wH),[0,a(bX),0]]],Rv=a(CL),Rx=[0,a(eb),6,10,6,17,[0,a(bX),0]],RH=[0,a(eb),6,10,6,17,[0,a(bX),0]],Ru=[0,a(eb),6,10,6,17,[0,a(bX),0]],RI=[0,a(f7),[0,a(bR),0]],Ri=[6,0],Rk=[0,0],Rl=[1,0],Rm=[2,0],Rn=[3,0],Ro=[4,0],Rp=[5,0],Rq=[7,0],Rj=[0,a(bQ),29,5,38,6,[0,a(cH),[0,a(kM),[0,a(aV),0]]]],Rh=a(wz),Rr=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Re=[8,0],Rf=[0,a(bQ),47,5,49,6,[0,a(cH),[0,a(kM),[0,a(aV),0]]]],Rd=a(xK),Rg=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Q5=[6,0],Q7=[0,0],Q8=[1,0],Q9=[2,0],Q_=[3,0],Q$=[4,0],Ra=[5,0],Rb=[7,0],Q6=[0,a(bQ),68,5,77,6,[0,a(cH),[0,a(mW),[0,a(aV),0]]]],Q4=a(Bu),Rc=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Q1=[8,0],Q2=[0,a(bQ),86,5,88,6,[0,a(cH),[0,a(mW),[0,a(aV),0]]]],Q0=a(uA),Q3=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],QQ=[6,0],QS=[0,0],QT=[1,0],QU=[2,0],QV=[3,0],QW=[4,0],QX=[5,0],QY=[7,0],QR=[0,a(bQ),dF,5,bj,6,[0,a(cH),[0,a(kO),[0,a(aV),0]]]],QP=a(Ck),QZ=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],QM=[8,0],QN=[0,a(bQ),cv,5,cE,6,[0,a(cH),[0,a(kO),[0,a(aV),0]]]],QL=a(GA),QO=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],QB=[6,0],QD=[0,0],QE=[1,0],QF=[2,0],QG=[3,0],QH=[4,0],QI=[5,0],QJ=[7,0],QC=[0,a(bQ),eZ,5,lg,6,[0,a(cH),[0,a(mn),[0,a(aV),0]]]],QA=a(Cz),QK=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Qx=[8,0],Qy=[0,a(bQ),p5,5,m1,6,[0,a(cH),[0,a(mn),[0,a(aV),0]]]],Qw=a(wN),Qz=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Qm=[6,0],Qo=[0,0],Qp=[1,0],Qq=[2,0],Qr=[3,0],Qs=[4,0],Qt=[5,0],Qu=[7,0],Qn=[0,a(bQ),me,5,hT,6,[0,a(mp),[0,a(lH),[0,a(aV),0]]]],Ql=a(z$),Qv=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Qi=[8,0],Qj=[0,a(bQ),wS,5,yU,6,[0,a(mp),[0,a(lH),[0,a(aV),0]]]],Qh=a(Gy),Qk=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Rs=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Qg=[0,a(bQ),11,10,11,22,[0,a(B),[0,a(aV),0]]],Rt=[0,a(ha),[0,a(Az),0]],Qd=[0,a(be),12,14,12,25,[0,a(f3),[0,a(bf),0]]],P$=[2,0],Qa=a(p),Qb=[1,0],Qc=a("-1"),Qe=[0,a(I),80,10,80,21,[0,a(J),[0,a(H),[0,a(B),0]]]],P_=[0,a(I),80,10,80,21,[0,a(J),[0,a(H),[0,a(B),0]]]],Qf=[0,a(qw),[0,a("le_plus_\xc3\xa2g\xc3\xa9"),0]],P7=[0,a(dX),78,14,78,41,[0,a(mP),[0,a(aN),[0,a(aQ),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],P8=[0,a(I),76,10,76,37,[0,a(J),[0,a(H),[0,a(B),0]]]],P6=[0,a(I),76,10,76,37,[0,a(J),[0,a(H),[0,a(B),0]]]],P9=[0,a(ql),[0,a(eV),0]],PY=a(pS),PZ=a(p_),P0=a(G2),P1=a(qf),P2=a(qg),P3=a(qU),P4=a(qL),P5=[0,a("Enfant"),0],PO=a(ls),PQ=a(nF),PR=a(k5),PS=a(EW),PT=a(zb),PU=a(oi),PV=a(Es),PW=a(ms),PX=a(nV),PP=[0,a(CM),0],PF=a(nt),PH=a(T),PI=a(p7),PJ=a(m6),PK=a(Fu),PL=a(hZ),PM=a(CI),PN=a(zi),PG=[0,a(H2),0],PA=a("Compl\xc3\xa8te"),PC=a("Partag\xc3\xa9e"),PD=a("Z\xc3\xa9ro"),PB=[0,a("PriseEnCompte"),0],Pw=a(jj),Py=a(i_),Pz=a(Do),Px=[0,a(Ei),0],Pq=a(BR),Ps=a(FM),Pt=a(iY),Pu=a(Hu),Pv=a(y3),Pr=[0,a("PriseEnCharge"),0],acD=a(_),acd=a(ls),ace=a(nF),acf=a(v9),acg=a(k5),ach=a(nV),aci=a(Hn),acj=a(w$),ack=a(oi),acl=a(ms),acn=[7,0],aco=[5,0],acp=[4,0],acq=[6,0],acr=[8,0],acs=[2,0],act=[3,0],acu=[1,0],acv=[0,0],acm=[0,[11,a(bc),[2,0,[11,a(CD),0]]],a(wB)],abY=a(vt),abZ=a(yd),ab0=a(m6),ab1=a(Gu),ab2=a(hZ),ab3=a(T),ab4=a(pz),ab5=a(nt),ab7=[0,0],ab8=[2,0],ab9=[1,0],ab_=[5,0],ab$=[6,0],aca=[3,0],acb=[7,0],acc=[4,0],ab6=[0,[11,a(bc),[2,0,[11,a(FN),0]]],a(H3)],abR=a(rn),abS=a(jj),abT=a(i_),abV=[1,0],abW=[0,0],abX=[2,0],abU=[0,[11,a(bc),[2,0,[11,a(x7),0]]],a(wd)],abG=a(iY),abH=a(qn),abI=a(p2),abJ=a(qI),abK=a(pZ),abM=[4,0],abN=[3,0],abO=[0,0],abP=[1,0],abQ=[2,0],abL=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'PriseEnCharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")],abE=[0,a(Dd),a(oa),a(ga),a(E6),a(HY),a(vB),a(xc)],abF=[0,a(ga),a(vB),a(HY),a(xc),a(oa),a(Dd),a(E6)],acL=a("AllocationsFamilialesLib"),bxy=[0,a(fC),fd,14,fd,25,[0,a("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"),0]],bxr=a(p),bxs=a(p),bxx=a(b7),bxt=[0,a(a6),[0,a(bu),[0,a(af),0]]],bxu=[0,a(a6),[0,a(bu),0]],bxv=[0,a(a6),[0,a(bu),[0,a(ag),0]]],bxw=[0,a(a6),[0,a(bu),0]],bxn=[0,a(c),Bi,14,Bi,63,[0,a(bB),[0,a(d),0]]],bxj=[0,a(c),Gb,14,Gb,25,[0,a(bB),[0,a(d),0]]],bxd=[0,a(c),A3,5,A3,70,[0,a(bB),[0,a(d),0]]],bw$=[0,a(c),GJ,14,GJ,58,[0,a(bB),[0,a(d),0]]],bw7=[0,a(c),pH,14,pH,54,[0,a(bB),[0,a(d),0]]],bw3=[0,a(c),Af,14,Af,51,[0,a(bB),[0,a(d),0]]],bwX=[0,a(c),pB,14,pB,59,[0,a(bB),[0,a(d),0]]],bwT=[0,a(c),uM,14,uM,38,[0,a(bB),[0,a(d),0]]],bwP=[0,a(c),BA,14,BA,34,[0,a(bB),[0,a(d),0]]],bwL=[0,a(c),A5,14,A5,31,[0,a(bB),[0,a(d),0]]],bwH=[0,a(c),Eu,14,Eu,48,[0,a(bB),[0,a(d),0]]],bwI=[0,a(c),lD,11,lD,45,[0,a(bB),[0,a(d),0]]],bwG=[0,a(c),lD,11,lD,45,[0,a(bB),[0,a(d),0]]],bwJ=[0,a(cW),[0,a("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"),0]],bwM=[0,a(c),fD,3,fD,13,[0,a(bB),[0,a(d),0]]],bwN=[0,a(cW),[0,a("calculette.m\xc3\xa9nage"),0]],bwK=[0,a(c),kV,10,kV,16,[0,a(aC),[0,a(d),0]]],bwQ=[0,a(c),fD,3,fD,13,[0,a(bB),[0,a(d),0]]],bwR=[0,a(cW),[0,a("calculette.demandeur"),0]],bwO=[0,a(c),mR,10,mR,19,[0,a(aC),[0,a(d),0]]],bwU=[0,a(c),fD,3,fD,13,[0,a(bB),[0,a(d),0]]],bwV=[0,a(cW),[0,a("calculette.date_courante"),0]],bwS=[0,a(c),jA,10,jA,23,[0,a(aC),[0,a(d),0]]],bwY=[0,a(c),fD,3,fD,13,[0,a(bB),[0,a(d),0]]],bwZ=[0,a(cW),[0,a("calculette.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bwW=[0,a(c),m7,10,m7,44,[0,a(aC),[0,a(d),0]]],bw0=[0,a(cW),[0,a(FL),[0,a(a6),0]]],bw1=[0,a(cW),[0,a(FL),[0,a(a6),0]]],bw4=[0,a(c),gb,3,gb,33,[0,a(bB),[0,a(d),0]]],bw5=[0,a(cW),[0,a("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"),0]],bw2=[0,a(c),kV,10,kV,16,[0,a(aC),[0,a(d),0]]],bw8=[0,a(c),gb,3,gb,33,[0,a(bB),[0,a(d),0]]],bw9=[0,a(cW),[0,a("calculette_sans_garde_altern\xc3\xa9e.demandeur"),0]],bw6=[0,a(c),mR,10,mR,19,[0,a(aC),[0,a(d),0]]],bxa=[0,a(c),gb,3,gb,33,[0,a(bB),[0,a(d),0]]],bxb=[0,a(cW),[0,a("calculette_sans_garde_altern\xc3\xa9e.date_courante"),0]],bw_=[0,a(c),jA,10,jA,23,[0,a(aC),[0,a(d),0]]],bxe=[0,a(c),gb,3,gb,33,[0,a(bB),[0,a(d),0]]],bxf=[0,a(cW),[0,a("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bxc=[0,a(c),m7,10,m7,44,[0,a(aC),[0,a(d),0]]],bxg=[0,a(cW),[0,a(wG),[0,a(a6),0]]],bxh=[0,a(cW),[0,a(wG),[0,a(a6),0]]],bxk=[0,a(c),og,10,og,21,[0,a(bB),[0,a(d),0]]],bxi=[0,a(c),og,10,og,21,[0,a(bB),[0,a(d),0]]],bxl=[0,a(cW),[0,a(ni),0]],bxo=[0,a(c),hz,11,hz,60,[0,a(bB),[0,a(d),0]]],bxm=[0,a(c),hz,11,hz,60,[0,a(bB),[0,a(d),0]]],bxp=[0,a(cW),[0,a(jv),0]],bxz=[0,a(c),mq,10,mq,21,[0,a(bB),[0,a(d),0]]],bxq=[0,a(c),mq,10,mq,21,[0,a(bB),[0,a(d),0]]],bxA=[0,a(cW),[0,a("aide_finale"),0]],bwC=[0,a(aS),rs,14,rs,33,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bwB=a(p),bwt=[0,a(ax),[0,a(bu),[0,a(af),0]]],bwu=[0,a(ax),[0,a(bu),0]],bwv=[0,a(ax),[0,a(bu),[0,a(ag),0]]],bww=[0,a(ax),[0,a(bu),0]],bwx=[0,a(aB),[0,a(bu),[0,a(af),0]]],bwy=[0,a(aB),[0,a(bu),0]],bwz=[0,a(aB),[0,a(bu),[0,a(ag),0]]],bwA=[0,a(aB),[0,a(bu),0]],bwp=[0,a(aS),At,14,At,36,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bwh=[0,a(aB),[0,a(bu),[0,a(af),0]]],bwi=[0,a(aB),[0,a(bu),0]],bwj=[0,a(aB),[0,a(bu),[0,a(ag),0]]],bwk=[0,a(aB),[0,a(bu),0]],bwl=[0,a(ax),[0,a(bu),[0,a(af),0]]],bwm=[0,a(ax),[0,a(bu),0]],bwn=[0,a(ax),[0,a(bu),[0,a(ag),0]]],bwo=[0,a(ax),[0,a(bu),0]],bwq=[0,a(c),mB,10,mB,32,[0,a(aC),[0,a(d),0]]],bwg=[0,a(c),mB,10,mB,32,[0,a(aC),[0,a(d),0]]],bwd=[0,a(aS),c3,14,c3,25,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bv$=[0,a(c),Gm,14,Gm,63,[0,a(aC),[0,a(d),0]]],bv5=[0,a(c),H0,14,H0,62,[0,a(aC),[0,a(d),0]]],bv1=[0,a(c),Ej,14,Ej,53,[0,a(aC),[0,a(d),0]]],bvX=[0,a(c),vj,5,vj,65,[0,a(aC),[0,a(d),0]]],bvT=[0,a(c),p8,14,p8,68,[0,a(aC),[0,a(d),0]]],bvP=[0,a(c),FS,14,FS,66,[0,a(aC),[0,a(d),0]]],bvL=[0,a(aS),Ae,14,Ae,58,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bvK=[0,0],bvG=[0,a(c),re,14,re,64,[0,a(aC),[0,a(d),0]]],bvA=[0,a(aS),Iq,14,Iq,50,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bvx=[2,0],bvy=[1,0],bvz=[2,0],bvt=[0,a(c),w_,14,w_,54,[0,a(aC),[0,a(d),0]]],bvp=[0,a(c),wh,14,wh,45,[0,a(aC),[0,a(d),0]]],bvl=[0,a(c),nw,14,nw,66,[0,a(aC),[0,a(d),0]]],bvh=[0,a(c),w7,14,w7,60,[0,a(aC),[0,a(d),0]]],bvd=[0,a(c),yA,14,yA,58,[0,a(aC),[0,a(d),0]]],bu$=[0,a(c),HI,14,HI,56,[0,a(aC),[0,a(d),0]]],bu5=[0,a(c),G_,14,G_,67,[0,a(aC),[0,a(d),0]]],bu1=[0,a(c),wb,14,wb,63,[0,a(aC),[0,a(d),0]]],buX=[0,a(c),CA,14,CA,60,[0,a(aC),[0,a(d),0]]],buR=[0,a(aS),BS,5,BS,74,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],buN=[0,a(c),Fn,14,Fn,55,[0,a(aC),[0,a(d),0]]],buJ=[0,a(c),rd,14,rd,52,[0,a(aC),[0,a(d),0]]],buF=[0,a(c),Bf,14,Bf,59,[0,a(aC),[0,a(d),0]]],buG=[0,a(c),f1,3,f1,34,[0,a(aC),[0,a(d),0]]],buH=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"),0]],buE=[0,a(c),zC,10,zC,23,[0,a(aJ),[0,a(i),[0,a(d),0]]]],buK=[0,a(c),f1,3,f1,34,[0,a(aC),[0,a(d),0]]],buL=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"),0]],buI=[0,a(c),k8,10,k8,16,[0,a(aJ),[0,a(i),[0,a(d),0]]]],buO=[0,a(c),f1,3,f1,34,[0,a(aC),[0,a(d),0]]],buP=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"),0]],buM=[0,a(c),ll,10,ll,19,[0,a(aJ),[0,a(i),[0,a(d),0]]]],buS=[0,a(c),f1,3,f1,34,[0,a(aC),[0,a(d),0]]],buT=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"),0]],buQ=[0,a(c),Hj,10,Hj,47,[0,a(aJ),[0,a(i),[0,a(d),0]]]],buU=[0,a(a6),[0,a(un),[0,a(b8),0]]],buV=[0,a(a6),[0,a(un),[0,a(b8),0]]],buY=[0,a(c),ij,3,ij,42,[0,a(aC),[0,a(d),0]]],buZ=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"),0]],buW=[0,a(c),yb,10,yb,16,[0,a(a2),[0,a(i),[0,a(d),0]]]],bu2=[0,a(c),ij,3,ij,42,[0,a(aC),[0,a(d),0]]],bu3=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"),0]],bu0=[0,a(c),m2,10,m2,19,[0,a(a2),[0,a(i),[0,a(d),0]]]],bu6=[0,a(c),ij,3,ij,42,[0,a(aC),[0,a(d),0]]],bu7=[0,a(a6),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],bu4=[0,a(c),lM,17,lM,30,[0,a(a2),[0,a(i),[0,a(d),0]]]],bu8=[0,a(a6),[0,a(EC),[0,a(b_),0]]],bu9=[0,a(a6),[0,a(EC),[0,a(b_),0]]],bva=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvb=[0,a(a6),[0,a("calcul_allocation_logement.mode_occupation"),0]],bu_=[0,a(c),Ex,10,Ex,25,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bve=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvf=[0,a(a6),[0,a("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],bvc=[0,a(c),xy,10,xy,27,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bvi=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvj=[0,a(a6),[0,a("calcul_allocation_logement.situation_familiale"),0]],bvg=[0,a(c),l$,10,l$,29,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bvm=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvn=[0,a(a6),[0,a("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"),0]],bvk=[0,a(c),z8,10,z8,35,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bvq=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvr=[0,a(a6),[0,a("calcul_allocation_logement.zone"),0]],bvo=[0,a(c),Bg,10,Bg,14,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bvu=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvv=[0,a(a6),[0,a("calcul_allocation_logement.date_courante"),0]],bvs=[0,a(c),vu,10,vu,23,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bvB=[0,a(c),c3,3,c3,29,[0,a(aC),[0,a(d),0]]],bvC=[0,a(a6),[0,a("calcul_allocation_logement.type_aide"),0]],bvw=[0,a(c),zr,10,zr,19,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bvD=[0,a(a6),[0,a(Ga),[0,a(ax),0]]],bvE=[0,a(a6),[0,a(Ga),[0,a(ax),0]]],bvH=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bvI=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"),0]],bvF=[0,a(c),rB,10,rB,25,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bvM=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bvN=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"),0]],bvJ=[0,a(c),Em,10,Em,19,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bvQ=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bvR=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],bvO=[0,a(c),wf,10,wf,27,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bvU=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bvV=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"),0]],bvS=[0,a(c),Ir,10,Ir,29,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bvY=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bvZ=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"),0]],bvW=[0,a(c),uX,10,uX,35,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bv2=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bv3=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.zone"),0]],bv0=[0,a(c),u5,10,u5,14,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bv6=[0,a(c),dl,3,dl,37,[0,a(aC),[0,a(d),0]]],bv7=[0,a(a6),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],bv4=[0,a(c),yT,10,yT,23,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bv8=[0,a(a6),[0,a(zO),[0,a(aB),0]]],bv9=[0,a(a6),[0,a(zO),[0,a(aB),0]]],bwa=[0,a(c),mu,10,mu,59,[0,a(aC),[0,a(d),0]]],bv_=[0,a(c),mu,10,mu,59,[0,a(aC),[0,a(d),0]]],bwb=[0,a(a6),[0,a(jv),0]],bwe=[0,a(c),mc,10,mc,21,[0,a(aC),[0,a(d),0]]],bwc=[0,a(c),mc,10,mc,21,[0,a(aC),[0,a(d),0]]],bwf=[0,a(a6),[0,a(ni),0]],bwr=[0,a(a6),[0,a(bu),0]],bwD=[0,a(c),iW,10,iW,29,[0,a(aC),[0,a(d),0]]],bws=[0,a(c),iW,10,iW,29,[0,a(aC),[0,a(d),0]]],bwE=[0,a(a6),[0,a(fr),0]],buB=[0,a(F),Bh,14,Bh,33,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bux=[0,a(F),Ar,14,Ar,36,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bul=[0,a(bW),[0,a(bu),[0,a(af),0]]],bum=[0,a(bW),[0,a(bu),0]],bun=[0,a(bW),[0,a(bu),[0,a(ag),0]]],buo=[0,a(bW),[0,a(bu),0]],bup=[0,a(W),[0,a(bt),[0,a(af),0]]],buq=[0,a(W),[0,a(bt),0]],bur=[0,a(W),[0,a(bt),[0,a(ag),0]]],bus=[0,a(W),[0,a(bt),0]],but=[0,a(al),[0,a(bt),[0,a(af),0]]],buu=[0,a(al),[0,a(bt),0]],buv=[0,a(al),[0,a(bt),[0,a(ag),0]]],buw=[0,a(al),[0,a(bt),0]],buy=[0,a(c),lC,10,lC,32,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],buk=[0,a(c),lC,10,lC,32,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],buf=[0,a(F),AG,14,AG,48,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],buc=[1,0],bud=[1,0],bue=[1,0],bt_=[0,a(F),u9,14,u9,44,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bt6=[0,a(F),vG,14,vG,48,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btZ=a(p),bt0=a(p),bt1=a(p),bt2=a(p),bt3=a(p),bt4=a(p),bt5=a(p),btV=[0,a(F),wu,14,wu,32,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btR=[0,a(F),wk,14,wk,31,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btN=[0,a(F),CZ,5,CZ,69,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btJ=[0,a(F),Fd,14,Fd,42,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btF=[0,a(F),CX,14,CX,26,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btB=[0,a(F),zf,14,zf,52,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btx=[0,a(F),Aw,14,Aw,47,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btt=[0,a(F),x_,14,x_,35,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btp=[0,a(F),rm,14,rm,67,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],btl=[0,a(F),HL,14,HL,49,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bth=[0,a(F),xP,14,xP,37,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bte=a(p),btf=a(p),btg=a(p),bs_=[0,a(F),C7,14,C7,64,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bs6=[3,0],bs7=[3,0],bs8=[3,0],bs9=[3,0],bs2=[0,a(F),vU,14,vU,42,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsY=[0,a(F),wn,14,wn,33,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsU=[0,a(F),uo,14,uo,59,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsQ=[0,a(F),Hf,14,Hf,54,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsM=[0,a(F),qT,14,qT,56,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsI=[0,a(F),ux,14,ux,38,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsE=a(p),bsF=a(p),bsG=a(p),bsH=a(p),bsA=[0,a(F),wJ,14,wJ,50,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsw=[0,a(F),Dv,14,Dv,48,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bss=[3,0],bst=[3,0],bsu=[3,0],bsv=[3,0],bsm=[0,a(F),FB,14,FB,45,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsi=[0,a(F),Hm,14,Hm,57,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bsf=a(p),bsg=a(p),bsh=a(p),bsb=[0,a(F),Gj,14,Gj,54,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],br9=[0,a(F),A2,14,A2,73,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],br5=[0,a(F),xR,14,xR,55,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],br2=[3,0],br3=[3,0],br4=[3,0],brY=[0,a(F),w3,14,w3,53,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brU=[0,a(F),FH,14,FH,57,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brQ=[0,a(F),uH,14,uH,55,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brN=a(p),brO=a(p),brP=a(p),brJ=[0,a(F),AS,14,AS,47,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brF=[0,a(F),xe,14,xe,38,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brB=[0,a(F),x4,14,x4,64,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brx=[0,a(F),xG,14,xG,59,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brt=[0,a(F),Fb,14,Fb,61,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brp=[0,a(P),88,14,88,44,[0,a(cN),[0,a(b0),[0,a(L),0]]]],brj=[0,0],brk=[1,0],brl=[1,0],brm=[1,0],brn=[0,0],bro=[1,0],brf=[0,a(F),zW,14,zW,31,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],brc=a(c_),brd=a(C4),bre=a(qb),bq_=[0,a(F),uD,14,uD,34,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bq5=[0,0],bq6=[2,0],bq7=[1,0],bq8=[0,0],bq9=[1,0],bq$=[0,a(c),k3,11,k3,31,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bq4=[0,a(c),k3,11,k3,31,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bra=[0,a(ax),[0,a(xL),0]],brg=[0,a(c),l4,10,l4,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brb=[0,a(c),l4,10,l4,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brh=[0,a(ax),[0,a(w8),0]],brq=[0,a(c),lO,11,lO,41,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bri=[0,a(c),lO,11,lO,41,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brr=[0,a(ax),[0,a(zx),0]],bru=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brv=[0,a(ax),[0,a("accession_propri\xc3\xa9t\xc3\xa9.ressources_m\xc3\xa9nage_arrondies_base"),0]],brs=[0,a(c),qC,10,qC,37,[0,a(z),[0,a(s),[0,a(d),0]]]],bry=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brz=[0,a(ax),[0,a(E3),0]],brw=[0,a(c),En,10,En,35,[0,a(z),[0,a(s),[0,a(d),0]]]],brC=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brD=[0,a(ax),[0,a(BF),0]],brA=[0,a(c),AY,10,AY,40,[0,a(z),[0,a(s),[0,a(d),0]]]],brG=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brH=[0,a(ax),[0,a(DX),0]],brE=[0,a(c),p$,10,p$,14,[0,a(z),[0,a(s),[0,a(d),0]]]],brK=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brL=[0,a(ax),[0,a(wa),0]],brI=[0,a(c),q1,10,q1,23,[0,a(z),[0,a(s),[0,a(d),0]]]],brR=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brS=[0,a(ax),[0,a(Gf),0]],brM=[0,a(c),y4,10,y4,31,[0,a(z),[0,a(s),[0,a(d),0]]]],brV=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],brW=[0,a(ax),[0,a(Ha),0]],brT=[0,a(c),yp,10,yp,33,[0,a(z),[0,a(s),[0,a(d),0]]]],brZ=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],br0=[0,a(ax),[0,a(Hs),0]],brX=[0,a(c),lu,10,lu,29,[0,a(z),[0,a(s),[0,a(d),0]]]],br6=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],br7=[0,a(ax),[0,a(EU),0]],br1=[0,a(c),HG,10,HG,31,[0,a(z),[0,a(s),[0,a(d),0]]]],br_=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],br$=[0,a(ax),[0,a(Fq),0]],br8=[0,a(c),wU,10,wU,49,[0,a(z),[0,a(s),[0,a(d),0]]]],bsc=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsd=[0,a(ax),[0,a(CR),0]],bsa=[0,a(c),jl,10,jl,30,[0,a(z),[0,a(s),[0,a(d),0]]]],bsj=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsk=[0,a(ax),[0,a("accession_propri\xc3\xa9t\xc3\xa9.charges_mensuelles_pr\xc3\xaat"),0]],bse=[0,a(c),we,10,we,33,[0,a(z),[0,a(s),[0,a(d),0]]]],bsn=[0,a(c),bI,3,bI,22,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bso=[0,a(ax),[0,a(HV),0]],bsl=[0,a(c),E9,10,E9,21,[0,a(z),[0,a(s),[0,a(d),0]]]],bsp=[0,a(ax),[0,a(lL),[0,a(W),0]]],bsq=[0,a(ax),[0,a(lL),[0,a(W),0]]],bsx=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsy=[0,a(ax),[0,a(EO),0]],bsr=[0,a(c),zZ,10,zZ,29,[0,a(C),[0,a(s),[0,a(d),0]]]],bsB=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsC=[0,a(ax),[0,a(Fm),0]],bsz=[0,a(c),Bq,10,Bq,31,[0,a(C),[0,a(s),[0,a(d),0]]]],bsJ=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsK=[0,a(ax),[0,a(Cs),0]],bsD=[0,a(c),vW,10,vW,19,[0,a(C),[0,a(s),[0,a(d),0]]]],bsN=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsO=[0,a(ax),[0,a(D3),0]],bsL=[0,a(c),vv,10,vv,37,[0,a(C),[0,a(s),[0,a(d),0]]]],bsR=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsS=[0,a(ax),[0,a(wM),0]],bsP=[0,a(c),EL,10,EL,35,[0,a(C),[0,a(s),[0,a(d),0]]]],bsV=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bsW=[0,a(ax),[0,a(uC),0]],bsT=[0,a(c),x6,10,x6,40,[0,a(C),[0,a(s),[0,a(d),0]]]],bsZ=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bs0=[0,a(ax),[0,a(vQ),0]],bsX=[0,a(c),uv,10,uv,14,[0,a(C),[0,a(s),[0,a(d),0]]]],bs3=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bs4=[0,a(ax),[0,a(uk),0]],bs1=[0,a(c),Gt,10,Gt,23,[0,a(C),[0,a(s),[0,a(d),0]]]],bs$=[0,a(c),cF,3,cF,17,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bta=[0,a(ax),[0,a("logement_foyer.cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"),0]],bs5=[0,a(c),qO,10,qO,45,[0,a(C),[0,a(s),[0,a(d),0]]]],btb=[0,a(ax),[0,a(oj),[0,a(al),0]]],btc=[0,a(ax),[0,a(oj),[0,a(al),0]]],bti=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btj=[0,a(ax),[0,a("locatif.loyer_principal"),0]],btd=[0,a(c),xU,10,xU,25,[0,a(K),[0,a(s),[0,a(d),0]]]],btm=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btn=[0,a(ax),[0,a(Co),0]],btk=[0,a(c),Dc,10,Dc,37,[0,a(K),[0,a(s),[0,a(d),0]]]],btq=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btr=[0,a(ax),[0,a(Bj),0]],bto=[0,a(c),u$,10,u$,55,[0,a(K),[0,a(s),[0,a(d),0]]]],btu=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btv=[0,a(ax),[0,a(Bv),0]],bts=[0,a(c),Fp,10,Fp,23,[0,a(K),[0,a(s),[0,a(d),0]]]],bty=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btz=[0,a(ax),[0,a(wm),0]],btw=[0,a(c),rR,10,rR,35,[0,a(K),[0,a(s),[0,a(d),0]]]],btC=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btD=[0,a(ax),[0,a(uU),0]],btA=[0,a(c),rx,10,rx,40,[0,a(K),[0,a(s),[0,a(d),0]]]],btG=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btH=[0,a(ax),[0,a(yc),0]],btE=[0,a(c),yM,10,yM,14,[0,a(K),[0,a(s),[0,a(d),0]]]],btK=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btL=[0,a(ax),[0,a(BI),0]],btI=[0,a(c),Gz,10,Gz,30,[0,a(K),[0,a(s),[0,a(d),0]]]],btO=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btP=[0,a(ax),[0,a(FV),0]],btM=[0,a(c),yn,10,yn,66,[0,a(K),[0,a(s),[0,a(d),0]]]],btS=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btT=[0,a(ax),[0,a(Gk),0]],btQ=[0,a(c),Ix,10,Ix,19,[0,a(K),[0,a(s),[0,a(d),0]]]],btW=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],btX=[0,a(ax),[0,a(uw),0]],btU=[0,a(c),FD,10,FD,20,[0,a(K),[0,a(s),[0,a(d),0]]]],bt7=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bt8=[0,a(ax),[0,a(wE),0]],btY=[0,a(c),AN,10,AN,36,[0,a(K),[0,a(s),[0,a(d),0]]]],bt$=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],bua=[0,a(ax),[0,a(y9),0]],bt9=[0,a(c),AV,10,AV,32,[0,a(K),[0,a(s),[0,a(d),0]]]],bug=[0,a(c),bs,3,bs,10,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],buh=[0,a(ax),[0,a("locatif.changement_logement_d842_4"),0]],bub=[0,a(c),v7,10,v7,36,[0,a(K),[0,a(s),[0,a(d),0]]]],bui=[0,a(ax),[0,a(l6),[0,a(bW),0]]],buj=[0,a(ax),[0,a(l6),[0,a(bW),0]]],buz=[0,a(ax),[0,a(bu),0]],buC=[0,a(c),kL,10,kL,29,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],buA=[0,a(c),kL,10,kL,29,[0,a(X),[0,a(C),[0,a(s),[0,a(d),0]]]]],buD=[0,a(ax),[0,a(fr),0]],bqZ=[0,a(aS),hz,5,hz,73,[0,a("Article L841-3"),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqY=[2,0],bq0=[0,a(c),eT,10,eT,16,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqW=[0,a(aS),1134,5,pB,28,[0,a("Article L841-4"),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqV=[0,0],bqX=[0,a(c),eT,10,eT,16,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bq1=[0,a(c),eT,10,eT,16,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqU=[0,a(aS),G4,14,G4,25,[0,a(gv),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqQ=[0,0],bqR=[0,0],bqS=[1,0],bqT=[2,0],bqG=a(p),bqH=[0,a(aS),999,5,1003,29,[0,a(hJ),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqI=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqB=a(x),bqz=a(x),bqA=a(p),bqC=[0,a(aS),976,5,bs,12,[0,a(hJ),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqD=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqt=[0,a(aX),[0,a(fh),[0,a(af),0]]],bqu=[0,a(aX),[0,a(fh),0]],bqv=[0,a(aX),[0,a(fh),[0,a(ag),0]]],bqw=[0,a(aX),[0,a(fh),0]],bqx=a(x),bqr=a(x),bqs=a(p),bqy=[0,a(aS),ro,5,960,72,[0,a(hJ),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqE=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqF=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqJ=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqj=[2,0],bqp=[0,0],bqk=[0,a(cu),[0,a(dk),[0,a(af),0]]],bql=[0,a(cu),[0,a(dk),0]],bqm=[0,a(cu),[0,a(dk),[0,a(ag),0]]],bqn=[0,a(cu),[0,a(dk),0]],bqo=a(x),bqh=a(p),bqi=a(p),bqq=[0,a(aS),qO,5,jD,29,[0,a(hJ),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqK=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bp$=[2,0],bqf=[0,0],bqa=[0,a(cu),[0,a(dk),[0,a(af),0]]],bqb=[0,a(cu),[0,a(dk),0]],bqc=[0,a(cu),[0,a(dk),[0,a(ag),0]]],bqd=[0,a(cu),[0,a(dk),0]],bqe=a(x),bp9=a(x),bp_=a(p),bqg=[0,a(aS),889,5,910,11,[0,a(hJ),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqL=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bp4=[0,0],bp5=[1,0],bp6=[3,0],bp7=[4,0],bp8=[0,a(aS),p6,5,874,52,[0,a(hJ),[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bqM=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bp3=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpZ=[0,a(aS),lu,14,lu,25,[0,a(bA),[0,a(c2),[0,a(w),[0,a(ad),[0,a(v),0]]]]]],bpY=[0,0],bpX=[2,0],bpT=[0,a(c),g$,14,g$,56,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpP=[0,a(c),C_,14,C_,63,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpJ=[0,a(F),DQ,9,DQ,55,[0,a(Fc),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bpK=[0,a(c),dQ,3,dQ,22,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpL=[0,a(b8),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"),0]],bpG=[0,a(F),y0,9,y0,68,[0,a(Fc),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bpH=[0,a(c),dQ,3,dQ,22,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpI=[0,a(b8),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"),0]],bpD=[0,a(c),pF,14,pF,47,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpz=[0,a(c),F0,14,F0,43,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpv=[0,a(c),EK,14,EK,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpm=[0,a(F),4556,5,4561,28,[0,a(nS),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bpn=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpl=[0,a(F),4539,5,4544,28,[0,a(nS),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bpo=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpk=[0,a(F),4522,5,4529,28,[0,a(nS),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bpp=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpq=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpj=[0,a(F),4492,5,4494,28,[0,a(nS),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bpr=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpi=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpc=[0,a(c),vn,14,vn,46,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpb=[6,0],bo9=[0,a(c),Ii,14,Ii,56,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bo8=[1,0],bo4=[0,a(c),Aq,14,Aq,50,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bo0=[0,a(F),xr,14,xr,28,[0,a("Article D841-1"),[0,a("Chapitre 1 : Champ d'application"),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]],bo1=[0,a(c),mV,11,mV,25,[0,a(aJ),[0,a(i),[0,a(d),0]]]],boZ=[0,a(c),mV,11,mV,25,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bo2=[0,a(b8),[0,a("dur\xc3\xa9e_l841_1_3"),0]],bo5=[0,a(c),fM,3,fM,25,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bo6=[0,a(b8),[0,a(w0),0]],bo3=[0,a(bE),45,10,45,23,[0,a(bG),0]],bo_=[0,a(c),fM,3,fM,25,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bo$=[0,a(b8),[0,a(Ce),0]],bo7=[0,a(bE),46,10,46,29,[0,a(bG),0]],bpd=[0,a(c),fM,3,fM,25,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpe=[0,a(b8),[0,a(zj),0]],bpa=[0,a(bE),47,10,47,19,[0,a(bG),0]],bpf=[0,a(b8),[0,a(nY),[0,a(cu),0]]],bpg=[0,a(b8),[0,a(nY),[0,a(cu),0]]],bps=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bph=[0,a(c),c0,11,c0,40,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpt=[0,a(b8),[0,a("condition_accession_propri\xc3\xa9t\xc3\xa9"),0]],bpw=[0,a(c),dQ,3,dQ,22,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpx=[0,a(b8),[0,a(vf),0]],bpu=[0,a(c),gF,10,gF,16,[0,a(V),[0,a(i),[0,a(d),0]]]],bpA=[0,a(c),dQ,3,dQ,22,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpB=[0,a(b8),[0,a(Cb),0]],bpy=[0,a(c),fi,10,fi,19,[0,a(V),[0,a(i),[0,a(d),0]]]],bpE=[0,a(c),dQ,3,dQ,22,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpF=[0,a(b8),[0,a(Il),0]],bpC=[0,a(c),il,17,il,30,[0,a(V),[0,a(i),[0,a(d),0]]]],bpM=[0,a(b8),[0,a(nP),[0,a(aX),0]]],bpN=[0,a(b8),[0,a(nP),[0,a(aX),0]]],bpQ=[0,a(c),fW,10,fW,59,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpO=[0,a(c),fW,10,fW,59,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpR=[0,a(b8),[0,a(jv),0]],bpU=[0,a(c),n1,10,n1,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpS=[0,a(c),n1,10,n1,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpV=[0,a(b8),[0,a(rq),0]],bp0=[0,a(c),ma,10,ma,31,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bpW=[0,a(c),ma,10,ma,31,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bp1=[0,a(b8),[0,a("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"),0]],bqN=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bp2=[0,a(c),b6,11,b6,52,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqO=[0,a(b8),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"),0]],bq2=[0,a(c),eT,10,eT,16,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bqP=[0,a(c),eT,10,eT,16,[0,a(aJ),[0,a(i),[0,a(d),0]]]],bq3=[0,a(b8),[0,a("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]],boV=[0,a(aS),gz,5,593,36,[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]],boW=[0,a(c),fY,10,fY,21,[0,a(a2),[0,a(i),[0,a(d),0]]]],boU=[0,a(c),fY,10,fY,21,[0,a(a2),[0,a(i),[0,a(d),0]]]],boQ=[0,a(c),mh,14,mh,56,[0,a(a2),[0,a(i),[0,a(d),0]]]],boM=[0,a(c),Br,14,Br,63,[0,a(a2),[0,a(i),[0,a(d),0]]]],boC=[0,a(F),3885,5,3890,30,[0,a("Article R832-21"),[0,a("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],boD=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],boy=[0,a(b_),[0,a(ja),[0,a(af),0]]],boz=[0,a(b_),[0,a(ja),0]],boA=[0,a(b_),[0,a(ja),[0,a(ag),0]]],boB=[0,a(b_),[0,a(ja),0]],box=[0,a(aS),jL,5,704,30,[0,a(k9),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],boE=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],bow=[0,a(aS),$,5,jg,30,[0,a(k9),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],boF=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],bov=[0,a(aS),i5,5,650,30,[0,a(k9),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],boG=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],bor=[0,a(b_),[0,a(iV),[0,a(af),0]]],bos=[0,a(b_),[0,a(iV),0]],bot=[0,a(b_),[0,a(iV),[0,a(ag),0]]],bou=[0,a(b_),[0,a(iV),0]],boq=[0,a(aS),i8,5,623,30,[0,a(k9),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],boH=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],boI=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],bop=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],boj=[0,a(c),BY,14,BY,47,[0,a(a2),[0,a(i),[0,a(d),0]]]],bof=[0,a(c),pC,14,pC,43,[0,a(a2),[0,a(i),[0,a(d),0]]]],bob=[0,a(c),xI,14,xI,40,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn6=[0,a(aS),cO,5,753,30,[0,a(pN),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bn7=[0,a(c),dG,11,dG,34,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn5=[0,a(aS),721,5,rB,30,[0,a(pN),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bn8=[0,a(c),dG,11,dG,34,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn4=[0,a(aS),hb,31,hb,54,[0,a(pN),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bn9=[0,a(c),dG,11,dG,34,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn3=[0,a(c),dG,11,dG,34,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnZ=[0,a(c),fR,11,fR,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn0=[0,a(c),fR,11,fR,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnY=[0,a(c),fR,11,fR,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnS=[0,a(F),3213,5,3216,46,[0,a("Article R832-7"),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bnT=[0,a(c),dm,11,dm,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnR=[0,a(F),3178,5,3180,47,[0,a("Article R832-5"),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bnU=[0,a(c),dm,11,dm,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnV=[0,a(c),dm,11,dm,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnQ=[0,a(c),dm,11,dm,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnW=[0,a(c),dm,11,dm,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnP=[0,a(c),dm,11,dm,41,[0,a(a2),[0,a(i),[0,a(d),0]]]],bnX=[0,a(b_),[0,a(iV),0]],bn1=[0,a(b_),[0,a(ja),0]],bn_=[0,a(c),dG,11,dG,34,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn2=[0,a(c),dG,11,dG,34,[0,a(a2),[0,a(i),[0,a(d),0]]]],bn$=[0,a(b_),[0,a("condition_logement_pr\xc3\xaat"),0]],boc=[0,a(c),hy,3,hy,22,[0,a(a2),[0,a(i),[0,a(d),0]]]],bod=[0,a(b_),[0,a(vf),0]],boa=[0,a(c),gF,10,gF,16,[0,a(V),[0,a(i),[0,a(d),0]]]],bog=[0,a(c),hy,3,hy,22,[0,a(a2),[0,a(i),[0,a(d),0]]]],boh=[0,a(b_),[0,a(Cb),0]],boe=[0,a(c),fi,10,fi,19,[0,a(V),[0,a(i),[0,a(d),0]]]],bok=[0,a(c),hy,3,hy,22,[0,a(a2),[0,a(i),[0,a(d),0]]]],bol=[0,a(b_),[0,a(Il),0]],boi=[0,a(c),il,17,il,30,[0,a(V),[0,a(i),[0,a(d),0]]]],bom=[0,a(b_),[0,a(nP),[0,a(aX),0]]],bon=[0,a(b_),[0,a(nP),[0,a(aX),0]]],boJ=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],boo=[0,a(c),cs,11,cs,38,[0,a(a2),[0,a(i),[0,a(d),0]]]],boK=[0,a(b_),[0,a("condition_logement_bailleur"),0]],boN=[0,a(c),nh,10,nh,59,[0,a(a2),[0,a(i),[0,a(d),0]]]],boL=[0,a(c),nh,10,nh,59,[0,a(a2),[0,a(i),[0,a(d),0]]]],boO=[0,a(b_),[0,a(jv),0]],boR=[0,a(c),g9,10,g9,52,[0,a(a2),[0,a(i),[0,a(d),0]]]],boP=[0,a(c),g9,10,g9,52,[0,a(a2),[0,a(i),[0,a(d),0]]]],boS=[0,a(b_),[0,a(rq),0]],boX=[0,a(c),fY,10,fY,21,[0,a(a2),[0,a(i),[0,a(d),0]]]],boT=[0,a(c),fY,10,fY,21,[0,a(a2),[0,a(i),[0,a(d),0]]]],boY=[0,a(b_),[0,a(ni),0]],bnM=[0,a(F),CK,14,CK,40,[0,a("Article D823-22"),[0,a(k2),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bnH=[0,a(aS),ea,5,566,43,[0,a("Article L823-8"),[0,a(Y),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],bnI=[0,a(c),f8,11,f8,31,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnG=[0,a(c),f8,11,f8,31,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnC=[0,a(P),uL,14,uL,29,[0,a("Article 45"),[0,a("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"),[0,a(L),0]]]],bnz=a(x),bnv=a(x),bnt=a(aa),bnu=a(p),bnw=a(pE),bnx=a(aa),bny=a(p),bnB=a(p),bnA=a("2.4"),bno=[0,a(F),2261,6,2271,77,[0,a(pY),[0,a(k2),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bnp=[0,a(c),eD,11,eD,41,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnn=[0,a(c),eD,11,eD,41,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnh=[0,a(c),DI,14,DI,43,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnd=[0,a(c),D9,14,D9,39,[0,a(bH),[0,a(i),[0,a(d),0]]]],bm$=[0,a(c),lN,14,lN,36,[0,a(bH),[0,a(i),[0,a(d),0]]]],bm5=[0,a(c),l1,14,l1,65,[0,a(bH),[0,a(i),[0,a(d),0]]]],bmZ=a(x),bmX=a(aa),bmY=a(p),bm0=[0,a(F),2252,5,2257,77,[0,a(pY),[0,a(k2),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bm1=[0,a(c),fV,11,fV,32,[0,a(bH),[0,a(i),[0,a(d),0]]]],bmW=[0,a(c),fV,11,fV,32,[0,a(bH),[0,a(i),[0,a(d),0]]]],bmS=[0,a(F),AK,14,AK,47,[0,a(pY),[0,a(k2),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bmT=[0,a(c),mY,11,mY,44,[0,a(bH),[0,a(i),[0,a(d),0]]]],bmR=[0,a(c),mY,11,mY,44,[0,a(bH),[0,a(i),[0,a(d),0]]]],bmU=[0,a(dn),[0,a("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"),0]],bm2=[0,a(c),fV,11,fV,32,[0,a(bH),[0,a(i),[0,a(d),0]]]],bmV=[0,a(c),fV,11,fV,32,[0,a(bH),[0,a(i),[0,a(d),0]]]],bm3=[0,a(dn),[0,a("condition_rang_enfant"),0]],bm6=[0,a(c),uj,3,uj,40,[0,a(bH),[0,a(i),[0,a(d),0]]]],bm7=[0,a(dn),[0,a(FC),0]],bm4=[0,a(dV),5,10,5,23,[0,a(bX),0]],bm8=[0,a(dn),[0,a(lR),[0,a(f7),0]]],bm9=[0,a(dn),[0,a(lR),[0,a(f7),0]]],bna=[0,a(c),hW,3,hW,18,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnb=[0,a(dn),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"),0]],bm_=[0,a(c),gF,10,gF,16,[0,a(V),[0,a(i),[0,a(d),0]]]],bne=[0,a(c),hW,3,hW,18,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnf=[0,a(dn),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]],bnc=[0,a(c),fi,10,fi,19,[0,a(V),[0,a(i),[0,a(d),0]]]],bni=[0,a(c),hW,3,hW,18,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnj=[0,a(dn),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"),0]],bng=[0,a(c),il,17,il,30,[0,a(V),[0,a(i),[0,a(d),0]]]],bnk=[0,a(dn),[0,a(BU),[0,a(aX),0]]],bnl=[0,a(dn),[0,a(BU),[0,a(aX),0]]],bnq=[0,a(c),eD,11,eD,41,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnm=[0,a(c),eD,11,eD,41,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnr=[0,a(dn),[0,a("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"),0]],bnD=[0,a(c),lF,11,lF,26,[0,a(bH),[0,a(i),[0,a(d),0]]]],bns=[0,a(c),lF,11,lF,26,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnE=[0,a(dn),[0,a("plafond_d823_22"),0]],bnJ=[0,a(c),f8,11,f8,31,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnF=[0,a(c),f8,11,f8,31,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnK=[0,a(dn),[0,a(B2),0]],bnN=[0,a(c),ih,10,ih,36,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnL=[0,a(c),ih,10,ih,36,[0,a(bH),[0,a(i),[0,a(d),0]]]],bnO=[0,a(dn),[0,a("montant_prime_d\xc3\xa9m\xc3\xa9nagement"),0]],bmN=[0,a(F),zX,14,zX,33,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bmJ=[0,a(F),zM,14,zM,36,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bmx=[0,a(aE),[0,a(bt),[0,a(af),0]]],bmy=[0,a(aE),[0,a(bt),0]],bmz=[0,a(aE),[0,a(bt),[0,a(ag),0]]],bmA=[0,a(aE),[0,a(bt),0]],bmB=[0,a(ai),[0,a(bt),[0,a(af),0]]],bmC=[0,a(ai),[0,a(bt),0]],bmD=[0,a(ai),[0,a(bt),[0,a(ag),0]]],bmE=[0,a(ai),[0,a(bt),0]],bmF=[0,a(ar),[0,a(bt),[0,a(af),0]]],bmG=[0,a(ar),[0,a(bt),0]],bmH=[0,a(ar),[0,a(bt),[0,a(ag),0]]],bmI=[0,a(ar),[0,a(bt),0]],bmK=[0,a(c),lU,10,lU,32,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmw=[0,a(c),lU,10,lU,32,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmr=[0,a(F),w4,14,w4,44,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bmn=[0,a(F),In,14,In,48,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bmg=a(p),bmh=a(p),bmi=a(p),bmj=a(p),bmk=a(p),bml=a(p),bmm=a(p),bmc=[0,a(F),HA,14,HA,32,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bl_=[0,a(F),x$,14,x$,31,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bl6=[0,a(F),ry,5,ry,69,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bl2=[0,a(F),wt,14,wt,42,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blY=[0,a(F),px,14,px,26,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blU=[0,a(F),C9,14,C9,52,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blQ=[0,a(F),xt,14,xt,47,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blM=[0,a(F),CP,14,CP,35,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blI=[0,a(F),yL,14,yL,67,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blE=[0,a(F),DK,14,DK,49,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blA=[0,a(F),yF,14,yF,37,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blx=a(p),bly=a(p),blz=a(p),blr=[0,a(F),ys,14,ys,38,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bln=a(p),blo=a(p),blp=a(p),blq=a(p),blj=[0,a(F),D5,14,D5,42,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blf=[0,a(F),DH,14,DH,33,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],blb=[0,a(F),CQ,14,CQ,59,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bk9=[0,a(F),GL,14,GL,54,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bk5=[0,a(F),E2,14,E2,56,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bk1=[0,a(F),qB,14,qB,50,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkX=[0,a(F),A6,14,A6,48,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkT=[3,0],bkU=[3,0],bkV=[3,0],bkW=[3,0],bkN=[0,a(F),GY,14,GY,47,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkJ=[0,a(F),Gp,14,Gp,53,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkG=[0,0],bkH=[0,0],bkI=[0,0],bkC=[0,a(F),F$,14,F$,43,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkz=[0,0],bkA=[0,0],bkB=[0,0],bkv=[0,a(F),vC,14,vC,38,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkr=[0,a(F),v5,14,v5,57,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkn=[0,a(F),y2,14,y2,45,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkj=[0,a(F),Hd,14,Hd,54,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkf=[0,a(F),Ds,14,Ds,73,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bkb=[0,a(F),rL,14,rL,53,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bj9=[0,a(F),uZ,14,uZ,55,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bj6=[2,0],bj7=[2,0],bj8=[2,0],bj2=[0,a(F),B9,14,B9,64,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bjY=[0,a(F),EM,14,EM,59,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bjU=[0,a(F),Bk,14,Bk,61,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bjQ=[0,a(F),zB,14,zB,55,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bjN=a(p),bjO=a(p),bjP=a(p),bjJ=[0,a(P),78,14,78,44,[0,a(cN),[0,a(b0),[0,a(L),0]]]],bjD=[0,0],bjE=[1,0],bjF=[1,0],bjG=[1,0],bjH=[0,0],bjI=[1,0],bjz=[0,a(F),Aj,14,Aj,31,[0,a(q7),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],bjw=a(c_),bjx=a(C4),bjy=a(qb),bjs=[0,a(F),GB,14,GB,34,[0,a(aj),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bjn=[0,0],bjo=[2,0],bjp=[1,0],bjq=[0,0],bjr=[1,0],bjt=[0,a(c),ng,11,ng,31,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjm=[0,a(c),ng,11,ng,31,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bju=[0,a(aB),[0,a(xL),0]],bjA=[0,a(c),mM,10,mM,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjv=[0,a(c),mM,10,mM,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjB=[0,a(aB),[0,a(w8),0]],bjK=[0,a(c),l2,11,l2,41,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjC=[0,a(c),l2,11,l2,41,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjL=[0,a(aB),[0,a(zx),0]],bjR=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjS=[0,a(aB),[0,a(Gf),0]],bjM=[0,a(c),yJ,10,yJ,31,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjV=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjW=[0,a(aB),[0,a("accession_propri\xc3\xa9t\xc3\xa9.ressources_m\xc3\xa9nage_arrondies"),0]],bjT=[0,a(c),v1,10,v1,37,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bjZ=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bj0=[0,a(aB),[0,a(E3),0]],bjX=[0,a(c),DG,10,DG,35,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bj3=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bj4=[0,a(aB),[0,a(BF),0]],bj1=[0,a(c),AI,10,AI,40,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bj_=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bj$=[0,a(aB),[0,a(EU),0]],bj5=[0,a(c),EY,10,EY,31,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkc=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkd=[0,a(aB),[0,a(Hs),0]],bka=[0,a(c),DJ,10,DJ,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkg=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkh=[0,a(aB),[0,a(Fq),0]],bke=[0,a(c),Fy,10,Fy,49,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkk=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkl=[0,a(aB),[0,a(CR),0]],bki=[0,a(c),zo,10,zo,30,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bko=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkp=[0,a(aB),[0,a(HV),0]],bkm=[0,a(c),GS,10,GS,21,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bks=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkt=[0,a(aB),[0,a(Ha),0]],bkq=[0,a(c),CN,10,CN,33,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkw=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkx=[0,a(aB),[0,a(DX),0]],bku=[0,a(c),rt,10,rt,14,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkD=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkE=[0,a(aB),[0,a("accession_propri\xc3\xa9t\xc3\xa9.type_pr\xc3\xaat"),0]],bky=[0,a(c),rH,10,rH,19,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkK=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkL=[0,a(aB),[0,a("accession_propri\xc3\xa9t\xc3\xa9.anciennet\xc3\xa9_logement"),0]],bkF=[0,a(c),A$,10,A$,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkO=[0,a(c),bx,3,bx,22,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkP=[0,a(aB),[0,a(wa),0]],bkM=[0,a(c),Dl,10,Dl,23,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkQ=[0,a(aB),[0,a(lL),[0,a(ai),0]]],bkR=[0,a(aB),[0,a(lL),[0,a(ai),0]]],bkY=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bkZ=[0,a(aB),[0,a(EO),0]],bkS=[0,a(c),h1,10,h1,29,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bk2=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bk3=[0,a(aB),[0,a(Fm),0]],bk0=[0,a(c),hL,10,hL,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bk6=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bk7=[0,a(aB),[0,a(D3),0]],bk4=[0,a(c),hn,10,hn,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bk_=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bk$=[0,a(aB),[0,a(wM),0]],bk8=[0,a(c),h4,10,h4,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],blc=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bld=[0,a(aB),[0,a(uC),0]],bla=[0,a(c),hl,10,hl,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],blg=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blh=[0,a(aB),[0,a(vQ),0]],ble=[0,a(c),hw,10,hw,14,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],blk=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bll=[0,a(aB),[0,a(uk),0]],bli=[0,a(c),hH,10,hH,23,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bls=[0,a(c),cO,3,cO,17,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blt=[0,a(aB),[0,a(Cs),0]],blm=[0,a(c),ht,10,ht,19,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],blu=[0,a(aB),[0,a(oj),[0,a(ar),0]]],blv=[0,a(aB),[0,a(oj),[0,a(ar),0]]],blB=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blC=[0,a(aB),[0,a("locatif.loyer_principal_base"),0]],blw=[0,a(c),kF,10,kF,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],blF=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blG=[0,a(aB),[0,a(Co),0]],blD=[0,a(c),li,10,li,37,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],blJ=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blK=[0,a(aB),[0,a(Bj),0]],blH=[0,a(c),l0,10,l0,55,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],blN=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blO=[0,a(aB),[0,a(Bv),0]],blL=[0,a(c),nH,10,nH,23,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],blR=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blS=[0,a(aB),[0,a(wm),0]],blP=[0,a(c),jw,10,jw,35,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],blV=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],blW=[0,a(aB),[0,a(uU),0]],blT=[0,a(c),jn,10,jn,40,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],blZ=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bl0=[0,a(aB),[0,a(yc),0]],blX=[0,a(c),mt,10,mt,14,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bl3=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bl4=[0,a(aB),[0,a(BI),0]],bl1=[0,a(c),mz,10,mz,30,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bl7=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bl8=[0,a(aB),[0,a(FV),0]],bl5=[0,a(c),nK,10,nK,66,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bl$=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bma=[0,a(aB),[0,a(Gk),0]],bl9=[0,a(c),n6,10,n6,19,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmd=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bme=[0,a(aB),[0,a(uw),0]],bmb=[0,a(c),l9,10,l9,20,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmo=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmp=[0,a(aB),[0,a(wE),0]],bmf=[0,a(c),kS,10,kS,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bms=[0,a(c),bJ,3,bJ,10,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmt=[0,a(aB),[0,a(y9),0]],bmq=[0,a(c),g_,10,g_,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmu=[0,a(aB),[0,a(l6),[0,a(aE),0]]],bmv=[0,a(aB),[0,a(l6),[0,a(aE),0]]],bmL=[0,a(aB),[0,a(bu),0]],bmO=[0,a(c),nm,10,nm,29,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmM=[0,a(c),nm,10,nm,29,[0,a(X),[0,a(o),[0,a(i),[0,a(d),0]]]]],bmP=[0,a(aB),[0,a(fr),0]],bjj=[0,a(F),Ie,14,Ie,36,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bje=[0,a(W),[0,a(bM),[0,a(af),0]]],bjf=[0,a(W),[0,a(bM),0]],bjg=[0,a(W),[0,a(bM),[0,a(ag),0]]],bjh=[0,a(W),[0,a(bM),0]],bji=a(p),bjk=[0,a(c),ly,10,ly,25,[0,a(z),[0,a(s),[0,a(d),0]]]],bjd=[0,a(c),ly,10,ly,25,[0,a(z),[0,a(s),[0,a(d),0]]]],bja=[0,a(F),wA,14,wA,36,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bi1=[0,a(W),[0,a(ew),[0,a(af),0]]],bi2=[0,a(W),[0,a(ew),0]],bi3=[0,a(W),[0,a(ew),[0,a(ag),0]]],bi4=[0,a(W),[0,a(ew),0]],bi5=[0,a(bi),[0,a(bR),[0,a(af),0]]],bi6=[0,a(bi),[0,a(bR),0]],bi7=[0,a(bi),[0,a(bR),[0,a(ag),0]]],bi8=[0,a(bi),[0,a(bR),0]],bi9=a(jP),bi_=a(p),bi$=a(p),bjb=[0,a(c),nB,10,nB,40,[0,a(z),[0,a(s),[0,a(d),0]]]],bi0=[0,a(c),nB,10,nB,40,[0,a(z),[0,a(s),[0,a(d),0]]]],biX=[0,a(F),vJ,14,vJ,36,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],biO=[0,a(W),[0,a(bL),[0,a(af),0]]],biP=[0,a(W),[0,a(bL),0]],biQ=[0,a(W),[0,a(bL),[0,a(ag),0]]],biR=[0,a(W),[0,a(bL),0]],biS=[0,a(W),[0,a(eR),[0,a(af),0]]],biT=[0,a(W),[0,a(eR),0]],biU=[0,a(W),[0,a(eR),[0,a(ag),0]]],biV=[0,a(W),[0,a(eR),0]],biW=a(p),biY=[0,a(c),ne,10,ne,32,[0,a(z),[0,a(s),[0,a(d),0]]]],biN=[0,a(c),ne,10,ne,32,[0,a(z),[0,a(s),[0,a(d),0]]]],biK=[0,a(F),ye,14,ye,33,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],biG=[0,a(F),GK,14,GK,47,[0,a(nZ),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],biB=[0,a(W),[0,a(dh),[0,a(af),0]]],biC=[0,a(W),[0,a(dh),0]],biD=[0,a(W),[0,a(dh),[0,a(ag),0]]],biE=[0,a(W),[0,a(dh),0]],biF=a(p),biH=[0,a(c),lP,11,lP,44,[0,a(z),[0,a(s),[0,a(d),0]]]],biA=[0,a(c),lP,11,lP,44,[0,a(z),[0,a(s),[0,a(d),0]]]],bix=[0,a(F),Gx,14,Gx,41,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bit=[0,a(F),Cf,14,Cf,33,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bip=[0,a(F),vo,14,vo,33,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bik=[0,a(F),4863,7,4866,45,[0,a(nZ),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bil=[0,a(c),h3,11,h3,47,[0,a(z),[0,a(s),[0,a(d),0]]]],bij=[0,a(F),FR,14,FR,50,[0,a(nZ),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bid=[0,a(F),xx,14,xx,62,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bie=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bif=[0,a(W),[0,a("calcul_apl_logement_foyer.n_nombre_parts_d832_25"),0]],bia=[0,a(F),GW,14,GW,61,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bib=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bic=[0,a(W),[0,a(F6),0]],bh9=[0,a(c),Ab,14,Ab,49,[0,a(z),[0,a(s),[0,a(d),0]]]],bh8=a(p),bh4=[0,a(c),Dg,14,Dg,53,[0,a(z),[0,a(s),[0,a(d),0]]]],bh0=[0,a(c),wy,14,wy,44,[0,a(z),[0,a(s),[0,a(d),0]]]],bhW=[0,a(c),xT,14,xT,70,[0,a(z),[0,a(s),[0,a(d),0]]]],bhS=[0,a(c),H$,14,H$,65,[0,a(z),[0,a(s),[0,a(d),0]]]],bhO=[0,a(c),qG,14,qG,67,[0,a(z),[0,a(s),[0,a(d),0]]]],bhK=[0,a(c),C3,14,C3,61,[0,a(z),[0,a(s),[0,a(d),0]]]],bhG=[0,a(c),rh,14,rh,59,[0,a(z),[0,a(s),[0,a(d),0]]]],bhF=[3,0],bhz=[0,a(F),xM,14,xM,70,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bhv=[0,a(F),Hv,14,Hv,69,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bhr=[0,a(F),Hz,14,Hz,75,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bhm=[0,a(F),D2,5,D2,44,[0,a(CC),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bhe=[0,a(W),[0,a(dJ),[0,a(af),0]]],bhf=[0,a(W),[0,a(dJ),0]],bhg=[0,a(W),[0,a(dJ),[0,a(ag),0]]],bhh=[0,a(W),[0,a(dJ),0]],bhi=[0,a(W),[0,a(dJ),[0,a(af),0]]],bhj=[0,a(W),[0,a(dJ),0]],bhk=[0,a(W),[0,a(dJ),[0,a(ag),0]]],bhl=[0,a(W),[0,a(dJ),0]],bhn=[0,a(c),gH,11,gH,36,[0,a(z),[0,a(s),[0,a(d),0]]]],bhd=[0,a(F),D0,14,D0,39,[0,a(CC),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bg$=[0,a(W),[0,a(dJ),[0,a(af),0]]],bha=[0,a(W),[0,a(dJ),0]],bhb=[0,a(W),[0,a(dJ),[0,a(ag),0]]],bhc=[0,a(W),[0,a(dJ),0]],bg6=[0,a(F),Gr,5,Gr,28,[0,a(mf),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bg7=[0,a(c),ic,10,ic,15,[0,a(z),[0,a(s),[0,a(d),0]]]],bg5=[0,a(F),Dy,14,Dy,41,[0,a(mf),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bg2=a(c_),bg3=a(qb),bg4=a("4999"),bgV=[0,a(aO),mS,24,mS,56,[0,a(ny),[0,a(bv),[0,a(aP),0]]]],bgM=a(di),bgN=[0,a(W),[0,a(cc),[0,a(af),0]]],bgO=[0,a(W),[0,a(cc),0]],bgP=[0,a(W),[0,a(cc),[0,a(ag),0]]],bgQ=[0,a(W),[0,a(cc),0]],bgR=[0,a(W),[0,a(cc),[0,a(af),0]]],bgS=[0,a(W),[0,a(cc),0]],bgT=[0,a(W),[0,a(cc),[0,a(ag),0]]],bgU=[0,a(W),[0,a(cc),0]],bgW=[0,a(c),ee,10,ee,26,[0,a(z),[0,a(s),[0,a(d),0]]]],bgL=[0,a(P),xZ,24,xZ,56,[0,a(ny),[0,a(bk),[0,a(L),0]]]],bgC=a(di),bgD=[0,a(W),[0,a(cc),[0,a(af),0]]],bgE=[0,a(W),[0,a(cc),0]],bgF=[0,a(W),[0,a(cc),[0,a(ag),0]]],bgG=[0,a(W),[0,a(cc),0]],bgH=[0,a(W),[0,a(cc),[0,a(af),0]]],bgI=[0,a(W),[0,a(cc),0]],bgJ=[0,a(W),[0,a(cc),[0,a(ag),0]]],bgK=[0,a(W),[0,a(cc),0]],bgX=[0,a(c),ee,10,ee,26,[0,a(z),[0,a(s),[0,a(d),0]]]],bgY=[0,a(c),ee,10,ee,26,[0,a(z),[0,a(s),[0,a(d),0]]]],bgB=[0,a(P),zI,14,zI,46,[0,a(bY),[0,a(bk),[0,a(L),0]]]],bgx=[0,a(W),[0,a(cc),[0,a(af),0]]],bgy=[0,a(W),[0,a(cc),0]],bgz=[0,a(W),[0,a(cc),[0,a(ag),0]]],bgA=[0,a(W),[0,a(cc),0]],bgZ=[0,a(c),ee,10,ee,26,[0,a(z),[0,a(s),[0,a(d),0]]]],bgw=[0,a(c),ee,10,ee,26,[0,a(z),[0,a(s),[0,a(d),0]]]],bgt=[0,a(F),CE,15,CE,37,[0,a(nZ),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bgu=[0,a(c),nj,11,nj,33,[0,a(z),[0,a(s),[0,a(d),0]]]],bgs=[0,a(c),nj,11,nj,33,[0,a(z),[0,a(s),[0,a(d),0]]]],bgo=[0,a(F),4888,6,4894,6,[0,a(mf),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bgp=[0,a(c),fs,11,fs,42,[0,a(z),[0,a(s),[0,a(d),0]]]],bgm=[0,a(F),4906,5,4907,59,[0,a(mf),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],bgn=[0,a(c),fs,11,fs,42,[0,a(z),[0,a(s),[0,a(d),0]]]],bgh=[0,a(P),Av,5,Av,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],bfx=a(p),bfy=a("158700"),bfz=a("191300"),bfA=a(x),bfB=a("205500"),bfC=a(U),bfD=a("211300"),bfE=a(aa),bfF=a("217100"),bfG=a(ab),bfH=a("222900"),bfI=a(O),bfJ=a(AE),bfK=a(O),bfL=a("19800"),bfM=a(AE),bfN=a(p),bfO=a("139300"),bfP=a("170600"),bfQ=a(x),bfR=a("184700"),bfS=a(U),bfT=a("191200"),bfU=a(aa),bfV=a(zQ),bfW=a(ab),bfX=a("204200"),bfY=a(O),bfZ=a(wj),bf0=a(O),bf1=a(rJ),bf2=a(wj),bf3=a(p),bf4=a("130600"),bf5=a("158400"),bf6=a(x),bf7=a("172600"),bf8=a(U),bf9=a(FG),bf_=a(aa),bf$=a("187000"),bga=a(ab),bgb=a("194200"),bgc=a(O),bgd=a(qY),bge=a(O),bgf=a("18200"),bgg=a(qY),bgi=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],bfv=[0,a(P),yr,5,yr,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],beL=a(p),beM=a("160400"),beN=a("193400"),beO=a(x),beP=a("207800"),beQ=a(U),beR=a("213700"),beS=a(aa),beT=a("219600"),beU=a(ab),beV=a(y1),beW=a(O),beX=a(nl),beY=a(O),beZ=a("20000"),be0=a(nl),be1=a(p),be2=a(Ff),be3=a(FJ),be4=a(x),be5=a("186700"),be6=a(U),be7=a("193300"),be8=a(aa),be9=a(qc),be_=a(ab),be$=a("206500"),bfa=a(O),bfb=a(wQ),bfc=a(O),bfd=a(zT),bfe=a(wQ),bff=a(p),bfg=a(Ci),bfh=a(qm),bfi=a(x),bfj=a("174500"),bfk=a(U),bfl=a(xO),bfm=a(aa),bfn=a("189100"),bfo=a(ab),bfp=a("196400"),bfq=a(O),bfr=a(uQ),bfs=a(O),bft=a("18400"),bfu=a(uQ),bfw=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],beJ=[0,a(P),BC,5,BC,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],bdZ=a(p),bd0=a("163300"),bd1=a("196900"),bd2=a(x),bd3=a("211600"),bd4=a(U),bd5=a(wp),bd6=a(aa),bd7=a("223600"),bd8=a(ab),bd9=a("229600"),bd_=a(O),bd$=a(Cw),bea=a(O),beb=a("20400"),bec=a(Cw),bed=a(p),bee=a("143300"),bef=a("175600"),beg=a(x),beh=a("190100"),bei=a(U),bej=a("196600"),bek=a(aa),bel=a("203500"),bem=a(ab),ben=a("210200"),beo=a(O),bep=a(GU),beq=a(O),ber=a("19600"),bes=a(GU),bet=a(p),beu=a("134400"),bev=a(xW),bew=a(x),bex=a("177700"),bey=a(U),bez=a("185100"),beA=a(aa),beB=a(wq),beC=a(ab),beD=a(qc),beE=a(O),beF=a(H1),beG=a(O),beH=a("18700"),beI=a(H1),beK=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],bdX=[0,a(P),Dw,5,Dw,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],bdb=a(p),bdc=a("167200"),bdd=a("201600"),bde=a(x),bdf=a("216700"),bdg=a(U),bdh=a("222800"),bdi=a(aa),bdj=a("229000"),bdk=a(ab),bdl=a("235100"),bdm=a(O),bdn=a(HU),bdo=a(O),bdp=a(vm),bdq=a(HU),bdr=a(p),bds=a("146700"),bdt=a(FG),bdu=a(x),bdv=a("194700"),bdw=a(U),bdx=a("201500"),bdy=a(aa),bdz=a("208400"),bdA=a(ab),bdB=a("215200"),bdC=a(O),bdD=a(nl),bdE=a(O),bdF=a(Cq),bdG=a(nl),bdH=a(p),bdI=a("137600"),bdJ=a("166900"),bdK=a(x),bdL=a("182000"),bdM=a(U),bdN=a("189500"),bdO=a(aa),bdP=a("197100"),bdQ=a(ab),bdR=a(EA),bdS=a(O),bdT=a(B5),bdU=a(O),bdV=a(rJ),bdW=a(B5),bdY=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],bc$=[0,a(P),xm,5,xm,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],bcp=a(p),bcq=a("167400"),bcr=a("201800"),bcs=a(x),bct=a("216900"),bcu=a(U),bcv=a("223000"),bcw=a(aa),bcx=a("229200"),bcy=a(ab),bcz=a("235300"),bcA=a(O),bcB=a(A9),bcC=a(O),bcD=a(vm),bcE=a(A9),bcF=a(p),bcG=a("146800"),bcH=a("180000"),bcI=a(x),bcJ=a("194900"),bcK=a(U),bcL=a(Hh),bcM=a(aa),bcN=a(qY),bcO=a(ab),bcP=a("215400"),bcQ=a(O),bcR=a(DM),bcS=a(O),bcT=a(Cq),bcU=a(DM),bcV=a(p),bcW=a("137700"),bcX=a("167100"),bcY=a(x),bcZ=a("182200"),bc0=a(U),bc1=a("189700"),bc2=a(aa),bc3=a("197300"),bc4=a(ab),bc5=a("204900"),bc6=a(O),bc7=a(FA),bc8=a(O),bc9=a(rJ),bc_=a(FA),bda=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],bcn=[0,a(P),GX,5,GX,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],bbD=a(p),bbE=a("169100"),bbF=a("203800"),bbG=a(x),bbH=a("219100"),bbI=a(U),bbJ=a("225200"),bbK=a(aa),bbL=a("231500"),bbM=a(ab),bbN=a("237700"),bbO=a(O),bbP=a(lc),bbQ=a(O),bbR=a("21100"),bbS=a(lc),bbT=a(p),bbU=a("148300"),bbV=a(xO),bbW=a(x),bbX=a("196800"),bbY=a(U),bbZ=a("203700"),bb0=a(aa),bb1=a("210700"),bb2=a(ab),bb3=a(wp),bb4=a(O),bb5=a(wX),bb6=a(O),bb7=a("20300"),bb8=a(wX),bb9=a(p),bb_=a("139100"),bb$=a("168800"),bca=a(x),bcb=a(qZ),bcc=a(U),bcd=a("191600"),bce=a(aa),bcf=a("199300"),bcg=a(ab),bch=a("206900"),bci=a(O),bcj=a(BK),bck=a(O),bcl=a(zT),bcm=a(BK),bco=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],bbB=[0,a(P),AF,5,AF,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],baR=a(p),baS=a("171100"),baT=a("206200"),baU=a(x),baV=a("221700"),baW=a(U),baX=a("227900"),baY=a(aa),baZ=a("234300"),ba0=a(ab),ba1=a("240600"),ba2=a(O),ba3=a(As),ba4=a(O),ba5=a("21400"),ba6=a(As),ba7=a(p),ba8=a("150100"),ba9=a(qZ),ba_=a(x),ba$=a("199200"),bba=a(U),bbb=a("206100"),bbc=a(aa),bbd=a("213200"),bbe=a(ab),bbf=a("220200"),bbg=a(O),bbh=a(zz),bbi=a(O),bbj=a("20500"),bbk=a(zz),bbl=a(p),bbm=a(Ff),bbn=a("170800"),bbo=a(x),bbp=a("186200"),bbq=a(U),bbr=a("193900"),bbs=a(aa),bbt=a(Hh),bbu=a(ab),bbv=a("209400"),bbw=a(O),bbx=a(BJ),bby=a(O),bbz=a("19500"),bbA=a(BJ),bbC=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],baP=[0,a(P),F8,5,F8,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a$5=a(p),a$6=a("26084"),a$7=a("31435"),a$8=a(x),a$9=a("33798"),a$_=a(U),a$$=a("34743"),baa=a(aa),bab=a("35719"),bac=a(ab),bad=a("36679"),bae=a(O),baf=a(zG),bag=a(O),bah=a("3262"),bai=a(zG),baj=a(p),bak=a("22883"),bal=a("28051"),bam=a(x),ban=a("30368"),bao=a(U),bap=a("31420"),baq=a(aa),bar=a("32502"),bas=a(ab),bat=a("33569"),bau=a(O),bav=a(HC),baw=a(O),bax=a("3125"),bay=a(HC),baz=a(p),baA=a("21465"),baB=a("26038"),baC=a(x),baD=a("28386"),baE=a(U),baF=a("29560"),baG=a(aa),baH=a("30749"),baI=a(ab),baJ=a("31923"),baK=a(O),baL=a(GZ),baM=a(O),baN=a("2973"),baO=a(GZ),baQ=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a$3=[0,a(P),Gs,5,Gs,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a$h=a(p),a$i=a("26397"),a$j=a("31812"),a$k=a(x),a$l=a("34204"),a$m=a(U),a$n=a("35160"),a$o=a(aa),a$p=a("36148"),a$q=a(ab),a$r=a("37119"),a$s=a(O),a$t=a(z3),a$u=a(O),a$v=a("3301"),a$w=a(z3),a$x=a(p),a$y=a("23158"),a$z=a("28388"),a$A=a(x),a$B=a("30732"),a$C=a(U),a$D=a(lT),a$E=a(aa),a$F=a("32892"),a$G=a(ab),a$H=a("33972"),a$I=a(O),a$J=a(GD),a$K=a(O),a$L=a("3163"),a$M=a(GD),a$N=a(p),a$O=a("21723"),a$P=a("26350"),a$Q=a(x),a$R=a("28727"),a$S=a(U),a$T=a("29915"),a$U=a(aa),a$V=a("31118"),a$W=a(ab),a$X=a("32306"),a$Y=a(O),a$Z=a(xp),a$0=a(O),a$1=a("3009"),a$2=a(xp),a$4=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a$f=[0,a(P),zH,5,zH,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a_v=a(p),a_w=a(Iw),a_x=a("32194"),a_y=a(x),a_z=a("34614"),a_A=a(U),a_B=a("35582"),a_C=a(aa),a_D=a("36582"),a_E=a(ab),a_F=a("37564"),a_G=a(O),a_H=a(wD),a_I=a(O),a_J=a("3341"),a_K=a(wD),a_L=a(p),a_M=a("23436"),a_N=a("28729"),a_O=a(x),a_P=a("31101"),a_Q=a(U),a_R=a("32179"),a_S=a(aa),a_T=a("33287"),a_U=a(ab),a_V=a("34380"),a_W=a(O),a_X=a(BE),a_Y=a(O),a_Z=a("3201"),a_0=a(BE),a_1=a(p),a_2=a("21984"),a_3=a("26666"),a_4=a(x),a_5=a("29072"),a_6=a(U),a_7=a("30274"),a_8=a(aa),a_9=a("31491"),a__=a(ab),a_$=a("32694"),a$a=a(O),a$b=a(CB),a$c=a(O),a$d=a("3045"),a$e=a(CB),a$g=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a_t=[0,a(P),FE,5,FE,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a9J=a(p),a9K=a("27195"),a9L=a("32773"),a9M=a(x),a9N=a("35237"),a9O=a(U),a9P=a("36222"),a9Q=a(aa),a9R=a("37240"),a9S=a(ab),a9T=a("38240"),a9U=a(O),a9V=a(Cv),a9W=a(O),a9X=a("3401"),a9Y=a(Cv),a9Z=a(p),a90=a("23858"),a91=a("29246"),a92=a(x),a93=a("31661"),a94=a(U),a95=a("32758"),a96=a(aa),a97=a("33886"),a98=a(ab),a99=a("34999"),a9_=a(O),a9$=a(z6),a_a=a(O),a_b=a("3259"),a_c=a(z6),a_d=a(p),a_e=a("22380"),a_f=a("27146"),a_g=a(x),a_h=a("29595"),a_i=a(U),a_j=a("30819"),a_k=a(aa),a_l=a("32058"),a_m=a(ab),a_n=a("33282"),a_o=a(O),a_p=a(Bp),a_q=a(O),a_r=a("3100"),a_s=a(Bp),a_u=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a9H=[0,a(P),pR,5,pR,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a8X=a(p),a8Y=a("27956"),a8Z=a("33691"),a80=a(x),a81=a("36224"),a82=a(U),a83=a("37236"),a84=a(aa),a85=a("38283"),a86=a(ab),a87=a("39311"),a88=a(O),a89=a(y6),a8_=a(O),a8$=a("3496"),a9a=a(y6),a9b=a(p),a9c=a("24526"),a9d=a("30065"),a9e=a(x),a9f=a("32548"),a9g=a(U),a9h=a("33675"),a9i=a(aa),a9j=a(HM),a9k=a(ab),a9l=a("35979"),a9m=a(O),a9n=a(BB),a9o=a(O),a9p=a("3350"),a9q=a(BB),a9r=a(p),a9s=a("23007"),a9t=a("27906"),a9u=a(x),a9v=a("30424"),a9w=a(U),a9x=a("31682"),a9y=a(aa),a9z=a(y$),a9A=a(ab),a9B=a("34214"),a9C=a(O),a9D=a(Gw),a9E=a(O),a9F=a("3187"),a9G=a(Gw),a9I=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a8V=[0,a(P),xz,5,xz,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a7$=a(p),a8a=a("28728"),a8b=a("34621"),a8c=a(x),a8d=a("37224"),a8e=a(U),a8f=a("38264"),a8g=a(aa),a8h=a(yw),a8i=a(ab),a8j=a("40396"),a8k=a(O),a8l=a(x0),a8m=a(O),a8n=a("3592"),a8o=a(x0),a8p=a(p),a8q=a("25203"),a8r=a("30895"),a8s=a(x),a8t=a("33446"),a8u=a(U),a8v=a("34604"),a8w=a(aa),a8x=a("35796"),a8y=a(ab),a8z=a("36972"),a8A=a(O),a8B=a(Hr),a8C=a(O),a8D=a("3442"),a8E=a(Hr),a8F=a(p),a8G=a("23642"),a8H=a("28676"),a8I=a(x),a8J=a(xw),a8K=a(U),a8L=a("32556"),a8M=a(aa),a8N=a("33866"),a8O=a(ab),a8P=a("35158"),a8Q=a(O),a8R=a(v$),a8S=a(O),a8T=a("3275"),a8U=a(v$),a8W=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a79=[0,a(P),yt,5,yt,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a7n=a(p),a7o=a("29575"),a7p=a("35642"),a7q=a(x),a7r=a("38322"),a7s=a(U),a7t=a("39393"),a7u=a(aa),a7v=a("40501"),a7w=a(ab),a7x=a("41588"),a7y=a(O),a7z=a(E0),a7A=a(O),a7B=a("3698"),a7C=a(E0),a7D=a(p),a7E=a("25946"),a7F=a("31806"),a7G=a(x),a7H=a("34433"),a7I=a(U),a7J=a("35625"),a7K=a(aa),a7L=a("36852"),a7M=a(ab),a7N=a("38063"),a7O=a(O),a7P=a(Bl),a7Q=a(O),a7R=a("3544"),a7S=a(Bl),a7T=a(p),a7U=a("24339"),a7V=a("29522"),a7W=a(x),a7X=a("32186"),a7Y=a(U),a7Z=a("33516"),a70=a(aa),a71=a(HM),a72=a(ab),a73=a("36195"),a74=a(O),a75=a(Ge),a76=a(O),a77=a("3372"),a78=a(Ge),a7_=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a7l=[0,a(P),uq,5,uq,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a6B=a(p),a6C=a("29670"),a6D=a("35757"),a6E=a(x),a6F=a("38445"),a6G=a(U),a6H=a("39519"),a6I=a(aa),a6J=a("40601"),a6K=a(ab),a6L=a("41721"),a6M=a(O),a6N=a(E8),a6O=a(O),a6P=a("3710"),a6Q=a(E8),a6R=a(p),a6S=a("26029"),a6T=a("31908"),a6U=a(x),a6V=a("34643"),a6W=a(U),a6X=a("35739"),a6Y=a(aa),a6Z=a("36970"),a60=a(ab),a61=a("38185"),a62=a(O),a63=a(B6),a64=a(O),a65=a("3555"),a66=a(B6),a67=a(p),a68=a("24417"),a69=a("29616"),a6_=a(x),a6$=a("32289"),a7a=a(U),a7b=a(z7),a7c=a(aa),a7d=a("34977"),a7e=a(ab),a7f=a("36311"),a7g=a(O),a7h=a(AZ),a7i=a(O),a7j=a("3383"),a7k=a(AZ),a7m=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a6z=[0,a(P),wR,5,wR,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a5P=a(p),a5Q=a("29996"),a5R=a("36149"),a5S=a(x),a5T=a("38868"),a5U=a(U),a5V=a("39954"),a5W=a(aa),a5X=a("41078"),a5Y=a(ab),a5Z=a("42180"),a50=a(O),a51=a(Cm),a52=a(O),a53=a("3751"),a54=a(Cm),a55=a(p),a56=a("26315"),a57=a("32259"),a58=a(x),a59=a("34923"),a5_=a(U),a5$=a("36132"),a6a=a(aa),a6b=a("37373"),a6c=a(ab),a6d=a("38605"),a6e=a(O),a6f=a(Fj),a6g=a(O),a6h=a("3594"),a6i=a(Fj),a6j=a(p),a6k=a("24686"),a6l=a("29942"),a6m=a(x),a6n=a("32644"),a6o=a(U),a6p=a("33993"),a6q=a(aa),a6r=a("35362"),a6s=a(ab),a6t=a("36710"),a6u=a(O),a6v=a(Be),a6w=a(O),a6x=a("3420"),a6y=a(Be),a6A=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a5N=[0,a(P),Fk,5,Fk,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a43=a(p),a44=a("30296"),a45=a("36510"),a46=a(x),a47=a("39257"),a48=a(U),a49=a("40354"),a4_=a(aa),a4$=a("41489"),a5a=a(ab),a5b=a("42602"),a5c=a(O),a5d=a(vI),a5e=a(O),a5f=a("3789"),a5g=a(vI),a5h=a(p),a5i=a("26578"),a5j=a("32582"),a5k=a(x),a5l=a("35272"),a5m=a(U),a5n=a("36493"),a5o=a(aa),a5p=a("37751"),a5q=a(ab),a5r=a("38991"),a5s=a(O),a5t=a(xQ),a5u=a(O),a5v=a("3630"),a5w=a(xQ),a5x=a(p),a5y=a("24933"),a5z=a("30241"),a5A=a(x),a5B=a("32970"),a5C=a(U),a5D=a("34333"),a5E=a(aa),a5F=a("35716"),a5G=a(ab),a5H=a("37077"),a5I=a(O),a5J=a(uI),a5K=a(O),a5L=a("3454"),a5M=a(uI),a5O=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a41=[0,a(P),An,5,An,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a4f=a(p),a4g=a("30947"),a4h=a("37295"),a4i=a(x),a4j=a("40101"),a4k=a(U),a4l=a("41222"),a4m=a(aa),a4n=a("42381"),a4o=a(ab),a4p=a("43518"),a4q=a(O),a4r=a(Eg),a4s=a(O),a4t=a("3870"),a4u=a(Eg),a4v=a(p),a4w=a("27149"),a4x=a("33283"),a4y=a(x),a4z=a("36030"),a4A=a(U),a4B=a("37278"),a4C=a(aa),a4D=a("38563"),a4E=a(ab),a4F=a("39829"),a4G=a(O),a4H=a("42649"),a4I=a(O),a4J=a("3708"),a4K=a("42659"),a4L=a(p),a4M=a("25469"),a4N=a("30891"),a4O=a(x),a4P=a("33679"),a4Q=a(U),a4R=a("35071"),a4S=a(aa),a4T=a("36484"),a4U=a(ab),a4V=a("37874"),a4W=a(O),a4X=a(Ep),a4Y=a(O),a4Z=a("3528"),a40=a(Ep),a42=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a4d=[0,a(P),BG,5,BG,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a3t=a(p),a3u=a("31123"),a3v=a("37508"),a3w=a(x),a3x=a("40330"),a3y=a(U),a3z=a("41457"),a3A=a(aa),a3B=a("42623"),a3C=a(ab),a3D=a("43766"),a3E=a(O),a3F=a(uK),a3G=a(O),a3H=a("3892"),a3I=a(uK),a3J=a(p),a3K=a("27304"),a3L=a("33473"),a3M=a(x),a3N=a("36235"),a3O=a(U),a3P=a("37490"),a3Q=a(aa),a3R=a("38783"),a3S=a(ab),a3T=a("40056"),a3U=a(O),a3V=a(Dn),a3W=a(O),a3X=a("3729"),a3Y=a(Dn),a3Z=a(p),a30=a("25614"),a31=a("31067"),a32=a(x),a33=a("33871"),a34=a(U),a35=a("35271"),a36=a(aa),a37=a("36692"),a38=a(ab),a39=a("38090"),a3_=a(O),a3$=a(zS),a4a=a(O),a4b=a("3548"),a4c=a(zS),a4e=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a3r=[0,a(P),xs,5,xs,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a2H=a(p),a2I=a("31148"),a2J=a("37538"),a2K=a(x),a2L=a("40362"),a2M=a(U),a2N=a("41490"),a2O=a(aa),a2P=a("42657"),a2Q=a(ab),a2R=a("43801"),a2S=a(O),a2T=a(xq),a2U=a(O),a2V=a("3895"),a2W=a(xq),a2X=a(p),a2Y=a("27326"),a2Z=a(H_),a20=a(x),a21=a("36264"),a22=a(U),a23=a("37520"),a24=a(aa),a25=a("38814"),a26=a(ab),a27=a("40088"),a28=a(O),a29=a(HZ),a2_=a(O),a2$=a("3732"),a3a=a(HZ),a3b=a(p),a3c=a("25634"),a3d=a("31092"),a3e=a(x),a3f=a("33898"),a3g=a(U),a3h=a("35299"),a3i=a(aa),a3j=a("36721"),a3k=a(ab),a3l=a("38120"),a3m=a(O),a3n=a(AU),a3o=a(O),a3p=a("3551"),a3q=a(AU),a3s=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a2F=[0,a(P),xi,5,xi,64,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a1V=a(p),a1W=a("31382"),a1X=a("37820"),a1Y=a(x),a1Z=a("40665"),a10=a(U),a11=a("41801"),a12=a(aa),a13=a("42977"),a14=a(ab),a15=a("44130"),a16=a(O),a17=a(AJ),a18=a(O),a19=a("3924"),a1_=a(AJ),a1$=a(p),a2a=a("27531"),a2b=a("33751"),a2c=a(x),a2d=a("36536"),a2e=a(U),a2f=a("37801"),a2g=a(aa),a2h=a("39105"),a2i=a(ab),a2j=a("40389"),a2k=a(O),a2l=a(wx),a2m=a(O),a2n=a("3760"),a2o=a(wx),a2p=a(p),a2q=a("25826"),a2r=a("31325"),a2s=a(x),a2t=a("34152"),a2u=a(U),a2v=a("35564"),a2w=a(aa),a2x=a("36996"),a2y=a(ab),a2z=a("38406"),a2A=a(O),a2B=a(z_),a2C=a(O),a2D=a("3578"),a2E=a(z_),a2G=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a1T=[0,a(P),uB,5,uB,33,[0,a(bY),[0,a(bk),[0,a(L),0]]]],a09=a(p),a0_=a("31476"),a0$=a("37933"),a1a=a(x),a1b=a("40787"),a1c=a(U),a1d=a("41927"),a1e=a(aa),a1f=a("43106"),a1g=a(ab),a1h=a("44262"),a1i=a(O),a1j=a(wg),a1k=a(O),a1l=a("3936"),a1m=a(wg),a1n=a(p),a1o=a("27614"),a1p=a("33853"),a1q=a(x),a1r=a("36646"),a1s=a(U),a1t=a("37915"),a1u=a(aa),a1v=a("39222"),a1w=a(ab),a1x=a("40510"),a1y=a(O),a1z=a(G7),a1A=a(O),a1B=a("3771"),a1C=a(G7),a1D=a(p),a1E=a("25904"),a1F=a("31419"),a1G=a(x),a1H=a("34255"),a1I=a(U),a1J=a("35670"),a1K=a(aa),a1L=a("37107"),a1M=a(ab),a1N=a("38521"),a1O=a(O),a1P=a(Ib),a1Q=a(O),a1R=a("3588"),a1S=a(Ib),a1U=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],bgj=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a08=[0,a(c),aU,10,aU,14,[0,a(z),[0,a(s),[0,a(d),0]]]],a05=[0,a(F),uz,14,uz,36,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],a03=a(p),a04=a(p),a06=[0,a(c),kU,10,kU,32,[0,a(z),[0,a(s),[0,a(d),0]]]],a02=[0,a(c),kU,10,kU,32,[0,a(z),[0,a(s),[0,a(d),0]]]],a0X=[0,a(aO),zL,5,zL,16,[0,a(ny),[0,a(bv),[0,a(aP),0]]]],a0U=a(gE),a0V=a(pG),a0W=a(fe),a0Y=[0,a(c),dq,11,dq,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a0T=[0,a(aO),d4,43,d4,70,[0,a(u_),[0,a(bv),[0,a(aP),0]]]],a0P=a(p),a0Q=a(fe),a0R=a(gE),a0S=a(fe),a0Z=[0,a(c),dq,11,dq,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a0M=[0,a(P),yj,5,yj,16,[0,a(ny),[0,a(bk),[0,a(L),0]]]],a0J=a(gw),a0K=a(qa),a0L=a(fn),a0N=[0,a(c),dq,11,dq,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a0I=[0,a(P),Hx,31,Hx,58,[0,a(u_),[0,a(bk),[0,a(L),0]]]],a0E=a(p),a0F=a(fn),a0G=a(gw),a0H=a(fn),a0O=[0,a(c),dq,11,dq,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a0D=[0,a(c),dq,47,dq,53,[0,a(z),[0,a(s),[0,a(d),0]]]],a0x=[0,a(c),F4,14,F4,50,[0,a(z),[0,a(s),[0,a(d),0]]]],a0r=[0,a(F),Fh,14,Fh,64,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],a0n=[0,a(F),D4,14,D4,59,[0,a(c9),[0,a(aD),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],a0j=[0,a(P),Ca,14,Ca,33,[0,a(El),[0,a(bk),[0,a(L),0]]]],a0i=a(Bm),a0e=[0,a(P),xo,14,xo,33,[0,a(DP),[0,a(bk),[0,a(L),0]]]],a0d=a(rF),aZ$=[0,a(P),FO,14,FO,41,[0,a(El),[0,a(bk),[0,a(L),0]]]],aZ_=a("390000"),aZ6=[0,a(P),xl,14,xl,41,[0,a(DP),[0,a(bk),[0,a(L),0]]]],aZ5=a(pU),aZ1=[0,a(P),vy,14,vy,41,[0,a("Article 36"),[0,a(bk),[0,a(L),0]]]],aZ0=a(hF),aZW=[0,a(fC),c8,14,c8,36,[0,a(Ey),[0,a(zF),0]]],aZU=a(vd),aZV=a(ey),aZQ=[0,a(P),Ih,14,Ih,40,[0,a("Article 35"),[0,a(bk),[0,a(L),0]]]],aZP=a(jb),aZR=[0,a(c),nG,11,nG,37,[0,a(z),[0,a(s),[0,a(d),0]]]],aZO=[0,a(c),nG,11,nG,37,[0,a(z),[0,a(s),[0,a(d),0]]]],aZS=[0,a(W),[0,a("montant_forfaitaire_d842_6"),0]],aZX=[0,a(c),l_,11,l_,33,[0,a(z),[0,a(s),[0,a(d),0]]]],aZT=[0,a(c),l_,11,l_,33,[0,a(z),[0,a(s),[0,a(d),0]]]],aZY=[0,a(W),[0,a(HJ),0]],aZ2=[0,a(c),mK,11,mK,38,[0,a(z),[0,a(s),[0,a(d),0]]]],aZZ=[0,a(c),mK,11,mK,38,[0,a(z),[0,a(s),[0,a(d),0]]]],aZ3=[0,a(W),[0,a("montant_minimal_aide_d842_6"),0]],aZ7=[0,a(c),oh,11,oh,38,[0,a(z),[0,a(s),[0,a(d),0]]]],aZ4=[0,a(c),oh,11,oh,38,[0,a(z),[0,a(s),[0,a(d),0]]]],aZ8=[0,a(W),[0,a("montant_forfaitaire_d842_11"),0]],a0a=[0,a(c),kH,11,kH,38,[0,a(z),[0,a(s),[0,a(d),0]]]],aZ9=[0,a(c),kH,11,kH,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a0b=[0,a(W),[0,a("montant_forfaitaire_d842_12"),0]],a0f=[0,a(c),lS,11,lS,30,[0,a(z),[0,a(s),[0,a(d),0]]]],a0c=[0,a(c),lS,11,lS,30,[0,a(z),[0,a(s),[0,a(d),0]]]],a0g=[0,a(W),[0,a("coefficient_d842_11"),0]],a0k=[0,a(c),n4,11,n4,30,[0,a(z),[0,a(s),[0,a(d),0]]]],a0h=[0,a(c),n4,11,n4,30,[0,a(z),[0,a(s),[0,a(d),0]]]],a0l=[0,a(W),[0,a("coefficient_d842_12"),0]],a0o=[0,a(c),mC,3,mC,22,[0,a(z),[0,a(s),[0,a(d),0]]]],a0p=[0,a(W),[0,a(mj),0]],a0m=[0,a(c),ib,10,ib,35,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],a0s=[0,a(c),mC,3,mC,22,[0,a(z),[0,a(s),[0,a(d),0]]]],a0t=[0,a(W),[0,a(m$),0]],a0q=[0,a(c),kG,10,kG,40,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],a0u=[0,a(W),[0,a(f_),[0,a(jh),0]]],a0v=[0,a(W),[0,a(f_),[0,a(jh),0]]],a0y=[0,a(c),p6,3,p6,25,[0,a(z),[0,a(s),[0,a(d),0]]]],a0z=[0,a(W),[0,a(js),0]],a0w=[0,a(c),eA,10,eA,23,[0,a(dC),[0,a(i),[0,a(d),0]]]],a0A=[0,a(W),[0,a(eQ),[0,a(bi),0]]],a0B=[0,a(W),[0,a(eQ),[0,a(bi),0]]],a00=[0,a(c),dq,11,dq,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a0C=[0,a(c),dq,11,dq,38,[0,a(z),[0,a(s),[0,a(d),0]]]],a01=[0,a(W),[0,a(uY),0]],a07=[0,a(W),[0,a(bL),0]],bgk=[0,a(W),[0,a(cc),0]],bgq=[0,a(c),fs,11,fs,42,[0,a(z),[0,a(s),[0,a(d),0]]]],bgl=[0,a(c),fs,11,fs,42,[0,a(z),[0,a(s),[0,a(d),0]]]],bgr=[0,a(W),[0,a("seuil_minimal_ressources_m\xc3\xa9nage"),0]],bgv=[0,a(W),[0,a(dh),0]],bg0=[0,a(W),[0,a(dJ),0]],bg8=[0,a(c),ic,10,ic,15,[0,a(z),[0,a(s),[0,a(d),0]]]],bg1=[0,a(c),ic,10,ic,15,[0,a(z),[0,a(s),[0,a(d),0]]]],bg9=[0,a(W),[0,a(Eo),0]],bho=[0,a(c),gH,11,gH,36,[0,a(z),[0,a(s),[0,a(d),0]]]],bg_=[0,a(c),gH,11,gH,36,[0,a(z),[0,a(s),[0,a(d),0]]]],bhp=[0,a(W),[0,a("plafond_mensualit\xc3\xa9_d842_6"),0]],bhs=[0,a(c),hY,3,hY,36,[0,a(z),[0,a(s),[0,a(d),0]]]],bht=[0,a(W),[0,a(lG),0]],bhq=[0,a(c),fX,10,fX,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhw=[0,a(c),hY,3,hY,36,[0,a(z),[0,a(s),[0,a(d),0]]]],bhx=[0,a(W),[0,a(nv),0]],bhu=[0,a(c),f$,10,f$,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhA=[0,a(c),hY,3,hY,36,[0,a(z),[0,a(s),[0,a(d),0]]]],bhB=[0,a(W),[0,a(lv),0]],bhy=[0,a(c),fK,10,fK,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhC=[0,a(W),[0,a(fH),[0,a(dT),0]]],bhD=[0,a(W),[0,a(fH),[0,a(dT),0]]],bhH=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bhI=[0,a(W),[0,a(xY),0]],bhE=[0,a(c),h1,10,h1,29,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhL=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bhM=[0,a(W),[0,a(zY),0]],bhJ=[0,a(c),hL,10,hL,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhP=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bhQ=[0,a(W),[0,a(vh),0]],bhN=[0,a(c),hn,10,hn,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhT=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bhU=[0,a(W),[0,a(HD),0]],bhR=[0,a(c),h4,10,h4,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bhX=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bhY=[0,a(W),[0,a(DA),0]],bhV=[0,a(c),hl,10,hl,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bh1=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bh2=[0,a(W),[0,a(DY),0]],bhZ=[0,a(c),hw,10,hw,14,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bh5=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bh6=[0,a(W),[0,a(Hc),0]],bh3=[0,a(c),hH,10,hH,23,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],bh_=[0,a(c),ci,3,ci,28,[0,a(z),[0,a(s),[0,a(d),0]]]],bh$=[0,a(W),[0,a(vY),0]],bh7=[0,a(c),ht,10,ht,19,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],big=[0,a(W),[0,a(mT),[0,a(ar),0]]],bih=[0,a(W),[0,a(mT),[0,a(ar),0]]],bim=[0,a(c),h3,11,h3,47,[0,a(z),[0,a(s),[0,a(d),0]]]],bii=[0,a(c),h3,11,h3,47,[0,a(z),[0,a(s),[0,a(d),0]]]],bin=[0,a(W),[0,a("seuil_minimal_d\xc3\xa9pense_nette_minimale"),0]],biq=[0,a(c),jf,11,jf,30,[0,a(z),[0,a(s),[0,a(d),0]]]],bio=[0,a(c),jf,11,jf,30,[0,a(z),[0,a(s),[0,a(d),0]]]],bir=[0,a(W),[0,a(HH),0]],biu=[0,a(c),jE,11,jE,30,[0,a(z),[0,a(s),[0,a(d),0]]]],bis=[0,a(c),jE,11,jE,30,[0,a(z),[0,a(s),[0,a(d),0]]]],biv=[0,a(W),[0,a(ze),0]],biy=[0,a(c),gB,11,gB,38,[0,a(z),[0,a(s),[0,a(d),0]]]],biw=[0,a(c),gB,11,gB,38,[0,a(z),[0,a(s),[0,a(d),0]]]],biz=[0,a(W),[0,a(yS),0]],biI=[0,a(W),[0,a(eR),0]],biL=[0,a(c),nQ,10,nQ,29,[0,a(z),[0,a(s),[0,a(d),0]]]],biJ=[0,a(c),nQ,10,nQ,29,[0,a(z),[0,a(s),[0,a(d),0]]]],biM=[0,a(W),[0,a(fr),0]],biZ=[0,a(W),[0,a(ew),0]],bjc=[0,a(W),[0,a(bM),0]],bjl=[0,a(W),[0,a(bt),0]],aZL=[0,a(F),yE,14,yE,36,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aZG=[0,a(al),[0,a(bM),[0,a(af),0]]],aZH=[0,a(al),[0,a(bM),0]],aZI=[0,a(al),[0,a(bM),[0,a(ag),0]]],aZJ=[0,a(al),[0,a(bM),0]],aZK=a(p),aZM=[0,a(c),kK,10,kK,25,[0,a(C),[0,a(s),[0,a(d),0]]]],aZF=[0,a(c),kK,10,kK,25,[0,a(C),[0,a(s),[0,a(d),0]]]],aZC=[0,a(F),up,14,up,36,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aZr=[0,a(al),[0,a(jx),[0,a(af),0]]],aZs=[0,a(al),[0,a(jx),0]],aZt=[0,a(al),[0,a(jx),[0,a(ag),0]]],aZu=[0,a(al),[0,a(jx),0]],aZv=[0,a(bi),[0,a(bR),[0,a(af),0]]],aZw=[0,a(bi),[0,a(bR),0]],aZx=[0,a(bi),[0,a(bR),[0,a(ag),0]]],aZy=[0,a(bi),[0,a(bR),0]],aZz=a(jP),aZA=a(p),aZB=a(p),aZD=[0,a(c),m4,10,m4,40,[0,a(C),[0,a(s),[0,a(d),0]]]],aZq=[0,a(c),m4,10,m4,40,[0,a(C),[0,a(s),[0,a(d),0]]]],aZn=[0,a(F),Fr,14,Fr,36,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aZj=[0,a(al),[0,a(ew),[0,a(af),0]]],aZk=[0,a(al),[0,a(ew),0]],aZl=[0,a(al),[0,a(ew),[0,a(ag),0]]],aZm=[0,a(al),[0,a(ew),0]],aZo=[0,a(c),kZ,10,kZ,19,[0,a(C),[0,a(s),[0,a(d),0]]]],aZi=[0,a(c),kZ,10,kZ,19,[0,a(C),[0,a(s),[0,a(d),0]]]],aZf=[0,a(F),Go,14,Go,36,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aY7=[0,a(al),[0,a(bL),[0,a(af),0]]],aY8=[0,a(al),[0,a(bL),0]],aY9=[0,a(al),[0,a(bL),[0,a(ag),0]]],aY_=[0,a(al),[0,a(bL),0]],aY$=[0,a(al),[0,a(eR),[0,a(af),0]]],aZa=[0,a(al),[0,a(eR),0]],aZb=[0,a(al),[0,a(eR),[0,a(ag),0]]],aZc=[0,a(al),[0,a(eR),0]],aZd=a(p),aZe=a(p),aZg=[0,a(c),jD,10,jD,32,[0,a(C),[0,a(s),[0,a(d),0]]]],aY6=[0,a(c),jD,10,jD,32,[0,a(C),[0,a(s),[0,a(d),0]]]],aY3=[0,a(F),GI,14,GI,33,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYZ=[0,a(F),w5,14,w5,47,[0,a(Eb),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYQ=[0,a(al),[0,a(dh),[0,a(af),0]]],aYR=[0,a(al),[0,a(dh),0]],aYS=[0,a(al),[0,a(dh),[0,a(ag),0]]],aYT=[0,a(al),[0,a(dh),0]],aYU=[0,a(al),[0,a(dh),[0,a(af),0]]],aYV=[0,a(al),[0,a(dh),0]],aYW=[0,a(al),[0,a(dh),[0,a(ag),0]]],aYX=[0,a(al),[0,a(dh),0]],aYY=a(p),aY0=[0,a(c),iZ,11,iZ,44,[0,a(C),[0,a(s),[0,a(d),0]]]],aYP=[0,a(c),iZ,11,iZ,44,[0,a(C),[0,a(s),[0,a(d),0]]]],aYM=[0,a(F),HX,14,HX,27,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYI=[0,a(F),xn,14,xn,36,[0,a(Eb),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYJ=[0,a(c),mo,11,mo,33,[0,a(C),[0,a(s),[0,a(d),0]]]],aYH=[0,a(c),mo,11,mo,33,[0,a(C),[0,a(s),[0,a(d),0]]]],aYE=[0,a(F),E_,14,E_,41,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYy=[0,a(F),Hl,14,Hl,70,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYu=[0,a(F),Dm,14,Dm,69,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYq=[0,a(F),xa,14,xa,75,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYm=[0,a(F),zc,14,zc,36,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aYk=a(p),aYl=a(p),aYn=[0,a(c),f0,10,f0,32,[0,a(C),[0,a(s),[0,a(d),0]]]],aYj=[0,a(c),f0,10,f0,32,[0,a(C),[0,a(s),[0,a(d),0]]]],aYf=[0,a(P),md,6,md,79,[0,a(fF),[0,a(fU),[0,a(L),0]]]],aYd=a("8708"),aYe=a("13559"),aYg=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aYb=[0,a(P),4368,6,4369,38,[0,a(fF),[0,a(fU),[0,a(L),0]]]],aX$=a("21362"),aYa=a("33196"),aYc=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aX8=[0,a(P),4386,6,4387,24,[0,a(fF),[0,a(fU),[0,a(L),0]]]],aX6=a(AP),aX7=a(Bb),aX9=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aX5=[0,a(P),4350,6,4351,46,[0,a(fF),[0,a(fU),[0,a(L),0]]]],aX3=a(AP),aX4=a(Bb),aX_=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aX1=[0,a(aO),ib,6,ib,79,[0,a(fF),[0,a(bv),[0,a(aP),0]]]],aXZ=a("8414"),aX0=a("13100"),aX2=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aXX=[0,a(aO),gG,6,cd,38,[0,a(fF),[0,a(bv),[0,a(aP),0]]]],aXV=a("20640"),aXW=a("32073"),aXY=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aXS=[0,a(aO),712,6,jm,24,[0,a(fF),[0,a(bv),[0,a(aP),0]]]],aXQ=a(FP),aXR=a(Ah),aXT=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aXP=[0,a(aO),rt,6,rH,46,[0,a(fF),[0,a(bv),[0,a(aP),0]]]],aXN=a(FP),aXO=a(Ah),aXU=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aXI=[0,a(P),u6,14,u6,41,[0,a(C1),[0,a(fU),[0,a(L),0]]]],aXE=a(p),aXF=a(fn),aXG=a(gw),aXH=a(fn),aXJ=[0,a(c),fL,10,fL,37,[0,a(C),[0,a(s),[0,a(d),0]]]],aXC=[0,a(aO),lB,14,lB,41,[0,a(C1),[0,a(bv),[0,a(aP),0]]]],aXy=a(p),aXz=a(fe),aXA=a(gE),aXB=a(fe),aXD=[0,a(c),fL,10,fL,37,[0,a(C),[0,a(s),[0,a(d),0]]]],aXs=[0,a(F),vc,14,vc,61,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aXt=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aXu=[0,a(al),[0,a(F6),0]],aXp=[0,a(c),H6,14,H6,49,[0,a(C),[0,a(s),[0,a(d),0]]]],aXl=[0,a(c),Hi,14,Hi,53,[0,a(C),[0,a(s),[0,a(d),0]]]],aXh=[0,a(c),CH,14,CH,44,[0,a(C),[0,a(s),[0,a(d),0]]]],aXd=[0,a(c),Cd,14,Cd,70,[0,a(C),[0,a(s),[0,a(d),0]]]],aW$=[0,a(c),ro,14,ro,65,[0,a(C),[0,a(s),[0,a(d),0]]]],aW7=[0,a(c),uT,14,uT,67,[0,a(C),[0,a(s),[0,a(d),0]]]],aW3=[0,a(c),DF,14,DF,61,[0,a(C),[0,a(s),[0,a(d),0]]]],aWZ=[0,a(c),yW,14,yW,59,[0,a(C),[0,a(s),[0,a(d),0]]]],aWT=[0,a(c),A_,14,A_,50,[0,a(C),[0,a(s),[0,a(d),0]]]],aWN=[0,a(F),DZ,14,DZ,64,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aWJ=[0,a(F),vq,14,vq,59,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aWF=[0,a(F),Gi,14,Gi,55,[0,a(cX),[0,a(aR),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aWB=[0,a(P),zv,14,zv,51,[0,a("Article 44"),[0,a(fU),[0,a(L),0]]]],aWA=a(pU),aWw=[0,a(P),wV,14,wV,41,[0,a("Article 41"),[0,a(fU),[0,a(L),0]]]],aWv=a(jb),aWr=[0,a(P),C0,14,C0,42,[0,a("Article 42"),[0,a(fU),[0,a(L),0]]]],aWq=a(hF),aWs=[0,a(c),m_,11,m_,39,[0,a(C),[0,a(s),[0,a(d),0]]]],aWp=[0,a(c),m_,11,m_,39,[0,a(C),[0,a(s),[0,a(d),0]]]],aWt=[0,a(al),[0,a("montant_minimal_aide_d842_15"),0]],aWx=[0,a(c),h6,11,h6,38,[0,a(C),[0,a(s),[0,a(d),0]]]],aWu=[0,a(c),h6,11,h6,38,[0,a(C),[0,a(s),[0,a(d),0]]]],aWy=[0,a(al),[0,a("montant_forfaitaire_d842_15"),0]],aWC=[0,a(c),kQ,11,kQ,48,[0,a(C),[0,a(s),[0,a(d),0]]]],aWz=[0,a(c),kQ,11,kQ,48,[0,a(C),[0,a(s),[0,a(d),0]]]],aWD=[0,a(al),[0,a("montant_minimal_d\xc3\xa9pense_nette_d842_17"),0]],aWG=[0,a(c),hu,3,hu,22,[0,a(C),[0,a(s),[0,a(d),0]]]],aWH=[0,a(al),[0,a(Cr),0]],aWE=[0,a(c),n_,10,n_,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aWK=[0,a(c),hu,3,hu,22,[0,a(C),[0,a(s),[0,a(d),0]]]],aWL=[0,a(al),[0,a(mj),0]],aWI=[0,a(c),mE,10,mE,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aWO=[0,a(c),hu,3,hu,22,[0,a(C),[0,a(s),[0,a(d),0]]]],aWP=[0,a(al),[0,a(m$),0]],aWM=[0,a(c),nq,10,nq,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aWQ=[0,a(al),[0,a(f_),[0,a(jq),0]]],aWR=[0,a(al),[0,a(f_),[0,a(jq),0]]],aWU=[0,a(c),Ai,3,Ai,25,[0,a(C),[0,a(s),[0,a(d),0]]]],aWV=[0,a(al),[0,a(js),0]],aWS=[0,a(c),eA,10,eA,23,[0,a(dC),[0,a(i),[0,a(d),0]]]],aWW=[0,a(al),[0,a(eQ),[0,a(bi),0]]],aWX=[0,a(al),[0,a(eQ),[0,a(bi),0]]],aW0=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aW1=[0,a(al),[0,a(xY),0]],aWY=[0,a(c),h1,10,h1,29,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aW4=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aW5=[0,a(al),[0,a(zY),0]],aW2=[0,a(c),hL,10,hL,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aW8=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aW9=[0,a(al),[0,a(vh),0]],aW6=[0,a(c),hn,10,hn,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aXa=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aXb=[0,a(al),[0,a(HD),0]],aW_=[0,a(c),h4,10,h4,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aXe=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aXf=[0,a(al),[0,a(DA),0]],aXc=[0,a(c),hl,10,hl,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aXi=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aXj=[0,a(al),[0,a(DY),0]],aXg=[0,a(c),hw,10,hw,14,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aXm=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aXn=[0,a(al),[0,a(Hc),0]],aXk=[0,a(c),hH,10,hH,23,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aXq=[0,a(c),cI,3,cI,28,[0,a(C),[0,a(s),[0,a(d),0]]]],aXr=[0,a(al),[0,a(vY),0]],aXo=[0,a(c),ht,10,ht,19,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aXv=[0,a(al),[0,a(mT),[0,a(ar),0]]],aXw=[0,a(al),[0,a(mT),[0,a(ar),0]]],aXK=[0,a(c),fL,10,fL,37,[0,a(C),[0,a(s),[0,a(d),0]]]],aXx=[0,a(c),fL,10,fL,37,[0,a(C),[0,a(s),[0,a(d),0]]]],aXL=[0,a(al),[0,a(uY),0]],aYh=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aXM=[0,a(c),cj,10,cj,27,[0,a(C),[0,a(s),[0,a(d),0]]]],aYi=[0,a(al),[0,a("\xc3\xa9quivalence_loyer"),0]],aYo=[0,a(al),[0,a(bL),0]],aYr=[0,a(c),hX,3,hX,36,[0,a(C),[0,a(s),[0,a(d),0]]]],aYs=[0,a(al),[0,a(lG),0]],aYp=[0,a(c),fX,10,fX,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aYv=[0,a(c),hX,3,hX,36,[0,a(C),[0,a(s),[0,a(d),0]]]],aYw=[0,a(al),[0,a(nv),0]],aYt=[0,a(c),f$,10,f$,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aYz=[0,a(c),hX,3,hX,36,[0,a(C),[0,a(s),[0,a(d),0]]]],aYA=[0,a(al),[0,a(lv),0]],aYx=[0,a(c),fK,10,fK,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aYB=[0,a(al),[0,a(fH),[0,a(dT),0]]],aYC=[0,a(al),[0,a(fH),[0,a(dT),0]]],aYF=[0,a(c),mv,10,mv,37,[0,a(C),[0,a(s),[0,a(d),0]]]],aYD=[0,a(c),mv,10,mv,37,[0,a(C),[0,a(s),[0,a(d),0]]]],aYG=[0,a(al),[0,a(yS),0]],aYK=[0,a(al),[0,a(dh),0]],aYN=[0,a(c),kJ,10,kJ,23,[0,a(C),[0,a(s),[0,a(d),0]]]],aYL=[0,a(c),kJ,10,kJ,23,[0,a(C),[0,a(s),[0,a(d),0]]]],aYO=[0,a(al),[0,a("loyer_minimal"),0]],aY1=[0,a(al),[0,a(eR),0]],aY4=[0,a(c),k4,10,k4,29,[0,a(C),[0,a(s),[0,a(d),0]]]],aY2=[0,a(c),k4,10,k4,29,[0,a(C),[0,a(s),[0,a(d),0]]]],aY5=[0,a(al),[0,a(fr),0]],aZh=[0,a(al),[0,a(ew),0]],aZp=[0,a(al),[0,a(jx),0]],aZE=[0,a(al),[0,a(bM),0]],aZN=[0,a(al),[0,a(bt),0]],aWl=[0,a(F),Cu,24,Cu,43,[0,a(Hw),[0,a(rQ),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aWk=a(p),aWm=[0,a(c),hQ,10,hQ,29,[0,a(K),[0,a(s),[0,a(d),0]]]],aWj=[0,a(c),qP,14,qP,33,[0,a(K),[0,a(s),[0,a(d),0]]]],aWe=[0,a(F),CW,24,CW,46,[0,a(Hw),[0,a(rQ),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aWf=[0,a(c),hR,10,hR,32,[0,a(K),[0,a(s),[0,a(d),0]]]],aWd=[0,a(c),qq,14,qq,36,[0,a(K),[0,a(s),[0,a(d),0]]]],aV$=[0,a(aE),[0,a(bt),[0,a(af),0]]],aWa=[0,a(aE),[0,a(bt),0]],aWb=[0,a(aE),[0,a(bt),[0,a(ag),0]]],aWc=[0,a(aE),[0,a(bt),0]],aWg=[0,a(c),hR,10,hR,32,[0,a(K),[0,a(s),[0,a(d),0]]]],aV_=[0,a(c),hR,10,hR,32,[0,a(K),[0,a(s),[0,a(d),0]]]],aV5=[0,a(c),p4,14,p4,55,[0,a(K),[0,a(s),[0,a(d),0]]]],aV1=[0,a(c),za,14,za,59,[0,a(K),[0,a(s),[0,a(d),0]]]],aVX=[0,a(c),pL,14,pL,43,[0,a(K),[0,a(s),[0,a(d),0]]]],aVT=[0,a(c),GE,14,GE,42,[0,a(K),[0,a(s),[0,a(d),0]]]],aVP=[0,a(c),808,5,809,63,[0,a(K),[0,a(s),[0,a(d),0]]]],aVL=[0,a(c),zm,14,zm,53,[0,a(K),[0,a(s),[0,a(d),0]]]],aVH=[0,a(c),FY,14,FY,37,[0,a(K),[0,a(s),[0,a(d),0]]]],aVD=[0,a(c),vl,14,vl,63,[0,a(K),[0,a(s),[0,a(d),0]]]],aVz=[0,a(c),q6,14,q6,58,[0,a(K),[0,a(s),[0,a(d),0]]]],aVv=[0,a(c),uV,14,uV,46,[0,a(K),[0,a(s),[0,a(d),0]]]],aVr=[0,a(c),Bx,14,Bx,78,[0,a(K),[0,a(s),[0,a(d),0]]]],aVn=[0,a(c),FZ,14,FZ,60,[0,a(K),[0,a(s),[0,a(d),0]]]],aVj=[0,a(c),Al,14,Al,48,[0,a(K),[0,a(s),[0,a(d),0]]]],aVk=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVl=[0,a(bW),[0,a("calcul_apl_locatif.loyer_principal_base"),0]],aVi=[0,a(c),kF,10,kF,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVo=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVp=[0,a(bW),[0,a("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"),0]],aVm=[0,a(c),li,10,li,37,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVs=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVt=[0,a(bW),[0,a("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),0]],aVq=[0,a(c),l0,10,l0,55,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVw=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVx=[0,a(bW),[0,a("calcul_apl_locatif.date_courante"),0]],aVu=[0,a(c),nH,10,nH,23,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVA=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVB=[0,a(bW),[0,a("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"),0]],aVy=[0,a(c),jw,10,jw,35,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVE=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVF=[0,a(bW),[0,a("calcul_apl_locatif.situation_familiale_calcul_apl"),0]],aVC=[0,a(c),jn,10,jn,40,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVI=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVJ=[0,a(bW),[0,a("calcul_apl_locatif.zone"),0]],aVG=[0,a(c),mt,10,mt,14,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVM=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVN=[0,a(bW),[0,a("calcul_apl_locatif.logement_est_chambre"),0]],aVK=[0,a(c),mz,10,mz,30,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVQ=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVR=[0,a(bW),[0,a("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),0]],aVO=[0,a(c),nK,10,nK,66,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVU=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVV=[0,a(bW),[0,a("calcul_apl_locatif.type_aide"),0]],aVS=[0,a(c),n6,10,n6,19,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aVY=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aVZ=[0,a(bW),[0,a("calcul_apl_locatif.colocation"),0]],aVW=[0,a(c),l9,10,l9,20,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aV2=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aV3=[0,a(bW),[0,a("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"),0]],aV0=[0,a(c),kS,10,kS,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aV6=[0,a(c),bD,3,bD,21,[0,a(K),[0,a(s),[0,a(d),0]]]],aV7=[0,a(bW),[0,a("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"),0]],aV4=[0,a(c),g_,10,g_,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aV8=[0,a(bW),[0,a(G$),[0,a(aE),0]]],aV9=[0,a(bW),[0,a(G$),[0,a(aE),0]]],aWh=[0,a(bW),[0,a(bu),0]],aWn=[0,a(c),hQ,10,hQ,29,[0,a(K),[0,a(s),[0,a(d),0]]]],aWi=[0,a(c),hQ,10,hQ,29,[0,a(K),[0,a(s),[0,a(d),0]]]],aWo=[0,a(bW),[0,a(fr),0]],aVc=[0,a(ln),67,5,71,21,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],aVd=[0,a(bE),40,10,40,22,[0,a(bG),0]],aVb=[0,a(ln),56,5,57,78,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],aVe=[0,a(bE),40,10,40,22,[0,a(bG),0]],aVf=[0,a(bE),40,10,40,22,[0,a(bG),0]],aVa=[0,a(bE),40,10,40,22,[0,a(bG),0]],aVg=[0,a(bE),40,10,40,22,[0,a(bG),0]],aU$=[0,a(bE),40,10,40,22,[0,a(bG),0]],aU7=[0,a(ln),77,5,81,24,[0,a(gx),[0,a(gt),[0,a(ef),[0,a(av),[0,a(ad),[0,a(ac),0]]]]]]],aU8=[0,a(bE),41,10,41,29,[0,a(bG),0]],aU6=[0,a(bE),41,10,41,29,[0,a(bG),0]],aU9=[0,a(bE),41,10,41,29,[0,a(bG),0]],aU5=[0,a(bE),41,10,41,29,[0,a(bG),0]],aU1=[0,a(qk),62,18,62,41,[0,a(xD),[0,a(eY),[0,a(gA),[0,a(d3),[0,a(c$),[0,a(ac),0]]]]]]],aUZ=a(n2),aU0=a(m9),aU2=[0,a(bE),42,11,42,27,[0,a(bG),0]],aUY=[0,a(qk),31,14,31,30,[0,a(kN),[0,a(mZ),[0,a(ef),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],aUW=a(n2),aUX=a(m9),aUL=[0,0],aUN=[1,0],aUO=[2,0],aUP=[3,0],aUQ=[4,0],aUR=[5,0],aUM=[0,a(ln),c1,5,wT,30,[0,a(Ea),[0,a(yR),[0,a(i7),[0,a(d3),[0,a(ad),[0,a(ac),0]]]]]]],aUS=[0,a(bE),44,10,44,33,[0,a(bG),0]],aUK=[0,a(bE),44,10,44,33,[0,a(bG),0]],aUE=[0,a(bE),51,14,51,28,[0,a(bG),0]],aUA=[0,a(bE),52,14,52,32,[0,a(bG),0]],aUw=[0,a(qk),21,14,21,26,[0,a(kN),[0,a(mZ),[0,a(ef),[0,a(av),[0,a(c$),[0,a(ac),0]]]]]]],aUx=[0,a(bE),43,10,43,22,[0,a(bG),0]],aUv=[0,a(bE),43,10,43,22,[0,a(bG),0]],aUy=[0,a(cu),[0,a(zy),0]],aUB=[0,a(bE),48,3,48,7,[0,a(bG),0]],aUC=[0,a(cu),[0,a(Hb),0]],aUz=[0,a(bS),9,10,9,23,[0,a(B),[0,a(aV),0]]],aUF=[0,a(bE),48,3,48,7,[0,a(bG),0]],aUG=[0,a(cu),[0,a(Fa),0]],aUD=[0,a(bS),10,10,10,19,[0,a(B),[0,a(aV),0]]],aUH=[0,a(cu),[0,a(ga),[0,a(ha),0]]],aUI=[0,a(cu),[0,a(ga),[0,a(ha),0]]],aUT=[0,a(bE),44,10,44,33,[0,a(bG),0]],aUJ=[0,a(bE),44,10,44,33,[0,a(bG),0]],aUU=[0,a(cu),[0,a(uO),0]],aU3=[0,a(bE),42,11,42,27,[0,a(bG),0]],aUV=[0,a(bE),42,11,42,27,[0,a(bG),0]],aU4=[0,a(cu),[0,a(AX),0]],aU_=[0,a(cu),[0,a(hV),0]],aVh=[0,a(cu),[0,a(dk),0]],aUq=[0,a(F),ri,14,ri,32,[0,a(xF),[0,a(mU),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aUo=a(cQ),aUp=a(p),aUj=[0,a(F),ee,6,fs,35,[0,a("Article R822-20"),[0,a("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aUk=[0,a(c),ie,10,ie,37,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUi=[0,a(F),no,14,no,41,[0,a(kT),[0,a(kY),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aUe=[0,a(F),Io,14,Io,32,[0,a("Article R822-8"),[0,a(mU),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aUd=a(p),aT9=[0,a(F),BD,14,BD,65,[0,a(xF),[0,a(mU),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aT5=[0,a(F),zq,14,zq,33,[0,a("Article R822-10"),[0,a(mU),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aTW=a(p),aTX=a(p),aT2=a(U),aT3=a("90100"),aT4=a("135000"),aTY=a(p),aTZ=a(p),aT0=a(p),aT1=a(p),aTS=[0,a(F),hN,14,hN,62,[0,a(kT),[0,a(kY),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aTR=a(p),aTN=[0,a(c),f2,51,f2,57,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTJ=[0,a(P),11,14,11,41,[0,a("Article 3"),[0,a(xH),[0,a(L),0]]]],aTI=a("9500"),aTE=[0,a(P),21,14,21,41,[0,a("Article 4"),[0,a(xH),[0,a(L),0]]]],aTD=a("258900"),aTz=[0,a(c),G6,46,G6,52,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTA=[0,a(c),ia,10,ia,15,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTy=[0,a(c),ia,10,ia,15,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTB=[0,a(d1),[0,a(Eo),0]],aTF=[0,a(c),g8,11,g8,38,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTC=[0,a(c),g8,11,g8,38,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTG=[0,a(d1),[0,a("montant_forfaitaire_r_822_8"),0]],aTK=[0,a(c),lp,11,lp,38,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTH=[0,a(c),lp,11,lp,38,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTL=[0,a(d1),[0,a("montant_forfaitaire_r_822_7"),0]],aTO=[0,a(c),f2,11,f2,42,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTM=[0,a(c),f2,11,f2,42,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTP=[0,a(d1),[0,a("ressources_forfaitaires_r822_20"),0]],aTT=[0,a(c),kX,11,kX,59,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTQ=[0,a(c),kX,11,kX,59,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTU=[0,a(d1),[0,a("ressources_personnes_vivant_habituellement_foyer"),0]],aT6=[0,a(c),m3,11,m3,30,[0,a(b$),[0,a(i),[0,a(d),0]]]],aTV=[0,a(c),m3,11,m3,30,[0,a(b$),[0,a(i),[0,a(d),0]]]],aT7=[0,a(d1),[0,a("abattement_r_822_10"),0]],aT_=[0,a(c),Ik,3,Ik,40,[0,a(b$),[0,a(i),[0,a(d),0]]]],aT$=[0,a(d1),[0,a(FC),0]],aT8=[0,a(dV),5,10,5,23,[0,a(bX),0]],aUa=[0,a(d1),[0,a(lR),[0,a(f7),0]]],aUb=[0,a(d1),[0,a(lR),[0,a(f7),0]]],aUf=[0,a(c),mI,11,mI,29,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUc=[0,a(c),mI,11,mI,29,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUg=[0,a(d1),[0,a("abattement_r_822_8"),0]],aUl=[0,a(c),ie,10,ie,37,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUh=[0,a(c),ie,10,ie,37,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUm=[0,a(d1),[0,a("ressources_prises_en_compte"),0]],aUr=[0,a(c),lq,11,lq,29,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUn=[0,a(c),lq,11,lq,29,[0,a(b$),[0,a(i),[0,a(d),0]]]],aUs=[0,a(d1),[0,a("abattement_r_822_7"),0]],aUt=[0,a(F),hi,13,ER,74,[0,a(kT),[0,a(kY),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aUu=[0,a(F),hi,13,ER,74,[0,a(kT),[0,a(kY),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aTo=[0,a(c),pQ,14,pQ,56,[0,a(V),[0,a(i),[0,a(d),0]]]],aTk=[0,a(c),CY,14,CY,63,[0,a(V),[0,a(i),[0,a(d),0]]]],aTi=a(b7),aTj=a(b7),aTe=[0,a(F),vi,14,vi,49,[0,a(jc),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aTa=[0,a(aX),[0,a(jG),[0,a(af),0]]],aTb=[0,a(aX),[0,a(jG),0]],aTc=[0,a(aX),[0,a(jG),[0,a(ag),0]]],aTd=[0,a(aX),[0,a(jG),0]],aS6=a(EQ),aS5=[0,a(F),1202,4,1208,49,[0,a(jc),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aS7=[0,a(c),ds,11,ds,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aS0=[0,a(aX),[0,a(fh),[0,a(af),0]]],aS1=[0,a(aX),[0,a(fh),0]],aS2=[0,a(aX),[0,a(fh),[0,a(ag),0]]],aS3=[0,a(aX),[0,a(fh),0]],aS4=[0,a(F),Im,5,Im,44,[0,a(jc),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aS8=[0,a(c),ds,11,ds,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aSY=[0,a(F),1138,5,pH,44,[0,a(jc),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aSZ=[0,a(c),ds,11,ds,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aSX=[0,a(c),ds,11,ds,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aS9=[0,a(c),ds,11,ds,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aSW=[0,a(c),ds,11,ds,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aSR=[0,0],aSS=a(EQ),aSQ=[0,a(F),1162,5,1178,10,[0,a(jc),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aST=[0,a(c),fo,10,fo,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aSP=[0,a(c),fo,10,fo,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aSU=[0,a(c),fo,10,fo,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aSO=[0,a(c),fo,10,fo,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aSK=[0,a(c),A7,5,ut,25,[0,a(V),[0,a(i),[0,a(d),0]]]],aSL=[0,a(c),fE,10,fE,21,[0,a(V),[0,a(i),[0,a(d),0]]]],aSJ=[0,a(c),fE,10,fE,21,[0,a(V),[0,a(i),[0,a(d),0]]]],aSF=[0,a(dK),Iv,14,Iv,31,[0,a("Article L351-8"),[0,a("Section 5 : Taux et montant de la pension"),[0,a("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"),[0,a("Titre V : Assurance vieillesse - Assurance veuvage"),[0,a("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"),[0,a(ad),[0,a(ac),0]]]]]]]],aSz=[0,a(aS),72,5,73,52,[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]],aSA=[0,a(c),c8,11,c8,31,[0,a(V),[0,a(i),[0,a(d),0]]]],aSy=[0,a(aS),65,5,68,52,[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]],aSB=[0,a(c),c8,11,c8,31,[0,a(V),[0,a(i),[0,a(d),0]]]],aSx=[0,a(c),c8,11,c8,31,[0,a(V),[0,a(i),[0,a(d),0]]]],aSq=[0,a(aS),l5,18,l5,75,[0,a(lx),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aSp=a(p),aSr=[0,a(c),ei,11,ei,36,[0,a(V),[0,a(i),[0,a(d),0]]]],aSm=[4,0],aSn=[5,0],aSo=[0,a(aS),pP,18,qE,45,[0,a(lx),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aSl=a(p),aSs=[0,a(c),ei,11,ei,36,[0,a(V),[0,a(i),[0,a(d),0]]]],aSk=[0,a(F),f0,5,f0,59,[0,a(G1),[0,a(F7),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aSt=[0,a(c),ei,11,ei,36,[0,a(V),[0,a(i),[0,a(d),0]]]],aSj=[0,a(aS),k1,33,k1,58,[0,a(lx),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aSi=a(p),aSe=[0,a(dK),cv,14,cv,32,[0,a(qo),[0,a(pT),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(nJ),[0,a(ad),[0,a(ac),0]]]]]]]]]],aR$=[0,a(aS),H5,18,H5,44,[0,a("Article L822-10"),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aSa=[0,a(c),fq,11,fq,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aR_=[0,a(c),fq,11,fq,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aR3=a(b7),aR2=a(b7),aR1=[0,a(aS),171,5,qR,66,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aR4=[0,a(c),d5,11,d5,45,[0,a(V),[0,a(i),[0,a(d),0]]]],aR0=[0,a(aS),156,5,158,30,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aR5=[0,a(c),d5,11,d5,45,[0,a(V),[0,a(i),[0,a(d),0]]]],aRZ=[0,a(aS),cv,5,wT,33,[0,a(Ij),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aR6=[0,a(c),d5,11,d5,45,[0,a(V),[0,a(i),[0,a(d),0]]]],aRY=[0,a(c),d5,11,d5,45,[0,a(V),[0,a(i),[0,a(d),0]]]],aRS=[0,a(aS),203,5,208,39,[0,a(Fv),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aRT=[0,a(c),d9,11,d9,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aRR=[0,a(aS),197,5,198,34,[0,a(Fv),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aRU=[0,a(c),d9,11,d9,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aRQ=[0,a(c),d9,11,d9,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aRL=[0,a(dK),329,5,A7,35,[0,a(q$),[0,a(qQ),[0,a(rj),[0,a(pX),[0,a(qz),[0,a(a8),[0,a(ac),0]]]]]]]],aRK=a("999840"),aRM=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRI=[0,a(dK),pQ,5,335,35,[0,a(q$),[0,a(qQ),[0,a(rj),[0,a(pX),[0,a(qz),[0,a(a8),[0,a(ac),0]]]]]]]],aRH=a("1041840"),aRJ=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRF=[0,a(dK),339,5,340,35,[0,a(q$),[0,a(qQ),[0,a(rj),[0,a(pX),[0,a(qz),[0,a(a8),[0,a(ac),0]]]]]]]],aRE=a("1083840"),aRG=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRC=[0,a(fC),60,5,61,34,[0,a('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'),[0,a(Gq),0]]],aRB=a("1100144"),aRD=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRz=[0,a(fC),93,5,94,34,[0,a('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'),[0,a(Gq),0]]],aRy=a("1088175"),aRA=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRt=[0,a(aS),dF,5,hE,67,[0,a(Ij),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aRu=[0,a(c),eN,11,eN,32,[0,a(V),[0,a(i),[0,a(d),0]]]],aRs=[0,a(c),eN,11,eN,32,[0,a(V),[0,a(i),[0,a(d),0]]]],aRo=[0,a(aS),vT,14,vT,40,[0,a(lx),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aRi=[0,a(dK),hp,14,hp,61,[0,a(qo),[0,a(pT),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(nJ),[0,a(ad),[0,a(ac),0]]]]]]]]]],aRc=[0,a(aS),46,5,46,41,[0,a("Article L821-2"),[0,a(Ay),[0,a(G5),[0,a(yx),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]]]],aRd=[0,a(c),dY,12,dY,51,[0,a(V),[0,a(i),[0,a(d),0]]]],aRb=[0,a(c),dY,12,dY,51,[0,a(V),[0,a(i),[0,a(d),0]]]],aRe=[0,a(c),dY,12,dY,51,[0,a(V),[0,a(i),[0,a(d),0]]]],aQR=a(x),aQ3=a(U),aQ4=a(U),aQ5=a(U),aQ6=a(x),aQ7=a(U),aQS=a(pJ),aQT=a(pJ),aQY=a(kR),aQZ=a(kR),aQ0=a(kR),aQ1=a(pJ),aQ2=a(kR),aQU=a(D$),aQV=a("8"),aQW=a(D$),aQX=[0,a(F),jA,5,rd,65,[0,a("Article R822-25"),[0,a("Section 3 : Conditions relatives au logement"),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aQ8=[0,a(c),ek,12,ek,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQQ=[0,a(c),ek,12,ek,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQ9=[0,a(c),ek,12,ek,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQL=[0,a(aS),G8,18,G8,67,[0,a("Article L822-8"),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aQM=[0,a(c),fG,11,fG,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aQK=[0,a(c),fG,11,fG,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aQF=[0,a(aS),m2,18,m2,61,[0,a("Article L822-9"),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aQG=[0,a(c),eJ,11,eJ,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aQE=[0,a(c),eJ,11,eJ,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aQA=[0,a(aS),eZ,14,eZ,43,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aQw=[0,a(F),h6,14,h6,37,[0,a(G1),[0,a(F7),[0,a(ed),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aQv=a("3000000"),aQr=[0,a(F),a9,14,a9,41,[0,a(HK),[0,a(Cn),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aQq=a(Ft),aQm=[0,a(F),bb,14,bb,42,[0,a(HK),[0,a(Cn),[0,a(bd),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aQl=a(Ft),aQh=[0,a(c),hx,11,hx,48,[0,a(V),[0,a(i),[0,a(d),0]]]],aQd=[0,a(c),hk,11,hk,25,[0,a(V),[0,a(i),[0,a(d),0]]]],aQe=[0,a(c),hk,11,hk,25,[0,a(V),[0,a(i),[0,a(d),0]]]],aQc=[0,a(c),hk,11,hk,25,[0,a(V),[0,a(i),[0,a(d),0]]]],aQf=[0,a(aX),[0,a("condition_pr\xc3\xaat"),0]],aQi=[0,a(c),hx,11,hx,48,[0,a(V),[0,a(i),[0,a(d),0]]]],aQg=[0,a(c),hx,11,hx,48,[0,a(V),[0,a(i),[0,a(d),0]]]],aQj=[0,a(aX),[0,a("condition_peuplement_logement_l822_10"),0]],aQn=[0,a(c),nE,11,nE,39,[0,a(V),[0,a(i),[0,a(d),0]]]],aQk=[0,a(c),nE,11,nE,39,[0,a(V),[0,a(i),[0,a(d),0]]]],aQo=[0,a(aX),[0,a("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"),0]],aQs=[0,a(c),mO,11,mO,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQp=[0,a(c),mO,11,mO,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQt=[0,a(aX),[0,a("seuil_l822_3_parts_usufruit"),0]],aQx=[0,a(c),ii,11,ii,34,[0,a(V),[0,a(i),[0,a(d),0]]]],aQu=[0,a(c),ii,11,ii,34,[0,a(V),[0,a(i),[0,a(d),0]]]],aQy=[0,a(aX),[0,a("seuil_l822_5_patrimoine"),0]],aQB=[0,a(c),kW,11,kW,40,[0,a(V),[0,a(i),[0,a(d),0]]]],aQz=[0,a(c),kW,11,kW,40,[0,a(V),[0,a(i),[0,a(d),0]]]],aQC=[0,a(aX),[0,a("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"),0]],aQH=[0,a(c),eJ,11,eJ,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aQD=[0,a(c),eJ,11,eJ,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aQI=[0,a(aX),[0,a("condition_non_ouverture_l822_9_decence_logement"),0]],aQN=[0,a(c),fG,11,fG,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aQJ=[0,a(c),fG,11,fG,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aQO=[0,a(aX),[0,a("condition_non_ouverture_l822_8"),0]],aQ_=[0,a(c),ek,12,ek,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQP=[0,a(c),ek,12,ek,38,[0,a(V),[0,a(i),[0,a(d),0]]]],aQ$=[0,a(aX),[0,a("condition_logement_surface"),0]],aRf=[0,a(c),dY,12,dY,51,[0,a(V),[0,a(i),[0,a(d),0]]]],aRa=[0,a(c),dY,12,dY,51,[0,a(V),[0,a(i),[0,a(d),0]]]],aRg=[0,a(aX),[0,a("condition_logement_r\xc3\xa9sidence_principale"),0]],aRj=[0,a(c),Bz,3,Bz,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aRk=[0,a(aX),[0,a("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"),0]],aRh=[0,a(c),py,10,py,31,[0,a(fb),[0,a(s),[0,a(d),0]]]],aRl=[0,a(aX),[0,a(D6),[0,a(q2),0]]],aRm=[0,a(aX),[0,a(D6),[0,a(q2),0]]],aRp=[0,a(c),k$,11,k$,37,[0,a(V),[0,a(i),[0,a(d),0]]]],aRn=[0,a(c),k$,11,k$,37,[0,a(V),[0,a(i),[0,a(d),0]]]],aRq=[0,a(aX),[0,a("patrimoine_total_demandeur"),0]],aRv=[0,a(c),eN,11,eN,32,[0,a(V),[0,a(i),[0,a(d),0]]]],aRr=[0,a(c),eN,11,eN,32,[0,a(V),[0,a(i),[0,a(d),0]]]],aRw=[0,a(aX),[0,a("condition_nationalit\xc3\xa9"),0]],aRN=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRx=[0,a(c),dj,11,dj,41,[0,a(V),[0,a(i),[0,a(d),0]]]],aRO=[0,a(aX),[0,a("plafond_individuel_l815_9_s\xc3\xa9cu"),0]],aRV=[0,a(c),d9,11,d9,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aRP=[0,a(c),d9,11,d9,44,[0,a(V),[0,a(i),[0,a(d),0]]]],aRW=[0,a(aX),[0,a("condition_logement_location_tiers"),0]],aR7=[0,a(c),d5,11,d5,45,[0,a(V),[0,a(i),[0,a(d),0]]]],aRX=[0,a(c),d5,11,d5,45,[0,a(V),[0,a(i),[0,a(d),0]]]],aR8=[0,a(aX),[0,a("condition_logement_mode_occupation"),0]],aSb=[0,a(c),fq,11,fq,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aR9=[0,a(c),fq,11,fq,58,[0,a(V),[0,a(i),[0,a(d),0]]]],aSc=[0,a(aX),[0,a("condition_ouverture_l822_10_peuplement_logement"),0]],aSf=[0,a(c),lf,11,lf,29,[0,a(V),[0,a(i),[0,a(d),0]]]],aSd=[0,a(c),lf,11,lf,29,[0,a(V),[0,a(i),[0,a(d),0]]]],aSg=[0,a(aX),[0,a("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]],aSu=[0,a(c),ei,11,ei,36,[0,a(V),[0,a(i),[0,a(d),0]]]],aSh=[0,a(c),ei,11,ei,36,[0,a(V),[0,a(i),[0,a(d),0]]]],aSv=[0,a(aX),[0,a("patrimoine_pris_en_compte"),0]],aSC=[0,a(c),c8,11,c8,31,[0,a(V),[0,a(i),[0,a(d),0]]]],aSw=[0,a(c),c8,11,c8,31,[0,a(V),[0,a(i),[0,a(d),0]]]],aSD=[0,a(aX),[0,a(B2),0]],aSG=[0,a(c),hB,11,hB,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aSE=[0,a(c),hB,11,hB,28,[0,a(V),[0,a(i),[0,a(d),0]]]],aSH=[0,a(aX),[0,a("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]],aSM=[0,a(c),fE,10,fE,21,[0,a(V),[0,a(i),[0,a(d),0]]]],aSI=[0,a(c),fE,10,fE,21,[0,a(V),[0,a(i),[0,a(d),0]]]],aSN=[0,a(aX),[0,a(ni),0]],aSV=[0,a(aX),[0,a(fh),0]],aS_=[0,a(aX),[0,a(jG),0]],aTf=[0,a(c),jO,11,jO,46,[0,a(V),[0,a(i),[0,a(d),0]]]],aS$=[0,a(c),jO,11,jO,46,[0,a(V),[0,a(i),[0,a(d),0]]]],aTg=[0,a(aX),[0,a("personnes_\xc3\xa0_charge_prises_en_compte"),0]],aTl=[0,a(c),nL,10,nL,59,[0,a(V),[0,a(i),[0,a(d),0]]]],aTh=[0,a(c),nL,10,nL,59,[0,a(V),[0,a(i),[0,a(d),0]]]],aTm=[0,a(aX),[0,a(jv),0]],aTp=[0,a(c),nb,10,nb,52,[0,a(V),[0,a(i),[0,a(d),0]]]],aTn=[0,a(c),nb,10,nb,52,[0,a(V),[0,a(i),[0,a(d),0]]]],aTq=[0,a(aX),[0,a(rq),0]],aTs=a(pE),aTr=[0,a(aS),lk,13,lk,48,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aTw=[0,a(aS),lk,13,lk,48,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aTu=a(pE),aTt=[0,a(aS),ik,13,ik,49,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aTv=[0,a(aS),ik,13,ik,49,[0,a(gs),[0,a(bd),[0,a(M),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aP$=[0,a(F),zp,14,zp,36,[0,a(hU),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aP6=[0,a(ai),[0,a(bM),[0,a(af),0]]],aP7=[0,a(ai),[0,a(bM),0]],aP8=[0,a(ai),[0,a(bM),[0,a(ag),0]]],aP9=[0,a(ai),[0,a(bM),0]],aP_=a(p),aQa=[0,a(c),hb,10,hb,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aP5=[0,a(c),hb,10,hb,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aP2=[0,a(F),EP,14,EP,33,[0,a(hU),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aP0=a(p),aP1=a(p),aPW=[0,a(F),ve,14,ve,36,[0,a(hU),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aPL=[0,a(ai),[0,a(eU),[0,a(af),0]]],aPM=[0,a(ai),[0,a(eU),0]],aPN=[0,a(ai),[0,a(eU),[0,a(ag),0]]],aPO=[0,a(ai),[0,a(eU),0]],aPP=[0,a(bi),[0,a(bR),[0,a(af),0]]],aPQ=[0,a(bi),[0,a(bR),0]],aPR=[0,a(bi),[0,a(bR),[0,a(ag),0]]],aPS=[0,a(bi),[0,a(bR),0]],aPT=a(jP),aPU=a(p),aPV=a(p),aPX=[0,a(c),lX,10,lX,40,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPK=[0,a(c),lX,10,lX,40,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPH=[0,a(F),Hp,14,Hp,49,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aPF=a(g6),aPG=a(g6),aPB=[0,a(F),Cg,14,Cg,33,[0,a(hU),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aPx=[0,a(F),Df,14,Df,36,[0,a(hU),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aPn=[0,a(ai),[0,a(bL),[0,a(af),0]]],aPo=[0,a(ai),[0,a(bL),0]],aPp=[0,a(ai),[0,a(bL),[0,a(ag),0]]],aPq=[0,a(ai),[0,a(bL),0]],aPr=[0,a(ai),[0,a(jH),[0,a(af),0]]],aPs=[0,a(ai),[0,a(jH),0]],aPt=[0,a(ai),[0,a(jH),[0,a(ag),0]]],aPu=[0,a(ai),[0,a(jH),0]],aPv=a(p),aPw=a(p),aPy=[0,a(c),na,10,na,20,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPm=[0,a(c),na,10,na,20,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPj=[0,a(F),AH,14,AH,49,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aPg=a(c_),aPh=a(c_),aPi=a(kP),aPb=[0,a(F),3618,5,pR,77,[0,a(i1),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aO$=a(cQ),aPa=a(b7),aPc=[0,a(c),fS,10,fS,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aO9=[0,a(F),w9,5,w9,75,[0,a(i1),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aO_=[0,a(c),fS,10,fS,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aO2=[0,a(aO),uJ,14,uJ,42,[0,a(h8),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],aO1=a(di),aO3=[0,a(c),eI,10,eI,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aO0=[0,a(aO),zU,14,zU,42,[0,a(h8),[0,a(bv),[0,a(aP),0]]]],aOZ=a(di),aO4=[0,a(c),eI,10,eI,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOY=[0,a(P),BX,14,BX,42,[0,a(h8),[0,a(aG),[0,a(L),0]]]],aOX=a(di),aO5=[0,a(c),eI,10,eI,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOT=[0,a(F),Fs,14,Fs,55,[0,a(q4),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOO=[0,a(ai),[0,a(jp),[0,a(af),0]]],aOP=[0,a(ai),[0,a(jp),0]],aOQ=[0,a(ai),[0,a(jp),[0,a(ag),0]]],aOR=[0,a(ai),[0,a(jp),0]],aOS=a(p),aOU=[0,a(c),l3,11,l3,52,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aON=[0,a(c),l3,11,l3,52,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOK=[0,a(F),Fo,14,Fo,49,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOJ=a(g6),aOD=[0,a(F),AA,14,AA,70,[0,a(i1),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOz=[0,a(F),yN,14,yN,69,[0,a(i1),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOv=[0,a(F),Er,14,Er,75,[0,a(i1),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOq=[0,a(F),u3,5,u3,44,[0,a(B$),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOi=[0,a(ai),[0,a(dE),[0,a(af),0]]],aOj=[0,a(ai),[0,a(dE),0]],aOk=[0,a(ai),[0,a(dE),[0,a(ag),0]]],aOl=[0,a(ai),[0,a(dE),0]],aOm=[0,a(ai),[0,a(dE),[0,a(af),0]]],aOn=[0,a(ai),[0,a(dE),0]],aOo=[0,a(ai),[0,a(dE),[0,a(ag),0]]],aOp=[0,a(ai),[0,a(dE),0]],aOr=[0,a(c),hr,10,hr,14,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOh=[0,a(F),z0,14,z0,42,[0,a(B$),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOd=[0,a(ai),[0,a(dE),[0,a(af),0]]],aOe=[0,a(ai),[0,a(dE),0]],aOf=[0,a(ai),[0,a(dE),[0,a(ag),0]]],aOg=[0,a(ai),[0,a(dE),0]],aN_=[0,a(F),B7,5,B7,41,[0,a(q4),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aN$=[0,a(c),id,11,id,41,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aN9=[0,a(F),Cj,14,Cj,44,[0,a(q4),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aOa=[0,a(c),id,11,id,41,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aN8=[0,a(c),id,11,id,41,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aN5=[0,a(F),Gl,14,Gl,36,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aN0=[0,a(P),616,5,gJ,33,[0,a(ob),[0,a(aG),[0,a(L),0]]]],aNI=a(p),aNJ=a(wZ),aNK=a(vr),aNL=a(x),aNM=a(It),aNN=a(y_),aNO=a(p),aNP=a(Bn),aNQ=a(Gh),aNR=a(x),aNS=a(vR),aNT=a(AO),aNU=a(p),aNV=a(zK),aNW=a(GQ),aNX=a(x),aNY=a("35600"),aNZ=a(lc),aN1=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aNG=[0,a(P),jr,5,707,33,[0,a(ob),[0,a(aG),[0,a(L),0]]]],aNo=a(p),aNp=a(qZ),aNq=a("220000"),aNr=a(x),aNs=a("38000"),aNt=a("260000"),aNu=a(p),aNv=a("164200"),aNw=a(zQ),aNx=a(x),aNy=a(H_),aNz=a("231200"),aNA=a(p),aNB=a("153200"),aNC=a("183700"),aND=a(x),aNE=a(nA),aNF=a("214200"),aNH=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aNm=[0,a(P),748,5,750,33,[0,a(ob),[0,a(aG),[0,a(L),0]]]],aM6=a(p),aM7=a("148100"),aM8=a("178700"),aM9=a(x),aM_=a("30600"),aM$=a("209300"),aNa=a(p),aNb=a(Ci),aNc=a("158900"),aNd=a(x),aNe=a("26900"),aNf=a(yD),aNg=a(p),aNh=a("123300"),aNi=a("147900"),aNj=a(x),aNk=a("24600"),aNl=a(FJ),aNn=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aM4=[0,a(P),q6,5,802,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aMM=a(p),aMN=a(wZ),aMO=a(vr),aMP=a(x),aMQ=a(It),aMR=a(y_),aMS=a(p),aMT=a(Bn),aMU=a(Gh),aMV=a(x),aMW=a(vR),aMX=a(AO),aMY=a(p),aMZ=a(zK),aM0=a(GQ),aM1=a(x),aM2=a("34600"),aM3=a(lc),aM5=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aMJ=[0,a(P),jl,5,jE,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aMr=a(p),aMs=a(yK),aMt=a(q3),aMu=a(x),aMv=a(Iu),aMw=a(Dr),aMx=a(p),aMy=a(GC),aMz=a(qm),aMA=a(x),aMB=a(nA),aMC=a(A4),aMD=a(p),aME=a(Fw),aMF=a(Hq),aMG=a(x),aMH=a(EX),aMI=a(x9),aMK=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aMq=[0,a(P),660,5,663,33,[0,a(ob),[0,a(aG),[0,a(L),0]]]],aL_=a(p),aL$=a(yK),aMa=a(q3),aMb=a(x),aMc=a(Iu),aMd=a(Dr),aMe=a(p),aMf=a(GC),aMg=a(qm),aMh=a(x),aMi=a(nA),aMj=a(A4),aMk=a(p),aMl=a(Fw),aMm=a(Hq),aMn=a(x),aMo=a(EX),aMp=a(x9),aML=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aL8=[0,a(P),rh,5,qG,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aL2=a(p),aL3=a("86900"),aL4=a("97100"),aL5=a(x),aL6=a("10200"),aL7=a("107300"),aL9=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aL0=[0,a(P),922,5,iZ,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aLI=a(p),aLJ=a("198100"),aLK=a("239000"),aLL=a(x),aLM=a("40900"),aLN=a("279900"),aLO=a(p),aLP=a("176800"),aLQ=a("212800"),aLR=a(x),aLS=a("36000"),aLT=a("248800"),aLU=a(p),aLV=a("165000"),aLW=a("197900"),aLX=a(x),aLY=a("32900"),aLZ=a("230800"),aL1=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aLG=[0,a(P),966,5,969,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aLo=a(p),aLp=a("159500"),aLq=a(wq),aLr=a(x),aLs=a("33000"),aLt=a(y1),aLu=a(p),aLv=a("142200"),aLw=a("171200"),aLx=a(x),aLy=a("29000"),aLz=a("200200"),aLA=a(p),aLB=a("132800"),aLC=a("159300"),aLD=a(x),aLE=a("26500"),aLF=a(yD),aLH=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aLm=[0,a(P),1011,5,1014,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aK6=a(p),aK7=a("200100"),aK8=a("141400"),aK9=a(x),aK_=a("41300"),aK$=a("182700"),aLa=a(p),aLb=a("178600"),aLc=a("215000"),aLd=a(x),aLe=a("36400"),aLf=a("251400"),aLg=a(p),aLh=a("166700"),aLi=a(qc),aLj=a(x),aLk=a("33200"),aLl=a("233100"),aLn=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aK4=[0,a(P),iW,5,1058,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aKM=a(p),aKN=a("161100"),aKO=a("194400"),aKP=a(x),aKQ=a("33300"),aKR=a("227700"),aKS=a(p),aKT=a("143600"),aKU=a("172900"),aKV=a(x),aKW=a("29300"),aKX=a("202200"),aKY=a(p),aKZ=a("134100"),aK0=a("160900"),aK1=a(x),aK2=a("26800"),aK3=a("187700"),aK5=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aKK=[0,a(P),1102,5,1105,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aKs=a(p),aKt=a(q3),aKu=a("244300"),aKv=a(x),aKw=a("41800"),aKx=a("286100"),aKy=a(p),aKz=a("180700"),aKA=a("217500"),aKB=a(x),aKC=a("36800"),aKD=a("254300"),aKE=a(p),aKF=a("168700"),aKG=a("202300"),aKH=a(x),aKI=a("33600"),aKJ=a("235900"),aKL=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aKq=[0,a(P),1145,5,1148,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aJ_=a(p),aJ$=a("30871"),aKa=a("37243"),aKb=a(x),aKc=a("6372"),aKd=a("43615"),aKe=a(p),aKf=a("27548"),aKg=a("33148"),aKh=a(x),aKi=a("5610"),aKj=a("38768"),aKk=a(p),aKl=a("25718"),aKm=a("30840"),aKn=a(x),aKo=a("5122"),aKp=a("35962"),aKr=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aJ8=[0,a(P),1191,5,1194,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aJQ=a(p),aJR=a(xW),aJS=a("196700"),aJT=a(x),aJU=a("33700"),aJV=a("230400"),aJW=a(p),aJX=a("145300"),aJY=a("175000"),aJZ=a(x),aJ0=a("29700"),aJ1=a(EA),aJ2=a(p),aJ3=a("135700"),aJ4=a("162800"),aJ5=a(x),aJ6=a("27100"),aJ7=a("189900"),aJ9=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aJO=[0,a(P),1234,5,1237,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aJw=a(p),aJx=a("24849"),aJy=a("29987"),aJz=a(x),aJA=a("5138"),aJB=a("35125"),aJC=a(p),aJD=a("22151"),aJE=a("26679"),aJF=a(x),aJG=a("4528"),aJH=a("31207"),aJI=a(p),aJJ=a("20687"),aJK=a("24818"),aJL=a(x),aJM=a("4131"),aJN=a("28949"),aJP=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aJu=[0,a(P),1279,5,1282,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aJc=a(p),aJd=a("31241"),aJe=a("37689"),aJf=a(x),aJg=a("6448"),aJh=a("44137"),aJi=a(p),aJj=a("27879"),aJk=a("33556"),aJl=a(x),aJm=a("5677"),aJn=a("39233"),aJo=a(p),aJp=a("26027"),aJq=a("31210"),aJr=a(x),aJs=a("5183"),aJt=a("36393"),aJv=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aJa=[0,a(P),1323,5,1326,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aIU=a(p),aIV=a("25147"),aIW=a("30347"),aIX=a(x),aIY=a("5200"),aIZ=a("35547"),aI0=a(p),aI1=a("22417"),aI2=a("26999"),aI3=a(x),aI4=a("4582"),aI5=a("31581"),aI6=a(p),aI7=a("20935"),aI8=a(Dt),aI9=a(x),aI_=a("4181"),aI$=a("29297"),aJb=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aIS=[0,a(P),1368,5,1371,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aIA=a(p),aIB=a("31616"),aIC=a("38141"),aID=a(x),aIE=a("6525"),aIF=a("44666"),aIG=a(p),aIH=a("28214"),aII=a("33959"),aIJ=a(x),aIK=a("5745"),aIL=a("39704"),aIM=a(p),aIN=a("26339"),aIO=a("31584"),aIP=a(x),aIQ=a("5245"),aIR=a("36829"),aIT=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aIy=[0,a(P),1412,5,1415,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aIg=a(p),aIh=a("25449"),aIi=a("30711"),aIj=a(x),aIk=a("5262"),aIl=a("35973"),aIm=a(p),aIn=a("22686"),aIo=a("27323"),aIp=a(x),aIq=a("4637"),aIr=a("31960"),aIs=a(p),aIt=a("21186"),aIu=a("25417"),aIv=a(x),aIw=a("4231"),aIx=a("29648"),aIz=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aIe=[0,a(P),1457,5,px,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aHY=a(p),aHZ=a("32185"),aH0=a("38827"),aH1=a(x),aH2=a("6642"),aH3=a("45469"),aH4=a(p),aH5=a("28722"),aH6=a(yk),aH7=a(x),aH8=a("5848"),aH9=a("40418"),aH_=a(p),aH$=a("26813"),aIa=a("32152"),aIb=a(x),aIc=a("5339"),aId=a("37491"),aIf=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aHW=[0,a(P),1501,5,ry,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aHE=a(p),aHF=a("25907"),aHG=a(xw),aHH=a(x),aHI=a("5357"),aHJ=a("36621"),aHK=a(p),aHL=a("23094"),aHM=a("27814"),aHN=a(x),aHO=a("4720"),aHP=a("32534"),aHQ=a(p),aHR=a("21567"),aHS=a("25874"),aHT=a(x),aHU=a("4307"),aHV=a("30181"),aHX=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aHC=[0,a(P),1546,5,1549,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aHk=a(p),aHl=a("33086"),aHm=a("39914"),aHn=a(x),aHo=a("6828"),aHp=a("46742"),aHq=a(p),aHr=a("29526"),aHs=a("35538"),aHt=a(x),aHu=a("6012"),aHv=a("41550"),aHw=a(p),aHx=a("27564"),aHy=a("33052"),aHz=a(x),aHA=a("5488"),aHB=a("38541"),aHD=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aHi=[0,a(P),1590,5,1593,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aG2=a(p),aG3=a("26632"),aG4=a("32139"),aG5=a(x),aG6=a("5507"),aG7=a("37646"),aG8=a(p),aG9=a("23741"),aG_=a("28593"),aG$=a(x),aHa=a("4852"),aHb=a("33445"),aHc=a(p),aHd=a("22171"),aHe=a("36598"),aHf=a(x),aHg=a("4428"),aHh=a("31026"),aHj=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aG0=[0,a(P),1635,5,qB,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aGI=a(p),aGJ=a("33999"),aGK=a("41016"),aGL=a(x),aGM=a("7016"),aGN=a("48032"),aGO=a(p),aGP=a("30341"),aGQ=a("36519"),aGR=a(x),aGS=a("6178"),aGT=a("42697"),aGU=a(p),aGV=a("28325"),aGW=a("33964"),aGX=a(x),aGY=a("5639"),aGZ=a("39605"),aG1=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aGG=[0,a(P),rm,5,1682,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aGo=a(p),aGp=a("27367"),aGq=a("33026"),aGr=a(x),aGs=a("5659"),aGt=a("38685"),aGu=a(p),aGv=a("24396"),aGw=a("29382"),aGx=a(x),aGy=a(Da),aGz=a("34368"),aGA=a(p),aGB=a("22783"),aGC=a("27332"),aGD=a(x),aGE=a("4550"),aGF=a("31882"),aGH=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aGm=[0,a(P),1724,5,1727,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aF6=a(p),aF7=a("35002"),aF8=a("42226"),aF9=a(x),aF_=a("7223"),aF$=a("49449"),aGa=a(p),aGb=a("31236"),aGc=a("37596"),aGd=a(x),aGe=a("6360"),aGf=a("43957"),aGg=a(p),aGh=a("29161"),aGi=a("34966"),aGj=a(x),aGk=a("5805"),aGl=a("40773"),aGn=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aF4=[0,a(P),1768,5,1771,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aFM=a(p),aFN=a("28174"),aFO=a("34000"),aFP=a(x),aFQ=a("5826"),aFR=a("39826"),aFS=a(p),aFT=a(Dt),aFU=a("30249"),aFV=a(x),aFW=a("5133"),aFX=a("35382"),aFY=a(p),aFZ=a("23455"),aF0=a("28138"),aF1=a(x),aF2=a("4684"),aF3=a("32823"),aF5=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aFK=[0,a(P),1813,5,1816,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aFs=a(p),aFt=a("35114"),aFu=a("42361"),aFv=a(x),aFw=a("7246"),aFx=a("49607"),aFy=a(p),aFz=a("31336"),aFA=a("37716"),aFB=a(x),aFC=a("6380"),aFD=a("44098"),aFE=a(p),aFF=a("29254"),aFG=a("35078"),aFH=a(x),aFI=a("5824"),aFJ=a("40903"),aFL=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aFq=[0,a(P),1857,5,1860,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aE_=a(p),aE$=a("28264"),aFa=a("34109"),aFb=a(x),aFc=a("5845"),aFd=a("39953"),aFe=a(p),aFf=a("25196"),aFg=a("30346"),aFh=a(x),aFi=a("5149"),aFj=a("35495"),aFk=a(p),aFl=a("23530"),aFm=a("28228"),aFn=a(x),aFo=a("4699"),aFp=a("32928"),aFr=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aE8=[0,a(P),1902,5,1905,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aEQ=a(p),aER=a("35500"),aES=a("42827"),aET=a(x),aEU=a("7326"),aEV=a("50153"),aEW=a(p),aEX=a("31681"),aEY=a("38131"),aEZ=a(x),aE0=a("6450"),aE1=a("44583"),aE2=a(p),aE3=a("29576"),aE4=a("35464"),aE5=a(x),aE6=a("5888"),aE7=a("41353"),aE9=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aEO=[0,a(P),1946,5,1949,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aEw=a(p),aEx=a("28575"),aEy=a("34484"),aEz=a(x),aEA=a("5909"),aEB=a("40392"),aEC=a(p),aED=a("25473"),aEE=a("30680"),aEF=a(x),aEG=a("5206"),aEH=a("35885"),aEI=a(p),aEJ=a("23789"),aEK=a("28539"),aEL=a(x),aEM=a("4751"),aEN=a("33290"),aEP=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aEu=[0,a(P),1991,5,cY,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aEc=a(p),aEd=a("35855"),aEe=a("43255"),aEf=a(x),aEg=a("7399"),aEh=a("50655"),aEi=a(p),aEj=a("31998"),aEk=a("38512"),aEl=a(x),aEm=a("6515"),aEn=a("45029"),aEo=a(p),aEp=a("29872"),aEq=a("35819"),aEr=a(x),aEs=a("5947"),aEt=a("41767"),aEv=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aEa=[0,a(P),2036,5,2039,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aDU=a(p),aDV=a("28861"),aDW=a(GF),aDX=a(x),aDY=a("5968"),aDZ=a("40796"),aD0=a(p),aD1=a("25728"),aD2=a("30987"),aD3=a(x),aD4=a("5258"),aD5=a("36244"),aD6=a(p),aD7=a("24027"),aD8=a("28824"),aD9=a(x),aD_=a("4799"),aD$=a(z7),aEb=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aDS=[0,a(P),2081,5,2084,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aDA=a(p),aDB=a("36626"),aDC=a("44185"),aDD=a(x),aDE=a("7558"),aDF=a("51744"),aDG=a(p),aDH=a("32686"),aDI=a(yw),aDJ=a(x),aDK=a("6655"),aDL=a("45997"),aDM=a(p),aDN=a("30514"),aDO=a("36589"),aDP=a(x),aDQ=a("6075"),aDR=a("42665"),aDT=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aDy=[0,a(P),2125,5,2128,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aDg=a(p),aDh=a("29482"),aDi=a("35578"),aDj=a(x),aDk=a("6096"),aDl=a("41673"),aDm=a(p),aDn=a("26281"),aDo=a("31653"),aDp=a(x),aDq=a("5371"),aDr=a("37023"),aDs=a(p),aDt=a("24544"),aDu=a("29444"),aDv=a(x),aDw=a("4902"),aDx=a("34346"),aDz=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aDe=[0,a(P),2170,5,2173,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aCY=a(p),aCZ=a("36835"),aC0=a("44437"),aC1=a(x),aC2=a("7601"),aC3=a("52039"),aC4=a(p),aC5=a("32872"),aC6=a("39564"),aC7=a(x),aC8=a("6693"),aC9=a("46259"),aC_=a(p),aC$=a("30688"),aDa=a("36798"),aDb=a(x),aDc=a("6110"),aDd=a("42908"),aDf=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aCW=[0,a(P),2214,5,2217,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aCE=a(p),aCF=a("29650"),aCG=a("35781"),aCH=a(x),aCI=a("6131"),aCJ=a("41911"),aCK=a(p),aCL=a("26431"),aCM=a("31833"),aCN=a(x),aCO=a("5402"),aCP=a("37234"),aCQ=a(p),aCR=a("24684"),aCS=a("29612"),aCT=a(x),aCU=a("4930"),aCV=a("34542"),aCX=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aCC=[0,a(P),2259,5,2262,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aCk=a(p),aCl=a("36864"),aCm=a("44473"),aCn=a(x),aCo=a("7607"),aCp=a("52081"),aCq=a(p),aCr=a("32898"),aCs=a("39596"),aCt=a(x),aCu=a("6698"),aCv=a("46296"),aCw=a(p),aCx=a("30713"),aCy=a("36827"),aCz=a(x),aCA=a("6115"),aCB=a("42942"),aCD=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aCi=[0,a(P),2303,5,2306,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aB2=a(p),aB3=a("29674"),aB4=a("35810"),aB5=a(x),aB6=a("6136"),aB7=a("41945"),aB8=a(p),aB9=a("26452"),aB_=a("31858"),aB$=a(x),aCa=a("5406"),aCb=a("37264"),aCc=a(p),aCd=a("24704"),aCe=a("29636"),aCf=a(x),aCg=a("4934"),aCh=a(yk),aCj=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aB0=[0,a(P),2348,5,2351,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aBI=a(p),aBJ=a("37140"),aBK=a("44807"),aBL=a(x),aBM=a("7664"),aBN=a("52472"),aBO=a(p),aBP=a("33145"),aBQ=a("39893"),aBR=a(x),aBS=a("6748"),aBT=a("46643"),aBU=a(p),aBV=a("30943"),aBW=a("37103"),aBX=a(x),aBY=a("6161"),aBZ=a("43264"),aB1=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aBG=[0,a(P),2392,5,pV,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aBo=a(p),aBp=a("29897"),aBq=a("36079"),aBr=a(x),aBs=a("6182"),aBt=a("42260"),aBu=a(p),aBv=a("26650"),aBw=a("32097"),aBx=a(x),aBy=a("5447"),aBz=a("37543"),aBA=a(p),aBB=a("24889"),aBC=a("29858"),aBD=a(x),aBE=a("4971"),aBF=a(GF),aBH=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aBm=[0,a(P),qV,5,2439,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aA6=a(p),aA7=a("37252"),aA8=a("44941"),aA9=a(x),aA_=a("7687"),aA$=a("52629"),aBa=a(p),aBb=a("33244"),aBc=a("40013"),aBd=a(x),aBe=a("6768"),aBf=a("46783"),aBg=a(p),aBh=a("31036"),aBi=a("37215"),aBj=a(x),aBk=a("6179"),aBl=a("43394"),aBn=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aA4=[0,a(P),2480,5,2482,36,[0,a(a7),[0,a(aG),[0,a(L),0]]]],aAM=a(p),aAN=a("29986"),aAO=a("36187"),aAP=a(x),aAQ=a("6201"),aAR=a("42386"),aAS=a(p),aAT=a("26730"),aAU=a("32193"),aAV=a(x),aAW=a("5463"),aAX=a("37656"),aAY=a(p),aAZ=a("24964"),aA0=a("29948"),aA1=a(x),aA2=a(Da),aA3=a("34934"),aA5=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aN2=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAL=[0,a(c),$,11,$,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAH=[0,a(F),xE,5,xE,28,[0,a(E$),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aAI=[0,a(c),gG,11,gG,41,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAG=[0,a(F),DE,14,DE,44,[0,a(E$),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aAC=[0,a(F),w2,14,w2,36,[0,a(hU),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aAA=a(p),aAB=a(p),aAD=[0,a(c),jm,10,jm,32,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAz=[0,a(c),jm,10,jm,32,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAu=[0,a(P),BZ,7,BZ,18,[0,a(h8),[0,a(aG),[0,a(L),0]]]],aAr=a(gw),aAs=a(qa),aAt=a(fn),aAv=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAp=[0,a(aO),ih,7,ih,18,[0,a(h8),[0,a(bv),[0,a(aP),0]]]],aAm=a(gE),aAn=a(pG),aAo=a(fe),aAq=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAk=[0,a(aO),v3,7,v3,18,[0,a(h8),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],aAh=a(nU),aAi=a(CO),aAj=a(lK),aAl=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAw=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAe=[0,a(P),Ic,29,Ic,64,[0,a(my),[0,a(aG),[0,a(L),0]]]],aAc=a(gw),aAd=a(fn),aAf=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAa=[0,a(aO),q9,29,q9,64,[0,a(my),[0,a(bv),[0,a(aP),0]]]],az_=a(gE),az$=a(fe),aAb=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],az8=[0,a(aO),xv,29,xv,64,[0,a(my),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],az6=a(nU),az7=a(lK),az9=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAg=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],az0=[0,a(c),Et,14,Et,50,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azW=[0,a(P),BH,14,BH,50,[0,a("Article 25"),[0,a(aG),[0,a(L),0]]]],azR=a(wr),azS=a(rF),azT=a("0.0172"),azU=a(wr),azV=a(rF),azL=[0,a(F),zw,14,zw,64,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],azH=[0,a(F),Dj,14,Dj,59,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],azD=[0,a(fC),eJ,14,eJ,36,[0,a(Ey),[0,a(zF),0]]],azB=a(vd),azC=a(ey),azx=[0,a(P),DS,14,DS,47,[0,a(rI),[0,a(aG),[0,a(L),0]]]],azw=a("0.416"),azs=[0,a(P),y5,14,y5,47,[0,a(rI),[0,a(aG),[0,a(L),0]]]],azr=a(uS),azn=[0,a(P),B1,14,B1,47,[0,a(rI),[0,a(aG),[0,a(L),0]]]],azm=a("560085"),azi=[0,a(P),Du,14,Du,48,[0,a("Article 26"),[0,a(aG),[0,a(L),0]]]],azh=a(Bm),azd=[0,a(P),AD,15,AD,49,[0,a("Article 22"),[0,a(aG),[0,a(L),0]]]],azc=a("2211133"),ay_=[0,a(P),C6,14,C6,42,[0,a("Article 21"),[0,a(aG),[0,a(L),0]]]],ay9=a(hF),ay5=[0,a(P),zn,14,zn,41,[0,a("Article 20"),[0,a(aG),[0,a(L),0]]]],ay4=a(jb),ay6=[0,a(c),nW,11,nW,38,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],ay3=[0,a(c),nW,11,nW,38,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],ay7=[0,a(ai),[0,a("montant_forfaitaire_d832_10"),0]],ay$=[0,a(c),nT,11,nT,39,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],ay8=[0,a(c),nT,11,nT,39,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aza=[0,a(ai),[0,a("montant_minimal_aide_d832_10"),0]],aze=[0,a(c),nx,11,nx,45,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azb=[0,a(c),nx,11,nx,45,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azf=[0,a(ai),[0,a("coefficient_multiplicateur_d832_11"),0]],azj=[0,a(c),n3,11,n3,45,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azg=[0,a(c),n3,11,n3,45,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azk=[0,a(ai),[0,a("coefficient_multiplicateur_d832_18"),0]],azo=[0,a(c),lj,11,lj,44,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azl=[0,a(c),lj,11,lj,44,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azp=[0,a(ai),[0,a("montant_limite_tranches_d832_15_1"),0]],azt=[0,a(c),jL,11,jL,44,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azq=[0,a(c),jL,11,jL,44,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azu=[0,a(ai),[0,a("taux_tranche_inf\xc3\xa9rieure_d832_15_1"),0]],azy=[0,a(c),mi,11,mi,44,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azv=[0,a(c),mi,11,mi,44,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azz=[0,a(ai),[0,a("taux_tranche_sup\xc3\xa9rieure_d832_15_1"),0]],azE=[0,a(c),lW,11,lW,33,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azA=[0,a(c),lW,11,lW,33,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azF=[0,a(ai),[0,a(HJ),0]],azI=[0,a(c),jr,3,jr,22,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azJ=[0,a(ai),[0,a(mj),0]],azG=[0,a(c),ib,10,ib,35,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azM=[0,a(c),jr,3,jr,22,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azN=[0,a(ai),[0,a(m$),0]],azK=[0,a(c),kG,10,kG,40,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azO=[0,a(ai),[0,a(f_),[0,a(jh),0]]],azP=[0,a(ai),[0,a(f_),[0,a(jh),0]]],azX=[0,a(c),nc,11,nc,47,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azQ=[0,a(c),nc,11,nc,47,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],azY=[0,a(ai),[0,a("coefficient_multiplicateur_d832_17_3"),0]],az1=[0,a(c),Ht,3,Ht,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],az2=[0,a(ai),[0,a(js),0]],azZ=[0,a(c),eA,10,eA,23,[0,a(dC),[0,a(i),[0,a(d),0]]]],az3=[0,a(ai),[0,a(eQ),[0,a(bi),0]]],az4=[0,a(ai),[0,a(eQ),[0,a(bi),0]]],aAx=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],az5=[0,a(c),cd,11,cd,46,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAy=[0,a(ai),[0,a("montant_forfaitaire_charges_d832_10"),0]],aAE=[0,a(ai),[0,a(bL),0]],aAJ=[0,a(c),gG,11,gG,41,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAF=[0,a(c),gG,11,gG,41,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aAK=[0,a(ai),[0,a("ressources_m\xc3\xa9nage_avec_d832_18"),0]],aN3=[0,a(ai),[0,a(dE),0]],aN6=[0,a(c),mw,11,mw,33,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aN4=[0,a(c),mw,11,mw,33,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aN7=[0,a(ai),[0,a(vE),0]],aOb=[0,a(ai),[0,a(jp),0]],aOs=[0,a(c),hr,10,hr,14,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOc=[0,a(c),hr,10,hr,14,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOt=[0,a(ai),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_base"),0]],aOw=[0,a(c),hq,3,hq,36,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOx=[0,a(ai),[0,a(lG),0]],aOu=[0,a(c),fX,10,fX,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOA=[0,a(c),hq,3,hq,36,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOB=[0,a(ai),[0,a(nv),0]],aOy=[0,a(c),f$,10,f$,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOE=[0,a(c),hq,3,hq,36,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOF=[0,a(ai),[0,a(lv),0]],aOC=[0,a(c),fK,10,fK,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOG=[0,a(ai),[0,a(fH),[0,a(dT),0]]],aOH=[0,a(ai),[0,a(fH),[0,a(dT),0]]],aOL=[0,a(c),jg,10,jg,17,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOI=[0,a(c),jg,10,jg,17,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOM=[0,a(ai),[0,a("coefficient_prise_en_charge_d832_10_formule"),0]],aOV=[0,a(ai),[0,a(jH),0]],aO6=[0,a(c),eI,10,eI,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aOW=[0,a(c),eI,10,eI,25,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aO7=[0,a(ai),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"),0]],aPd=[0,a(c),fS,10,fS,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aO8=[0,a(c),fS,10,fS,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPe=[0,a(ai),[0,a(ze),0]],aPk=[0,a(c),lb,10,lb,17,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPf=[0,a(c),lb,10,lb,17,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPl=[0,a(ai),[0,a("coefficient_prise_en_charge_d832_10_arrondi"),0]],aPz=[0,a(ai),[0,a(eU),0]],aPC=[0,a(c),n9,10,n9,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPA=[0,a(c),n9,10,n9,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPD=[0,a(ai),[0,a(HH),0]],aPI=[0,a(c),nI,10,nI,15,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPE=[0,a(c),nI,10,nI,15,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPJ=[0,a(ai),[0,a("coefficient_prise_en_charge_d832_10_seuil"),0]],aPY=[0,a(ai),[0,a(bM),0]],aP3=[0,a(c),mX,10,mX,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aPZ=[0,a(c),mX,10,mX,29,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aP4=[0,a(ai),[0,a(fr),0]],aQb=[0,a(ai),[0,a(bt),0]],ay0=[0,a(F),u2,14,u2,36,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ayV=[0,a(ar),[0,a(bM),[0,a(af),0]]],ayW=[0,a(ar),[0,a(bM),0]],ayX=[0,a(ar),[0,a(bM),[0,a(ag),0]]],ayY=[0,a(ar),[0,a(bM),0]],ayZ=a(p),ay1=[0,a(c),lZ,10,lZ,25,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayU=[0,a(c),lZ,10,lZ,25,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayR=[0,a(F),yz,14,yz,33,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ayP=a(p),ayQ=a(p),ayL=[0,a(F),yC,14,yC,36,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ayA=[0,a(ar),[0,a(eU),[0,a(af),0]]],ayB=[0,a(ar),[0,a(eU),0]],ayC=[0,a(ar),[0,a(eU),[0,a(ag),0]]],ayD=[0,a(ar),[0,a(eU),0]],ayE=[0,a(bi),[0,a(bR),[0,a(af),0]]],ayF=[0,a(bi),[0,a(bR),0]],ayG=[0,a(bi),[0,a(bR),[0,a(ag),0]]],ayH=[0,a(bi),[0,a(bR),0]],ayI=a(jP),ayJ=a(p),ayK=a(p),ayM=[0,a(c),mJ,10,mJ,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayz=[0,a(c),mJ,10,mJ,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayv=[0,a(F),Dq,5,Dq,26,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ayt=a(nO),ayu=a(nO),ayw=[0,a(c),ig,10,ig,15,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ays=[0,a(F),CG,14,CG,49,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ayq=a(g6),ayr=a(g6),aym=[0,a(F),zl,14,zl,36,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ayc=[0,a(ar),[0,a(bL),[0,a(af),0]]],ayd=[0,a(ar),[0,a(bL),0]],aye=[0,a(ar),[0,a(bL),[0,a(ag),0]]],ayf=[0,a(ar),[0,a(bL),0]],ayg=[0,a(ar),[0,a(jo),[0,a(af),0]]],ayh=[0,a(ar),[0,a(jo),0]],ayi=[0,a(ar),[0,a(jo),[0,a(ag),0]]],ayj=[0,a(ar),[0,a(jo),0]],ayk=a(p),ayl=a(p),ayn=[0,a(c),k7,10,k7,20,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayb=[0,a(c),k7,10,k7,20,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ax9=[0,a(F),B0,5,B0,26,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ax6=a(c_),ax7=a(c_),ax8=a(kP),ax_=[0,a(c),hh,10,hh,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ax5=[0,a(F),FQ,14,FQ,49,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ax2=a(c_),ax3=a(c_),ax4=a(kP),axY=[0,a(F),FT,14,FT,40,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axU=[0,a(F),md,14,md,55,[0,a(y8),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axP=[0,a(ar),[0,a(jt),[0,a(af),0]]],axQ=[0,a(ar),[0,a(jt),0]],axR=[0,a(ar),[0,a(jt),[0,a(ag),0]]],axS=[0,a(ar),[0,a(jt),0]],axT=a(p),axV=[0,a(c),n0,11,n0,52,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axO=[0,a(c),n0,11,n0,52,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axK=[0,a(F),H4,5,H4,26,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axJ=a(nO),axL=[0,a(c),hA,10,hA,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axI=[0,a(F),Ho,14,Ho,49,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axF=a(p),axG=a(p),axH=a(g6),axz=[0,a(F),yX,14,yX,70,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axv=[0,a(F),ym,14,ym,69,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axr=[0,a(F),x1,14,x1,75,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axn=[0,a(F),DC,14,DC,44,[0,a(y8),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axo=[0,a(c),mQ,11,mQ,41,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axm=[0,a(c),mQ,11,mQ,41,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axi=[0,a(F),CT,14,CT,36,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axj=[0,a(c),gJ,19,gJ,41,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axe=[0,a(F),xJ,14,xJ,40,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],axa=[0,a(P),Eh,14,Eh,48,[0,a(vM),[0,a(ff),[0,a(L),0]]]],aw_=a("2142091"),aw$=a("1339340"),aw6=[0,a(P),yh,14,yh,41,[0,a("Article 32"),[0,a(ff),[0,a(L),0]]]],aw4=a(pU),aw5=a("2668"),awY=[0,a(F),ya,14,ya,64,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],awU=[0,a(F),zg,14,zg,59,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],awQ=[0,a(F),DV,14,DV,55,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],awM=[0,a(F),ES,14,ES,36,[0,a(eF),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],awK=a(p),awL=a(p),awN=[0,a(c),kE,10,kE,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awJ=[0,a(c),kE,10,kE,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awF=[0,a(P),F2,14,F2,48,[0,a(rT),[0,a(ff),[0,a(L),0]]]],av7=a(p),av8=a("46192"),av9=a("54152"),av_=a(x),av$=a("57741"),awa=a(U),awb=a("61794"),awc=a(aa),awd=a("65862"),awe=a(ab),awf=a("7368"),awg=a("71039"),awh=a(p),awi=a("42242"),awj=a("49299"),awk=a(x),awl=a("52565"),awm=a(U),awn=a("56268"),awo=a(aa),awp=a("59957"),awq=a(ab),awr=a("6659"),aws=a("63887"),awt=a(p),awu=a("40096"),awv=a("46634"),aww=a(x),awx=a("49475"),awy=a(U),awz=a("52740"),awA=a(aa),awB=a("56004"),awC=a(ab),awD=a("6180"),awE=a("59675"),awG=[0,a(c),eS,10,eS,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],av5=[0,a(aO),g8,14,g8,48,[0,a(rT),[0,a(bv),[0,a(aP),0]]]],avv=a(p),avw=a("44630"),avx=a("52321"),avy=a(x),avz=a("55788"),avA=a(U),avB=a("59704"),avC=a(aa),avD=a("63635"),avE=a(ab),avF=a("7119"),avG=a("68637"),avH=a(p),avI=a("40814"),avJ=a("47632"),avK=a(x),avL=a("50787"),avM=a(U),avN=a("54365"),avO=a(aa),avP=a("57929"),avQ=a(ab),avR=a("6434"),avS=a("61727"),avT=a(p),avU=a("38740"),avV=a("45057"),avW=a(x),avX=a("47802"),avY=a(U),avZ=a("50957"),av0=a(aa),av1=a("54110"),av2=a(ab),av3=a("5971"),av4=a("57657"),av6=[0,a(c),eS,10,eS,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],avt=[0,a(aO),u4,14,u4,48,[0,a(rT),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],auV=a(p),auW=a("44443"),auX=a("52101"),auY=a(x),auZ=a("55555"),au0=a(U),au1=a("59454"),au2=a(aa),au3=a("63369"),au4=a(ab),au5=a("7089"),au6=a("68350"),au7=a(p),au8=a("40643"),au9=a("47433"),au_=a(x),au$=a("50575"),ava=a(U),avb=a("54138"),avc=a(aa),avd=a("57687"),ave=a(ab),avf=a("6407"),avg=a("61469"),avh=a(p),avi=a("38578"),avj=a("44869"),avk=a(x),avl=a("47602"),avm=a(U),avn=a("50744"),avo=a(aa),avp=a("53884"),avq=a(ab),avr=a("5946"),avs=a("57416"),avu=[0,a(c),eS,10,eS,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auP=[0,a(c),Ag,14,Ag,50,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auK=[0,a(F),FU,14,FU,35,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],auL=[0,a(c),hD,12,hD,33,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auG=[0,a(P),v2,14,v2,42,[0,a("Article 29"),[0,a(ff),[0,a(L),0]]]],auF=a(hF),auB=[0,a(P),yi,14,yi,41,[0,a("Article 28"),[0,a(ff),[0,a(L),0]]]],auA=a(jb),auw=[0,a(P),AR,14,AR,35,[0,a(vM),[0,a(ff),[0,a(L),0]]]],auv=a("121726"),aux=[0,a(c),nz,10,nz,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auu=[0,a(c),nz,10,nz,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auy=[0,a(ar),[0,a("coefficient_r_d832_25"),0]],auC=[0,a(c),k6,11,k6,38,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auz=[0,a(c),k6,11,k6,38,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auD=[0,a(ar),[0,a("montant_forfaitaire_d832_24"),0]],auH=[0,a(c),lr,11,lr,39,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auE=[0,a(c),lr,11,lr,39,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auI=[0,a(ar),[0,a("montant_minimal_aide_d823_24"),0]],auM=[0,a(c),hD,12,hD,33,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auJ=[0,a(c),hD,12,hD,33,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auN=[0,a(ar),[0,a("condition_2_du_832_25"),0]],auQ=[0,a(c),lB,3,lB,25,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auR=[0,a(ar),[0,a(js),0]],auO=[0,a(c),eA,10,eA,23,[0,a(dC),[0,a(i),[0,a(d),0]]]],auS=[0,a(ar),[0,a(eQ),[0,a(bi),0]]],auT=[0,a(ar),[0,a(eQ),[0,a(bi),0]]],awH=[0,a(c),eS,10,eS,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],auU=[0,a(c),eS,10,eS,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awI=[0,a(ar),[0,a("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],awO=[0,a(ar),[0,a(bL),0]],awR=[0,a(c),h7,3,h7,22,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awS=[0,a(ar),[0,a(Cr),0]],awP=[0,a(c),n_,10,n_,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awV=[0,a(c),h7,3,h7,22,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awW=[0,a(ar),[0,a(mj),0]],awT=[0,a(c),mE,10,mE,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],awZ=[0,a(c),h7,3,h7,22,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aw0=[0,a(ar),[0,a(m$),0]],awX=[0,a(c),nq,10,nq,40,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aw1=[0,a(ar),[0,a(f_),[0,a(jq),0]]],aw2=[0,a(ar),[0,a(f_),[0,a(jq),0]]],aw7=[0,a(c),mD,11,mD,38,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aw3=[0,a(c),mD,11,mD,38,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aw8=[0,a(ar),[0,a("montant_forfaitaire_d832_27"),0]],axb=[0,a(c),lm,10,lm,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aw9=[0,a(c),lm,10,lm,44,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axc=[0,a(ar),[0,a("coefficient_multiplicateur_d832_25"),0]],axf=[0,a(c),i8,10,i8,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axd=[0,a(c),i8,10,i8,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axg=[0,a(ar),[0,a("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],axk=[0,a(c),gJ,19,gJ,41,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axh=[0,a(c),gJ,19,gJ,41,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axl=[0,a(ar),[0,a(FI),0]],axp=[0,a(ar),[0,a(jt),0]],axs=[0,a(c),h_,3,h_,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axt=[0,a(ar),[0,a(lG),0]],axq=[0,a(c),fX,10,fX,37,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axw=[0,a(c),h_,3,h_,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axx=[0,a(ar),[0,a(nv),0]],axu=[0,a(c),f$,10,f$,31,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axA=[0,a(c),h_,3,h_,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axB=[0,a(ar),[0,a(lv),0]],axy=[0,a(c),fK,10,fK,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axC=[0,a(ar),[0,a(fH),[0,a(dT),0]]],axD=[0,a(ar),[0,a(fH),[0,a(dT),0]]],axM=[0,a(c),hA,10,hA,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axE=[0,a(c),hA,10,hA,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axN=[0,a(ar),[0,a("coefficient_prise_en_charge_d832_25_formule"),0]],axW=[0,a(ar),[0,a(jo),0]],axZ=[0,a(c),np,10,np,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],axX=[0,a(c),np,10,np,36,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ax0=[0,a(ar),[0,a("\xc3\xa9quivalence_loyer_minimale"),0]],ax$=[0,a(c),hh,10,hh,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ax1=[0,a(c),hh,10,hh,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aya=[0,a(ar),[0,a("coefficient_prise_en_charge_d832_25_arrondi"),0]],ayo=[0,a(ar),[0,a(eU),0]],ayx=[0,a(c),ig,10,ig,15,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayp=[0,a(c),ig,10,ig,15,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayy=[0,a(ar),[0,a("coefficient_prise_en_charge_d832_25_seuil"),0]],ayN=[0,a(ar),[0,a(bM),0]],ayS=[0,a(c),i5,10,i5,29,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayO=[0,a(c),i5,10,i5,29,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ayT=[0,a(ar),[0,a(fr),0]],ay2=[0,a(ar),[0,a(bt),0]],auk=[0,a(F),Cy,14,Cy,33,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aui=a(p),auj=a(p),aue=[0,a(F),vP,14,vP,39,[0,a(q7),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],auc=a(p),aud=a(p),at_=[0,a(F),EJ,14,EJ,36,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],at5=[0,a(aE),[0,a(i$),[0,a(af),0]]],at6=[0,a(aE),[0,a(i$),0]],at7=[0,a(aE),[0,a(i$),[0,a(ag),0]]],at8=[0,a(aE),[0,a(i$),0]],at9=a(p),at$=[0,a(c),lI,10,lI,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],at4=[0,a(c),lI,10,lI,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],at1=[0,a(F),Gc,14,Gc,42,[0,a(q7),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],atX=[0,a(aS),Dk,14,Dk,36,[0,a(p3),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],atR=[0,a(aE),[0,a(bM),[0,a(af),0]]],atS=[0,a(aE),[0,a(bM),0]],atT=[0,a(aE),[0,a(bM),[0,a(ag),0]]],atU=[0,a(aE),[0,a(bM),0]],atV=a(p),atW=a(p),atY=[0,a(c),nk,10,nk,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atQ=[0,a(c),nk,10,nk,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atK=[0,a(aO),H9,14,H9,33,[0,a(cM),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],atI=a(hg),atJ=a(hg),atL=[0,a(c),eM,10,eM,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atH=[0,a(aO),fi,14,fi,33,[0,a(cM),[0,a(bv),[0,a(aP),0]]]],atF=a(hg),atG=a(hg),atM=[0,a(c),eM,10,eM,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atE=[0,a(P),fW,14,fW,33,[0,a(cM),[0,a(b0),[0,a(L),0]]]],atC=a(hg),atD=a(hg),atN=[0,a(c),eM,10,eM,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aty=[0,a(F),By,14,By,36,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],atn=[0,a(aE),[0,a(bL),[0,a(af),0]]],ato=[0,a(aE),[0,a(bL),0]],atp=[0,a(aE),[0,a(bL),[0,a(ag),0]]],atq=[0,a(aE),[0,a(bL),0]],atr=[0,a(bi),[0,a(bR),[0,a(af),0]]],ats=[0,a(bi),[0,a(bR),0]],att=[0,a(bi),[0,a(bR),[0,a(ag),0]]],atu=[0,a(bi),[0,a(bR),0]],atv=a(jP),atw=a(p),atx=a(p),atz=[0,a(c),oe,10,oe,40,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atm=[0,a(c),oe,10,oe,40,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atg=[0,a(aO),Ba,14,Ba,33,[0,a(cM),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],as6=a(g7),as7=a(b7),as8=a(g7),as9=a(di),as_=a(fc),as$=a(fc),ata=a(di),atb=a(di),atc=a(rv),atd=a(pW),ate=a(fc),atf=a(b7),ath=[0,a(c),eO,10,eO,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],as5=[0,a(aO),wl,14,wl,33,[0,a(cM),[0,a(bv),[0,a(aP),0]]]],asT=a(g7),asU=a(b7),asV=a(g7),asW=a(di),asX=a(fc),asY=a(fc),asZ=a(di),as0=a(di),as1=a(rv),as2=a(pW),as3=a(fc),as4=a(b7),ati=[0,a(c),eO,10,eO,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asS=[0,a(P),dQ,14,dQ,33,[0,a(cM),[0,a(b0),[0,a(L),0]]]],asG=a(g7),asH=a(b7),asI=a(g7),asJ=a(di),asK=a(fc),asL=a(fc),asM=a(di),asN=a(di),asO=a(rv),asP=a(pW),asQ=a(fc),asR=a(b7),atj=[0,a(c),eO,10,eO,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asC=[0,a(F),AM,14,AM,36,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],asw=[0,a(aE),[0,a(ji),[0,a(af),0]]],asx=[0,a(aE),[0,a(ji),0]],asy=[0,a(aE),[0,a(ji),[0,a(ag),0]]],asz=[0,a(aE),[0,a(ji),0]],asA=a(p),asB=a(p),asD=[0,a(c),lw,10,lw,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asv=[0,a(c),lw,10,lw,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asp=[0,a(aO),l$,14,l$,28,[0,a(cM),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],asn=a(c_),aso=a(c_),asq=[0,a(c),eL,11,eL,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asm=[0,a(aO),fd,14,fd,28,[0,a(cM),[0,a(bv),[0,a(aP),0]]]],ask=a(c_),asl=a(c_),asr=[0,a(c),eL,11,eL,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asj=[0,a(P),mh,14,mh,28,[0,a(cM),[0,a(b0),[0,a(L),0]]]],ash=a(c_),asi=a(c_),ass=[0,a(c),eL,11,eL,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asc=[0,a(P),c8,14,c8,36,[0,a(rN),[0,a(b0),[0,a(L),0]]]],ar_=a(H7),ar$=a(hP),asa=a(hP),asb=a(H7),asd=[0,a(c),ea,10,ea,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ar8=[0,a(aO),rk,14,rk,36,[0,a(rN),[0,a(bv),[0,a(aP),0]]]],ar4=a(Ev),ar5=a(hP),ar6=a(hP),ar7=a(Ev),ar9=[0,a(c),ea,10,ea,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ar2=[0,a(aO),EI,14,EI,36,[0,a(rN),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],arY=a(Gn),arZ=a(hP),ar0=a(hP),ar1=a(Gn),ar3=[0,a(c),ea,10,ea,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arT=[0,a(F),qd,5,qd,50,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],arU=[0,a(c),hK,10,hK,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arS=[0,a(F),Gv,14,Gv,36,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],arR=a(p),arV=[0,a(c),hK,10,hK,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arQ=[0,a(c),hK,10,hK,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arN=[0,a(F),h9,14,h9,28,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],arJ=[0,a(P),qu,14,qu,42,[0,a(Db),[0,a(b0),[0,a(L),0]]]],arG=a("3.4"),arH=a(hG),arI=a(hG),arC=[0,a(P),qx,14,qx,41,[0,a(Db),[0,a(b0),[0,a(L),0]]]],arz=a("4."),arA=a(zu),arB=a(zu),arv=[0,a(F),B3,14,B3,29,[0,a("Article D842-2"),[0,a(rQ),[0,a(aK),[0,a(aI),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],art=a(nC),aru=a(jB),arn=[0,a(P),ho,29,ho,64,[0,a(dU),[0,a(b0),[0,a(L),0]]]],ark=a(gw),arl=a(qa),arm=a(fn),aro=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ari=[0,a(aO),k8,29,k8,64,[0,a(dU),[0,a(bv),[0,a(aP),0]]]],arf=a(gE),arg=a(pG),arh=a(fe),arj=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ard=[0,a(aO),xS,29,xS,64,[0,a(dU),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],ara=a(nU),arb=a(CO),arc=a(lK),are=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arp=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aq9=[0,a(P),Ao,29,Ao,64,[0,a(rC),[0,a(b0),[0,a(L),0]]]],aq7=a(gw),aq8=a(fn),aq_=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aq5=[0,a(aO),mg,29,mg,64,[0,a(rC),[0,a(bv),[0,a(aP),0]]]],aq3=a(gE),aq4=a(fe),aq6=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aq1=[0,a(aO),HF,29,HF,64,[0,a(rC),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],aqZ=a(nU),aq0=a(lK),aq2=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aq$=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqS=a(p),aqT=[0,a(P),527,5,528,34,[0,a(dU),[0,a(b0),[0,a(L),0]]]],aqP=a(B_),aqQ=a(vD),aqR=a(E4),aqU=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqM=a(p),aqN=[0,a(P),jw,5,jn,34,[0,a(dU),[0,a(b0),[0,a(L),0]]]],aqJ=a("27905"),aqK=a("24683"),aqL=a("22911"),aqO=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqG=a(x),aqH=[0,a(P),g_,5,g_,35,[0,a(dU),[0,a(b0),[0,a(L),0]]]],aqx=a(x),aqy=a("4576"),aqz=a("31539"),aqA=a(x),aqB=a("4043"),aqC=a("27774"),aqD=a(x),aqE=a("3682"),aqF=a("25689"),aqI=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqu=a(p),aqv=[0,a(aO),353,5,354,34,[0,a(dU),[0,a(bv),[0,a(aP),0]]]],aqr=a(Fg),aqs=a(yo),aqt=a(wC),aqw=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqo=a(p),aqp=[0,a(aO),C5,5,cs,34,[0,a(dU),[0,a(bv),[0,a(aP),0]]]],aql=a("26962"),aqm=a("23848"),aqn=a("22136"),aqq=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqi=a(x),aqj=[0,a(aO),g9,5,g9,35,[0,a(dU),[0,a(bv),[0,a(aP),0]]]],ap$=a(x),aqa=a("4421"),aqb=a("30473"),aqc=a(x),aqd=a("3906"),aqe=a("26835"),aqf=a(x),aqg=a("3557"),aqh=a("24821"),aqk=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ap8=a(p),ap9=[0,a(aO),rs,5,re,34,[0,a(dU),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],ap5=a(Ec),ap6=a(vO),ap7=a(EE),ap_=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ap2=a(p),ap3=[0,a(aO),p8,5,1082,34,[0,a(dU),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],apZ=a("26849"),ap0=a("23748"),ap1=a("22044"),ap4=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apW=a(x),apX=[0,a(aO),nw,5,nw,35,[0,a(dU),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],apN=a(x),apO=a("4403"),apP=a("30345"),apQ=a(x),apR=a("3890"),apS=a("26723"),apT=a(x),apU=a("3542"),apV=a("24717"),apY=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqV=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apJ=[0,a(P),hT,5,hT,61,[0,a(hO),[0,a(b0),[0,a(L),0]]]],apG=a(B_),apH=a(vD),apI=a(E4),apK=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apE=[0,a(aO),c1,5,c1,61,[0,a(hO),[0,a(bv),[0,a(aP),0]]]],apB=a(Fg),apC=a(yo),apD=a(wC),apF=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apz=[0,a(aO),gB,5,gB,61,[0,a(hO),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],apw=a(Ec),apx=a(vO),apy=a(EE),apA=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apL=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apt=[0,a(P),lh,14,lh,37,[0,a(hO),[0,a(b0),[0,a(L),0]]]],apq=a("27765"),apr=a("24198"),aps=a("22680"),apu=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apo=[0,a(aO),ju,14,ju,37,[0,a(hO),[0,a(bv),[0,a(aP),0]]]],apl=a("26826"),apm=a("23380"),apn=a("21913"),app=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apj=[0,a(aO),jl,14,jl,37,[0,a(hO),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],apg=a(Iw),aph=a("23282"),api=a("21821"),apk=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apv=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apM=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apc=a(p),apd=[0,a(P),dW,5,bb,34,[0,a(cN),[0,a(b0),[0,a(L),0]]]],ao$=a("30850"),apa=a("26887"),apb=a("25200"),ape=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ao8=a(p),ao9=[0,a(P),zR,5,pO,34,[0,a(cN),[0,a(b0),[0,a(L),0]]]],ao5=a("37207"),ao6=a("32910"),ao7=a("30548"),ao_=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ao2=a(x),ao3=[0,a(P),no,5,no,35,[0,a(cN),[0,a(b0),[0,a(L),0]]]],aoT=a(x),aoU=a("6101"),aoV=a("42052"),aoW=a(x),aoX=a("5390"),aoY=a("37032"),aoZ=a(x),ao0=a("4909"),ao1=a("34252"),ao4=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aoQ=a(p),aoR=[0,a(aO),34,5,35,34,[0,a(cN),[0,a(bv),[0,a(aP),0]]]],aoN=a("29807"),aoO=a(rE),aoP=a("24348"),aoS=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aoK=a(p),aoL=[0,a(aO),44,5,45,34,[0,a(cN),[0,a(bv),[0,a(aP),0]]]],aoH=a("35949"),aoI=a(lT),aoJ=a("29515"),aoM=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aoE=a(x),aoF=[0,a(aO),54,5,54,35,[0,a(cN),[0,a(bv),[0,a(aP),0]]]],aov=a(x),aow=a("5895"),aox=a("40630"),aoy=a(x),aoz=a(q5),aoA=a(rA),aoB=a(x),aoC=a("4743"),aoD=a("33094"),aoG=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aos=a(p),aot=[0,a(aO),759,5,760,34,[0,a(cN),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],aop=a("29682"),aoq=a("25859"),aor=a("24246"),aou=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aom=a(p),aon=[0,a(aO),rR,5,rx,34,[0,a(cN),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],aoj=a("35799"),aok=a(B4),aol=a("29392"),aoo=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aog=a(x),aoh=[0,a(aO),DR,5,DR,35,[0,a(cN),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],an9=a(x),an_=a("5870"),an$=a("40460"),aoa=a(x),aob=a(wc),aoc=a(Bs),aod=a(x),aoe=a("4723"),aof=a(y$),aoi=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],apf=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],an5=[0,a(P),l5,14,l5,42,[0,a("Article 12"),[0,a(b0),[0,a(L),0]]]],an2=a(p),an3=a(hF),an4=a(hF),anW=[0,a(aO),qF,14,qF,29,[0,a(cM),[0,a(bv),[0,a(aP),0]]]],anQ=a(p),anR=a(rE),anS=a(lT),anT=a(x),anU=a(q5),anV=a(rA),anX=[0,a(c),ez,11,ez,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],anP=[0,a(P),g$,14,g$,29,[0,a(cM),[0,a(b0),[0,a(L),0]]]],anJ=a(p),anK=a(rE),anL=a(lT),anM=a(x),anN=a(q5),anO=a(rA),anY=[0,a(c),ez,11,ez,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],anH=[0,a(aO),od,14,od,29,[0,a(cM),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],anB=a(p),anC=a("25869"),anD=a(B4),anE=a(x),anF=a(wc),anG=a(Bs),anI=[0,a(c),ez,11,ez,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],anw=[0,a(P),lN,14,lN,44,[0,a(p9),[0,a(b0),[0,a(L),0]]]],ane=a(p),anf=a("487000"),ang=a("697700"),anh=a(x),ani=a(CJ),anj=a(U),ank=a("850900"),anl=a(aa),anm=a("883400"),ann=a(ab),ano=a("916300"),anp=a(O),anq=a("948800"),anr=a(d2),ans=a(EV),ant=a(d2),anu=a("32300"),anv=a(EV),anx=[0,a(c),eH,11,eH,41,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],anc=[0,a(aO),yP,14,yP,44,[0,a(p9),[0,a("Articles valables du 1er janvier 2022 au 1er juillet 2022"),[0,a(aP),0]]]],amW=a(p),amX=a("468300"),amY=a("670900"),amZ=a(x),am0=a("800200"),am1=a(U),am2=a("819200"),am3=a(aa),am4=a("849500"),am5=a(ab),am6=a("881100"),am7=a(O),am8=a("912400"),am9=a(d2),am_=a(BQ),am$=a(d2),ana=a("31100"),anb=a(BQ),and=[0,a(c),eH,11,eH,41,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],amU=[0,a(aO),yI,14,yI,44,[0,a(p9),[0,a(L),[0,a("Articles valables du 1er janvier 2020 au 1er janvier 2022"),[0,a(aP),0]]]]],amC=a(p),amD=a("458800"),amE=a("657200"),amF=a(x),amG=a("783900"),amH=a(U),amI=a("801500"),amJ=a(aa),amK=a(CJ),amL=a(ab),amM=a("863100"),amN=a(O),amO=a("893800"),amP=a(d2),amQ=a(u8),amR=a(d2),amS=a(nA),amT=a(u8),amV=[0,a(c),eH,11,eH,41,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],amv=[0,a(aO),f0,14,f0,40,[0,a(cM),[0,a(L),[0,a(cn),[0,a(aP),0]]]]],amd=a(p),ame=a(qN),amf=a(qH),amg=a(x),amh=a(pM),ami=a(U),amj=a(qp),amk=a(aa),aml=a(rr),amm=a(ab),amn=a(pI),amo=a(O),amp=a(qv),amq=a(d2),amr=a(hm),ams=a(d2),amt=a(qy),amu=a(hm),amw=[0,a(c),d4,10,d4,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],amc=[0,a(aO),mF,14,mF,40,[0,a(cM),[0,a(bv),[0,a(aP),0]]]],alW=a(p),alX=a(qN),alY=a(qH),alZ=a(x),al0=a(pM),al1=a(U),al2=a(qp),al3=a(aa),al4=a(rr),al5=a(ab),al6=a(pI),al7=a(O),al8=a(qv),al9=a(d2),al_=a(hm),al$=a(d2),ama=a(qy),amb=a(hm),amx=[0,a(c),d4,10,d4,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alV=[0,a(P),AW,14,AW,40,[0,a(cM),[0,a(b0),[0,a(L),0]]]],alD=a(p),alE=a(qN),alF=a(qH),alG=a(x),alH=a(pM),alI=a(U),alJ=a(qp),alK=a(aa),alL=a(rr),alM=a(ab),alN=a(pI),alO=a(O),alP=a(qv),alQ=a(d2),alR=a(hm),alS=a(d2),alT=a(qy),alU=a(hm),amy=[0,a(c),d4,10,d4,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alx=[0,a(c),mS,14,mS,50,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alt=[0,a(P),C$,14,C$,41,[0,a("Article 11"),[0,a(b0),[0,a(L),0]]]],als=a(jb),alo=[0,a(F),DT,14,DT,29,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aln=a(xk),alp=[0,a(c),nX,11,nX,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alm=[0,a(c),nX,11,nX,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alq=[0,a(aE),[0,a("fraction_l832_3"),0]],alu=[0,a(c),mm,11,mm,38,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alr=[0,a(c),mm,11,mm,38,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alv=[0,a(aE),[0,a("montant_forfaitaire_d823_16"),0]],aly=[0,a(c),GH,3,GH,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alz=[0,a(aE),[0,a(js),0]],alw=[0,a(c),eA,10,eA,23,[0,a(dC),[0,a(i),[0,a(d),0]]]],alA=[0,a(aE),[0,a(eQ),[0,a(bi),0]]],alB=[0,a(aE),[0,a(eQ),[0,a(bi),0]]],amz=[0,a(c),d4,10,d4,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],alC=[0,a(c),d4,10,d4,36,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],amA=[0,a(aE),[0,a("taux_composition_familiale"),0]],any=[0,a(c),eH,11,eH,41,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],amB=[0,a(c),eH,11,eH,41,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],anz=[0,a(aE),[0,a("abattement_forfaitaire_d823_17"),0]],anZ=[0,a(c),ez,11,ez,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],anA=[0,a(c),ez,11,ez,26,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],an0=[0,a(aE),[0,a("loyer_r\xc3\xa9f\xc3\xa9rence"),0]],an6=[0,a(c),le,11,le,39,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],an1=[0,a(c),le,11,le,39,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],an7=[0,a(aE),[0,a("montant_minimal_aide_d823_16"),0]],aqW=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],an8=[0,a(c),as,10,as,33,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqX=[0,a(aE),[0,a("plafond_loyer_d823_16_2"),0]],arq=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aqY=[0,a(c),co,10,co,45,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arr=[0,a(aE),[0,a("montant_forfaitaire_charges_d823_16"),0]],arw=[0,a(c),m0,10,m0,31,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ars=[0,a(c),m0,10,m0,31,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arx=[0,a(aE),[0,a("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"),0]],arD=[0,a(c),l8,11,l8,38,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],ary=[0,a(c),l8,11,l8,38,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arE=[0,a(aE),[0,a("plafond_suppression_d823_16"),0]],arK=[0,a(c),n8,11,n8,39,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arF=[0,a(c),n8,11,n8,39,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arL=[0,a(aE),[0,a("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"),0]],arO=[0,a(c),ml,11,ml,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arM=[0,a(c),ml,11,ml,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arP=[0,a(aE),[0,a("loyer_\xc3\xa9ligible"),0]],arW=[0,a(aE),[0,a(ji),0]],ase=[0,a(c),ea,10,ea,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],arX=[0,a(c),ea,10,ea,32,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asf=[0,a(aE),[0,a("participation_minimale"),0]],ast=[0,a(c),eL,11,eL,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asg=[0,a(c),eL,11,eL,25,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asu=[0,a(aE),[0,a("rapport_loyers"),0]],asE=[0,a(aE),[0,a(bL),0]],atk=[0,a(c),eO,10,eO,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],asF=[0,a(c),eO,10,eO,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atl=[0,a(aE),[0,a("taux_loyer_\xc3\xa9ligible_formule"),0]],atA=[0,a(aE),[0,a(bM),0]],atO=[0,a(c),eM,10,eM,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atB=[0,a(c),eM,10,eM,17,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],atP=[0,a(aE),[0,a("taux_loyer_\xc3\xa9ligible_arrondi"),0]],atZ=[0,a(aE),[0,a(i$),0]],at2=[0,a(c),nN,11,nN,39,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],at0=[0,a(c),nN,11,nN,39,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],at3=[0,a(aE),[0,a("taux_prise_compte_ressources"),0]],aua=[0,a(aE),[0,a(bt),0]],auf=[0,a(c),m5,10,m5,35,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aub=[0,a(c),m5,10,m5,35,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aug=[0,a(aE),[0,a("participation_personnelle"),0]],aul=[0,a(c),ho,10,ho,29,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],auh=[0,a(c),ho,10,ho,29,[0,a(K),[0,a(o),[0,a(i),[0,a(d),0]]]]],aum=[0,a(aE),[0,a(fr),0]],auo=a(hG),aun=[0,a(F),oc,13,oc,76,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],aut=[0,a(F),oc,13,oc,76,[0,a(eE),[0,a(dI),[0,a(Z),[0,a(Y),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],auq=a(nO),aur=a(xk),aup=[0,a(aS),nM,13,nM,63,[0,a(p3),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],aus=[0,a(aS),nM,13,nM,63,[0,a(p3),[0,a(bA),[0,a(ap),[0,a(w),[0,a(ad),[0,a(v),0]]]]]]],ala=[6,0],alc=[0,0],ald=[1,0],ale=[2,0],alf=[3,0],alg=[4,0],alh=[5,0],ali=[7,0],alb=[0,a(bS),29,5,38,6,[0,a(cH),[0,a(kM),[0,a(aV),0]]]],ak$=a(wz),alj=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],ak8=[8,0],ak9=[0,a(bS),47,5,49,6,[0,a(cH),[0,a(kM),[0,a(aV),0]]]],ak7=a(xK),ak_=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],akX=[6,0],akZ=[0,0],ak0=[1,0],ak1=[2,0],ak2=[3,0],ak3=[4,0],ak4=[5,0],ak5=[7,0],akY=[0,a(bS),68,5,77,6,[0,a(cH),[0,a(mW),[0,a(aV),0]]]],akW=a(Bu),ak6=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],akT=[8,0],akU=[0,a(bS),86,5,88,6,[0,a(cH),[0,a(mW),[0,a(aV),0]]]],akS=a(uA),akV=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],akI=[6,0],akK=[0,0],akL=[1,0],akM=[2,0],akN=[3,0],akO=[4,0],akP=[5,0],akQ=[7,0],akJ=[0,a(bS),dF,5,bj,6,[0,a(cH),[0,a(kO),[0,a(aV),0]]]],akH=a(Ck),akR=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],akE=[8,0],akF=[0,a(bS),cv,5,cE,6,[0,a(cH),[0,a(kO),[0,a(aV),0]]]],akD=a(GA),akG=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],akt=[6,0],akv=[0,0],akw=[1,0],akx=[2,0],aky=[3,0],akz=[4,0],akA=[5,0],akB=[7,0],aku=[0,a(bS),eZ,5,lg,6,[0,a(cH),[0,a(mn),[0,a(aV),0]]]],aks=a(Cz),akC=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],akp=[8,0],akq=[0,a(bS),p5,5,m1,6,[0,a(cH),[0,a(mn),[0,a(aV),0]]]],ako=a(wN),akr=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],ake=[6,0],akg=[0,0],akh=[1,0],aki=[2,0],akj=[3,0],akk=[4,0],akl=[5,0],akm=[7,0],akf=[0,a(bS),me,5,hT,6,[0,a(mp),[0,a(lH),[0,a(aV),0]]]],akd=a(z$),akn=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],aka=[8,0],akb=[0,a(bS),wS,5,yU,6,[0,a(mp),[0,a(lH),[0,a(aV),0]]]],aj$=a(Gy),akc=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],alk=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],aj_=[0,a(bS),11,10,11,22,[0,a(B),[0,a(aV),0]]],all=[0,a(ha),[0,a(Az),0]],aj6=[0,a(dV),28,5,29,34,[0,a(DB),[0,a(bX),0]]],aj5=a(xN),aj7=[0,a(dV),6,10,6,17,[0,a(bX),0]],aj3=[0,a(dV),48,5,49,34,[0,a(Bo),[0,a(bX),0]]],aj2=a(xg),aj4=[0,a(dV),6,10,6,17,[0,a(bX),0]],aj0=[0,a(dV),64,5,65,34,[0,a(De),[0,a(bX),0]]],ajZ=a(CV),aj1=[0,a(dV),6,10,6,17,[0,a(bX),0]],ajX=[0,a(dV),82,5,83,34,[0,a(wH),[0,a(bX),0]]],ajW=a(CL),ajY=[0,a(dV),6,10,6,17,[0,a(bX),0]],aj8=[0,a(dV),6,10,6,17,[0,a(bX),0]],ajV=[0,a(dV),6,10,6,17,[0,a(bX),0]],aj9=[0,a(f7),[0,a(bR),0]],ajQ=[0,a(F),qV,14,qV,28,[0,a(jI),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajP=a(p),ajR=[0,a(c),fj,10,fj,24,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajO=[0,a(F),GO,14,GO,28,[0,a(jC),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajN=a(p),ajS=[0,a(c),fj,10,fj,24,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajI=[0,a(F),EZ,20,EZ,55,[0,a(jC),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajF=a(p),ajG=a(p),ajH=a(jB),ajJ=[0,a(c),dP,11,dP,43,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajD=[0,a(F),pV,20,pV,51,[0,a(jC),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajA=a(p),ajB=a(p),ajC=a(jB),ajE=[0,a(c),dP,11,dP,43,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajy=[0,a(F),yZ,7,yZ,42,[0,a(jI),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],aju=a(DW),ajv=a(ey),ajw=a(jB),ajx=a(p),ajz=[0,a(c),dP,11,dP,43,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajs=[0,a(F),C2,7,C2,51,[0,a(jI),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajo=a(DW),ajp=a(ey),ajq=a(jB),ajr=a(p),ajt=[0,a(c),dP,11,dP,43,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajj=[0,a(F),HS,14,HS,36,[0,a(jC),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajk=[0,a(c),f4,11,f4,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajh=[0,a(F),GG,14,GG,36,[0,a(jI),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajg=a(cQ),aji=[0,a(c),f4,11,f4,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],aja=[0,a(F),v0,14,v0,36,[0,a(jI),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajb=[0,a(c),fQ,11,fQ,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ai$=[0,a(F),ul,14,ul,36,[0,a(jC),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ajc=[0,a(c),fQ,11,fQ,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ai7=[0,a(F),HO,14,HO,36,[0,a("Article R824-3"),[0,a(ec),[0,a(ej),[0,a(M),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],ai2=[0,0],ai3=[1,0],ai4=[1,0],ai5=[0,0],ai6=[0,0],ai8=[0,a(c),k_,11,k_,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ai1=[0,a(c),k_,11,k_,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ai9=[0,a(jz),[0,a("mode_occupation_impay\xc3\xa9"),0]],ajd=[0,a(c),fQ,11,fQ,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ai_=[0,a(c),fQ,11,fQ,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],aje=[0,a(jz),[0,a("d\xc3\xa9pense_logement_brute"),0]],ajl=[0,a(c),f4,11,f4,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajf=[0,a(c),f4,11,f4,33,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajm=[0,a(jz),[0,a("d\xc3\xa9pense_logement_nette"),0]],ajK=[0,a(c),dP,11,dP,43,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajn=[0,a(c),dP,11,dP,43,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajL=[0,a(jz),[0,a("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"),0]],ajT=[0,a(c),fj,10,fj,24,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajM=[0,a(c),fj,10,fj,24,[0,a(cm),[0,a(s),[0,a(d),0]]]],ajU=[0,a(jz),[0,a("montant_impay\xc3\xa9"),0]],aiW=[0,a(dK),ju,5,ju,43,[0,a(qo),[0,a(pT),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(nJ),[0,a(ad),[0,a(ac),0]]]]]]]]]],aiX=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiU=[0,a(dK),fT,5,fT,42,[0,a(jy),[0,a(jk),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(i0),[0,a(a8),[0,a(ac),0]]]]]]]]]],aiV=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiS=[0,a(dK),266,5,pP,43,[0,a(jy),[0,a(jk),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(i0),[0,a(a8),[0,a(ac),0]]]]]]]]]],aiT=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiP=a("1952"),aiQ=[0,a(dK),xd,5,xd,48,[0,a(jy),[0,a(jk),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(i0),[0,a(a8),[0,a(ac),0]]]]]]]]]],aiR=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiM=a("1953"),aiN=[0,a(dK),mk,5,mk,48,[0,a(jy),[0,a(jk),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(i0),[0,a(a8),[0,a(ac),0]]]]]]]]]],aiO=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiJ=a("1954"),aiK=[0,a(dK),dY,5,dY,48,[0,a(jy),[0,a(jk),[0,a(fO),[0,a(f5),[0,a(f9),[0,a(fI),[0,a(i0),[0,a(a8),[0,a(ac),0]]]]]]]]]],aiL=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiY=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiI=[0,a(c),b9,10,b9,29,[0,a(fb),[0,a(s),[0,a(d),0]]]],aiZ=[0,a(q2),[0,a("\xc3\xa2ge_ouverture_droit"),0]],aiF=[0,a(F),Di,14,Di,36,[0,a(gu),[0,a(aD),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]],air=a(p),ais=a(FX),ait=a(vZ),aiu=a(x),aiv=a(hG),aiw=a(U),aix=a(nC),aiy=a(aa),aiz=a(pK),aiA=a(ab),aiB=a(hs),aiC=a(ab),aiD=a(i6),aiE=a(hs),aiG=[0,a(c),nd,10,nd,32,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aiq=[0,a(c),nd,10,nd,32,[0,a(z),[0,a(o),[0,a(i),[0,a(d),0]]]]],aiH=[0,a(jh),[0,a(vE),0]],aim=[0,a(F),Ed,5,Ed,26,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ah_=a(p),ah$=a("1.2"),aia=a("1.5"),aib=a(x),aic=a(hG),aid=a(U),aie=a(nC),aif=a(aa),aig=a(pK),aih=a(ab),aii=a(hs),aij=a(ab),aik=a(i6),ail=a(hs),ain=[0,a(c),he,10,he,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ah9=[0,a(F),wL,14,wL,36,[0,a(dH),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ahV=a(p),ahW=a(FX),ahX=a(vZ),ahY=a(x),ahZ=a(hG),ah0=a(U),ah1=a(nC),ah2=a(aa),ah3=a(pK),ah4=a(ab),ah5=a(hs),ah6=a(ab),ah7=a(i6),ah8=a(hs),aio=[0,a(c),he,10,he,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahU=[0,a(c),he,10,he,32,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],aip=[0,a(jq),[0,a(FI),0]],ahQ=[0,a(F),vs,5,vs,26,[0,a(qK),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ahP=a(b7),ahN=a(cQ),ahO=a(b7),ahR=[0,a(c),hS,10,hS,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahM=[0,a(F),Ap,14,Ap,21,[0,a(qK),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ahL=a(b7),ahJ=a(cQ),ahK=a(b7),ahF=[0,a(F),yB,14,yB,50,[0,a(qK),[0,a(bz),[0,a(aR),[0,a(aA),[0,a(ap),[0,a(w),[0,a(G),[0,a(v),0]]]]]]]]],ahE=[1,0],ahz=[0,a(P),Fx,5,Fx,26,[0,a(rU),[0,a(ff),[0,a(L),0]]]],ahk=a("0.328"),ahl=a(x3),ahm=[1,0],ahn=a(vK),aho=a(Fz),ahp=a(x3),ahq=a(uS),ahr=a(zt),ahs=a(Fz),aht=a("0.024"),ahu=a(v_),ahv=a(zt),ahw=a(b7),ahx=a(p),ahy=a(v_),ahA=[0,a(c),gz,11,gz,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahj=[0,a(P),F_,14,F_,38,[0,a(rU),[0,a(ff),[0,a(L),0]]]],ag3=a("0.48"),ag4=a(xh),ag5=[1,0],ag6=a(rP),ag7=a(zA),ag8=a(xh),ag9=a("0.264"),ag_=a(yG),ag$=a(zA),aha=a("0.216"),ahb=a(F5),ahc=a(yG),ahd=a("0.104"),ahe=a(yy),ahf=a(F5),ahg=a(DO),ahh=a(p),ahi=a(yy),agZ=[0,a(P),BP,14,BP,41,[0,a(rU),[0,a(ff),[0,a(L),0]]]],agX=a("7632"),agY=a("4557"),ag0=[0,a(c),k0,11,k0,38,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],agW=[0,a(c),k0,11,k0,38,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ag1=[0,a(dT),[0,a("montant_forfaitaire_d832_26"),0]],ahB=[0,a(c),gz,11,gz,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ag2=[0,a(c),gz,11,gz,35,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahC=[0,a(dT),[0,a("tranches_revenus_d832_26"),0]],ahG=[0,a(c),mH,11,mH,47,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahD=[0,a(c),mH,11,mH,47,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahH=[0,a(dT),[0,a("tranches_revenus_d832_26_multipli\xc3\xa9es"),0]],ahS=[0,a(c),hS,10,hS,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahI=[0,a(c),hS,10,hS,17,[0,a(C),[0,a(o),[0,a(i),[0,a(d),0]]]]],ahT=[0,a(dT),[0,a(bR),0]],agS=[0,a(fC),hp,5,hp,35,[0,a(cM),[0,a(qA),[0,a(rS),0]]]],agT=[0,a(c),nf,10,nf,17,[0,a(dC),[0,a(i),[0,a(d),0]]]],agR=[0,a(c),nf,10,nf,17,[0,a(dC),[0,a(i),[0,a(d),0]]]],agO=[0,a(fC),mg,39,mg,69,[0,a(my),[0,a(qA),[0,a(rS),0]]]],agN=a(kP),agI=[0,a(dK),37,9,37,20,[0,a("Article L136-1-3"),[0,a("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"),[0,a("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"),[0,a(nJ),[0,a(ad),[0,a(ac),0]]]]]]],agJ=[0,a(c),fZ,11,fZ,22,[0,a(dC),[0,a(i),[0,a(d),0]]]],agH=[0,a(c),fZ,11,fZ,22,[0,a(dC),[0,a(i),[0,a(d),0]]]],agK=[0,a(c),fZ,11,fZ,22,[0,a(dC),[0,a(i),[0,a(d),0]]]],agG=[0,a(c),fZ,11,fZ,22,[0,a(dC),[0,a(i),[0,a(d),0]]]],agL=[0,a(bi),[0,a("exon\xc3\xa9r\xc3\xa9_csg"),0]],agP=[0,a(c),mb,11,mb,20,[0,a(dC),[0,a(i),[0,a(d),0]]]],agM=[0,a(c),mb,11,mb,20,[0,a(dC),[0,a(i),[0,a(d),0]]]],agQ=[0,a(bi),[0,a("taux_crds"),0]],agU=[0,a(bi),[0,a(bR),0]],agV=[0,a(fC),cE,13,cE,24,[0,a(cM),[0,a(qA),[0,a(rS),0]]]],agy=a("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"),agz=a("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"),agA=a("situation_familiale"),agB=a("nombre_autres_occupants_logement"),agC=a("personnes_\xc3\xa0_charge"),agD=a("logement"),agE=a("prestations_re\xc3\xa7ues"),agF=[0,a("M\xc3\xa9nage"),0],ago=a("zone"),agp=a("surface_m_carr\xc3\xa9s"),agq=a("logement_decent_l89_462"),agr=a("usufruit"),ags=a("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"),agt=a("propri\xc3\xa9taire"),agu=a("mode_occupation"),agv=a("est_ehpad_ou_maison_autonomie_l313_12_asf"),agw=a("r\xc3\xa9sidence_principale"),agx=[0,a("Logement"),0],agi=a(zE),agk=a("R\xc3\xa9sidentLogementFoyer"),agl=a("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"),agm=a(EN),agn=a(xX),agj=[0,a("ModeOccupation"),0],af$=a("changement_logement_d842_4"),aga=a("logement_meubl\xc3\xa9_d842_2"),agb=a("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),agc=a("colocation"),agd=a("logement_est_chambre"),age=a("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),agf=a("loyer_principal"),agg=a("bailleur"),agh=[0,a(Ia),0],af6=a("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"),af7=a("patrimoine"),af8=a("nationalit\xc3\xa9"),af9=a(Ch),af_=[0,a(pA),0],af3=a(FK),af5=a(Ef),af4=[0,a("Personne\xc3\x80Charge"),0],afR=a("pr\xc3\xaat"),afS=a("anciennet\xc3\xa9_logement"),afT=a("situation_r822_11_13_17"),afU=a("copropri\xc3\xa9t\xc3\xa9"),afV=a("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"),afW=a("type_travaux_logement_r842_5"),afX=a("type_travaux_logement_d832_15"),afY=a("date_entr\xc3\xa9e_logement"),afZ=a("charges_mensuelles_pr\xc3\xaat"),af0=a("mensualit\xc3\xa9_principale"),af1=a("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"),af2=[0,a("Propri\xc3\xa9taire"),0],afO=a(Bw),afQ=a(z1),afP=[0,a("ChangementLogementD842_4"),0],afL=a("Fran\xc3\xa7aise"),afN=a("\xc3\x89trang\xc3\xa8re"),afM=[0,a("Nationalit\xc3\xa9"),0],afI=a(jJ),afK=a(of),afJ=[0,a("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"),0],afE=a(Ek),afG=a("BailleurPriv\xc3\xa9AvecConventionnementSocial"),afH=a("BailleurPriv\xc3\xa9"),afF=[0,a("TypeBailleur"),0],afw=a("situation_garde_altern\xc3\xa9e"),afx=a(qU),afy=a(qg),afz=a(qf),afA=a(p_),afB=a(pS),afC=a(qL),afD=[0,a(FK),0],afo=a(pS),afp=a(p_),afq=a(G2),afr=a(qf),afs=a(qg),aft=a(qU),afu=a(qL),afv=[0,a("EnfantPrestationsFamiliales"),0],afg=a("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"),afh=a("redevance"),afi=a("construit_application_loi_1957_12_III"),afj=a("date_conventionnement"),afk=a(Hk),afl=a("remplit_conditions_r832_21"),afm=a("type"),afn=[0,a(x2),0],ae_=a("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"),ae$=a("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"),afa=a("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"),afb=a("parent\xc3\xa9"),afc=a("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"),afd=a("ressources"),afe=a(Ch),aff=[0,a(Ef),0],ae6=a(uu),ae7=a(uR),ae8=a(GM),ae9=[0,a("TrancheRevenuD\xc3\xa9cimal"),0],ae1=a(uu),ae2=a(uR),ae3=a(GM),ae4=[0,a("TrancheRevenu"),0],aeX=a(Bd),aeZ=a(Ez),aeY=[0,a("NeufOuAncien"),0],aeT=a("titulaire_pr\xc3\xaat"),aeU=a("date_signature"),aeV=a("type_pr\xc3\xaat"),aeW=[0,a("Pr\xc3\xaat"),0],aeQ=a("ancienne_allocation_logement"),aeR=a("ancien_loyer_principal"),aeS=[0,a("InfosChangementLogementD842_4"),0],aeO=a("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"),aeP=[0,a("Conditions\xc3\x89trangers"),0],aeL=a("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),aeM=a("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),aeN=[0,a("Patrimoine"),0],aeI=a("conforme_article_l442_1"),aeJ=a("date_naissance_personne_sous_location"),aeK=[0,a("PersonneSousLocation"),0],aeG=a("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"),aeH=[0,a("ConventionANHA"),0],aeD=a("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"),aeE=a(Hk),aeF=[0,a("ConventionBailleurSocial"),0],aeu=a(nt),aew=a(T),aex=a(p7),aey=a(m6),aez=a(Fu),aeA=a(hZ),aeB=a(CI),aeC=a(zi),aev=[0,a(H2),0],aep=a(jj),aer=a(i_),aes=a(Do),aeq=[0,a(Ei),0],aej=a(BR),ael=a(FM),aem=a(iY),aen=a(Hu),aeo=a(y3),aek=[0,a("PriseEnChargeEnfant"),0],ad$=a(ls),aeb=a(nF),aec=a(k5),aed=a(EW),aee=a(zb),aef=a(oi),aeg=a(Es),aeh=a(ms),aei=a(nV),aea=[0,a(CM),0],ad8=a(GV),ad_=a(A1),ad9=[0,a("SituationFamilialeCalculAPL"),0],ad3=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"),ad5=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"),ad6=a("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"),ad7=a(GT),ad4=[0,a("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"),0],adY=a("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"),ad0=a("R\xc3\xa9sidenceSociale"),ad1=a("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"),ad2=a(hI),adZ=[0,a("TypeLogementFoyer"),0],adR=a("C\xc3\xa9libataire"),adT=a("Mari\xc3\xa9s"),adU=a("Pacs\xc3\xa9s"),adV=a(zd),adW=a("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"),adX=a("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"),adS=[0,a("SituationFamiliale"),0],adN=a("AidePersonnalis\xc3\xa9eLogement"),adP=a(n7),adQ=a(mr),adO=[0,a("TypeAidesPersonnelleLogement"),0],adJ=a("Pas\xc3\x89ligible"),adL=a(n7),adM=a(mr),adK=[0,a(b8),0],adG=a("Impay\xc3\xa9Loyer"),adI=a("Impay\xc3\xa9Pr\xc3\xaat"),adH=[0,a("ModeOccupationImpay\xc3\xa9"),0],adB=a("TotalAnnuel\xc3\x89ch\xc3\xa9ances"),adD=a("Mensualit\xc3\xa9"),adE=a(HB),adC=[0,a("D\xc3\xa9penseLogement"),0],adx=a(Ia),adz=a("AccessionPropri\xc3\xa9t\xc3\xa9"),adA=a(x2),ady=[0,a("Cat\xc3\xa9gorieCalculAPL"),0],adt=a(zD),adv=a(vH),adw=a(y7),adu=[0,a("ZoneDHabitation"),0],adp=a(B8),adr=a(BV),ads=a("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"),adq=[0,a("Parent\xc3\xa9"),0],adm=a("PasDeGardeAltern\xc3\xa9e"),ado=a("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"),adn=[0,a("SituationGardeAltern\xc3\xa9e"),0],adj=a("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"),adl=a(hI),adk=[0,a("ParentOuAutre"),0],adc=a(T),ade=a(p7),adf=a(Ee),adg=a(hZ),adh=a("AllocationSoutienEnfantHandicap\xc3\xa9"),adi=a("AllocationAdulteHandicap\xc3\xa9"),add=[0,a("PrestationRe\xc3\xa7ue"),0],ac_=a(F9),ada=a(vA),ac$=[0,a("LimiteTrancheD\xc3\xa9cimal"),0],ac7=a(F9),ac9=a(vA),ac8=[0,a("LimiteTranche"),0],ac4=a(of),ac6=a(jJ),ac5=[0,a("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0],acZ=a("ObjectifD\xc3\xa9cenceLogement"),ac1=a("Pr\xc3\xa9vuDansListeR321_15"),ac2=a(Dx),ac3=a(nD),ac0=[0,a("TypeTravauxLogementR842_5"),0],acV=a(w6),acX=a("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"),acY=a(nD),acW=[0,a("TypeTravauxLogementD832_15"),0],acS=a(pA),acU=a(xC),acT=[0,a("TitulairePr\xc3\xaat"),0],acM=a(Cp),acO=a(xA),acP=a(AC),acQ=a(AQ),acR=a(hI),acN=[0,a("TypePr\xc3\xaat"),0],bBy=a(_),bA_=a("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."),bA$=a("The function 'condition_2_du_832_25_in' translation isn't yet supported..."),bA8=a("The function 'condition_logement_surface_in' translation isn't yet supported..."),bA9=a("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."),bA2=a("AccessionProprieteLocalUsageExclusifHabitation"),bA3=a(zE),bA4=a(xX),bA5=a("ResidentLogementFoyer"),bA6=a(EN),bA7=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'ModeOccupation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")],bAZ=a("AutrePersonneACharge"),bA0=a("EnfantACharge"),bA1=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'PersonneACharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")],bAV=a(Bw),bAW=a(z1),bAY=[1,0],bAX=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'ChangementLogementD8424.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")],bAR=a("Etrangere"),bAS=a("Francaise"),bAU=[0,0],bAT=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'Nationalite.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Nationalite.t'")],bAN=a(jJ),bAO=a(of),bAQ=[0,0],bAP=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")],bAI=a("BailleurPrive"),bAJ=a("BailleurPriveAvecConventionnementSocial"),bAK=a(Ek),bAM=[2,0],bAL=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TypeBailleur.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")],bAE=a("MoinsDeTroisEnfants"),bAF=a("PlusDeTroisEnfants"),bAH=[0,0],bAG=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")],bAA=a(Ez),bAB=a(Bd),bAD=[0,0],bAC=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'NeufOuAncien.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")],bAj=a(vt),bAk=a(yd),bAl=a(m6),bAm=a(Gu),bAn=a(hZ),bAo=a(T),bAp=a(pz),bAq=a(nt),bAs=[0,0],bAt=[2,0],bAu=[1,0],bAv=[5,0],bAw=[6,0],bAx=[3,0],bAy=[7,0],bAz=[4,0],bAr=[0,[11,a(bc),[2,0,[11,a(FN),0]]],a(H3)],bAc=a(rn),bAd=a(jj),bAe=a(i_),bAg=[1,0],bAh=[0,0],bAi=[2,0],bAf=[0,[11,a(bc),[2,0,[11,a(x7),0]]],a(wd)],bz3=a(iY),bz4=a(qn),bz5=a(p2),bz6=a(qI),bz7=a(pZ),bz9=[4,0],bz_=[3,0],bz$=[0,0],bAa=[1,0],bAb=[2,0],bz8=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'PriseEnChargeEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")],bzK=a(ls),bzL=a(nF),bzM=a(v9),bzN=a(k5),bzO=a(nV),bzP=a(Hn),bzQ=a(w$),bzR=a(oi),bzS=a(ms),bzU=[7,0],bzV=[5,0],bzW=[4,0],bzX=[6,0],bzY=[8,0],bzZ=[2,0],bz0=[3,0],bz1=[1,0],bz2=[0,0],bzT=[0,[11,a(bc),[2,0,[11,a(CD),0]]],a(wB)],bzF=a(A1),bzG=a(GV),bzI=[0,0],bzJ=[1,0],bzH=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")],bzw=a(GT),bzx=a("EtudiantLogeEnChambreCROUS"),bzy=a("EtudiantLogeEnChambreCROUSRehabilitee"),bzz=a("PersonnesAgeesSelon3DeD842_16"),bzB=[2,0],bzC=[1,0],bzD=[0,0],bzE=[3,0],bzA=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")],bzn=a(hI),bzo=a("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"),bzp=a("LogementPersonnesAgeesOuHandicapees"),bzq=a("ResidenceSociale"),bzs=[1,0],bzt=[0,0],bzu=[2,0],bzv=[3,0],bzr=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TypeLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")],bzb=a("Celibataire"),bzc=a("CelibataireSepareDeFait"),bzd=a("ConcubinageDontSepareDeFait"),bze=a(zd),bzf=a("Maries"),bzg=a("Pacses"),bzi=[2,0],bzj=[3,0],bzk=[5,0],bzl=[4,0],bzm=[0,0],bzh=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'SituationFamiliale.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")],by6=a("AidePersonnaliseeLogement"),by7=a(n7),by8=a(mr),by_=[2,0],by$=[1,0],bza=[0,0],by9=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")],by2=a(HB),by3=a("Mensualite"),by4=a("TotalAnnuelEcheances"),by5=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'DepenseLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")],byV=a("Bailleur"),byW=a("Beneficiaire"),byX=a("EtablissementHabilite"),byZ=[2,0],by0=[1,0],by1=[0,0],byY=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'VersementA.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'VersementA.t'")],byR=a(jJ),byS=a("OuiAvecLoyerOuCharges"),byU=[1,0],byT=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")],byK=a(zD),byL=a(vH),byM=a(y7),byO=[2,0],byP=[1,0],byQ=[0,0],byN=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'ZoneDHabitation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")],byE=a("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"),byF=a("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"),byG=a("DateDeNaissance"),byI=[1,0],byJ=[2,0],byH=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")],byx=a(B8),byy=a("CollateralDeuxiemeTroisiemeDegre"),byz=a(BV),byB=[1,0],byC=[2,0],byD=[0,0],byA=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'Parente.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Parente.t'")],byt=a("GardeAlterneeCoefficientPriseEnCharge"),byu=a("PasDeGardeAlternee"),byw=[0,0],byv=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'SituationGardeAlternee.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")],byp=a(hI),byq=a("DemandeurOuConjointOuParentOuViaPartsSocietes"),bys=[1,0],byr=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'ParentOuAutre.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")],byc=a("AllocationAdulteHandicape"),byd=a(Ee),bye=a("AllocationSoutienEnfantHandicape"),byf=a(hZ),byg=a(T),byh=a(pz),byj=[1,0],byk=[0,0],byl=[3,0],bym=[4,0],byn=[2,0],byo=[5,0],byi=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'PrestationRecue.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")],bx9=a(jJ),bx_=a(of),bya=[0,0],byb=[1,0],bx$=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'AmelioreParOccupant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")],bx0=a(Dx),bx1=a("ObjectifDecenceLogement"),bx2=a(nD),bx3=a("PrevuDansListeR321_15"),bx5=[1,0],bx6=[3,0],bx7=[0,0],bx8=[2,0],bx4=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementR8425.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")],bxT=a(nD),bxU=a(w6),bxV=a("TravauxSurLogementDejaAcquisD832_15_2"),bxX=[1,0],bxY=[0,0],bxZ=[2,0],bxW=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementD83215.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")],bxO=a(pA),bxP=a(xC),bxR=[1,0],bxS=[0,0],bxQ=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TitulairePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")],bxD=a(hI),bxE=a(Cp),bxF=a(AC),bxG=a(xA),bxH=a(AQ),bxJ=[3,0],bxK=[1,0],bxL=[2,0],bxM=[0,0],bxN=[4,0],bxI=[0,[11,a(bc),[2,0,[11,a("' kind for the enumeration 'TypePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypePret.t'")],bxB=[0,a(Hy),a(z2),a(GR),a(BM),a(xf),a(oa),a(ga),a(BL),a(zs),a(vb),a(E7),a(yO),a(BW),a(yY),a(Hg),a(EB),a(Ct),a(zV),a(If),a(CU),a(u0),a(wW),a(BN),a(uE)],bxC=[0,a(ga),a(BM),a(EB),a(Ct),a(zV),a(xf),a(u0),a(GR),a(vb),a(BL),a(If),a(BW),a(E7),a(yY),a(BN),a(z2),a(yO),a(CU),a(uE),a(wW),a(zs),a(Hy),a(Hg),a(oa)],bBX=a("AidesLogementLib"),bBZ=a(_);function -bP(a){if(typeof +bBB(){var +a=aN;if(a.process&&a.process.on)a.process.on("uncaughtException",function(b,c){G4(b);a.process.exit(2)});else +if(a.addEventListener)a.addEventListener("error",function(a){if(a.error)G4(a.error)})}bBB();function +u(a,b){return a.length==1?a(b):dD(a,[b])}function +ar(a,b,c){return a.length==2?a(b,c):dD(a,[b,c])}function +cE(a,b,c,d){return a.length==3?a(b,c,d):dD(a,[b,c,d])}function +vO(a,b,c,d,e){return a.length==4?a(b,c,d,e):dD(a,[b,c,d,e])}function +rq(a,b,c,d,e,f){return a.length==5?a(b,c,d,e,f):dD(a,[b,c,d,e,f])}function +bAO(a,b,c,d,e,f,g){return a.length==6?a(b,c,d,e,f,g):dD(a,[b,c,d,e,f,g])}function +bAN(a,b,c,d,e,f,g,h){return a.length==7?a(b,c,d,e,f,g,h):dD(a,[b,c,d,e,f,g,h])}bA3();var +qn=[bh,a(D9),-1],tM=[bh,a(ER),-2],l6=[bh,a(r0),-3],tI=[bh,a(z9),-4],qo=[bh,a(xL),-6],cI=[bh,a(FQ),-7],tK=[bh,a(wF),-8],tL=[bh,a(Ay),-9],br=[bh,a(Gm),-11],tN=[bh,a(Ez),Ek],bAL=[4,0,0,0,[12,45,[4,0,0,0,0]]],qE=[0,[11,a('File "'),[2,0,[11,a('", line '),[4,0,0,0,[11,a(zK),[4,0,0,0,[12,45,[4,0,0,0,[11,a(": "),[2,0,0]]]]]]]]]],a('File "%s", line %d, characters %d-%d: %s')],bAM=[4,0,0,0,[12,46,0]],vN=[0,a("eventsManager"),a("computeAllocationsFamiliales"),a("computeAidesAuLogement")];dZ(11,tN,Ez);dZ(10,br,Gm);dZ(9,[bh,a(CH),-10],CH);dZ(8,tL,Ay);dZ(7,tK,wF);dZ(6,cI,FQ);dZ(5,qo,xL);dZ(4,[bh,a(zi),-5],zi);dZ(3,tI,z9);dZ(2,l6,r0);dZ(1,tM,ER);dZ(0,qn,D9);var +HH=a("output_substring"),HE=a("%.12g"),HD=a(es),HB=a(xa),HC=a(Ao),Hu=a("Stdlib.Exit"),Hw=f_(0,0,FK),Hx=f_(0,0,65520),Hy=f_(1,0,FK),HJ=a("CamlinternalLazy.Undefined"),HO=a(xw),HP=a("\\'"),HQ=a(wL),HR=a(A9),HS=a(BY),HT=a(zp),HN=a("Char.chr"),HW=a("nth"),HX=a("List.nth"),HV=a("tl"),HU=a("hd"),H0=a("String.blit / Bytes.blit_string"),HZ=a("Bytes.blit"),HY=a("String.sub / Bytes.sub"),H5=a("String.contains_from / Bytes.contains_from"),H2=a(_),H1=a("String.concat"),H8=a("Array.blit"),H7=a("Array.fill"),Ib=a("Map.remove_min_elt"),Ic=[0,0,0,0],Id=[0,a("map.ml"),yj,10],Ie=[0,0,0],H9=a(ni),H_=a(ni),H$=a(ni),Ia=a(ni),If=a("Stdlib.Queue.Empty"),Il=a("Buffer.add_substring/add_subbytes"),Ik=a("Buffer.add: cannot grow buffer"),Ij=[0,a(AJ),93,2],Ii=[0,a(AJ),94,2],Ih=a("Buffer.sub"),Iu=a("%c"),Iv=a("%s"),Iw=a(yK),Ix=a(Cg),Iy=a(z7),Iz=a(EN),IA=a("%f"),IB=a("%B"),IC=a("%{"),ID=a("%}"),IE=a("%("),IF=a("%)"),IG=a(rW),IH=a("%t"),II=a("%?"),IJ=a("%r"),IK=a("%_r"),IL=[0,a(cj),gG,23],IW=[0,a(cj),gt,21],IO=[0,a(cj),815,21],IX=[0,a(cj),gv,21],IP=[0,a(cj),819,21],IY=[0,a(cj),ss,19],IQ=[0,a(cj),r8,19],IZ=[0,a(cj),826,22],IR=[0,a(cj),827,22],I0=[0,a(cj),831,30],IS=[0,a(cj),832,30],IU=[0,a(cj),836,26],IM=[0,a(cj),837,26],IV=[0,a(cj),846,28],IN=[0,a(cj),lp,28],IT=[0,a(cj),gS,23],J3=a(w3),J1=[0,a(cj),gU,4],J2=a("Printf: bad conversion %["),J4=[0,a(cj),1626,39],J5=[0,a(cj),gF,31],J6=[0,a(cj),1650,31],J7=a("Printf: bad conversion %_"),J8=a(wY),J9=a(w_),J_=a(wY),J$=a(w_),Kd=[0,[11,a("invalid box description "),[3,0,0]],a("invalid box description %S")],Kb=a(_),Kc=[0,0,4],Ke=a(_),Kf=a(yn),Kg=a("h"),Kh=a("hov"),Ki=a("hv"),Kj=a("v"),JZ=a(r1),JX=a("neg_infinity"),JY=a(Gx),JW=a(es),JR=[0,cO],JF=a("%+nd"),JG=a("% nd"),JI=a("%+ni"),JJ=a("% ni"),JK=a("%nx"),JL=a("%#nx"),JM=a("%nX"),JN=a("%#nX"),JO=a("%no"),JP=a("%#no"),JE=a("%nd"),JH=a(z7),JQ=a("%nu"),Js=a("%+ld"),Jt=a("% ld"),Jv=a("%+li"),Jw=a("% li"),Jx=a("%lx"),Jy=a("%#lx"),Jz=a("%lX"),JA=a("%#lX"),JB=a("%lo"),JC=a("%#lo"),Jr=a("%ld"),Ju=a(Cg),JD=a("%lu"),Jf=a("%+Ld"),Jg=a("% Ld"),Ji=a("%+Li"),Jj=a("% Li"),Jk=a("%Lx"),Jl=a("%#Lx"),Jm=a("%LX"),Jn=a("%#LX"),Jo=a("%Lo"),Jp=a("%#Lo"),Je=a("%Ld"),Jh=a(EN),Jq=a("%Lu"),I4=a("%+d"),I5=a("% d"),I7=a("%+i"),I8=a("% i"),I9=a("%x"),I_=a("%#x"),I$=a("%X"),Ja=a("%#X"),Jb=a("%o"),Jc=a("%#o"),I3=a(te),I6=a(yK),Jd=a(w3),Im=a("@]"),In=a("@}"),Io=a("@?"),Ip=a("@\n"),Iq=a("@."),Ir=a("@@"),Is=a("@%"),It=a("@"),I1=a("CamlinternalFormat.Type_mismatch"),Kn=a(_),Ko=[0,[11,a(gA),[2,0,[2,0,0]]],a(", %s%s")],KN=[0,[11,a(ta),[2,0,[12,10,0]]],a(Gd)],KO=[0,[11,a("Fatal error in uncaught exception handler: exception "),[2,0,[12,10,0]]],a("Fatal error in uncaught exception handler: exception %s\n")],KM=a("Fatal error: out of memory in uncaught exception handler"),KK=[0,[11,a(ta),[2,0,[12,10,0]]],a(Gd)],KG=[0,[2,0,[12,10,0]],a("%s\n")],Ky=a("Raised at"),Kz=a("Re-raised at"),KA=a("Raised by primitive operation at"),KB=a("Called from"),KC=a(" (inlined)"),KE=a(_),KD=[0,[2,0,[12,32,[2,0,[11,a(' in file "'),[2,0,[12,34,[2,0,[11,a(", line "),[4,0,0,0,[11,a(zK),bAL]]]]]]]]]],a('%s %s in file "%s"%s, line %d, characters %d-%d')],KF=[0,[2,0,[11,a(" unknown location"),0]],a("%s unknown location")],Kt=a("Out of memory"),Ku=a("Stack overflow"),Kv=a("Pattern matching failed"),Kw=a("Assertion failed"),Kx=a("Undefined recursive module"),Kp=[0,[12,40,[2,0,[2,0,[12,41,0]]]],a("(%s%s)")],Kq=a(_),Kr=a(_),Ks=[0,[12,40,[2,0,[12,41,0]]],a("(%s)")],Km=[0,[4,0,0,0,0],a(te)],Kk=[0,[3,0,0],a("%S")],Kl=a(s9),KH=[0,a(_),a("(Cannot print locations:\n bytecode executable program file not found)"),a("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"),a("(Cannot print locations:\n bytecode executable program file has wrong magic number)"),a("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")],KP=a(F5),K3=[0,0],bAJ=a("OCAMLRUNPARAM"),bAH=a("CAMLRUNPARAM"),KQ=a(_),Lr=[3,0,3],Ls=a(es),Lm=a(ot),Ln=a("<\/"),Lo=a(_),Li=a(ot),Lj=a(sO),Lk=a(_),Lg=a("\n"),Lc=a(_),Ld=a(_),Le=a(_),Lf=a(_),Lb=[0,a(_)],K9=a(_),K_=a(_),K$=a(_),La=a(_),K7=[0,a(_),0,a(_)],K6=a(_),K5=a("Stdlib.Format.String_tag"),LD=a(_),LK=[0,a("lib/dates.ml"),226,2],LJ=[0,[4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]],a("%04d-%02d-%02d")],LH=[0,[12,91,[4,0,0,0,[11,a(" years, "),[4,0,0,0,[11,a(" months, "),[4,0,0,0,[11,a(" days]"),0]]]]]]],a("[%d years, %d months, %d days]")],LE=a("Dates_calc.Dates.InvalidDate"),LF=a("Dates_calc.Dates.AmbiguousComputation"),LP=f_(1,0,0),LL=a("Z.Overflow"),LM=a(nf),LT=a(_),LU=a("+inf"),LV=a("-inf"),LW=a(GF),LX=a("undef"),LZ=[0,a("q.ml"),486,25],LY=a("Q.of_string: invalid digit"),LR=a(x7),LQ=a(x7),L3=a("Buf.extend: reached Sys.max_string_length"),MB=[0,a(sP),72,32],My=[0,a(sP),72,32],Mx=a("Root is not an object or array"),Mt=a("NaN value not allowed in standard JSON"),Mu=[0,[8,[0,0,3],0,[0,16],0],a(yN)],Mw=[0,[8,[0,0,3],0,[0,17],0],a(D0)],Mv=a(zH),Mr=a("Infinity value not allowed in standard JSON"),Ms=a("-Infinity value not allowed in standard JSON"),Mn=a("NaN"),Mo=[0,[8,[0,0,3],0,[0,16],0],a(yN)],Mq=[0,[8,[0,0,3],0,[0,17],0],a(D0)],Mp=a(zH),Ml=a("Infinity"),Mm=a("-Infinity"),Mi=a(xa),Mj=a(Ao),Mh=a("null"),Mb=a(wL),Mc=a(A9),Md=a(BY),Me=a("\\f"),Mf=a(zp),Mg=a('\\"'),Ma=a(xw),L$=[0,[11,a("src="),[3,0,[11,a(" start="),[4,3,0,0,[11,a(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]],a("src=%S start=%i len=%i\n%!")],L9=a("\\u00"),L6=[0,a(sP),72,32],L4=a("Yojson.Json_error"),L8=[0,a(rL),a(rZ),a(r$),a(sJ),a(si),a(_),a(_),a(_),a(_),a(_),a(_)],MA=[0,a(rL),a(rZ),a(r$),a(sJ),a(si),a(_),a(_),a(_),a(_),a(_),a(_)],MD=[0,a(rL),a(rZ),a(r$),a(sJ),a(si),a(_),a(_),a(_),a(_),a(_),a(_)],Nw=a("unreachable due to the [is_subscope_call] test"),Ny=a("unreachable due to the [is_subscope_input_var_def] test"),Nz=a("]"),NA=a("["),NB=a(" ]): expected variable definition (function output), found: "),NC=a(gA),ND=a(wb),NE=a(" ]): expected variable definition (function output), found: end of tokens"),NF=a(gA),NG=a(wb),Nx=a("Unexpected event: "),NI=a("Missing function output variable definition."),NH=a("Invalid start of function call."),Nv=a(ag),Nu=a(ah),NJ=[0,[11,a("An error occurred while parsing raw events: "),[2,0,[12,10,0]]],a("An error occurred while parsing raw events: %s\n")],Nk=a(y2),Nl=a(gA),Nm=[0,[11,a(BJ),0],a(BJ)],Nn=a(y2),No=a(gA),Np=[0,[11,a(FC),0],a(FC)],Nq=a(gA),Nr=[0,[11,a("VariableDefinition([ "),[2,0,[11,a(" ], "),[2,0,[12,41,0]]]]],a("VariableDefinition([ %s ], %s)")],Ns=[0,[11,a(xj),0],a(xj)],M6=[0,cJ,a("VarComputation")],M7=[0,cJ,a("FunCall")],M8=a(Di),M9=a("inputs"),M_=a(y5),M$=[0,cJ,a("SubScopeCall")],Na=a("fun_calls"),Nb=a("value"),Nc=a(y5),Nd=a("pos"),Ne=a(ah),Nf=a(Di),Ng=a(ag),Nh=a("fun_name"),MV=[0,cc,[0,[0,cJ,a("Unit")],0]],MW=[0,cc,[0,[0,cJ,a("Unembeddable")],0]],MX=[0,cJ,a("Bool")],MY=[0,cJ,a("Money")],MZ=[0,cJ,a("Integer")],M0=[0,cJ,a("Decimal")],M1=[0,cJ,a("Date")],M2=[0,cJ,a("Duration")],M3=[0,cJ,a("Enum")],M4=[0,cJ,a("Struct")],M5=[0,cJ,a("Array")],MU=[0,[15,0],a(rW)],MT=[0,[15,0],a(rW)],MF=a("law_headings"),MG=a("end_column"),MH=a("end_line"),MI=a("start_column"),MJ=a("start_line"),MK=a("filename"),ML=a("Runtime_ocaml.Runtime.EmptyError"),MM=a("Runtime_ocaml.Runtime.AssertionFailed"),MN=a("Runtime_ocaml.Runtime.ConflictError"),MO=a("Runtime_ocaml.Runtime.UncomparableDurations"),MQ=a("Runtime_ocaml.Runtime.ImpossibleDate"),MS=a("Runtime_ocaml.Runtime.NoValueProvided"),NK=a("Jsoo_runtime.Error.Exn"),NL=a(sz),N3=[0,[2,0,[11,a(" in file "),[2,0,[11,a(", position "),[4,0,0,0,[12,58,[4,0,0,0,[11,a("--"),[4,0,0,0,[12,58,bAM]]]]]]]]]],a("%s in file %s, position %d:%d--%d:%d.")],N4=a("No rule applies in the given context to give a value to the variable"),N5=a("A conflict happened between two rules giving a value to the variable"),N6=a("A failure happened in the assertion"),NW=a("Begin call"),NX=a("End call"),NY=a("Variable definition"),NZ=a("Decision taken"),NU=a(_),NS=a("date_of_jsoo: invalid date"),NQ=[0,a(yX),a(Cw),a(Fp)],NR=[0,a(yX),a(Fp),a(Cw)],aag=[0,a(a2),89,14,89,29,[0,a(bn),[0,a(a3),0]]],$$=[0,a(a2),c7,18,c7,64,[0,a(bn),[0,a(a3),0]]],aaa=[0,a(a2),99,5,99,72,[0,a(bn),[0,a(a3),0]]],$_=[0,a(a2),99,5,99,72,[0,a(bn),[0,a(a3),0]]],$6=[0,a(a2),86,14,86,53,[0,a(bn),[0,a(a3),0]]],$2=[0,a(a2),85,14,85,50,[0,a(bn),[0,a(a3),0]]],$Y=[0,a(a2),88,14,88,46,[0,a(bn),[0,a(a3),0]]],$U=[0,a(a2),87,14,87,54,[0,a(bn),[0,a(a3),0]]],$P=[0,a(a2),96,18,96,72,[0,a(bn),[0,a(a3),0]]],$Q=[0,a(a2),95,5,95,80,[0,a(bn),[0,a(a3),0]]],$O=[0,a(a2),95,5,95,80,[0,a(bn),[0,a(a3),0]]],$J=[0,a(a2),92,18,92,67,[0,a(bn),[0,a(a3),0]]],$K=[0,a(a2),91,5,91,75,[0,a(bn),[0,a(a3),0]]],$I=[0,a(a2),91,5,91,75,[0,a(bn),[0,a(a3),0]]],$E=[0,a(a2),bm,14,bm,30,[0,a("Article L131-1"),[0,a(bn),[0,a(a3),0]]]],$B=[0,0],$C=[1,0],$D=[2,0],$F=[0,a(a2),75,11,75,27,[0,a(bn),[0,a(a3),0]]],$A=[0,a(a2),75,11,75,27,[0,a(bn),[0,a(a3),0]]],$G=[0,a(d$),[0,a("enfants_\xc3\xa0_charge"),0]],$L=[0,a(a2),91,5,91,75,[0,a(bn),[0,a(a3),0]]],$M=[0,a(d$),[0,a("allocations_familiales.personne_charge_effective_permanente_est_parent"),0]],$H=[0,a(a2),91,5,91,75,[0,a(bn),[0,a(a3),0]]],$R=[0,a(a2),95,5,95,80,[0,a(bn),[0,a(a3),0]]],$S=[0,a(d$),[0,a("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"),0]],$N=[0,a(a2),95,5,95,80,[0,a(bn),[0,a(a3),0]]],$V=[0,a(a2),87,14,87,54,[0,a(bn),[0,a(a3),0]]],$W=[0,a(d$),[0,a("allocations_familiales.ressources_m\xc3\xa9nage"),0]],$T=[0,a(a2),87,14,87,54,[0,a(bn),[0,a(a3),0]]],$Z=[0,a(a2),88,14,88,46,[0,a(bn),[0,a(a3),0]]],$0=[0,a(d$),[0,a("allocations_familiales.r\xc3\xa9sidence"),0]],$X=[0,a(a2),88,14,88,46,[0,a(bn),[0,a(a3),0]]],$3=[0,a(a2),85,14,85,50,[0,a(bn),[0,a(a3),0]]],$4=[0,a(d$),[0,a("allocations_familiales.date_courante"),0]],$1=[0,a(a2),85,14,85,50,[0,a(bn),[0,a(a3),0]]],$7=[0,a(a2),86,14,86,53,[0,a(bn),[0,a(a3),0]]],$8=[0,a(d$),[0,a("allocations_familiales.enfants_\xc3\xa0_charge"),0]],$5=[0,a(a2),86,14,86,53,[0,a(bn),[0,a(a3),0]]],aab=[0,a(a2),99,5,99,72,[0,a(bn),[0,a(a3),0]]],aac=[0,a(d$),[0,a("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"),0]],$9=[0,a(a2),99,5,99,72,[0,a(bn),[0,a(a3),0]]],aad=[0,a(d$),[0,a(wx),[0,a(W),0]]],aae=[0,a(d$),[0,a(wx),[0,a(W),0]]],aah=[0,a(a2),79,10,79,25,[0,a(bn),[0,a(a3),0]]],aaf=[0,a(a2),79,10,79,25,[0,a(bn),[0,a(a3),0]]],aai=[0,a(d$),[0,a("i_montant_vers\xc3\xa9"),0]],$v=[0,a(a2),44,14,44,27,[0,a(eQ),[0,a(a3),0]]],$u=a(q),$q=[0,a(bq),Em,14,Em,62,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],$l=[0,a(W),[0,a(lP),[0,a(ag),0]]],$m=[0,a(W),[0,a(lP),0]],$n=[0,a(W),[0,a(lP),[0,a(ah),0]]],$o=[0,a(W),[0,a(lP),0]],$p=a(q),$h=[0,a(bq),pk,14,pk,61,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],$d=[0,a(a2),38,14,38,38,[0,a(eQ),[0,a(a3),0]]],__=[0,a(W),[0,a(k$),[0,a(ag),0]]],_$=[0,a(W),[0,a(k$),0]],$a=[0,a(W),[0,a(k$),[0,a(ah),0]]],$b=[0,a(W),[0,a(k$),0]],_9=a(q),$c=a(q),_5=[0,a(a2),36,14,36,32,[0,a(eQ),[0,a(a3),0]]],_4=a(q),_0=[0,a(dN),nl,5,nl,43,[0,a("Article R521-4"),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],_P=[0,a(W),[0,a(fj),[0,a(ag),0]]],_Q=[0,a(W),[0,a(fj),0]],_R=[0,a(W),[0,a(fj),[0,a(ah),0]]],_S=[0,a(W),[0,a(fj),0]],_T=a(ep),_Y=a(ld),_Z=a(b3),_U=[0,a(W),[0,a(k6),[0,a(ag),0]]],_V=[0,a(W),[0,a(k6),0]],_W=[0,a(W),[0,a(k6),[0,a(ah),0]]],_X=[0,a(W),[0,a(k6),0]],_1=[0,a(L),ee,11,ee,49,[0,a(M),[0,a(K),[0,a(H),0]]]],_O=[0,a(L),ee,11,ee,49,[0,a(M),[0,a(K),[0,a(H),0]]]],_L=[0,a(dN),cu,14,cu,46,[0,a(pT),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],_E=a(cN),_F=[0,a(bq),rB,5,sj,42,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],_B=a(cN),_C=a(ep),_D=a(cN),_G=[0,a(L),eT,11,eT,52,[0,a(M),[0,a(K),[0,a(H),0]]]],_y=a(cN),_z=[0,a(bq),277,5,Do,41,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],_v=a(cN),_w=a(ep),_x=a(cN),_A=[0,a(L),eT,11,eT,52,[0,a(M),[0,a(K),[0,a(H),0]]]],_H=[0,a(L),eT,11,eT,52,[0,a(M),[0,a(K),[0,a(H),0]]]],_u=[0,a(bq),oh,14,oh,55,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],_t=a(q),_i=[0,a(W),[0,a(bG),[0,a(ag),0]]],_j=[0,a(W),[0,a(bG),0]],_k=[0,a(W),[0,a(bG),[0,a(ah),0]]],_l=[0,a(W),[0,a(bG),0]],_m=a(z),_n=[0,a(bq),gp,5,sW,57,[0,a(lo),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(a$),[0,a(ad),0]]]]]]],_h=a("0.0369"),_o=[0,a(L),cF,11,cF,37,[0,a(M),[0,a(K),[0,a(H),0]]]],_a=[0,a(W),[0,a(bG),[0,a(ag),0]]],_b=[0,a(W),[0,a(bG),0]],_c=[0,a(W),[0,a(bG),[0,a(ah),0]]],_d=[0,a(W),[0,a(bG),0]],_e=a(z),_f=[0,a(bq),388,5,391,58,[0,a(lo),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(a$),[0,a(ad),0]]]]]]],Z$=a("0.0567"),_g=[0,a(L),cF,11,cF,37,[0,a(M),[0,a(K),[0,a(H),0]]]],_p=[0,a(L),cF,11,cF,37,[0,a(M),[0,a(K),[0,a(H),0]]]],Z_=[0,a(bq),22,14,22,40,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Z6=[0,a(W),[0,a(la),[0,a(ag),0]]],Z7=[0,a(W),[0,a(la),0]],Z8=[0,a(W),[0,a(la),[0,a(ah),0]]],Z9=[0,a(W),[0,a(la),0]],_q=[0,a(L),cF,11,cF,37,[0,a(M),[0,a(K),[0,a(H),0]]]],Z5=[0,a(L),cF,11,cF,37,[0,a(M),[0,a(K),[0,a(H),0]]]],ZZ=a(z),Z0=[0,a(bq),355,5,356,69,[0,a(lo),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(a$),[0,a(ad),0]]]]]]],Z1=[0,a(L),dM,11,dM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],ZW=[8,0],ZX=[0,a(aY),v0,24,v0,44,[0,a(cL),[0,a(bc),[0,a(bd),0]]]],ZY=[0,a(L),dM,11,dM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],Z2=[0,a(L),dM,11,dM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],ZV=[0,a(bq),18,14,18,34,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],ZR=[0,a(bq),yW,14,yW,39,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],ZM=[0,a(W),[0,a(lg),[0,a(ag),0]]],ZN=[0,a(W),[0,a(lg),0]],ZO=[0,a(W),[0,a(lg),[0,a(ah),0]]],ZP=[0,a(W),[0,a(lg),0]],ZQ=a(z),ZL=a(q),ZC=[0,a(W),[0,a(bG),[0,a(ag),0]]],ZD=[0,a(W),[0,a(bG),0]],ZE=[0,a(W),[0,a(bG),[0,a(ah),0]]],ZF=[0,a(W),[0,a(bG),0]],ZG=[0,a(bq),60,5,60,38,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],ZB=a(sq),ZH=[0,a(L),cY,11,cY,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Zv=[0,a(W),[0,a(bG),[0,a(ag),0]]],Zw=[0,a(W),[0,a(bG),0]],Zx=[0,a(W),[0,a(bG),[0,a(ah),0]]],Zy=[0,a(W),[0,a(bG),0]],Zz=[0,a(bq),hP,5,hP,38,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Zu=a(CV),ZA=[0,a(L),cY,11,cY,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Zo=[0,a(W),[0,a(bG),[0,a(ag),0]]],Zp=[0,a(W),[0,a(bG),0]],Zq=[0,a(W),[0,a(bG),[0,a(ah),0]]],Zr=[0,a(W),[0,a(bG),0]],Zs=[0,a(bq),E3,5,E3,38,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Zn=a(C_),Zt=[0,a(L),cY,11,cY,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Zh=[0,a(W),[0,a(bG),[0,a(ag),0]]],Zi=[0,a(W),[0,a(bG),0]],Zj=[0,a(W),[0,a(bG),[0,a(ah),0]]],Zk=[0,a(W),[0,a(bG),0]],Zl=[0,a(a2),27,5,27,44,[0,a(eQ),[0,a(a3),0]]],Zg=a(q),Zm=[0,a(L),cY,11,cY,47,[0,a(M),[0,a(K),[0,a(H),0]]]],ZI=[0,a(L),cY,11,cY,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Zf=[0,a(L),cY,11,cY,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Zc=[0,a(dN),ee,14,ee,41,[0,a(pT),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],Za=a(b3),Zb=a(b3),Y4=[8,0],Y5=[0,a(aY),Gh,5,Gh,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Y1=a(z),Y2=a(wV),Y3=a(q),Y6=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],YY=[8,0],YZ=[0,a(aY),GK,5,GK,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],YV=a(z),YW=a("0.2379"),YX=a(q),Y0=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],YS=[8,0],YT=[0,a(aY),fR,5,fR,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],YP=a(z),YQ=a("0.2437"),YR=a(q),YU=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],YM=[8,0],YN=[0,a(aY),AC,5,AC,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],YJ=a(z),YK=a("0.2496"),YL=a(q),YO=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],YG=[8,0],YH=[0,a(aY),sW,5,sW,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],YD=a(z),YE=a("0.2555"),YF=a(q),YI=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],YA=[8,0],YB=[0,a(aY),v6,5,v6,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Yx=a(z),Yy=a("0.2613"),Yz=a(q),YC=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Yu=[8,0],Yv=[0,a(aY),xX,5,xX,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Yr=a(z),Ys=a("0.2672"),Yt=a(q),Yw=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Yo=[8,0],Yp=[0,a(aY),yq,5,yq,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Yl=a(z),Ym=a("0.2804"),Yn=a(q),Yq=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Yi=[8,0],Yj=[0,a(aY),fV,5,fV,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Yf=a(z),Yg=a("0.2936"),Yh=a(q),Yk=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Yc=[8,0],Yd=[0,a(aY),yc,5,yc,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],X$=a(z),Ya=a("0.3068"),Yb=a(q),Ye=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Y7=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],X9=[8,0],X_=[0,a(aY),sv,14,sv,50,[0,a(cL),[0,a(bc),[0,a(bd),0]]]],X6=a(z),X7=a(th),X8=a(q),Y8=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],X3=[0,a(bq),38,14,38,50,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],X0=a(z),X1=a(th),X2=a(q),X4=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],XY=[0,a(bq),79,14,79,50,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],XV=a(z),XW=a(sq),XX=a(q),XZ=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],XT=[0,a(bq),iK,14,iK,50,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],XQ=a(z),XR=a(CV),XS=a(q),XU=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],X5=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],XL=[0,a(bq),43,14,43,59,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],XH=a(X),XI=a(X),XJ=a("0.41"),XK=a(q),XM=[0,a(L),dy,11,dy,56,[0,a(M),[0,a(K),[0,a(H),0]]]],XF=[0,a(bq),84,14,84,59,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],XB=a(X),XC=a(X),XD=a("0.205"),XE=a(q),XG=[0,a(L),dy,11,dy,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Xz=[0,a(bq),gW,14,gW,59,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Xv=a(X),Xw=a(X),Xx=a("0.1025"),Xy=a(q),XA=[0,a(L),dy,11,dy,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Xq=[0,a(bq),oy,5,oy,43,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Xp=a("0.20234"),Xr=[0,a(L),eo,11,eo,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Xn=[0,a(bq),234,5,Aw,46,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Xm=a("0.10117"),Xo=[0,a(L),eo,11,eo,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Xk=[0,a(bq),bh,5,bh,43,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],Xj=a("0.05059"),Xl=[0,a(L),eo,11,eo,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Xc=a(cN),Xd=[0,a(bq),rO,5,166,68,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],W$=a(cN),Xa=a(ep),Xb=a(cN),Xe=[0,a(L),eE,11,eE,31,[0,a(M),[0,a(K),[0,a(H),0]]]],W8=a(cN),W9=[0,a(bq),174,5,sV,68,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],W5=a(cN),W6=a(ep),W7=a(cN),W_=[0,a(L),eE,11,eE,31,[0,a(M),[0,a(K),[0,a(H),0]]]],Xf=[0,a(L),eE,11,eE,31,[0,a(M),[0,a(K),[0,a(H),0]]]],W4=[0,a(bq),kx,14,kx,34,[0,a(cW),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],W3=a(q),Xg=[0,a(L),eE,11,eE,31,[0,a(M),[0,a(K),[0,a(H),0]]]],W2=[0,a(L),eE,11,eE,31,[0,a(M),[0,a(K),[0,a(H),0]]]],WT=[0,a(W),[0,a(eR),[0,a(ag),0]]],WU=[0,a(W),[0,a(eR),0]],WV=[0,a(W),[0,a(eR),[0,a(ah),0]]],WW=[0,a(W),[0,a(eR),0]],WX=[0,a(bU),iH,5,318,21,[0,a(AT),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],WY=[0,a(L),cu,11,cu,34,[0,a(M),[0,a(K),[0,a(H),0]]]],WK=[0,a(W),[0,a(lK),[0,a(ag),0]]],WL=[0,a(W),[0,a(lK),0]],WM=[0,a(W),[0,a(lK),[0,a(ah),0]]],WN=[0,a(W),[0,a(lK),0]],WO=[0,a(W),[0,a(eR),[0,a(ag),0]]],WP=[0,a(W),[0,a(eR),0]],WQ=[0,a(W),[0,a(eR),[0,a(ah),0]]],WR=[0,a(W),[0,a(eR),0]],WS=[0,a(bU),fn,5,c4,21,[0,a(AT),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],WZ=[0,a(L),cu,11,cu,34,[0,a(M),[0,a(K),[0,a(H),0]]]],WJ=[0,a(L),cu,11,cu,34,[0,a(M),[0,a(K),[0,a(H),0]]]],W0=[0,a(L),cu,11,cu,34,[0,a(M),[0,a(K),[0,a(H),0]]]],WI=[0,a(L),cu,11,cu,34,[0,a(M),[0,a(K),[0,a(H),0]]]],Wz=[8,0],WA=a(z),WB=[0,a(aY),fM,6,fM,71,[0,a(cL),[0,a(bc),[0,a(bd),0]]]],WC=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],Wx=a(z),Wy=[0,a(bU),sT,5,410,72,[0,a(sQ),[0,a(eW),[0,a(le),[0,a(dT),[0,a(ab),[0,a(ad),0]]]]]]],WD=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],WE=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],Wv=a(X),Ww=[0,a(bU),hP,5,hP,70,[0,a(GP),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],WF=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],Wu=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],Wm=[8,0],Wn=[0,a(aY),251,5,lb,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Wj=a(q),Wk=a("0.145"),Wl=a(q),Wo=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Wg=[8,0],Wh=[0,a(aY),As,5,261,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Wd=a(q),We=a("0.1393"),Wf=a(q),Wi=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Wa=[8,0],Wb=[0,a(aY),sj,5,xt,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],V9=a(q),V_=a("0.1335"),V$=a(q),Wc=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],V6=[8,0],V7=[0,a(aY),278,5,Do,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],V3=a(q),V4=a("0.1278"),V5=a(q),V8=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],V0=[8,0],V1=[0,a(aY),287,5,sf,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],VX=a(q),VY=a("0.122"),VZ=a(q),V2=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],VU=[8,0],VV=[0,a(aY),d4,5,ed,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],VR=a(q),VS=a("0.1163"),VT=a(q),VW=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],VO=[8,0],VP=[0,a(aY),lT,5,sk,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],VL=a(q),VM=a("0.1105"),VN=a(q),VQ=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],VI=[8,0],VJ=[0,a(aY),eb,5,iH,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],VF=a(q),VG=a("0.0976"),VH=a(q),VK=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],VC=[8,0],VD=[0,a(aY),323,5,fl,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Vz=a(q),VA=a("0.0847"),VB=a(q),VE=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Vw=[8,0],Vx=[0,a(aY),vX,5,333,53,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Vt=a(q),Vu=a("0.0717"),Vv=a(q),Vy=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Vq=[8,0],Vr=[0,a(aY),z3,5,z3,49,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Vn=a(q),Vo=a("5728"),Vp=a(q),Vs=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Wp=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Vl=[8,0],Vm=[0,a(aY),oS,14,oS,49,[0,a(cL),[0,a(bc),[0,a(bd),0]]]],Vi=a(q),Vj=a(w4),Vk=a(q),Wq=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Vf=a(z),Vg=[0,a(bq),dA,5,dh,71,[0,a(lo),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(a$),[0,a(ad),0]]]]]]],Ve=a(w4),Vh=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Vd=[0,a(bq),yQ,29,yQ,64,[0,a(lo),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(a$),[0,a(ad),0]]]]]]],Vc=a(q),U_=[0,a(dN),nw,14,nw,34,[0,a(pT),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],U3=[0,a(W),[0,a(fj),[0,a(ag),0]]],U4=[0,a(W),[0,a(fj),0]],U5=[0,a(W),[0,a(fj),[0,a(ah),0]]],U6=[0,a(W),[0,a(fj),0]],U7=a(ep),U8=a(ld),U9=a(b3),U2=a(b3),UY=[0,a(dN),AN,14,AN,34,[0,a(pT),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],UR=[8,0],US=[0,a(aY),hw,5,hw,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],UO=a(X),UP=a(C7),UQ=a(q),UT=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],UL=[8,0],UM=[0,a(aY),Dn,5,Dn,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],UI=a(X),UJ=a("0.0539"),UK=a(q),UN=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],UF=[8,0],UG=[0,a(aY),y4,5,y4,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],UC=a(X),UD=a("0.0615"),UE=a(q),UH=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Uz=[8,0],UA=[0,a(aY),eu,5,eu,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Uw=a(X),Ux=a("0.069"),Uy=a(q),UB=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Ut=[8,0],Uu=[0,a(aY),C9,5,C9,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Uq=a(X),Ur=a("0.0766"),Us=a(q),Uv=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Un=[8,0],Uo=[0,a(aY),fQ,5,fQ,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Uk=a(X),Ul=a("0.0842"),Um=a(q),Up=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Uh=[8,0],Ui=[0,a(aY),xp,5,xp,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],Ue=a(X),Uf=a("0.0918"),Ug=a(q),Uj=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Ub=[8,0],Uc=[0,a(aY),wK,5,wK,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],T_=a(X),T$=a("0.1089"),Ua=a(q),Ud=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],T7=[8,0],T8=[0,a(aY),j9,5,j9,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],T4=a(X),T5=a("0.1259"),T6=a(q),T9=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],T1=[8,0],T2=[0,a(aY),f0,5,f0,69,[0,a(bp),[0,a(bc),[0,a(bd),0]]]],TY=a(X),TZ=a("0.143"),T0=a(q),T3=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],UU=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],TX=[0,a(aY),oa,14,oa,59,[0,a(cL),[0,a(bc),[0,a(bd),0]]]],TU=a(X),TV=a(sq),TW=a(q),TQ=[0,a(aY),jq,14,jq,67,[0,a(cL),[0,a(bc),[0,a(bd),0]]]],TM=a(aa),TN=a(aa),TO=a(C7),TP=a(q),TF=a(z),TG=[0,a(bU),423,6,424,72,[0,a(sQ),[0,a(eW),[0,a(le),[0,a(dT),[0,a(ab),[0,a(ad),0]]]]]]],TH=[0,a(L),du,11,du,35,[0,a(M),[0,a(K),[0,a(H),0]]]],TA=[0,a(cr),[0,a(jC),[0,a(ag),0]]],TB=[0,a(cr),[0,a(jC),0]],TC=[0,a(cr),[0,a(jC),[0,a(ah),0]]],TD=[0,a(cr),[0,a(jC),0]],TE=[0,a(bU),lB,5,cY,59,[0,a(GP),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],TI=[0,a(L),du,11,du,35,[0,a(M),[0,a(K),[0,a(H),0]]]],Tz=[0,a(L),du,11,du,35,[0,a(M),[0,a(K),[0,a(H),0]]]],TJ=[0,a(L),du,11,du,35,[0,a(M),[0,a(K),[0,a(H),0]]]],Ty=[0,a(L),du,11,du,35,[0,a(M),[0,a(K),[0,a(H),0]]]],Ts=a(z),Tt=[0,a(bU),gr,5,sK,71,[0,a(sQ),[0,a(eW),[0,a(le),[0,a(dT),[0,a(ab),[0,a(ad),0]]]]]]],Tu=[0,a(L),dQ,11,dQ,34,[0,a(M),[0,a(K),[0,a(H),0]]]],Tr=[0,a(a2),30,9,30,32,[0,a(eQ),[0,a(a3),0]]],Tv=[0,a(L),dQ,11,dQ,34,[0,a(M),[0,a(K),[0,a(H),0]]]],Tq=[0,a(L),dQ,11,dQ,34,[0,a(M),[0,a(K),[0,a(H),0]]]],Tk=[0,a(aY),23,5,23,69,[0,a(GC),[0,a(f3),0]]],Ti=a(Fs),Tj=a("5628600"),Tl=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],Tg=[0,a(aY),56,5,56,69,[0,a(v$),[0,a(f3),0]]],Te=a(Gj),Tf=a("5684900"),Th=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],Tc=[0,a(aY),89,5,89,69,[0,a(xv),[0,a(f3),0]]],Ta=a(Fz),Tb=a("5775900"),Td=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],S_=[0,a(aY),bm,5,bm,69,[0,a(cH),[0,a(DH),[0,a(f3),0]]]],S8=a(w5),S9=a("5827900"),S$=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],Tm=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],S7=[0,a(bq),dm,14,dm,30,[0,a(Ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],S5=a(Bq),S6=a("5595000"),SZ=[0,a(aY),30,5,30,69,[0,a(GC),[0,a(f3),0]]],SX=a(Fs),SY=a("7877000"),S0=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],SV=[0,a(aY),63,5,63,69,[0,a(v$),[0,a(f3),0]]],ST=a(Gj),SU=a("7955800"),SW=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],SR=[0,a(aY),96,5,96,69,[0,a(xv),[0,a(f3),0]]],SP=a(Fz),SQ=a("8083100"),SS=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],SN=[0,a(aY),dQ,5,dQ,69,[0,a(cH),[0,a(DH),[0,a(f3),0]]]],SL=a(w5),SM=a("8155800"),SO=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],S1=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],SK=[0,a(bq),kt,14,kt,31,[0,a(Ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],SI=a(Bq),SJ=a("7830000"),SE=[0,a(a2),33,14,33,36,[0,a(eQ),[0,a(a3),0]]],SF=[0,a(L),oG,11,oG,33,[0,a(M),[0,a(K),[0,a(H),0]]]],SD=[0,a(L),oG,11,oG,33,[0,a(M),[0,a(K),[0,a(H),0]]]],SA=[0,a(bU),75,14,75,64,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Sw=[0,a(cr),[0,a(dg),[0,a(ag),0]]],Sx=[0,a(cr),[0,a(dg),0]],Sy=[0,a(cr),[0,a(dg),[0,a(ah),0]]],Sz=[0,a(cr),[0,a(dg),0]],Sr=[0,a(dN),83,19,83,69,[0,a(oI),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],Ss=[0,a(L),eX,11,eX,38,[0,a(M),[0,a(K),[0,a(H),0]]]],Sq=[0,a(dN),56,14,56,41,[0,a(oI),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],St=[0,a(L),eX,11,eX,38,[0,a(M),[0,a(K),[0,a(H),0]]]],Sp=[0,a(L),eX,11,eX,38,[0,a(M),[0,a(K),[0,a(H),0]]]],Sk=[0,a(a2),32,14,32,40,[0,a(eQ),[0,a(a3),0]]],Se=[0,a(L),hj,14,hj,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Sa=[0,a(L),kw,14,kw,56,[0,a(M),[0,a(K),[0,a(H),0]]]],R$=[1,0],R7=[0,a(L),fH,14,fH,50,[0,a(M),[0,a(K),[0,a(H),0]]]],R1=[0,a(L),fM,14,fM,32,[0,a(M),[0,a(K),[0,a(H),0]]]],RV=[0,a(dN),64,14,64,44,[0,a(oI),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],RU=a(aa),RQ=[0,a(bq),eH,14,eH,35,[0,a(fO),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(a$),[0,a(ad),0]]]]]]],RP=a(aa),RK=[0,a(bU),sd,5,As,56,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],RJ=[1,0],RL=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],RE=[0,a(bU),xt,5,271,48,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],RD=[0,0],RF=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],RC=[0,a(bU),Gg,5,Gg,70,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],RB=[0,0],RG=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],RA=[0,a(bU),DC,5,DC,69,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Rz=[0,0],RH=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],Ry=[0,a(bU),pk,5,pk,60,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Rx=[0,0],RI=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],RM=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],Rw=[0,a(L),98,11,98,20,[0,a(M),[0,a(K),[0,a(H),0]]]],Rs=[0,a(bU),C1,5,C1,70,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Rr=[1,0],Rt=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Rp=[0,a(bU),fb,5,nY,56,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Ro=[2,0],Rq=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Rk=[0,a(bU),264,5,265,48,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Rj=[0,0],Rl=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Ri=[0,a(bU),yZ,5,yZ,69,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Rh=[0,0],Rm=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Rg=[0,a(bU),AZ,5,AZ,60,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Rf=[0,0],Rn=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Ru=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Re=[0,a(L),97,11,97,26,[0,a(M),[0,a(K),[0,a(H),0]]]],Rv=[0,a(W),[0,a(fj),0]],RN=[0,a(W),[0,a("versement"),0]],RR=[0,a(L),pi,11,pi,32,[0,a(M),[0,a(K),[0,a(H),0]]]],RO=[0,a(L),pi,11,pi,32,[0,a(M),[0,a(K),[0,a(H),0]]]],RS=[0,a(W),[0,a("nombre_enfants_l521_1"),0]],RW=[0,a(L),pd,11,pd,41,[0,a(M),[0,a(K),[0,a(H),0]]]],RT=[0,a(L),pd,11,pd,41,[0,a(M),[0,a(K),[0,a(H),0]]]],RX=[0,a(W),[0,a("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]],RY=[0,a(W),[0,a(xH),[0,a(r3),0]]],RZ=[0,a(W),[0,a(xH),[0,a(r3),0]]],R2=[0,a(L),fM,14,fM,32,[0,a(M),[0,a(K),[0,a(H),0]]]],R3=[0,a(W),[0,a("bmaf.date_courante"),0]],R0=[0,a(L),fM,14,fM,32,[0,a(M),[0,a(K),[0,a(H),0]]]],R4=[0,a(W),[0,a(BG),[0,a(f4),0]]],R5=[0,a(W),[0,a(BG),[0,a(f4),0]]],R8=[0,a(L),fH,14,fH,50,[0,a(M),[0,a(K),[0,a(H),0]]]],R9=[0,a(W),[0,a(xZ),0]],R6=[0,a(L),fH,14,fH,50,[0,a(M),[0,a(K),[0,a(H),0]]]],Sb=[0,a(L),kw,14,kw,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Sc=[0,a(W),[0,a(BZ),0]],R_=[0,a(L),kw,14,kw,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Sf=[0,a(L),hj,14,hj,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Sg=[0,a(W),[0,a(zJ),0]],Sd=[0,a(L),hj,14,hj,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Sh=[0,a(W),[0,a(pL),[0,a(cr),0]]],Si=[0,a(W),[0,a(pL),[0,a(cr),0]]],Sl=[0,a(a2),32,14,32,40,[0,a(eQ),[0,a(a3),0]]],Sm=[0,a(W),[0,a("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"),0]],Sj=[0,a(a2),32,14,32,40,[0,a(eQ),[0,a(a3),0]]],Sn=[0,a(W),[0,a(DR),[0,a(sc),0]]],So=[0,a(W),[0,a(DR),[0,a(sc),0]]],Su=[0,a(W),[0,a(eR),0]],SB=[0,a(L),95,11,95,61,[0,a(M),[0,a(K),[0,a(H),0]]]],Sv=[0,a(L),95,11,95,61,[0,a(M),[0,a(K),[0,a(H),0]]]],SC=[0,a(W),[0,a("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"),0]],SG=[0,a(W),[0,a(lK),0]],S2=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],SH=[0,a(L),dj,11,dj,28,[0,a(M),[0,a(K),[0,a(H),0]]]],S3=[0,a(W),[0,a("plafond_II_d521_3"),0]],Tn=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],S4=[0,a(L),dn,11,dn,27,[0,a(M),[0,a(K),[0,a(H),0]]]],To=[0,a(W),[0,a("plafond_I_d521_3"),0]],Tw=[0,a(L),dQ,11,dQ,34,[0,a(M),[0,a(K),[0,a(H),0]]]],Tp=[0,a(L),dQ,11,dQ,34,[0,a(M),[0,a(K),[0,a(H),0]]]],Tx=[0,a(W),[0,a("droit_ouvert_compl\xc3\xa9ment"),0]],TK=[0,a(W),[0,a(lg),0]],TR=[0,a(L),iK,11,iK,64,[0,a(M),[0,a(K),[0,a(H),0]]]],TL=[0,a(L),iK,11,iK,64,[0,a(M),[0,a(K),[0,a(H),0]]]],TS=[0,a(W),[0,a("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"),0]],UV=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],TT=[0,a(L),bm,11,bm,56,[0,a(M),[0,a(K),[0,a(H),0]]]],UW=[0,a(W),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"),0]],UZ=[0,a(L),iM,11,iM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],UX=[0,a(L),iM,11,iM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],U0=[0,a(W),[0,a("nombre_total_enfants"),0]],U$=[0,a(L),oX,11,oX,31,[0,a(M),[0,a(K),[0,a(H),0]]]],U1=[0,a(L),oX,11,oX,31,[0,a(M),[0,a(K),[0,a(H),0]]]],Va=[0,a(W),[0,a("nombre_moyen_enfants"),0]],Wr=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Vb=[0,a(L),bf,11,bf,46,[0,a(M),[0,a(K),[0,a(H),0]]]],Ws=[0,a(W),[0,a("montant_initial_base_premier_enfant"),0]],WG=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],Wt=[0,a(L),cO,11,cO,28,[0,a(M),[0,a(K),[0,a(H),0]]]],WH=[0,a(W),[0,a("droit_ouvert_base"),0]],W1=[0,a(W),[0,a(bG),0]],Xh=[0,a(W),[0,a(lP),0]],Xs=[0,a(L),eo,11,eo,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Xi=[0,a(L),eo,11,eo,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Xt=[0,a(W),[0,a("montant_vers\xc3\xa9_forfaitaire_par_enfant"),0]],XN=[0,a(L),dy,11,dy,56,[0,a(M),[0,a(K),[0,a(H),0]]]],Xu=[0,a(L),dy,11,dy,56,[0,a(M),[0,a(K),[0,a(H),0]]]],XO=[0,a(W),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"),0]],Y9=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],XP=[0,a(L),ba,11,ba,47,[0,a(M),[0,a(K),[0,a(H),0]]]],Y_=[0,a(W),[0,a("montant_initial_base_deuxi\xc3\xa8me_enfant"),0]],Zd=[0,a(L),nE,11,nE,38,[0,a(M),[0,a(K),[0,a(H),0]]]],Y$=[0,a(L),nE,11,nE,38,[0,a(M),[0,a(K),[0,a(H),0]]]],Ze=[0,a(W),[0,a("rapport_enfants_total_moyen"),0]],ZJ=[0,a(W),[0,a(la),0]],ZS=[0,a(L),gW,11,gW,36,[0,a(M),[0,a(K),[0,a(H),0]]]],ZK=[0,a(L),gW,11,gW,36,[0,a(M),[0,a(K),[0,a(H),0]]]],ZT=[0,a(W),[0,a("montant_vers\xc3\xa9_forfaitaire"),0]],Z3=[0,a(L),dM,11,dM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],ZU=[0,a(L),dM,11,dM,31,[0,a(M),[0,a(K),[0,a(H),0]]]],Z4=[0,a(W),[0,a("montant_initial_base"),0]],_r=[0,a(W),[0,a(k6),0]],_I=[0,a(L),eT,11,eT,52,[0,a(M),[0,a(K),[0,a(H),0]]]],_s=[0,a(L),eT,11,eT,52,[0,a(M),[0,a(K),[0,a(H),0]]]],_J=[0,a(W),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"),0]],_M=[0,a(L),lS,11,lS,43,[0,a(M),[0,a(K),[0,a(H),0]]]],_K=[0,a(L),lS,11,lS,43,[0,a(M),[0,a(K),[0,a(H),0]]]],_N=[0,a(W),[0,a("montant_avec_garde_altern\xc3\xa9e_base"),0]],_2=[0,a(W),[0,a(k$),0]],_6=[0,a(L),lR,11,lR,29,[0,a(M),[0,a(K),[0,a(H),0]]]],_3=[0,a(L),lR,11,lR,29,[0,a(M),[0,a(K),[0,a(H),0]]]],_7=[0,a(W),[0,a("montant_vers\xc3\xa9_base"),0]],$e=[0,a(L),i7,11,i7,35,[0,a(M),[0,a(K),[0,a(H),0]]]],_8=[0,a(L),i7,11,i7,35,[0,a(M),[0,a(K),[0,a(H),0]]]],$f=[0,a(W),[0,a("montant_vers\xc3\xa9_majoration"),0]],$i=[0,a(L),n6,11,n6,58,[0,a(M),[0,a(K),[0,a(H),0]]]],$g=[0,a(L),n6,11,n6,58,[0,a(M),[0,a(K),[0,a(H),0]]]],$j=[0,a(W),[0,a("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"),0]],$r=[0,a(L),nv,11,nv,59,[0,a(M),[0,a(K),[0,a(H),0]]]],$k=[0,a(L),nv,11,nv,59,[0,a(M),[0,a(K),[0,a(H),0]]]],$s=[0,a(W),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"),0]],$w=[0,a(L),c7,10,c7,23,[0,a(M),[0,a(K),[0,a(H),0]]]],$t=[0,a(L),c7,10,c7,23,[0,a(M),[0,a(K),[0,a(H),0]]]],$x=[0,a(W),[0,a("montant_vers\xc3\xa9"),0]],$y=[0,a(bU),231,5,Aw,6,[0,a(ea),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Q$=[0,a("examples/allocations_familiales/autres_codes.catala_fr"),24,5,24,63,[0,a("Article L821-3"),[0,a(AL),[0,a(FF),[0,a(y7),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]]]],Ra=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q7=[0,a(bU),60,5,62,64,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Q8=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q6=[0,a(bU),49,5,50,50,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Q9=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q_=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Rb=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q5=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Rc=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q4=[0,a(L),57,10,57,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q0=[0,a(bU),68,5,71,57,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],Q1=[0,a(L),58,10,58,29,[0,a(bD),[0,a(K),[0,a(H),0]]]],QZ=[0,a(L),58,10,58,29,[0,a(bD),[0,a(K),[0,a(H),0]]]],Q2=[0,a(L),58,10,58,29,[0,a(bD),[0,a(K),[0,a(H),0]]]],QY=[0,a(L),58,10,58,29,[0,a(bD),[0,a(K),[0,a(H),0]]]],QU=[0,a(dN),vS,18,vS,41,[0,a(yp),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(c6),[0,a(ad),0]]]]]]],QS=a(pP),QT=a(oY),QV=[0,a(L),59,11,59,27,[0,a(bD),[0,a(K),[0,a(H),0]]]],QR=[0,a(dN),31,14,31,30,[0,a(mU),[0,a(oQ),[0,a(d_),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],QP=a(pP),QQ=a(oY),QE=[0,0],QG=[1,0],QH=[2,0],QI=[3,0],QJ=[4,0],QK=[5,0],QF=[0,a(bU),357,5,CG,30,[0,a(Dq),[0,a(zk),[0,a(le),[0,a(dT),[0,a(ab),[0,a(ad),0]]]]]]],QL=[0,a(L),61,10,61,33,[0,a(bD),[0,a(K),[0,a(H),0]]]],QD=[0,a(L),61,10,61,33,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qx=[0,a(L),68,14,68,28,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qt=[0,a(L),69,14,69,32,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qp=[0,a(dN),21,14,21,26,[0,a(mU),[0,a(oQ),[0,a(d_),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],Qq=[0,a(L),60,10,60,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qo=[0,a(L),60,10,60,22,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qr=[0,a(cr),[0,a(zV),0]],Qu=[0,a(L),69,14,69,32,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qv=[0,a(cr),[0,a(FO),0]],Qs=[0,a(L),69,14,69,32,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qy=[0,a(L),68,14,68,28,[0,a(bD),[0,a(K),[0,a(H),0]]]],Qz=[0,a(cr),[0,a(Eg),0]],Qw=[0,a(L),68,14,68,28,[0,a(bD),[0,a(K),[0,a(H),0]]]],QA=[0,a(cr),[0,a(f7),[0,a(hx),0]]],QB=[0,a(cr),[0,a(f7),[0,a(hx),0]]],QM=[0,a(L),61,10,61,33,[0,a(bD),[0,a(K),[0,a(H),0]]]],QC=[0,a(L),61,10,61,33,[0,a(bD),[0,a(K),[0,a(H),0]]]],QN=[0,a(cr),[0,a(wa),0]],QW=[0,a(L),59,11,59,27,[0,a(bD),[0,a(K),[0,a(H),0]]]],QO=[0,a(L),59,11,59,27,[0,a(bD),[0,a(K),[0,a(H),0]]]],QX=[0,a(cr),[0,a(A2),0]],Q3=[0,a(cr),[0,a(jC),0]],Rd=[0,a(cr),[0,a(dg),0]],Qk=[0,a(eB),28,5,29,34,[0,a(C3),[0,a(ch),0]]],Qj=a(yx),Ql=[0,a(eB),6,10,6,17,[0,a(ch),0]],Qh=[0,a(eB),48,5,49,34,[0,a(Bm),[0,a(ch),0]]],Qg=a(ya),Qi=[0,a(eB),6,10,6,17,[0,a(ch),0]],Qe=[0,a(eB),64,5,65,34,[0,a(CN),[0,a(ch),0]]],Qd=a(Cz),Qf=[0,a(eB),6,10,6,17,[0,a(ch),0]],Qb=[0,a(eB),82,5,83,34,[0,a(xJ),[0,a(ch),0]]],Qa=a(Cs),Qc=[0,a(eB),6,10,6,17,[0,a(ch),0]],Qm=[0,a(eB),6,10,6,17,[0,a(ch),0]],P$=[0,a(eB),6,10,6,17,[0,a(ch),0]],Qn=[0,a(f4),[0,a(bN),0]],PZ=[6,0],P1=[0,0],P2=[1,0],P3=[2,0],P4=[3,0],P5=[4,0],P6=[5,0],P7=[7,0],P0=[0,a(b4),29,5,38,6,[0,a(cH),[0,a(mT),[0,a(a0),0]]]],PY=a(xA),P8=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],PV=[8,0],PW=[0,a(b4),47,5,49,6,[0,a(cH),[0,a(mT),[0,a(a0),0]]]],PU=a(yv),PX=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],PK=[6,0],PM=[0,0],PN=[1,0],PO=[2,0],PP=[3,0],PQ=[4,0],PR=[5,0],PS=[7,0],PL=[0,a(b4),68,5,77,6,[0,a(cH),[0,a(oN),[0,a(a0),0]]]],PJ=a(Br),PT=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],PG=[8,0],PH=[0,a(b4),86,5,88,6,[0,a(cH),[0,a(oN),[0,a(a0),0]]]],PF=a(v2),PI=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],Pv=[6,0],Px=[0,0],Py=[1,0],Pz=[2,0],PA=[3,0],PB=[4,0],PC=[5,0],PD=[7,0],Pw=[0,a(b4),dy,5,bm,6,[0,a(cH),[0,a(mV),[0,a(a0),0]]]],Pu=a(B5),PE=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],Pr=[8,0],Ps=[0,a(b4),cu,5,cF,6,[0,a(cH),[0,a(mV),[0,a(a0),0]]]],Pq=a(Fg),Pt=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],Pg=[6,0],Pi=[0,0],Pj=[1,0],Pk=[2,0],Pl=[3,0],Pm=[4,0],Pn=[5,0],Po=[7,0],Ph=[0,a(b4),eX,5,fH,6,[0,a(cH),[0,a(ok),[0,a(a0),0]]]],Pf=a(Ci),Pp=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],Pc=[8,0],Pd=[0,a(b4),rO,5,oS,6,[0,a(cH),[0,a(ok),[0,a(a0),0]]]],Pb=a(xO),Pe=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],O3=[6,0],O5=[0,0],O6=[1,0],O7=[2,0],O8=[3,0],O9=[4,0],O_=[5,0],O$=[7,0],O4=[0,a(b4),oa,5,jq,6,[0,a(om),[0,a(nK),[0,a(a0),0]]]],O2=a(Av),Pa=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],OZ=[8,0],O0=[0,a(b4),xS,5,zo,6,[0,a(om),[0,a(nK),[0,a(a0),0]]]],OY=a(Ff),O1=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],P9=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],OX=[0,a(b4),11,10,11,22,[0,a(H),[0,a(a0),0]]],P_=[0,a(hx),[0,a(AM),0]],OU=[0,a(a2),12,14,12,25,[0,a(eQ),[0,a(a3),0]]],OQ=[2,0],OR=a(q),OS=[1,0],OT=a("-1"),OV=[0,a(L),80,10,80,21,[0,a(M),[0,a(K),[0,a(H),0]]]],OP=[0,a(L),80,10,80,21,[0,a(M),[0,a(K),[0,a(H),0]]]],OW=[0,a(sc),[0,a("le_plus_\xc3\xa2g\xc3\xa9"),0]],OM=[0,a(dN),78,14,78,41,[0,a(oI),[0,a(aP),[0,a(aS),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],ON=[0,a(L),76,10,76,37,[0,a(M),[0,a(K),[0,a(H),0]]]],OL=[0,a(L),76,10,76,37,[0,a(M),[0,a(K),[0,a(H),0]]]],OO=[0,a(r3),[0,a(eR),0]],OD=a(rD),OE=a(rR),OF=a(FB),OG=a(rX),OH=a(rY),OI=a(sx),OJ=a(sp),OK=[0,a("Enfant"),0],Ot=a(nu),Ov=a(pu),Ow=a(m_),Ox=a(D4),Oy=a(zD),Oz=a(p6),OA=a(DD),OB=a(op),OC=a(pI),Ou=[0,a(Ct),0],Ok=a(pj),Om=a(W),On=a(rP),Oo=a(oW),Op=a(Et),Oq=a(jH),Or=a(Cp),Os=a(zI),Ol=[0,a(Gs),0],Of=a("Compl\xc3\xa8te"),Oh=a("Partag\xc3\xa9e"),Oi=a("Z\xc3\xa9ro"),Og=[0,a("PriseEnCompte"),0],Ob=a(lt),Od=a(lh),Oe=a(CU),Oc=[0,a(Dx),0],N7=a(BI),N9=a(EF),N_=a(k7),N$=a(F2),Oa=a(zt),N8=[0,a("PriseEnCharge"),0],abi=a(_),aaU=a(nu),aaV=a(pu),aaW=a(xb),aaX=a(m_),aaY=a(pI),aaZ=a(FW),aa0=a(x6),aa1=a(p6),aa2=a(op),aa4=[7,0],aa5=[5,0],aa6=[4,0],aa7=[6,0],aa8=[8,0],aa9=[2,0],aa_=[3,0],aa$=[1,0],aba=[0,0],aa3=[0,[11,a(bi),[2,0,[11,a(Cl),0]]],a(xD)],aaD=a(wI),aaE=a(yU),aaF=a(oW),aaG=a(Fb),aaH=a(jH),aaI=a(W),aaJ=a(rr),aaK=a(pj),aaM=[0,0],aaN=[2,0],aaO=[1,0],aaP=[5,0],aaQ=[6,0],aaR=[3,0],aaS=[7,0],aaT=[4,0],aaL=[0,[11,a(bi),[2,0,[11,a(EG),0]]],a(Gt)],aaw=a(sX),aax=a(lt),aay=a(lh),aaA=[1,0],aaB=[0,0],aaC=[2,0],aaz=[0,[11,a(bi),[2,0,[11,a(yM),0]]],a(xh)],aal=a(k7),aam=a(r5),aan=a(rM),aao=a(sm),aap=a(rJ),aar=[4,0],aas=[3,0],aat=[0,0],aau=[1,0],aav=[2,0],aaq=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'PriseEnCharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")],aaj=[0,a(CM),a(pY),a(f7),a(Eb),a(Gp),a(wN),a(x8)],aak=[0,a(f7),a(wN),a(Gp),a(x8),a(pY),a(CM),a(Eb)],abq=a("AllocationsFamilialesLib"),bwd=[0,a(fB),fb,14,fb,25,[0,a("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"),0]],bv8=a(q),bv9=a(q),bwc=a(b3),bv_=[0,a(a8),[0,a(bz),[0,a(ag),0]]],bv$=[0,a(a8),[0,a(bz),0]],bwa=[0,a(a8),[0,a(bz),[0,a(ah),0]]],bwb=[0,a(a8),[0,a(bz),0]],bv4=[0,a(d),Bh,14,Bh,63,[0,a(bg),[0,a(e),0]]],bv0=[0,a(d),EY,14,EY,25,[0,a(bg),[0,a(e),0]]],bvU=[0,a(d),iO,5,iO,70,[0,a(bg),[0,a(e),0]]],bvQ=[0,a(d),j6,14,j6,58,[0,a(bg),[0,a(e),0]]],bvM=[0,a(d),gs,14,gs,54,[0,a(bg),[0,a(e),0]]],bvI=[0,a(d),iz,14,iz,51,[0,a(bg),[0,a(e),0]]],bvC=[0,a(d),go,14,go,59,[0,a(bg),[0,a(e),0]]],bvy=[0,a(d),hm,14,hm,38,[0,a(bg),[0,a(e),0]]],bvu=[0,a(d),i0,14,i0,34,[0,a(bg),[0,a(e),0]]],bvq=[0,a(d),iQ,14,iQ,31,[0,a(bg),[0,a(e),0]]],bvm=[0,a(d),DF,14,DF,48,[0,a(bg),[0,a(e),0]]],bvn=[0,a(d),nG,11,nG,45,[0,a(bg),[0,a(e),0]]],bvl=[0,a(d),nG,11,nG,45,[0,a(bg),[0,a(e),0]]],bvo=[0,a(cT),[0,a("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"),0]],bvr=[0,a(d),iQ,14,iQ,31,[0,a(bg),[0,a(e),0]]],bvs=[0,a(cT),[0,a("calculette.m\xc3\xa9nage"),0]],bvp=[0,a(d),iQ,14,iQ,31,[0,a(bg),[0,a(e),0]]],bvv=[0,a(d),i0,14,i0,34,[0,a(bg),[0,a(e),0]]],bvw=[0,a(cT),[0,a("calculette.demandeur"),0]],bvt=[0,a(d),i0,14,i0,34,[0,a(bg),[0,a(e),0]]],bvz=[0,a(d),hm,14,hm,38,[0,a(bg),[0,a(e),0]]],bvA=[0,a(cT),[0,a("calculette.date_courante"),0]],bvx=[0,a(d),hm,14,hm,38,[0,a(bg),[0,a(e),0]]],bvD=[0,a(d),go,14,go,59,[0,a(bg),[0,a(e),0]]],bvE=[0,a(cT),[0,a("calculette.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bvB=[0,a(d),go,14,go,59,[0,a(bg),[0,a(e),0]]],bvF=[0,a(cT),[0,a(EE),[0,a(a8),0]]],bvG=[0,a(cT),[0,a(EE),[0,a(a8),0]]],bvJ=[0,a(d),iz,14,iz,51,[0,a(bg),[0,a(e),0]]],bvK=[0,a(cT),[0,a("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"),0]],bvH=[0,a(d),iz,14,iz,51,[0,a(bg),[0,a(e),0]]],bvN=[0,a(d),gs,14,gs,54,[0,a(bg),[0,a(e),0]]],bvO=[0,a(cT),[0,a("calculette_sans_garde_altern\xc3\xa9e.demandeur"),0]],bvL=[0,a(d),gs,14,gs,54,[0,a(bg),[0,a(e),0]]],bvR=[0,a(d),j6,14,j6,58,[0,a(bg),[0,a(e),0]]],bvS=[0,a(cT),[0,a("calculette_sans_garde_altern\xc3\xa9e.date_courante"),0]],bvP=[0,a(d),j6,14,j6,58,[0,a(bg),[0,a(e),0]]],bvV=[0,a(d),iO,5,iO,70,[0,a(bg),[0,a(e),0]]],bvW=[0,a(cT),[0,a("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bvT=[0,a(d),iO,5,iO,70,[0,a(bg),[0,a(e),0]]],bvX=[0,a(cT),[0,a(xI),[0,a(a8),0]]],bvY=[0,a(cT),[0,a(xI),[0,a(a8),0]]],bv1=[0,a(d),p4,10,p4,21,[0,a(bg),[0,a(e),0]]],bvZ=[0,a(d),p4,10,p4,21,[0,a(bg),[0,a(e),0]]],bv2=[0,a(cT),[0,a(o_),0]],bv5=[0,a(d),iD,11,iD,60,[0,a(bg),[0,a(e),0]]],bv3=[0,a(d),iD,11,iD,60,[0,a(bg),[0,a(e),0]]],bv6=[0,a(cT),[0,a(lC),0]],bwe=[0,a(d),on,10,on,21,[0,a(bg),[0,a(e),0]]],bv7=[0,a(d),on,10,on,21,[0,a(bg),[0,a(e),0]]],bwf=[0,a(cT),[0,a("aide_finale"),0]],bvh=[0,a(aH),s1,14,s1,33,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bvg=a(q),bu_=[0,a(aD),[0,a(bz),[0,a(ag),0]]],bu$=[0,a(aD),[0,a(bz),0]],bva=[0,a(aD),[0,a(bz),[0,a(ah),0]]],bvb=[0,a(aD),[0,a(bz),0]],bvc=[0,a(aF),[0,a(bz),[0,a(ag),0]]],bvd=[0,a(aF),[0,a(bz),0]],bve=[0,a(aF),[0,a(bz),[0,a(ah),0]]],bvf=[0,a(aF),[0,a(bz),0]],bu6=[0,a(aH),AI,14,AI,36,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],buY=[0,a(aF),[0,a(bz),[0,a(ag),0]]],buZ=[0,a(aF),[0,a(bz),0]],bu0=[0,a(aF),[0,a(bz),[0,a(ah),0]]],bu1=[0,a(aF),[0,a(bz),0]],bu2=[0,a(aD),[0,a(bz),[0,a(ag),0]]],bu3=[0,a(aD),[0,a(bz),0]],bu4=[0,a(aD),[0,a(bz),[0,a(ah),0]]],bu5=[0,a(aD),[0,a(bz),0]],bu7=[0,a(d),ow,10,ow,32,[0,a(ax),[0,a(e),0]]],buX=[0,a(d),ow,10,ow,32,[0,a(ax),[0,a(e),0]]],buU=[0,a(aH),FY,14,FY,25,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],buQ=[0,a(d),E7,14,E7,63,[0,a(ax),[0,a(e),0]]],buK=[0,a(d),ko,14,ko,62,[0,a(ax),[0,a(e),0]]],buG=[0,a(d),jB,14,jB,53,[0,a(ax),[0,a(e),0]]],buC=[0,a(d),hu,5,hu,65,[0,a(ax),[0,a(e),0]]],buy=[0,a(d),gz,14,gz,68,[0,a(ax),[0,a(e),0]]],buu=[0,a(d),jR,14,jR,66,[0,a(ax),[0,a(e),0]]],buq=[0,a(aH),iy,14,iy,58,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bup=[0,0],bul=[0,a(d),gM,14,gM,64,[0,a(ax),[0,a(e),0]]],buf=[0,a(aH),kv,14,kv,50,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],buc=[2,0],bud=[1,0],bue=[2,0],bt_=[0,a(d),hW,14,hW,54,[0,a(ax),[0,a(e),0]]],bt6=[0,a(d),hJ,14,hJ,45,[0,a(ax),[0,a(e),0]]],bt2=[0,a(d),f2,14,f2,66,[0,a(ax),[0,a(e),0]]],btY=[0,a(d),hU,14,hU,60,[0,a(ax),[0,a(e),0]]],btU=[0,a(d),ig,14,ig,58,[0,a(ax),[0,a(e),0]]],btQ=[0,a(d),kk,14,kk,56,[0,a(ax),[0,a(e),0]]],btK=[0,a(d),ka,14,ka,67,[0,a(ax),[0,a(e),0]]],btG=[0,a(d),hI,14,hI,63,[0,a(ax),[0,a(e),0]]],btC=[0,a(d),i9,14,i9,60,[0,a(ax),[0,a(e),0]]],btw=[0,a(aH),i2,5,i2,74,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bts=[0,a(d),jN,14,jN,55,[0,a(ax),[0,a(e),0]]],bto=[0,a(d),gL,14,gL,52,[0,a(ax),[0,a(e),0]]],btk=[0,a(d),iU,14,iU,59,[0,a(ax),[0,a(e),0]]],btl=[0,a(d),iU,14,iU,59,[0,a(ax),[0,a(e),0]]],btm=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"),0]],btj=[0,a(d),iU,14,iU,59,[0,a(ax),[0,a(e),0]]],btp=[0,a(d),gL,14,gL,52,[0,a(ax),[0,a(e),0]]],btq=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"),0]],btn=[0,a(d),gL,14,gL,52,[0,a(ax),[0,a(e),0]]],btt=[0,a(d),jN,14,jN,55,[0,a(ax),[0,a(e),0]]],btu=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"),0]],btr=[0,a(d),jN,14,jN,55,[0,a(ax),[0,a(e),0]]],btx=[0,a(aH),i2,5,i2,74,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bty=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"),0]],btv=[0,a(aH),i2,5,i2,74,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],btz=[0,a(a8),[0,a(vT),[0,a(b5),0]]],btA=[0,a(a8),[0,a(vT),[0,a(b5),0]]],btD=[0,a(d),i9,14,i9,60,[0,a(ax),[0,a(e),0]]],btE=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"),0]],btB=[0,a(d),i9,14,i9,60,[0,a(ax),[0,a(e),0]]],btH=[0,a(d),hI,14,hI,63,[0,a(ax),[0,a(e),0]]],btI=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"),0]],btF=[0,a(d),hI,14,hI,63,[0,a(ax),[0,a(e),0]]],btL=[0,a(d),ka,14,ka,67,[0,a(ax),[0,a(e),0]]],btM=[0,a(a8),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],btJ=[0,a(d),ka,14,ka,67,[0,a(ax),[0,a(e),0]]],btN=[0,a(a8),[0,a(DM),[0,a(b7),0]]],btO=[0,a(a8),[0,a(DM),[0,a(b7),0]]],btR=[0,a(d),kk,14,kk,56,[0,a(ax),[0,a(e),0]]],btS=[0,a(a8),[0,a("calcul_allocation_logement.mode_occupation"),0]],btP=[0,a(d),kk,14,kk,56,[0,a(ax),[0,a(e),0]]],btV=[0,a(d),ig,14,ig,58,[0,a(ax),[0,a(e),0]]],btW=[0,a(a8),[0,a("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],btT=[0,a(d),ig,14,ig,58,[0,a(ax),[0,a(e),0]]],btZ=[0,a(d),hU,14,hU,60,[0,a(ax),[0,a(e),0]]],bt0=[0,a(a8),[0,a("calcul_allocation_logement.situation_familiale"),0]],btX=[0,a(d),hU,14,hU,60,[0,a(ax),[0,a(e),0]]],bt3=[0,a(d),f2,14,f2,66,[0,a(ax),[0,a(e),0]]],bt4=[0,a(a8),[0,a("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"),0]],bt1=[0,a(d),f2,14,f2,66,[0,a(ax),[0,a(e),0]]],bt7=[0,a(d),hJ,14,hJ,45,[0,a(ax),[0,a(e),0]]],bt8=[0,a(a8),[0,a("calcul_allocation_logement.zone"),0]],bt5=[0,a(d),hJ,14,hJ,45,[0,a(ax),[0,a(e),0]]],bt$=[0,a(d),hW,14,hW,54,[0,a(ax),[0,a(e),0]]],bua=[0,a(a8),[0,a("calcul_allocation_logement.date_courante"),0]],bt9=[0,a(d),hW,14,hW,54,[0,a(ax),[0,a(e),0]]],bug=[0,a(aH),kv,14,kv,50,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],buh=[0,a(a8),[0,a("calcul_allocation_logement.type_aide"),0]],bub=[0,a(aH),kv,14,kv,50,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bui=[0,a(a8),[0,a(EX),[0,a(aD),0]]],buj=[0,a(a8),[0,a(EX),[0,a(aD),0]]],bum=[0,a(d),gM,14,gM,64,[0,a(ax),[0,a(e),0]]],bun=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"),0]],buk=[0,a(d),gM,14,gM,64,[0,a(ax),[0,a(e),0]]],bur=[0,a(aH),iy,14,iy,58,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bus=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"),0]],buo=[0,a(aH),iy,14,iy,58,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],buv=[0,a(d),jR,14,jR,66,[0,a(ax),[0,a(e),0]]],buw=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],but=[0,a(d),jR,14,jR,66,[0,a(ax),[0,a(e),0]]],buz=[0,a(d),gz,14,gz,68,[0,a(ax),[0,a(e),0]]],buA=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"),0]],bux=[0,a(d),gz,14,gz,68,[0,a(ax),[0,a(e),0]]],buD=[0,a(d),hu,5,hu,65,[0,a(ax),[0,a(e),0]]],buE=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"),0]],buB=[0,a(d),hu,5,hu,65,[0,a(ax),[0,a(e),0]]],buH=[0,a(d),jB,14,jB,53,[0,a(ax),[0,a(e),0]]],buI=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.zone"),0]],buF=[0,a(d),jB,14,jB,53,[0,a(ax),[0,a(e),0]]],buL=[0,a(d),ko,14,ko,62,[0,a(ax),[0,a(e),0]]],buM=[0,a(a8),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],buJ=[0,a(d),ko,14,ko,62,[0,a(ax),[0,a(e),0]]],buN=[0,a(a8),[0,a(z8),[0,a(aF),0]]],buO=[0,a(a8),[0,a(z8),[0,a(aF),0]]],buR=[0,a(d),oq,10,oq,59,[0,a(ax),[0,a(e),0]]],buP=[0,a(d),oq,10,oq,59,[0,a(ax),[0,a(e),0]]],buS=[0,a(a8),[0,a(lC),0]],buV=[0,a(d),n$,10,n$,21,[0,a(ax),[0,a(e),0]]],buT=[0,a(d),n$,10,n$,21,[0,a(ax),[0,a(e),0]]],buW=[0,a(a8),[0,a(o_),0]],bu8=[0,a(a8),[0,a(bz),0]],bvi=[0,a(d),k5,10,k5,29,[0,a(ax),[0,a(e),0]]],bu9=[0,a(d),k5,10,k5,29,[0,a(ax),[0,a(e),0]]],bvj=[0,a(a8),[0,a(fo),0]],btg=[0,a(r),Bg,14,Bg,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],btc=[0,a(r),AG,14,AG,36,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bs2=[0,a(bS),[0,a(bz),[0,a(ag),0]]],bs3=[0,a(bS),[0,a(bz),0]],bs4=[0,a(bS),[0,a(bz),[0,a(ah),0]]],bs5=[0,a(bS),[0,a(bz),0]],bs6=[0,a(Y),[0,a(bx),[0,a(ag),0]]],bs7=[0,a(Y),[0,a(bx),0]],bs8=[0,a(Y),[0,a(bx),[0,a(ah),0]]],bs9=[0,a(Y),[0,a(bx),0]],bs_=[0,a(aq),[0,a(bx),[0,a(ag),0]]],bs$=[0,a(aq),[0,a(bx),0]],bta=[0,a(aq),[0,a(bx),[0,a(ah),0]]],btb=[0,a(aq),[0,a(bx),0]],btd=[0,a(d),nF,10,nF,32,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bs1=[0,a(d),nF,10,nF,32,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bsW=[0,a(r),iI,14,iI,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsT=[1,0],bsU=[1,0],bsV=[1,0],bsP=[0,a(r),hr,14,hr,44,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsL=[0,a(r),hF,14,hF,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsE=a(q),bsF=a(q),bsG=a(q),bsH=a(q),bsI=a(q),bsJ=a(q),bsK=a(q),bsA=[0,a(r),hN,14,hN,32,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsw=[0,a(r),hK,14,hK,31,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bss=[0,a(r),jf,5,jf,69,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bso=[0,a(r),jL,14,jL,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsk=[0,a(r),je,14,je,26,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsg=[0,a(r),ir,14,ir,52,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsc=[0,a(r),iF,14,iF,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br_=[0,a(r),h$,14,h$,35,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br6=[0,a(r),gO,14,gO,67,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br2=[0,a(r),kl,14,kl,49,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brY=[0,a(r),h4,14,h4,37,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brV=a(q),brW=a(q),brX=a(q),brP=[0,a(r),ji,14,ji,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brL=[3,0],brM=[3,0],brN=[3,0],brO=[3,0],brH=[0,a(r),hG,14,hG,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brD=[0,a(r),hL,14,hL,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brz=[0,a(r),hg,14,hg,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brv=[0,a(r),kc,14,kc,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brr=[0,a(r),gF,14,gF,56,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brn=[0,a(r),hi,14,hi,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brj=a(q),brk=a(q),brl=a(q),brm=a(q),brf=[0,a(r),hR,14,hR,50,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brb=[0,a(r),jo,14,jo,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bq9=[3,0],bq_=[3,0],bq$=[3,0],bra=[3,0],bq3=[0,a(r),jP,14,jP,45,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqZ=[0,a(r),kg,14,kg,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqW=a(q),bqX=a(q),bqY=a(q),bqS=[0,a(r),j2,14,j2,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqO=[0,a(r),iN,14,iN,73,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqK=[0,a(r),h5,14,h5,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqH=[3,0],bqI=[3,0],bqJ=[3,0],bqD=[0,a(r),hS,14,hS,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqz=[0,a(r),jQ,14,jQ,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqv=[0,a(r),hk,14,hk,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqs=a(q),bqt=a(q),bqu=a(q),bqo=[0,a(r),iJ,14,iJ,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqk=[0,a(r),hY,14,hY,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqg=[0,a(r),h_,14,h_,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqc=[0,a(r),h1,14,h1,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bp_=[0,a(r),jK,14,jK,61,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bp6=[0,a(S),88,14,88,44,[0,a(cL),[0,a(bV),[0,a(O),0]]]],bp0=[0,0],bp1=[1,0],bp2=[1,0],bp3=[1,0],bp4=[0,0],bp5=[1,0],bpW=[0,a(r),Ag,14,Ag,31,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bpT=a(c5),bpU=a(CF),bpV=a(rT),bpP=[0,a(r),v4,14,v4,34,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bpK=[0,0],bpL=[2,0],bpM=[1,0],bpN=[0,0],bpO=[1,0],bpQ=[0,a(d),m8,11,m8,31,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bpJ=[0,a(d),m8,11,m8,31,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bpR=[0,a(aD),[0,a(yw),0]],bpX=[0,a(d),n3,10,n3,22,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bpS=[0,a(d),n3,10,n3,22,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bpY=[0,a(aD),[0,a(x4),0]],bp7=[0,a(d),nO,11,nO,41,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bpZ=[0,a(d),nO,11,nO,41,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bp8=[0,a(aD),[0,a(zU),0]],bp$=[0,a(r),jK,14,jK,61,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqa=[0,a(aD),[0,a("accession_propri\xc3\xa9t\xc3\xa9.ressources_m\xc3\xa9nage_arrondies_base"),0]],bp9=[0,a(r),jK,14,jK,61,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqd=[0,a(r),h1,14,h1,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqe=[0,a(aD),[0,a(D_),0]],bqb=[0,a(r),h1,14,h1,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqh=[0,a(r),h_,14,h_,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqi=[0,a(aD),[0,a(By),0]],bqf=[0,a(r),h_,14,h_,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bql=[0,a(r),hY,14,hY,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqm=[0,a(aD),[0,a(Df),0]],bqj=[0,a(r),hY,14,hY,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqp=[0,a(r),iJ,14,iJ,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqq=[0,a(aD),[0,a(xe),0]],bqn=[0,a(r),iJ,14,iJ,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqw=[0,a(r),hk,14,hk,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqx=[0,a(aD),[0,a(E2),0]],bqr=[0,a(r),hk,14,hk,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqA=[0,a(r),jQ,14,jQ,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqB=[0,a(aD),[0,a(FM),0]],bqy=[0,a(r),jQ,14,jQ,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqE=[0,a(r),hS,14,hS,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqF=[0,a(aD),[0,a(F1),0]],bqC=[0,a(r),hS,14,hS,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqL=[0,a(r),h5,14,h5,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqM=[0,a(aD),[0,a(D1),0]],bqG=[0,a(r),h5,14,h5,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqP=[0,a(r),iN,14,iN,73,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqQ=[0,a(aD),[0,a(Ep),0]],bqN=[0,a(r),iN,14,iN,73,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqT=[0,a(r),j2,14,j2,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bqU=[0,a(aD),[0,a(Cv),0]],bqR=[0,a(r),j2,14,j2,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bq0=[0,a(r),kg,14,kg,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bq1=[0,a(aD),[0,a("accession_propri\xc3\xa9t\xc3\xa9.charges_mensuelles_pr\xc3\xaat"),0]],bqV=[0,a(r),kg,14,kg,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bq4=[0,a(r),jP,14,jP,45,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bq5=[0,a(aD),[0,a(Gl),0]],bq2=[0,a(r),jP,14,jP,45,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bq6=[0,a(aD),[0,a(nN),[0,a(Y),0]]],bq7=[0,a(aD),[0,a(nN),[0,a(Y),0]]],brc=[0,a(r),jo,14,jo,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brd=[0,a(aD),[0,a(DV),0]],bq8=[0,a(r),jo,14,jo,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brg=[0,a(r),hR,14,hR,50,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brh=[0,a(aD),[0,a(En),0]],bre=[0,a(r),hR,14,hR,50,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bro=[0,a(r),hi,14,hi,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brp=[0,a(aD),[0,a(Cb),0]],bri=[0,a(r),hi,14,hi,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brs=[0,a(r),gF,14,gF,56,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brt=[0,a(aD),[0,a(Dk),0]],brq=[0,a(r),gF,14,gF,56,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brw=[0,a(r),kc,14,kc,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brx=[0,a(aD),[0,a(xN),0]],bru=[0,a(r),kc,14,kc,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brA=[0,a(r),hg,14,hg,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brB=[0,a(aD),[0,a(v3),0]],bry=[0,a(r),hg,14,hg,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brE=[0,a(r),hL,14,hL,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brF=[0,a(aD),[0,a(w1),0]],brC=[0,a(r),hL,14,hL,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brI=[0,a(r),hG,14,hG,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brJ=[0,a(aD),[0,a(vQ),0]],brG=[0,a(r),hG,14,hG,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brQ=[0,a(r),ji,14,ji,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brR=[0,a(aD),[0,a("logement_foyer.cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"),0]],brK=[0,a(r),ji,14,ji,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],brS=[0,a(aD),[0,a(p7),[0,a(aq),0]]],brT=[0,a(aD),[0,a(p7),[0,a(aq),0]]],brZ=[0,a(r),h4,14,h4,37,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br0=[0,a(aD),[0,a("locatif.loyer_principal"),0]],brU=[0,a(r),h4,14,h4,37,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br3=[0,a(r),kl,14,kl,49,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br4=[0,a(aD),[0,a(B9),0]],br1=[0,a(r),kl,14,kl,49,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br7=[0,a(r),gO,14,gO,67,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br8=[0,a(aD),[0,a(Bi),0]],br5=[0,a(r),gO,14,gO,67,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],br$=[0,a(r),h$,14,h$,35,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsa=[0,a(aD),[0,a(Bs),0]],br9=[0,a(r),h$,14,h$,35,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsd=[0,a(r),iF,14,iF,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bse=[0,a(aD),[0,a(xo),0]],bsb=[0,a(r),iF,14,iF,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsh=[0,a(r),ir,14,ir,52,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsi=[0,a(aD),[0,a(wf),0]],bsf=[0,a(r),ir,14,ir,52,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsl=[0,a(r),je,14,je,26,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsm=[0,a(aD),[0,a(yT),0]],bsj=[0,a(r),je,14,je,26,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsp=[0,a(r),jL,14,jL,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsq=[0,a(aD),[0,a(Bz),0]],bsn=[0,a(r),jL,14,jL,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bst=[0,a(r),jf,5,jf,69,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsu=[0,a(aD),[0,a(EM),0]],bsr=[0,a(r),jf,5,jf,69,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsx=[0,a(r),hK,14,hK,31,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsy=[0,a(aD),[0,a(E5),0]],bsv=[0,a(r),hK,14,hK,31,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsB=[0,a(r),hN,14,hN,32,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsC=[0,a(aD),[0,a(vZ),0]],bsz=[0,a(r),hN,14,hN,32,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsM=[0,a(r),hF,14,hF,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsN=[0,a(aD),[0,a(xG),0]],bsD=[0,a(r),hF,14,hF,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsQ=[0,a(r),hr,14,hr,44,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsR=[0,a(aD),[0,a(zA),0]],bsO=[0,a(r),hr,14,hr,44,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsX=[0,a(r),iI,14,iI,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsY=[0,a(aD),[0,a("locatif.changement_logement_d842_4"),0]],bsS=[0,a(r),iI,14,iI,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bsZ=[0,a(aD),[0,a(n5),[0,a(bS),0]]],bs0=[0,a(aD),[0,a(n5),[0,a(bS),0]]],bte=[0,a(aD),[0,a(bz),0]],bth=[0,a(d),mS,10,mS,29,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],btf=[0,a(d),mS,10,mS,29,[0,a(ck),[0,a(Q),[0,a(B),[0,a(e),0]]]]],bti=[0,a(aD),[0,a(fo),0]],bpE=[0,a(aH),iD,5,iD,73,[0,a("Article L841-3"),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpD=[2,0],bpF=[0,a(d),eO,10,eO,16,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpB=[0,a(aH),1134,5,go,28,[0,a("Article L841-4"),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpA=[0,0],bpC=[0,a(d),eO,10,eO,16,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpG=[0,a(d),eO,10,eO,16,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpz=[0,a(aH),FE,14,FE,25,[0,a(dv),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpv=[0,0],bpw=[0,0],bpx=[1,0],bpy=[2,0],bpl=a(q),bpm=[0,a(aH),999,5,1003,29,[0,a(iX),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpn=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpg=a(z),bpe=a(z),bpf=a(q),bph=[0,a(aH),976,5,987,12,[0,a(iX),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpi=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],bo_=[0,a(aW),[0,a(ff),[0,a(ag),0]]],bo$=[0,a(aW),[0,a(ff),0]],bpa=[0,a(aW),[0,a(ff),[0,a(ah),0]]],bpb=[0,a(aW),[0,a(ff),0]],bpc=a(z),bo8=a(z),bo9=a(q),bpd=[0,a(aH),gP,5,960,72,[0,a(iX),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpj=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpk=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpo=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],bo0=[2,0],bo6=[0,0],bo1=[0,a(cs),[0,a(dg),[0,a(ag),0]]],bo2=[0,a(cs),[0,a(dg),0]],bo3=[0,a(cs),[0,a(dg),[0,a(ah),0]]],bo4=[0,a(cs),[0,a(dg),0]],bo5=a(z),boY=a(q),boZ=a(q),bo7=[0,a(aH),921,5,lI,29,[0,a(iX),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpp=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],boQ=[2,0],boW=[0,0],boR=[0,a(cs),[0,a(dg),[0,a(ag),0]]],boS=[0,a(cs),[0,a(dg),0]],boT=[0,a(cs),[0,a(dg),[0,a(ah),0]]],boU=[0,a(cs),[0,a(dg),0]],boV=a(z),boO=a(z),boP=a(q),boX=[0,a(aH),889,5,910,11,[0,a(iX),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpq=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],boJ=[0,0],boK=[1,0],boL=[3,0],boM=[4,0],boN=[0,a(aH),870,5,874,52,[0,a(iX),[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bpr=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],boI=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],boE=[0,a(aH),yg,14,yg,25,[0,a(bk),[0,a(b8),[0,a(m),[0,a(ab),[0,a(l),0]]]]]],boD=[0,0],boC=[2,0],boy=[0,a(d),hw,14,hw,56,[0,a(aM),[0,a(j),[0,a(e),0]]]],bou=[0,a(d),CI,14,CI,63,[0,a(aM),[0,a(j),[0,a(e),0]]]],boo=[0,a(r),o0,9,o0,55,[0,a(ph),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bop=[0,a(r),o0,9,o0,55,[0,a(ph),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],boq=[0,a(b5),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"),0]],bol=[0,a(r),n0,9,n0,68,[0,a(ph),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bom=[0,a(r),n0,9,n0,68,[0,a(ph),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bon=[0,a(b5),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"),0]],boi=[0,a(d),gr,14,gr,47,[0,a(aM),[0,a(j),[0,a(e),0]]]],boe=[0,a(d),jW,14,jW,43,[0,a(aM),[0,a(j),[0,a(e),0]]]],boa=[0,a(d),jF,14,jF,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bn3=[0,a(r),4556,5,4561,28,[0,a(pF),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bn4=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bn2=[0,a(r),4539,5,4544,28,[0,a(pF),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bn5=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bn1=[0,a(r),4522,5,4529,28,[0,a(pF),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bn6=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bn7=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bn0=[0,a(r),4492,5,4494,28,[0,a(pF),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bn8=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnZ=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnT=[0,a(d),hy,14,hy,46,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnS=[6,0],bnO=[0,a(d),ks,14,ks,56,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnN=[1,0],bnJ=[0,a(d),iC,14,iC,50,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnF=[0,a(r),yi,14,yi,28,[0,a("Article D841-1"),[0,a("Chapitre 1 : Champ d'application"),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]],bnG=[0,a(d),oM,11,oM,25,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnE=[0,a(d),oM,11,oM,25,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnH=[0,a(b5),[0,a("dur\xc3\xa9e_l841_1_3"),0]],bnK=[0,a(d),iC,14,iC,50,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnL=[0,a(b5),[0,a(xZ),0]],bnI=[0,a(d),iC,14,iC,50,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnP=[0,a(d),ks,14,ks,56,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnQ=[0,a(b5),[0,a(BZ),0]],bnM=[0,a(d),ks,14,ks,56,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnU=[0,a(d),hy,14,hy,46,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnV=[0,a(b5),[0,a(zJ),0]],bnR=[0,a(d),hy,14,hy,46,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnW=[0,a(b5),[0,a(pL),[0,a(cs),0]]],bnX=[0,a(b5),[0,a(pL),[0,a(cs),0]]],bn9=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bnY=[0,a(d),cX,11,cX,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bn_=[0,a(b5),[0,a("condition_accession_propri\xc3\xa9t\xc3\xa9"),0]],bob=[0,a(d),jF,14,jF,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],boc=[0,a(b5),[0,a(ww),0]],bn$=[0,a(d),jF,14,jF,40,[0,a(aM),[0,a(j),[0,a(e),0]]]],bof=[0,a(d),jW,14,jW,43,[0,a(aM),[0,a(j),[0,a(e),0]]]],bog=[0,a(b5),[0,a(BX),0]],bod=[0,a(d),jW,14,jW,43,[0,a(aM),[0,a(j),[0,a(e),0]]]],boj=[0,a(d),gr,14,gr,47,[0,a(aM),[0,a(j),[0,a(e),0]]]],bok=[0,a(b5),[0,a(GH),0]],boh=[0,a(d),gr,14,gr,47,[0,a(aM),[0,a(j),[0,a(e),0]]]],bor=[0,a(b5),[0,a(pC),[0,a(aW),0]]],bos=[0,a(b5),[0,a(pC),[0,a(aW),0]]],bov=[0,a(d),fV,10,fV,59,[0,a(aM),[0,a(j),[0,a(e),0]]]],bot=[0,a(d),fV,10,fV,59,[0,a(aM),[0,a(j),[0,a(e),0]]]],bow=[0,a(b5),[0,a(lC),0]],boz=[0,a(d),pO,10,pO,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],box=[0,a(d),pO,10,pO,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],boA=[0,a(b5),[0,a(sZ),0]],boF=[0,a(d),n9,10,n9,31,[0,a(aM),[0,a(j),[0,a(e),0]]]],boB=[0,a(d),n9,10,n9,31,[0,a(aM),[0,a(j),[0,a(e),0]]]],boG=[0,a(b5),[0,a("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"),0]],bps=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],boH=[0,a(d),b2,11,b2,52,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpt=[0,a(b5),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"),0]],bpH=[0,a(d),eO,10,eO,16,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpu=[0,a(d),eO,10,eO,16,[0,a(aM),[0,a(j),[0,a(e),0]]]],bpI=[0,a(b5),[0,a("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]],bnA=[0,a(aH),gB,5,593,36,[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]],bnB=[0,a(d),fX,10,fX,21,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnz=[0,a(d),fX,10,fX,21,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnv=[0,a(d),od,14,od,56,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnr=[0,a(d),Bo,14,Bo,63,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnh=[0,a(r),3885,5,3890,30,[0,a("Article R832-21"),[0,a("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],bni=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnd=[0,a(b7),[0,a(lj),[0,a(ag),0]]],bne=[0,a(b7),[0,a(lj),0]],bnf=[0,a(b7),[0,a(lj),[0,a(ah),0]]],bng=[0,a(b7),[0,a(lj),0]],bnc=[0,a(aH),lQ,5,704,30,[0,a(nb),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bnj=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnb=[0,a(aH),$,5,lq,30,[0,a(nb),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bnk=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bna=[0,a(aH),lc,5,650,30,[0,a(nb),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bnl=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm8=[0,a(b7),[0,a(k4),[0,a(ag),0]]],bm9=[0,a(b7),[0,a(k4),0]],bm_=[0,a(b7),[0,a(k4),[0,a(ah),0]]],bm$=[0,a(b7),[0,a(k4),0]],bm7=[0,a(aH),lf,5,623,30,[0,a(nb),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bnm=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnn=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm6=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm0=[0,a(d),i3,14,i3,47,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmW=[0,a(d),gp,14,gp,43,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmS=[0,a(d),h2,14,h2,40,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmL=[0,a(aH),740,5,753,30,[0,a(rA),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bmM=[0,a(d),dA,11,dA,34,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmK=[0,a(aH),721,5,726,30,[0,a(rA),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bmN=[0,a(d),dA,11,dA,34,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmJ=[0,a(aH),hz,31,hz,54,[0,a(rA),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bmO=[0,a(d),dA,11,dA,34,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmI=[0,a(d),dA,11,dA,34,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmE=[0,a(d),fR,11,fR,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmF=[0,a(d),fR,11,fR,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmD=[0,a(d),fR,11,fR,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmx=[0,a(r),3213,5,3216,46,[0,a("Article R832-7"),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bmy=[0,a(d),dh,11,dh,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmw=[0,a(r),3178,5,3180,47,[0,a("Article R832-5"),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bmz=[0,a(d),dh,11,dh,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmA=[0,a(d),dh,11,dh,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmv=[0,a(d),dh,11,dh,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmB=[0,a(d),dh,11,dh,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmu=[0,a(d),dh,11,dh,41,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmC=[0,a(b7),[0,a(k4),0]],bmG=[0,a(b7),[0,a(lj),0]],bmP=[0,a(d),dA,11,dA,34,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmH=[0,a(d),dA,11,dA,34,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmQ=[0,a(b7),[0,a("condition_logement_pr\xc3\xaat"),0]],bmT=[0,a(d),h2,14,h2,40,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmU=[0,a(b7),[0,a(ww),0]],bmR=[0,a(d),h2,14,h2,40,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmX=[0,a(d),gp,14,gp,43,[0,a(a1),[0,a(j),[0,a(e),0]]]],bmY=[0,a(b7),[0,a(BX),0]],bmV=[0,a(d),gp,14,gp,43,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm1=[0,a(d),i3,14,i3,47,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm2=[0,a(b7),[0,a(GH),0]],bmZ=[0,a(d),i3,14,i3,47,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm3=[0,a(b7),[0,a(pC),[0,a(aW),0]]],bm4=[0,a(b7),[0,a(pC),[0,a(aW),0]]],bno=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bm5=[0,a(d),cq,11,cq,38,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnp=[0,a(b7),[0,a("condition_logement_bailleur"),0]],bns=[0,a(d),o9,10,o9,59,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnq=[0,a(d),o9,10,o9,59,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnt=[0,a(b7),[0,a(lC),0]],bnw=[0,a(d),hs,10,hs,52,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnu=[0,a(d),hs,10,hs,52,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnx=[0,a(b7),[0,a(sZ),0]],bnC=[0,a(d),fX,10,fX,21,[0,a(a1),[0,a(j),[0,a(e),0]]]],bny=[0,a(d),fX,10,fX,21,[0,a(a1),[0,a(j),[0,a(e),0]]]],bnD=[0,a(b7),[0,a(o_),0]],bmr=[0,a(r),Cr,14,Cr,40,[0,a("Article D823-22"),[0,a(m7),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bmm=[0,a(aH),d7,5,566,43,[0,a("Article L823-8"),[0,a(D),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],bmn=[0,a(d),f5,11,f5,31,[0,a(bt),[0,a(j),[0,a(e),0]]]],bml=[0,a(d),f5,11,f5,31,[0,a(bt),[0,a(j),[0,a(e),0]]]],bmh=[0,a(S),yL,14,yL,29,[0,a("Article 45"),[0,a("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"),[0,a(O),0]]]],bme=a(z),bma=a(z),bl_=a(aa),bl$=a(q),bmb=a(ru),bmc=a(aa),bmd=a(q),bmg=a(q),bmf=a("2.4"),bl5=[0,a(r),2261,6,2271,77,[0,a(rI),[0,a(m7),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bl6=[0,a(d),eu,11,eu,41,[0,a(bt),[0,a(j),[0,a(e),0]]]],bl4=[0,a(d),eu,11,eu,41,[0,a(bt),[0,a(j),[0,a(e),0]]]],blY=[0,a(d),jt,14,jt,43,[0,a(bt),[0,a(j),[0,a(e),0]]]],blU=[0,a(d),jA,14,jA,39,[0,a(bt),[0,a(j),[0,a(e),0]]]],blQ=[0,a(d),fN,14,fN,36,[0,a(bt),[0,a(j),[0,a(e),0]]]],blK=[0,a(d),fQ,14,fQ,65,[0,a(bt),[0,a(j),[0,a(e),0]]]],blE=a(z),blC=a(aa),blD=a(q),blF=[0,a(r),2252,5,2257,77,[0,a(rI),[0,a(m7),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],blG=[0,a(d),fU,11,fU,32,[0,a(bt),[0,a(j),[0,a(e),0]]]],blB=[0,a(d),fU,11,fU,32,[0,a(bt),[0,a(j),[0,a(e),0]]]],blx=[0,a(r),AS,14,AS,47,[0,a(rI),[0,a(m7),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bly=[0,a(d),oP,11,oP,44,[0,a(bt),[0,a(j),[0,a(e),0]]]],blw=[0,a(d),oP,11,oP,44,[0,a(bt),[0,a(j),[0,a(e),0]]]],blz=[0,a(di),[0,a("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"),0]],blH=[0,a(d),fU,11,fU,32,[0,a(bt),[0,a(j),[0,a(e),0]]]],blA=[0,a(d),fU,11,fU,32,[0,a(bt),[0,a(j),[0,a(e),0]]]],blI=[0,a(di),[0,a("condition_rang_enfant"),0]],blL=[0,a(d),fQ,14,fQ,65,[0,a(bt),[0,a(j),[0,a(e),0]]]],blM=[0,a(di),[0,a(Ey),0]],blJ=[0,a(d),fQ,14,fQ,65,[0,a(bt),[0,a(j),[0,a(e),0]]]],blN=[0,a(di),[0,a(nR),[0,a(f4),0]]],blO=[0,a(di),[0,a(nR),[0,a(f4),0]]],blR=[0,a(d),fN,14,fN,36,[0,a(bt),[0,a(j),[0,a(e),0]]]],blS=[0,a(di),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"),0]],blP=[0,a(d),fN,14,fN,36,[0,a(bt),[0,a(j),[0,a(e),0]]]],blV=[0,a(d),jA,14,jA,39,[0,a(bt),[0,a(j),[0,a(e),0]]]],blW=[0,a(di),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]],blT=[0,a(d),jA,14,jA,39,[0,a(bt),[0,a(j),[0,a(e),0]]]],blZ=[0,a(d),jt,14,jt,43,[0,a(bt),[0,a(j),[0,a(e),0]]]],bl0=[0,a(di),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"),0]],blX=[0,a(d),jt,14,jt,43,[0,a(bt),[0,a(j),[0,a(e),0]]]],bl1=[0,a(di),[0,a(BK),[0,a(aW),0]]],bl2=[0,a(di),[0,a(BK),[0,a(aW),0]]],bl7=[0,a(d),eu,11,eu,41,[0,a(bt),[0,a(j),[0,a(e),0]]]],bl3=[0,a(d),eu,11,eu,41,[0,a(bt),[0,a(j),[0,a(e),0]]]],bl8=[0,a(di),[0,a("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"),0]],bmi=[0,a(d),nI,11,nI,26,[0,a(bt),[0,a(j),[0,a(e),0]]]],bl9=[0,a(d),nI,11,nI,26,[0,a(bt),[0,a(j),[0,a(e),0]]]],bmj=[0,a(di),[0,a("plafond_d823_22"),0]],bmo=[0,a(d),f5,11,f5,31,[0,a(bt),[0,a(j),[0,a(e),0]]]],bmk=[0,a(d),f5,11,f5,31,[0,a(bt),[0,a(j),[0,a(e),0]]]],bmp=[0,a(di),[0,a(BO),0]],bms=[0,a(d),kp,10,kp,36,[0,a(bt),[0,a(j),[0,a(e),0]]]],bmq=[0,a(d),kp,10,kp,36,[0,a(bt),[0,a(j),[0,a(e),0]]]],bmt=[0,a(di),[0,a("montant_prime_d\xc3\xa9m\xc3\xa9nagement"),0]],bls=[0,a(r),Ah,14,Ah,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],blo=[0,a(r),z6,14,z6,36,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],blc=[0,a(aG),[0,a(bx),[0,a(ag),0]]],bld=[0,a(aG),[0,a(bx),0]],ble=[0,a(aG),[0,a(bx),[0,a(ah),0]]],blf=[0,a(aG),[0,a(bx),0]],blg=[0,a(an),[0,a(bx),[0,a(ag),0]]],blh=[0,a(an),[0,a(bx),0]],bli=[0,a(an),[0,a(bx),[0,a(ah),0]]],blj=[0,a(an),[0,a(bx),0]],blk=[0,a(aw),[0,a(bx),[0,a(ag),0]]],bll=[0,a(aw),[0,a(bx),0]],blm=[0,a(aw),[0,a(bx),[0,a(ah),0]]],bln=[0,a(aw),[0,a(bx),0]],blp=[0,a(d),nU,10,nU,32,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],blb=[0,a(d),nU,10,nU,32,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],bk8=[0,a(r),hT,14,hT,44,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bk4=[0,a(r),ku,14,ku,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkX=a(q),bkY=a(q),bkZ=a(q),bk0=a(q),bk1=a(q),bk2=a(q),bk3=a(q),bkT=[0,a(r),kj,14,kj,32,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkP=[0,a(r),ia,14,ia,31,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkL=[0,a(r),gQ,5,gQ,69,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkH=[0,a(r),hM,14,hM,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkD=[0,a(r),gn,14,gn,26,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkz=[0,a(r),jj,14,jj,52,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkv=[0,a(r),hZ,14,hZ,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkr=[0,a(r),jc,14,jc,35,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkn=[0,a(r),ii,14,ii,67,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkj=[0,a(r),jv,14,jv,49,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkf=[0,a(r),ih,14,ih,37,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkc=a(q),bkd=a(q),bke=a(q),bj8=[0,a(r),ie,14,ie,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bj4=a(q),bj5=a(q),bj6=a(q),bj7=a(q),bj0=[0,a(r),jz,14,jz,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjW=[0,a(r),js,14,js,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjS=[0,a(r),jd,14,jd,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjO=[0,a(r),j7,14,j7,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjK=[0,a(r),jJ,14,jJ,56,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjG=[0,a(r),gC,14,gC,50,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjC=[0,a(r),iR,14,iR,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjy=[3,0],bjz=[3,0],bjA=[3,0],bjB=[3,0],bjs=[0,a(r),j_,14,j_,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjo=[0,a(r),j3,14,j3,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjl=[0,0],bjm=[0,0],bjn=[0,0],bjh=[0,a(r),jZ,14,jZ,43,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bje=[0,0],bjf=[0,0],bjg=[0,0],bja=[0,a(r),hD,14,hD,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi8=[0,a(r),hH,14,hH,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi4=[0,a(r),io,14,io,45,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi0=[0,a(r),kb,14,kb,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biW=[0,a(r),jn,14,jn,73,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biS=[0,a(r),gU,14,gU,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biO=[0,a(r),hq,14,hq,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biL=[2,0],biM=[2,0],biN=[2,0],biH=[0,a(r),i4,14,i4,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biD=[0,a(r),jG,14,jG,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biz=[0,a(r),iW,14,iW,61,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biv=[0,a(r),iv,14,iv,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bis=a(q),bit=a(q),biu=a(q),bio=[0,a(S),78,14,78,44,[0,a(cL),[0,a(bV),[0,a(O),0]]]],bii=[0,0],bij=[1,0],bik=[1,0],bil=[1,0],bim=[0,0],bin=[1,0],bie=[0,a(r),AB,14,AB,31,[0,a(sI),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],bib=a(c5),bic=a(CF),bid=a(rT),bh9=[0,a(r),Fh,14,Fh,34,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bh4=[0,0],bh5=[2,0],bh6=[1,0],bh7=[0,0],bh8=[1,0],bh_=[0,a(d),o8,11,o8,31,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],bh3=[0,a(d),o8,11,o8,31,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],bh$=[0,a(aF),[0,a(yw),0]],bif=[0,a(d),oF,10,oF,22,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],bia=[0,a(d),oF,10,oF,22,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],big=[0,a(aF),[0,a(x4),0]],bip=[0,a(d),n1,11,n1,41,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],bih=[0,a(d),n1,11,n1,41,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],biq=[0,a(aF),[0,a(zU),0]],biw=[0,a(r),iv,14,iv,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bix=[0,a(aF),[0,a(E2),0]],bir=[0,a(r),iv,14,iv,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biA=[0,a(r),iW,14,iW,61,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biB=[0,a(aF),[0,a("accession_propri\xc3\xa9t\xc3\xa9.ressources_m\xc3\xa9nage_arrondies"),0]],biy=[0,a(r),iW,14,iW,61,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biE=[0,a(r),jG,14,jG,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biF=[0,a(aF),[0,a(D_),0]],biC=[0,a(r),jG,14,jG,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biI=[0,a(r),i4,14,i4,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biJ=[0,a(aF),[0,a(By),0]],biG=[0,a(r),i4,14,i4,64,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biP=[0,a(r),hq,14,hq,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biQ=[0,a(aF),[0,a(D1),0]],biK=[0,a(r),hq,14,hq,55,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biT=[0,a(r),gU,14,gU,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biU=[0,a(aF),[0,a(F1),0]],biR=[0,a(r),gU,14,gU,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biX=[0,a(r),jn,14,jn,73,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],biY=[0,a(aF),[0,a(Ep),0]],biV=[0,a(r),jn,14,jn,73,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi1=[0,a(r),kb,14,kb,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi2=[0,a(aF),[0,a(Cv),0]],biZ=[0,a(r),kb,14,kb,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi5=[0,a(r),io,14,io,45,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi6=[0,a(aF),[0,a(Gl),0]],bi3=[0,a(r),io,14,io,45,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi9=[0,a(r),hH,14,hH,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bi_=[0,a(aF),[0,a(FM),0]],bi7=[0,a(r),hH,14,hH,57,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjb=[0,a(r),hD,14,hD,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjc=[0,a(aF),[0,a(Df),0]],bi$=[0,a(r),hD,14,hD,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bji=[0,a(r),jZ,14,jZ,43,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjj=[0,a(aF),[0,a("accession_propri\xc3\xa9t\xc3\xa9.type_pr\xc3\xaat"),0]],bjd=[0,a(r),jZ,14,jZ,43,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjp=[0,a(r),j3,14,j3,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjq=[0,a(aF),[0,a("accession_propri\xc3\xa9t\xc3\xa9.anciennet\xc3\xa9_logement"),0]],bjk=[0,a(r),j3,14,j3,53,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjt=[0,a(r),j_,14,j_,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bju=[0,a(aF),[0,a(xe),0]],bjr=[0,a(r),j_,14,j_,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjv=[0,a(aF),[0,a(nN),[0,a(an),0]]],bjw=[0,a(aF),[0,a(nN),[0,a(an),0]]],bjD=[0,a(r),iR,14,iR,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjE=[0,a(aF),[0,a(DV),0]],bjx=[0,a(r),iR,14,iR,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjH=[0,a(r),gC,14,gC,50,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjI=[0,a(aF),[0,a(En),0]],bjF=[0,a(r),gC,14,gC,50,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjL=[0,a(r),jJ,14,jJ,56,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjM=[0,a(aF),[0,a(Dk),0]],bjJ=[0,a(r),jJ,14,jJ,56,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjP=[0,a(r),j7,14,j7,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjQ=[0,a(aF),[0,a(xN),0]],bjN=[0,a(r),j7,14,j7,54,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjT=[0,a(r),jd,14,jd,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjU=[0,a(aF),[0,a(v3),0]],bjR=[0,a(r),jd,14,jd,59,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjX=[0,a(r),js,14,js,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bjY=[0,a(aF),[0,a(w1),0]],bjV=[0,a(r),js,14,js,33,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bj1=[0,a(r),jz,14,jz,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bj2=[0,a(aF),[0,a(vQ),0]],bjZ=[0,a(r),jz,14,jz,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bj9=[0,a(r),ie,14,ie,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bj_=[0,a(aF),[0,a(Cb),0]],bj3=[0,a(r),ie,14,ie,38,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bj$=[0,a(aF),[0,a(p7),[0,a(aw),0]]],bka=[0,a(aF),[0,a(p7),[0,a(aw),0]]],bkg=[0,a(r),ih,14,ih,37,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkh=[0,a(aF),[0,a("locatif.loyer_principal_base"),0]],bkb=[0,a(r),ih,14,ih,37,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkk=[0,a(r),jv,14,jv,49,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkl=[0,a(aF),[0,a(B9),0]],bki=[0,a(r),jv,14,jv,49,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bko=[0,a(r),ii,14,ii,67,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkp=[0,a(aF),[0,a(Bi),0]],bkm=[0,a(r),ii,14,ii,67,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bks=[0,a(r),jc,14,jc,35,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkt=[0,a(aF),[0,a(Bs),0]],bkq=[0,a(r),jc,14,jc,35,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkw=[0,a(r),hZ,14,hZ,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkx=[0,a(aF),[0,a(xo),0]],bku=[0,a(r),hZ,14,hZ,47,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkA=[0,a(r),jj,14,jj,52,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkB=[0,a(aF),[0,a(wf),0]],bky=[0,a(r),jj,14,jj,52,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkE=[0,a(r),gn,14,gn,26,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkF=[0,a(aF),[0,a(yT),0]],bkC=[0,a(r),gn,14,gn,26,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkI=[0,a(r),hM,14,hM,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkJ=[0,a(aF),[0,a(Bz),0]],bkG=[0,a(r),hM,14,hM,42,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkM=[0,a(r),gQ,5,gQ,69,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkN=[0,a(aF),[0,a(EM),0]],bkK=[0,a(r),gQ,5,gQ,69,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkQ=[0,a(r),ia,14,ia,31,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkR=[0,a(aF),[0,a(E5),0]],bkO=[0,a(r),ia,14,ia,31,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkU=[0,a(r),kj,14,kj,32,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bkV=[0,a(aF),[0,a(vZ),0]],bkS=[0,a(r),kj,14,kj,32,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bk5=[0,a(r),ku,14,ku,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bk6=[0,a(aF),[0,a(xG),0]],bkW=[0,a(r),ku,14,ku,48,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bk9=[0,a(r),hT,14,hT,44,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bk_=[0,a(aF),[0,a(zA),0]],bk7=[0,a(r),hT,14,hT,44,[0,a(J),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bk$=[0,a(aF),[0,a(n5),[0,a(aG),0]]],bla=[0,a(aF),[0,a(n5),[0,a(aG),0]]],blq=[0,a(aF),[0,a(bz),0]],blt=[0,a(d),pc,10,pc,29,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],blr=[0,a(d),pc,10,pc,29,[0,a(ck),[0,a(w),[0,a(j),[0,a(e),0]]]]],blu=[0,a(aF),[0,a(fo),0]],bh0=[0,a(r),GD,14,GD,36,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bhV=[0,a(Y),[0,a(bI),[0,a(ag),0]]],bhW=[0,a(Y),[0,a(bI),0]],bhX=[0,a(Y),[0,a(bI),[0,a(ah),0]]],bhY=[0,a(Y),[0,a(bI),0]],bhZ=a(q),bh1=[0,a(d),nB,10,nB,25,[0,a(I),[0,a(B),[0,a(e),0]]]],bhU=[0,a(d),nB,10,nB,25,[0,a(I),[0,a(B),[0,a(e),0]]]],bhR=[0,a(r),xC,14,xC,36,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bhG=[0,a(Y),[0,a(en),[0,a(ag),0]]],bhH=[0,a(Y),[0,a(en),0]],bhI=[0,a(Y),[0,a(en),[0,a(ah),0]]],bhJ=[0,a(Y),[0,a(en),0]],bhK=[0,a(bl),[0,a(bN),[0,a(ag),0]]],bhL=[0,a(bl),[0,a(bN),0]],bhM=[0,a(bl),[0,a(bN),[0,a(ah),0]]],bhN=[0,a(bl),[0,a(bN),0]],bhO=a(lU),bhP=a(q),bhQ=a(q),bhS=[0,a(d),pq,10,pq,40,[0,a(I),[0,a(B),[0,a(e),0]]]],bhF=[0,a(d),pq,10,pq,40,[0,a(I),[0,a(B),[0,a(e),0]]]],bhC=[0,a(r),wU,14,wU,36,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bht=[0,a(Y),[0,a(bH),[0,a(ag),0]]],bhu=[0,a(Y),[0,a(bH),0]],bhv=[0,a(Y),[0,a(bH),[0,a(ah),0]]],bhw=[0,a(Y),[0,a(bH),0]],bhx=[0,a(Y),[0,a(eL),[0,a(ag),0]]],bhy=[0,a(Y),[0,a(eL),0]],bhz=[0,a(Y),[0,a(eL),[0,a(ah),0]]],bhA=[0,a(Y),[0,a(eL),0]],bhB=a(q),bhD=[0,a(d),o6,10,o6,32,[0,a(I),[0,a(B),[0,a(e),0]]]],bhs=[0,a(d),o6,10,o6,32,[0,a(I),[0,a(B),[0,a(e),0]]]],bhp=[0,a(r),yV,14,yV,33,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bhl=[0,a(r),Fn,14,Fn,47,[0,a(pM),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bhg=[0,a(Y),[0,a(dd),[0,a(ag),0]]],bhh=[0,a(Y),[0,a(dd),0]],bhi=[0,a(Y),[0,a(dd),[0,a(ah),0]]],bhj=[0,a(Y),[0,a(dd),0]],bhk=a(q),bhm=[0,a(d),nP,11,nP,44,[0,a(I),[0,a(B),[0,a(e),0]]]],bhf=[0,a(d),nP,11,nP,44,[0,a(I),[0,a(B),[0,a(e),0]]]],bhc=[0,a(r),Fe,14,Fe,41,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bg_=[0,a(r),B0,14,B0,33,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bg6=[0,a(r),wE,14,wE,33,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bg1=[0,a(r),4863,7,4866,45,[0,a(pM),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bg2=[0,a(d),jO,11,jO,47,[0,a(I),[0,a(B),[0,a(e),0]]]],bg0=[0,a(r),EJ,14,EJ,50,[0,a(pM),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgU=[0,a(r),nA,14,nA,62,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgV=[0,a(r),nA,14,nA,62,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgW=[0,a(Y),[0,a("calcul_apl_logement_foyer.n_nombre_parts_d832_25"),0]],bgR=[0,a(r),pA,14,pA,61,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgS=[0,a(r),pA,14,pA,61,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgT=[0,a(Y),[0,a(EU),0]],bgO=[0,a(d),ix,14,ix,49,[0,a(I),[0,a(B),[0,a(e),0]]]],bgN=a(q),bgJ=[0,a(d),jk,14,jk,53,[0,a(I),[0,a(B),[0,a(e),0]]]],bgF=[0,a(d),hO,14,hO,44,[0,a(I),[0,a(B),[0,a(e),0]]]],bgB=[0,a(d),h6,14,h6,70,[0,a(I),[0,a(B),[0,a(e),0]]]],bgx=[0,a(d),kr,14,kr,65,[0,a(I),[0,a(B),[0,a(e),0]]]],bgt=[0,a(d),gD,14,gD,67,[0,a(I),[0,a(B),[0,a(e),0]]]],bgp=[0,a(d),jh,14,jh,61,[0,a(I),[0,a(B),[0,a(e),0]]]],bgl=[0,a(d),gN,14,gN,59,[0,a(I),[0,a(B),[0,a(e),0]]]],bgk=[3,0],bge=[0,a(r),h3,14,h3,70,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bga=[0,a(r),kh,14,kh,69,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bf8=[0,a(r),ki,14,ki,75,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bf3=[0,a(r),Dj,5,Dj,44,[0,a(Ck),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bfV=[0,a(Y),[0,a(dC),[0,a(ag),0]]],bfW=[0,a(Y),[0,a(dC),0]],bfX=[0,a(Y),[0,a(dC),[0,a(ah),0]]],bfY=[0,a(Y),[0,a(dC),0]],bfZ=[0,a(Y),[0,a(dC),[0,a(ag),0]]],bf0=[0,a(Y),[0,a(dC),0]],bf1=[0,a(Y),[0,a(dC),[0,a(ah),0]]],bf2=[0,a(Y),[0,a(dC),0]],bf4=[0,a(d),gS,11,gS,36,[0,a(I),[0,a(B),[0,a(e),0]]]],bfU=[0,a(r),Dh,14,Dh,39,[0,a(Ck),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bfQ=[0,a(Y),[0,a(dC),[0,a(ag),0]]],bfR=[0,a(Y),[0,a(dC),0]],bfS=[0,a(Y),[0,a(dC),[0,a(ah),0]]],bfT=[0,a(Y),[0,a(dC),0]],bfL=[0,a(r),Fa,5,Fa,28,[0,a(ob),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bfM=[0,a(d),j$,10,j$,15,[0,a(I),[0,a(B),[0,a(e),0]]]],bfK=[0,a(r),C0,14,C0,41,[0,a(ob),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bfH=a(c5),bfI=a(rT),bfJ=a("4999"),bfA=[0,a(aQ),fW,24,fW,56,[0,a(pn),[0,a(bA),[0,a(aR),0]]]],bfr=a(de),bfs=[0,a(Y),[0,a(ca),[0,a(ag),0]]],bft=[0,a(Y),[0,a(ca),0]],bfu=[0,a(Y),[0,a(ca),[0,a(ah),0]]],bfv=[0,a(Y),[0,a(ca),0]],bfw=[0,a(Y),[0,a(ca),[0,a(ag),0]]],bfx=[0,a(Y),[0,a(ca),0]],bfy=[0,a(Y),[0,a(ca),[0,a(ah),0]]],bfz=[0,a(Y),[0,a(ca),0]],bfB=[0,a(d),d9,10,d9,26,[0,a(I),[0,a(B),[0,a(e),0]]]],bfq=[0,a(S),EP,24,EP,56,[0,a(pn),[0,a(bo),[0,a(O),0]]]],bfh=a(de),bfi=[0,a(Y),[0,a(ca),[0,a(ag),0]]],bfj=[0,a(Y),[0,a(ca),0]],bfk=[0,a(Y),[0,a(ca),[0,a(ah),0]]],bfl=[0,a(Y),[0,a(ca),0]],bfm=[0,a(Y),[0,a(ca),[0,a(ag),0]]],bfn=[0,a(Y),[0,a(ca),0]],bfo=[0,a(Y),[0,a(ca),[0,a(ah),0]]],bfp=[0,a(Y),[0,a(ca),0]],bfC=[0,a(d),d9,10,d9,26,[0,a(I),[0,a(B),[0,a(e),0]]]],bfD=[0,a(d),d9,10,d9,26,[0,a(I),[0,a(B),[0,a(e),0]]]],bfg=[0,a(S),yS,14,yS,46,[0,a(bT),[0,a(bo),[0,a(O),0]]]],bfc=[0,a(Y),[0,a(ca),[0,a(ag),0]]],bfd=[0,a(Y),[0,a(ca),0]],bfe=[0,a(Y),[0,a(ca),[0,a(ah),0]]],bff=[0,a(Y),[0,a(ca),0]],bfE=[0,a(d),d9,10,d9,26,[0,a(I),[0,a(B),[0,a(e),0]]]],bfb=[0,a(d),d9,10,d9,26,[0,a(I),[0,a(B),[0,a(e),0]]]],be_=[0,a(r),Cn,15,Cn,37,[0,a(pM),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],be$=[0,a(d),o$,11,o$,33,[0,a(I),[0,a(B),[0,a(e),0]]]],be9=[0,a(d),o$,11,o$,33,[0,a(I),[0,a(B),[0,a(e),0]]]],be5=[0,a(r),4888,6,4894,6,[0,a(ob),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],be6=[0,a(d),fp,11,fp,42,[0,a(I),[0,a(B),[0,a(e),0]]]],be3=[0,a(r),4906,5,4907,59,[0,a(ob),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],be4=[0,a(d),fp,11,fp,42,[0,a(I),[0,a(B),[0,a(e),0]]]],beY=[0,a(S),Aa,5,Aa,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],bec=a(q),bed=a("158700"),bee=a("191300"),bef=a(z),beg=a("205500"),beh=a(X),bei=a("211300"),bej=a(aa),bek=a("217100"),bel=a(ae),bem=a("222900"),ben=a(R),beo=a(AP),bep=a(R),beq=a("19800"),ber=a(AP),bes=a(q),bet=a("139300"),beu=a("170600"),bev=a(z),bew=a("184700"),bex=a(X),bey=a("191200"),bez=a(aa),beA=a(z_),beB=a(ae),beC=a("204200"),beD=a(R),beE=a(xk),beF=a(R),beG=a(tc),beH=a(xk),beI=a(q),beJ=a("130600"),beK=a("158400"),beL=a(z),beM=a("172600"),beN=a(X),beO=a(EA),beP=a(aa),beQ=a("187000"),beR=a(ae),beS=a("194200"),beT=a(R),beU=a(sB),beV=a(R),beW=a("18200"),beX=a(sB),beZ=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],bea=[0,a(S),wB,5,wB,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],bdq=a(q),bdr=a("160400"),bds=a("193400"),bdt=a(z),bdu=a("207800"),bdv=a(X),bdw=a("213700"),bdx=a(aa),bdy=a("219600"),bdz=a(ae),bdA=a(zs),bdB=a(R),bdC=a(pb),bdD=a(R),bdE=a("20000"),bdF=a(pb),bdG=a(q),bdH=a(Ei),bdI=a(EC),bdJ=a(z),bdK=a("186700"),bdL=a(X),bdM=a("193300"),bdN=a(aa),bdO=a(rU),bdP=a(ae),bdQ=a("206500"),bdR=a(R),bdS=a(xR),bdT=a(R),bdU=a(Ad),bdV=a(xR),bdW=a(q),bdX=a(B3),bdY=a(r4),bdZ=a(z),bd0=a("174500"),bd1=a(X),bd2=a(yy),bd3=a(aa),bd4=a("189100"),bd5=a(ae),bd6=a("196400"),bd7=a(R),bd8=a(wc),bd9=a(R),bd_=a("18400"),bd$=a(wc),beb=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],bdo=[0,a(S),wq,5,wq,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],bcE=a(q),bcF=a("163300"),bcG=a("196900"),bcH=a(z),bcI=a("211600"),bcJ=a(X),bcK=a(xq),bcL=a(aa),bcM=a("223600"),bcN=a(ae),bcO=a("229600"),bcP=a(R),bcQ=a(Cf),bcR=a(R),bcS=a("20400"),bcT=a(Cf),bcU=a(q),bcV=a("143300"),bcW=a("175600"),bcX=a(z),bcY=a("190100"),bcZ=a(X),bc0=a("196600"),bc1=a(aa),bc2=a("203500"),bc3=a(ae),bc4=a("210200"),bc5=a(R),bc6=a(Fw),bc7=a(R),bc8=a("19600"),bc9=a(Fw),bc_=a(q),bc$=a("134400"),bda=a(yD),bdb=a(z),bdc=a("177700"),bdd=a(X),bde=a("185100"),bdf=a(aa),bdg=a(xr),bdh=a(ae),bdi=a(rU),bdj=a(R),bdk=a(Gr),bdl=a(R),bdm=a("18700"),bdn=a(Gr),bdp=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],bcC=[0,a(S),x$,5,x$,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],bbS=a(q),bbT=a("167200"),bbU=a("201600"),bbV=a(z),bbW=a("216700"),bbX=a(X),bbY=a("222800"),bbZ=a(aa),bb0=a("229000"),bb1=a(ae),bb2=a("235100"),bb3=a(R),bb4=a(Gk),bb5=a(R),bb6=a(wD),bb7=a(Gk),bb8=a(q),bb9=a("146700"),bb_=a(EA),bb$=a(z),bca=a("194700"),bcb=a(X),bcc=a("201500"),bcd=a(aa),bce=a("208400"),bcf=a(ae),bcg=a("215200"),bch=a(R),bci=a(pb),bcj=a(R),bck=a(B$),bcl=a(pb),bcm=a(q),bcn=a("137600"),bco=a("166900"),bcp=a(z),bcq=a("182000"),bcr=a(X),bcs=a("189500"),bct=a(aa),bcu=a("197100"),bcv=a(ae),bcw=a(DK),bcx=a(R),bcy=a(BR),bcz=a(R),bcA=a(tc),bcB=a(BR),bcD=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],bbQ=[0,a(S),C6,5,C6,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],ba6=a(q),ba7=a("167400"),ba8=a("201800"),ba9=a(z),ba_=a("216900"),ba$=a(X),bba=a("223000"),bbb=a(aa),bbc=a("229200"),bbd=a(ae),bbe=a("235300"),bbf=a(R),bbg=a(A$),bbh=a(R),bbi=a(wD),bbj=a(A$),bbk=a(q),bbl=a("146800"),bbm=a("180000"),bbn=a(z),bbo=a("194900"),bbp=a(X),bbq=a(FU),bbr=a(aa),bbs=a(sB),bbt=a(ae),bbu=a("215400"),bbv=a(R),bbw=a(C8),bbx=a(R),bby=a(B$),bbz=a(C8),bbA=a(q),bbB=a("137700"),bbC=a("167100"),bbD=a(z),bbE=a("182200"),bbF=a(X),bbG=a("189700"),bbH=a(aa),bbI=a("197300"),bbJ=a(ae),bbK=a("204900"),bbL=a(R),bbM=a(Ex),bbN=a(R),bbO=a(tc),bbP=a(Ex),bbR=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],ba4=[0,a(S),AW,5,AW,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],bai=a(q),baj=a("169100"),bak=a("203800"),bal=a(z),bam=a("219100"),ban=a(X),bao=a("225200"),bap=a(aa),baq=a("231500"),bar=a(ae),bas=a("237700"),bat=a(R),bau=a(nh),bav=a(R),baw=a("21100"),bax=a(nh),bay=a(q),baz=a("148300"),baA=a(yy),baB=a(z),baC=a("196800"),baD=a(X),baE=a("203700"),baF=a(aa),baG=a("210700"),baH=a(ae),baI=a(xq),baJ=a(R),baK=a(xV),baL=a(R),baM=a("20300"),baN=a(xV),baO=a(q),baP=a("139100"),baQ=a("168800"),baR=a(z),baS=a(sC),baT=a(X),baU=a("191600"),baV=a(aa),baW=a("199300"),baX=a(ae),baY=a("206900"),baZ=a(R),ba0=a(BB),ba1=a(R),ba2=a(Ad),ba3=a(BB),ba5=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],bag=[0,a(S),pQ,5,pQ,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a$w=a(q),a$x=a("171100"),a$y=a("206200"),a$z=a(z),a$A=a("221700"),a$B=a(X),a$C=a("227900"),a$D=a(aa),a$E=a("234300"),a$F=a(ae),a$G=a("240600"),a$H=a(R),a$I=a(AH),a$J=a(R),a$K=a("21400"),a$L=a(AH),a$M=a(q),a$N=a("150100"),a$O=a(sC),a$P=a(z),a$Q=a("199200"),a$R=a(X),a$S=a("206100"),a$T=a(aa),a$U=a("213200"),a$V=a(ae),a$W=a("220200"),a$X=a(R),a$Y=a(zW),a$Z=a(R),a$0=a("20500"),a$1=a(zW),a$2=a(q),a$3=a(Ei),a$4=a("170800"),a$5=a(z),a$6=a("186200"),a$7=a(X),a$8=a("193900"),a$9=a(aa),a$_=a(FU),a$$=a(ae),baa=a("209400"),bab=a(R),bac=a(BA),bad=a(R),bae=a("19500"),baf=a(BA),bah=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a$u=[0,a(S),CC,5,CC,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a_K=a(q),a_L=a("26084"),a_M=a("31435"),a_N=a(z),a_O=a("33798"),a_P=a(X),a_Q=a("34743"),a_R=a(aa),a_S=a("35719"),a_T=a(ae),a_U=a("36679"),a_V=a(R),a_W=a(z1),a_X=a(R),a_Y=a("3262"),a_Z=a(z1),a_0=a(q),a_1=a("22883"),a_2=a("28051"),a_3=a(z),a_4=a("30368"),a_5=a(X),a_6=a("31420"),a_7=a(aa),a_8=a("32502"),a_9=a(ae),a__=a("33569"),a_$=a(R),a$a=a(F7),a$b=a(R),a$c=a("3125"),a$d=a(F7),a$e=a(q),a$f=a("21465"),a$g=a("26038"),a$h=a(z),a$i=a("28386"),a$j=a(X),a$k=a("29560"),a$l=a(aa),a$m=a("30749"),a$n=a(ae),a$o=a("31923"),a$p=a(R),a$q=a(Fy),a$r=a(R),a$s=a("2973"),a$t=a(Fy),a$v=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a_I=[0,a(S),FN,5,FN,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a9Y=a(q),a9Z=a("26397"),a90=a("31812"),a91=a(z),a92=a("34204"),a93=a(X),a94=a("35160"),a95=a(aa),a96=a("36148"),a97=a(ae),a98=a("37119"),a99=a(R),a9_=a(An),a9$=a(R),a_a=a("3301"),a_b=a(An),a_c=a(q),a_d=a("23158"),a_e=a("28388"),a_f=a(z),a_g=a("30732"),a_h=a(X),a_i=a(nT),a_j=a(aa),a_k=a("32892"),a_l=a(ae),a_m=a("33972"),a_n=a(R),a_o=a(Fj),a_p=a(R),a_q=a("3163"),a_r=a(Fj),a_s=a(q),a_t=a("21723"),a_u=a("26350"),a_v=a(z),a_w=a("28727"),a_x=a(X),a_y=a("29915"),a_z=a(aa),a_A=a("31118"),a_B=a(ae),a_C=a("32306"),a_D=a(R),a_E=a(yf),a_F=a(R),a_G=a("3009"),a_H=a(yf),a_J=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a9W=[0,a(S),FH,5,FH,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a9a=a(q),a9b=a(GO),a9c=a("32194"),a9d=a(z),a9e=a("34614"),a9f=a(X),a9g=a("35582"),a9h=a(aa),a9i=a("36582"),a9j=a(ae),a9k=a("37564"),a9l=a(R),a9m=a(xF),a9n=a(R),a9o=a("3341"),a9p=a(xF),a9q=a(q),a9r=a("23436"),a9s=a("28729"),a9t=a(z),a9u=a("31101"),a9v=a(X),a9w=a("32179"),a9x=a(aa),a9y=a("33287"),a9z=a(ae),a9A=a("34380"),a9B=a(R),a9C=a(Bx),a9D=a(R),a9E=a("3201"),a9F=a(Bx),a9G=a(q),a9H=a("21984"),a9I=a("26666"),a9J=a(z),a9K=a("29072"),a9L=a(X),a9M=a("30274"),a9N=a(aa),a9O=a("31491"),a9P=a(ae),a9Q=a("32694"),a9R=a(R),a9S=a(Cj),a9T=a(R),a9U=a("3045"),a9V=a(Cj),a9X=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a8_=[0,a(S),zN,5,zN,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a8o=a(q),a8p=a("27195"),a8q=a("32773"),a8r=a(z),a8s=a("35237"),a8t=a(X),a8u=a("36222"),a8v=a(aa),a8w=a("37240"),a8x=a(ae),a8y=a("38240"),a8z=a(R),a8A=a(Ce),a8B=a(R),a8C=a("3401"),a8D=a(Ce),a8E=a(q),a8F=a("23858"),a8G=a("29246"),a8H=a(z),a8I=a("31661"),a8J=a(X),a8K=a("32758"),a8L=a(aa),a8M=a("33886"),a8N=a(ae),a8O=a("34999"),a8P=a(R),a8Q=a(Aq),a8R=a(R),a8S=a("3259"),a8T=a(Aq),a8U=a(q),a8V=a("22380"),a8W=a("27146"),a8X=a(z),a8Y=a("29595"),a8Z=a(X),a80=a("30819"),a81=a(aa),a82=a("32058"),a83=a(ae),a84=a("33282"),a85=a(R),a86=a(Bn),a87=a(R),a88=a("3100"),a89=a(Bn),a8$=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a8m=[0,a(S),Az,5,Az,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a7C=a(q),a7D=a("27956"),a7E=a("33691"),a7F=a(z),a7G=a("36224"),a7H=a(X),a7I=a("37236"),a7J=a(aa),a7K=a("38283"),a7L=a(ae),a7M=a("39311"),a7N=a(R),a7O=a(zv),a7P=a(R),a7Q=a("3496"),a7R=a(zv),a7S=a(q),a7T=a("24526"),a7U=a("30065"),a7V=a(z),a7W=a("32548"),a7X=a(X),a7Y=a("33675"),a7Z=a(aa),a70=a(Gc),a71=a(ae),a72=a("35979"),a73=a(R),a74=a(Bv),a75=a(R),a76=a("3350"),a77=a(Bv),a78=a(q),a79=a("23007"),a7_=a("27906"),a7$=a(z),a8a=a("30424"),a8b=a(X),a8c=a("31682"),a8d=a(aa),a8e=a(zC),a8f=a(ae),a8g=a("34214"),a8h=a(R),a8i=a(Fd),a8j=a(R),a8k=a("3187"),a8l=a(Fd),a8n=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a7A=[0,a(S),xz,5,xz,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a6Q=a(q),a6R=a("28728"),a6S=a("34621"),a6T=a(z),a6U=a("37224"),a6V=a(X),a6W=a("38264"),a6X=a(aa),a6Y=a(y6),a6Z=a(ae),a60=a("40396"),a61=a(R),a62=a(yH),a63=a(R),a64=a("3592"),a65=a(yH),a66=a(q),a67=a("25203"),a68=a("30895"),a69=a(z),a6_=a("33446"),a6$=a(X),a7a=a("34604"),a7b=a(aa),a7c=a("35796"),a7d=a(ae),a7e=a("36972"),a7f=a(R),a7g=a(F0),a7h=a(R),a7i=a("3442"),a7j=a(F0),a7k=a(q),a7l=a("23642"),a7m=a("28676"),a7n=a(z),a7o=a(yl),a7p=a(X),a7q=a("32556"),a7r=a(aa),a7s=a("33866"),a7t=a(ae),a7u=a("35158"),a7v=a(R),a7w=a(xd),a7x=a(R),a7y=a("3275"),a7z=a(xd),a7B=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a6O=[0,a(S),yP,5,yP,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a54=a(q),a55=a("29575"),a56=a("35642"),a57=a(z),a58=a("38322"),a59=a(X),a5_=a("39393"),a5$=a(aa),a6a=a("40501"),a6b=a(ae),a6c=a("41588"),a6d=a(R),a6e=a(D8),a6f=a(R),a6g=a("3698"),a6h=a(D8),a6i=a(q),a6j=a("25946"),a6k=a("31806"),a6l=a(z),a6m=a("34433"),a6n=a(X),a6o=a("35625"),a6p=a(aa),a6q=a("36852"),a6r=a(ae),a6s=a("38063"),a6t=a(R),a6u=a(Bj),a6v=a(R),a6w=a("3544"),a6x=a(Bj),a6y=a(q),a6z=a("24339"),a6A=a("29522"),a6B=a(z),a6C=a("32186"),a6D=a(X),a6E=a("33516"),a6F=a(aa),a6G=a(Gc),a6H=a(ae),a6I=a("36195"),a6J=a(R),a6K=a(E1),a6L=a(R),a6M=a("3372"),a6N=a(E1),a6P=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a52=[0,a(S),Go,5,Go,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a5g=a(q),a5h=a("29670"),a5i=a("35757"),a5j=a(z),a5k=a("38445"),a5l=a(X),a5m=a("39519"),a5n=a(aa),a5o=a("40601"),a5p=a(ae),a5q=a("41721"),a5r=a(R),a5s=a(Ed),a5t=a(R),a5u=a("3710"),a5v=a(Ed),a5w=a(q),a5x=a("26029"),a5y=a("31908"),a5z=a(z),a5A=a("34643"),a5B=a(X),a5C=a("35739"),a5D=a(aa),a5E=a("36970"),a5F=a(ae),a5G=a("38185"),a5H=a(R),a5I=a(BS),a5J=a(R),a5K=a("3555"),a5L=a(BS),a5M=a(q),a5N=a("24417"),a5O=a("29616"),a5P=a(z),a5Q=a("32289"),a5R=a(X),a5S=a(Ar),a5T=a(aa),a5U=a("34977"),a5V=a(ae),a5W=a("36311"),a5X=a(R),a5Y=a(A3),a5Z=a(R),a50=a("3383"),a51=a(A3),a53=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a5e=[0,a(S),zm,5,zm,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a4u=a(q),a4v=a("29996"),a4w=a("36149"),a4x=a(z),a4y=a("38868"),a4z=a(X),a4A=a("39954"),a4B=a(aa),a4C=a("41078"),a4D=a(ae),a4E=a("42180"),a4F=a(R),a4G=a(B7),a4H=a(R),a4I=a("3751"),a4J=a(B7),a4K=a(q),a4L=a("26315"),a4M=a("32259"),a4N=a(z),a4O=a("34923"),a4P=a(X),a4Q=a("36132"),a4R=a(aa),a4S=a("37373"),a4T=a(ae),a4U=a("38605"),a4V=a(R),a4W=a(El),a4X=a(R),a4Y=a("3594"),a4Z=a(El),a40=a(q),a41=a("24686"),a42=a("29942"),a43=a(z),a44=a("32644"),a45=a(X),a46=a("33993"),a47=a(aa),a48=a("35362"),a49=a(ae),a4_=a("36710"),a4$=a(R),a5a=a(Bf),a5b=a(R),a5c=a("3420"),a5d=a(Bf),a5f=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a4s=[0,a(S),z2,5,z2,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a3I=a(q),a3J=a("30296"),a3K=a("36510"),a3L=a(z),a3M=a("39257"),a3N=a(X),a3O=a("40354"),a3P=a(aa),a3Q=a("41489"),a3R=a(ae),a3S=a("42602"),a3T=a(R),a3U=a(wT),a3V=a(R),a3W=a("3789"),a3X=a(wT),a3Y=a(q),a3Z=a("26578"),a30=a("32582"),a31=a(z),a32=a("35272"),a33=a(X),a34=a("36493"),a35=a(aa),a36=a("37751"),a37=a(ae),a38=a("38991"),a39=a(R),a3_=a(yz),a3$=a(R),a4a=a("3630"),a4b=a(yz),a4c=a(q),a4d=a("24933"),a4e=a("30241"),a4f=a(z),a4g=a("32970"),a4h=a(X),a4i=a("34333"),a4j=a(aa),a4k=a("35716"),a4l=a(ae),a4m=a("37077"),a4n=a(R),a4o=a(v7),a4p=a(R),a4q=a("3454"),a4r=a(v7),a4t=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a3G=[0,a(S),FT,5,FT,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a2W=a(q),a2X=a("30947"),a2Y=a("37295"),a2Z=a(z),a20=a("40101"),a21=a(X),a22=a("41222"),a23=a(aa),a24=a("42381"),a25=a(ae),a26=a("43518"),a27=a(R),a28=a(Dw),a29=a(R),a2_=a("3870"),a2$=a(Dw),a3a=a(q),a3b=a("27149"),a3c=a("33283"),a3d=a(z),a3e=a("36030"),a3f=a(X),a3g=a("37278"),a3h=a(aa),a3i=a("38563"),a3j=a(ae),a3k=a("39829"),a3l=a(R),a3m=a("42649"),a3n=a(R),a3o=a("3708"),a3p=a("42659"),a3q=a(q),a3r=a("25469"),a3s=a("30891"),a3t=a(z),a3u=a("33679"),a3v=a(X),a3w=a("35071"),a3x=a(aa),a3y=a("36484"),a3z=a(ae),a3A=a("37874"),a3B=a(R),a3C=a(DB),a3D=a(R),a3E=a("3528"),a3F=a(DB),a3H=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a2U=[0,a(S),zx,5,zx,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a1_=a(q),a1$=a("31123"),a2a=a("37508"),a2b=a(z),a2c=a("40330"),a2d=a(X),a2e=a("41457"),a2f=a(aa),a2g=a("42623"),a2h=a(ae),a2i=a("43766"),a2j=a(R),a2k=a(v9),a2l=a(R),a2m=a("3892"),a2n=a(v9),a2o=a(q),a2p=a("27304"),a2q=a("33473"),a2r=a(z),a2s=a("36235"),a2t=a(X),a2u=a("37490"),a2v=a(aa),a2w=a("38783"),a2x=a(ae),a2y=a("40056"),a2z=a(R),a2A=a(CT),a2B=a(R),a2C=a("3729"),a2D=a(CT),a2E=a(q),a2F=a("25614"),a2G=a("31067"),a2H=a(z),a2I=a("33871"),a2J=a(X),a2K=a("35271"),a2L=a(aa),a2M=a("36692"),a2N=a(ae),a2O=a("38090"),a2P=a(R),a2Q=a(Ac),a2R=a(R),a2S=a("3548"),a2T=a(Ac),a2V=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a18=[0,a(S),y3,5,y3,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a1m=a(q),a1n=a("31148"),a1o=a("37538"),a1p=a(z),a1q=a("40362"),a1r=a(X),a1s=a("41490"),a1t=a(aa),a1u=a("42657"),a1v=a(ae),a1w=a("43801"),a1x=a(R),a1y=a(yh),a1z=a(R),a1A=a("3895"),a1B=a(yh),a1C=a(q),a1D=a("27326"),a1E=a(Gz),a1F=a(z),a1G=a("36264"),a1H=a(X),a1I=a("37520"),a1J=a(aa),a1K=a("38814"),a1L=a(ae),a1M=a("40088"),a1N=a(R),a1O=a(Gq),a1P=a(R),a1Q=a("3732"),a1R=a(Gq),a1S=a(q),a1T=a("25634"),a1U=a("31092"),a1V=a(z),a1W=a("33898"),a1X=a(X),a1Y=a("35299"),a1Z=a(aa),a10=a("36721"),a11=a(ae),a12=a("38120"),a13=a(R),a14=a(A0),a15=a(R),a16=a("3551"),a17=a(A0),a19=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a1k=[0,a(S),BF,5,BF,64,[0,a(bT),[0,a(bo),[0,a(O),0]]]],a0A=a(q),a0B=a("31382"),a0C=a("37820"),a0D=a(z),a0E=a("40665"),a0F=a(X),a0G=a("41801"),a0H=a(aa),a0I=a("42977"),a0J=a(ae),a0K=a("44130"),a0L=a(R),a0M=a(AR),a0N=a(R),a0O=a("3924"),a0P=a(AR),a0Q=a(q),a0R=a("27531"),a0S=a("33751"),a0T=a(z),a0U=a("36536"),a0V=a(X),a0W=a("37801"),a0X=a(aa),a0Y=a("39105"),a0Z=a(ae),a00=a("40389"),a01=a(R),a02=a(xx),a03=a(R),a04=a("3760"),a05=a(xx),a06=a(q),a07=a("25826"),a08=a("31325"),a09=a(z),a0_=a("34152"),a0$=a(X),a1a=a("35564"),a1b=a(aa),a1c=a("36996"),a1d=a(ae),a1e=a("38406"),a1f=a(R),a1g=a(Au),a1h=a(R),a1i=a("3578"),a1j=a(Au),a1l=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],a0y=[0,a(S),oL,5,oL,33,[0,a(bT),[0,a(bo),[0,a(O),0]]]],aZO=a(q),aZP=a("31476"),aZQ=a("37933"),aZR=a(z),aZS=a("40787"),aZT=a(X),aZU=a("41927"),aZV=a(aa),aZW=a("43106"),aZX=a(ae),aZY=a("44262"),aZZ=a(R),aZ0=a(xi),aZ1=a(R),aZ2=a("3936"),aZ3=a(xi),aZ4=a(q),aZ5=a("27614"),aZ6=a("33853"),aZ7=a(z),aZ8=a("36646"),aZ9=a(X),aZ_=a("37915"),aZ$=a(aa),a0a=a("39222"),a0b=a(ae),a0c=a("40510"),a0d=a(R),a0e=a(FI),a0f=a(R),a0g=a("3771"),a0h=a(FI),a0i=a(q),a0j=a("25904"),a0k=a("31419"),a0l=a(z),a0m=a("34255"),a0n=a(X),a0o=a("35670"),a0p=a(aa),a0q=a("37107"),a0r=a(ae),a0s=a("38521"),a0t=a(R),a0u=a(GB),a0v=a(R),a0w=a("3588"),a0x=a(GB),a0z=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],be0=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],aZN=[0,a(d),aU,10,aU,14,[0,a(I),[0,a(B),[0,a(e),0]]]],aZK=[0,a(r),v1,14,v1,36,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aZI=a(q),aZJ=a(q),aZL=[0,a(d),m0,10,m0,32,[0,a(I),[0,a(B),[0,a(e),0]]]],aZH=[0,a(d),m0,10,m0,32,[0,a(I),[0,a(B),[0,a(e),0]]]],aZC=[0,a(aQ),z5,5,z5,16,[0,a(pn),[0,a(bA),[0,a(aR),0]]]],aZz=a(gK),aZA=a(rv),aZB=a(fc),aZD=[0,a(d),dk,11,dk,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aZy=[0,a(aQ),dU,43,dU,70,[0,a(wr),[0,a(bA),[0,a(aR),0]]]],aZu=a(q),aZv=a(fc),aZw=a(gK),aZx=a(fc),aZE=[0,a(d),dk,11,dk,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aZr=[0,a(S),zj,5,zj,16,[0,a(pn),[0,a(bo),[0,a(O),0]]]],aZo=a(gw),aZp=a(rS),aZq=a(fk),aZs=[0,a(d),dk,11,dk,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aZn=[0,a(S),yE,31,yE,58,[0,a(wr),[0,a(bo),[0,a(O),0]]]],aZj=a(q),aZk=a(fk),aZl=a(gw),aZm=a(fk),aZt=[0,a(d),dk,11,dk,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aZi=[0,a(d),dk,47,dk,53,[0,a(I),[0,a(B),[0,a(e),0]]]],aZc=[0,a(d),jX,14,jX,50,[0,a(I),[0,a(B),[0,a(e),0]]]],aY8=[0,a(r),jM,14,jM,64,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aY4=[0,a(r),jy,14,jy,59,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aY0=[0,a(S),D3,14,D3,33,[0,a(Dz),[0,a(bo),[0,a(O),0]]]],aYZ=a(Bk),aYV=[0,a(S),xn,14,xn,33,[0,a(C$),[0,a(bo),[0,a(O),0]]]],aYU=a(s$),aYQ=[0,a(S),ES,14,ES,41,[0,a(Dz),[0,a(bo),[0,a(O),0]]]],aYP=a("390000"),aYL=[0,a(S),of,14,of,41,[0,a(C$),[0,a(bo),[0,a(O),0]]]],aYK=a(rE),aYG=[0,a(S),Bw,14,Bw,41,[0,a("Article 36"),[0,a(bo),[0,a(O),0]]]],aYF=a(iP),aYB=[0,a(fB),c4,14,c4,36,[0,a(DI),[0,a(z0),0]]],aYz=a(wu),aYA=a(ep),aYv=[0,a(S),zP,14,zP,40,[0,a("Article 35"),[0,a(bo),[0,a(O),0]]]],aYu=a(lk),aYw=[0,a(d),pv,11,pv,37,[0,a(I),[0,a(B),[0,a(e),0]]]],aYt=[0,a(d),pv,11,pv,37,[0,a(I),[0,a(B),[0,a(e),0]]]],aYx=[0,a(Y),[0,a("montant_forfaitaire_d842_6"),0]],aYC=[0,a(d),n8,11,n8,33,[0,a(I),[0,a(B),[0,a(e),0]]]],aYy=[0,a(d),n8,11,n8,33,[0,a(I),[0,a(B),[0,a(e),0]]]],aYD=[0,a(Y),[0,a(Ga),0]],aYH=[0,a(d),oD,11,oD,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aYE=[0,a(d),oD,11,oD,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aYI=[0,a(Y),[0,a("montant_minimal_aide_d842_6"),0]],aYM=[0,a(d),p5,11,p5,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aYJ=[0,a(d),p5,11,p5,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aYN=[0,a(Y),[0,a("montant_forfaitaire_d842_11"),0]],aYR=[0,a(d),mO,11,mO,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aYO=[0,a(d),mO,11,mO,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aYS=[0,a(Y),[0,a("montant_forfaitaire_d842_12"),0]],aYW=[0,a(d),nS,11,nS,30,[0,a(I),[0,a(B),[0,a(e),0]]]],aYT=[0,a(d),nS,11,nS,30,[0,a(I),[0,a(B),[0,a(e),0]]]],aYX=[0,a(Y),[0,a("coefficient_d842_11"),0]],aY1=[0,a(d),pS,11,pS,30,[0,a(I),[0,a(B),[0,a(e),0]]]],aYY=[0,a(d),pS,11,pS,30,[0,a(I),[0,a(B),[0,a(e),0]]]],aY2=[0,a(Y),[0,a("coefficient_d842_12"),0]],aY5=[0,a(r),jy,14,jy,59,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aY6=[0,a(Y),[0,a(og),0]],aY3=[0,a(r),jy,14,jy,59,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aY9=[0,a(r),jM,14,jM,64,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aY_=[0,a(Y),[0,a(o1),0]],aY7=[0,a(r),jM,14,jM,64,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aY$=[0,a(Y),[0,a(f6),[0,a(lr),0]]],aZa=[0,a(Y),[0,a(f6),[0,a(lr),0]]],aZd=[0,a(d),jX,14,jX,50,[0,a(I),[0,a(B),[0,a(e),0]]]],aZe=[0,a(Y),[0,a(lz),0]],aZb=[0,a(d),jX,14,jX,50,[0,a(I),[0,a(B),[0,a(e),0]]]],aZf=[0,a(Y),[0,a(eK),[0,a(bl),0]]],aZg=[0,a(Y),[0,a(eK),[0,a(bl),0]]],aZF=[0,a(d),dk,11,dk,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aZh=[0,a(d),dk,11,dk,38,[0,a(I),[0,a(B),[0,a(e),0]]]],aZG=[0,a(Y),[0,a(wh),0]],aZM=[0,a(Y),[0,a(bH),0]],be1=[0,a(Y),[0,a(ca),0]],be7=[0,a(d),fp,11,fp,42,[0,a(I),[0,a(B),[0,a(e),0]]]],be2=[0,a(d),fp,11,fp,42,[0,a(I),[0,a(B),[0,a(e),0]]]],be8=[0,a(Y),[0,a("seuil_minimal_ressources_m\xc3\xa9nage"),0]],bfa=[0,a(Y),[0,a(dd),0]],bfF=[0,a(Y),[0,a(dC),0]],bfN=[0,a(d),j$,10,j$,15,[0,a(I),[0,a(B),[0,a(e),0]]]],bfG=[0,a(d),j$,10,j$,15,[0,a(I),[0,a(B),[0,a(e),0]]]],bfO=[0,a(Y),[0,a(DA),0]],bf5=[0,a(d),gS,11,gS,36,[0,a(I),[0,a(B),[0,a(e),0]]]],bfP=[0,a(d),gS,11,gS,36,[0,a(I),[0,a(B),[0,a(e),0]]]],bf6=[0,a(Y),[0,a("plafond_mensualit\xc3\xa9_d842_6"),0]],bf9=[0,a(r),ki,14,ki,75,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bf_=[0,a(Y),[0,a(nJ),0]],bf7=[0,a(r),ki,14,ki,75,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgb=[0,a(r),kh,14,kh,69,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgc=[0,a(Y),[0,a(pl),0]],bf$=[0,a(r),kh,14,kh,69,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgf=[0,a(r),h3,14,h3,70,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgg=[0,a(Y),[0,a(nx),0]],bgd=[0,a(r),h3,14,h3,70,[0,a(bC),[0,a(am),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],bgh=[0,a(Y),[0,a(fG),[0,a(dK),0]]],bgi=[0,a(Y),[0,a(fG),[0,a(dK),0]]],bgm=[0,a(d),gN,14,gN,59,[0,a(I),[0,a(B),[0,a(e),0]]]],bgn=[0,a(Y),[0,a(yG),0]],bgj=[0,a(d),gN,14,gN,59,[0,a(I),[0,a(B),[0,a(e),0]]]],bgq=[0,a(d),jh,14,jh,61,[0,a(I),[0,a(B),[0,a(e),0]]]],bgr=[0,a(Y),[0,a(Aj),0]],bgo=[0,a(d),jh,14,jh,61,[0,a(I),[0,a(B),[0,a(e),0]]]],bgu=[0,a(d),gD,14,gD,67,[0,a(I),[0,a(B),[0,a(e),0]]]],bgv=[0,a(Y),[0,a(wz),0]],bgs=[0,a(d),gD,14,gD,67,[0,a(I),[0,a(B),[0,a(e),0]]]],bgy=[0,a(d),kr,14,kr,65,[0,a(I),[0,a(B),[0,a(e),0]]]],bgz=[0,a(Y),[0,a(F8),0]],bgw=[0,a(d),kr,14,kr,65,[0,a(I),[0,a(B),[0,a(e),0]]]],bgC=[0,a(d),h6,14,h6,70,[0,a(I),[0,a(B),[0,a(e),0]]]],bgD=[0,a(Y),[0,a(C2),0]],bgA=[0,a(d),h6,14,h6,70,[0,a(I),[0,a(B),[0,a(e),0]]]],bgG=[0,a(d),hO,14,hO,44,[0,a(I),[0,a(B),[0,a(e),0]]]],bgH=[0,a(Y),[0,a(Dg),0]],bgE=[0,a(d),hO,14,hO,44,[0,a(I),[0,a(B),[0,a(e),0]]]],bgK=[0,a(d),jk,14,jk,53,[0,a(I),[0,a(B),[0,a(e),0]]]],bgL=[0,a(Y),[0,a(FP),0]],bgI=[0,a(d),jk,14,jk,53,[0,a(I),[0,a(B),[0,a(e),0]]]],bgP=[0,a(d),ix,14,ix,49,[0,a(I),[0,a(B),[0,a(e),0]]]],bgQ=[0,a(Y),[0,a(w6),0]],bgM=[0,a(d),ix,14,ix,49,[0,a(I),[0,a(B),[0,a(e),0]]]],bgX=[0,a(Y),[0,a(oK),[0,a(aw),0]]],bgY=[0,a(Y),[0,a(oK),[0,a(aw),0]]],bg3=[0,a(d),jO,11,jO,47,[0,a(I),[0,a(B),[0,a(e),0]]]],bgZ=[0,a(d),jO,11,jO,47,[0,a(I),[0,a(B),[0,a(e),0]]]],bg4=[0,a(Y),[0,a("seuil_minimal_d\xc3\xa9pense_nette_minimale"),0]],bg7=[0,a(d),lp,11,lp,30,[0,a(I),[0,a(B),[0,a(e),0]]]],bg5=[0,a(d),lp,11,lp,30,[0,a(I),[0,a(B),[0,a(e),0]]]],bg8=[0,a(Y),[0,a(F$),0]],bg$=[0,a(d),lJ,11,lJ,30,[0,a(I),[0,a(B),[0,a(e),0]]]],bg9=[0,a(d),lJ,11,lJ,30,[0,a(I),[0,a(B),[0,a(e),0]]]],bha=[0,a(Y),[0,a(zG),0]],bhd=[0,a(d),gG,11,gG,38,[0,a(I),[0,a(B),[0,a(e),0]]]],bhb=[0,a(d),gG,11,gG,38,[0,a(I),[0,a(B),[0,a(e),0]]]],bhe=[0,a(Y),[0,a(zn),0]],bhn=[0,a(Y),[0,a(eL),0]],bhq=[0,a(d),pD,10,pD,29,[0,a(I),[0,a(B),[0,a(e),0]]]],bho=[0,a(d),pD,10,pD,29,[0,a(I),[0,a(B),[0,a(e),0]]]],bhr=[0,a(Y),[0,a(fo),0]],bhE=[0,a(Y),[0,a(en),0]],bhT=[0,a(Y),[0,a(bI),0]],bh2=[0,a(Y),[0,a(bx),0]],aYq=[0,a(r),zb,14,zb,36,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aYl=[0,a(aq),[0,a(bI),[0,a(ag),0]]],aYm=[0,a(aq),[0,a(bI),0]],aYn=[0,a(aq),[0,a(bI),[0,a(ah),0]]],aYo=[0,a(aq),[0,a(bI),0]],aYp=a(q),aYr=[0,a(d),mR,10,mR,25,[0,a(Q),[0,a(B),[0,a(e),0]]]],aYk=[0,a(d),mR,10,mR,25,[0,a(Q),[0,a(B),[0,a(e),0]]]],aYh=[0,a(r),vU,14,vU,36,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aX8=[0,a(aq),[0,a(lD),[0,a(ag),0]]],aX9=[0,a(aq),[0,a(lD),0]],aX_=[0,a(aq),[0,a(lD),[0,a(ah),0]]],aX$=[0,a(aq),[0,a(lD),0]],aYa=[0,a(bl),[0,a(bN),[0,a(ag),0]]],aYb=[0,a(bl),[0,a(bN),0]],aYc=[0,a(bl),[0,a(bN),[0,a(ah),0]]],aYd=[0,a(bl),[0,a(bN),0]],aYe=a(lU),aYf=a(q),aYg=a(q),aYi=[0,a(d),oU,10,oU,40,[0,a(Q),[0,a(B),[0,a(e),0]]]],aX7=[0,a(d),oU,10,oU,40,[0,a(Q),[0,a(B),[0,a(e),0]]]],aX4=[0,a(r),Eq,14,Eq,36,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aX0=[0,a(aq),[0,a(en),[0,a(ag),0]]],aX1=[0,a(aq),[0,a(en),0]],aX2=[0,a(aq),[0,a(en),[0,a(ah),0]]],aX3=[0,a(aq),[0,a(en),0]],aX5=[0,a(d),m5,10,m5,19,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXZ=[0,a(d),m5,10,m5,19,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXW=[0,a(r),E_,14,E_,36,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXM=[0,a(aq),[0,a(bH),[0,a(ag),0]]],aXN=[0,a(aq),[0,a(bH),0]],aXO=[0,a(aq),[0,a(bH),[0,a(ah),0]]],aXP=[0,a(aq),[0,a(bH),0]],aXQ=[0,a(aq),[0,a(eL),[0,a(ag),0]]],aXR=[0,a(aq),[0,a(eL),0]],aXS=[0,a(aq),[0,a(eL),[0,a(ah),0]]],aXT=[0,a(aq),[0,a(eL),0]],aXU=a(q),aXV=a(q),aXX=[0,a(d),lI,10,lI,32,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXL=[0,a(d),lI,10,lI,32,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXI=[0,a(r),Fm,14,Fm,33,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXE=[0,a(r),x2,14,x2,47,[0,a(Dr),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXv=[0,a(aq),[0,a(dd),[0,a(ag),0]]],aXw=[0,a(aq),[0,a(dd),0]],aXx=[0,a(aq),[0,a(dd),[0,a(ah),0]]],aXy=[0,a(aq),[0,a(dd),0]],aXz=[0,a(aq),[0,a(dd),[0,a(ag),0]]],aXA=[0,a(aq),[0,a(dd),0]],aXB=[0,a(aq),[0,a(dd),[0,a(ah),0]]],aXC=[0,a(aq),[0,a(dd),0]],aXD=a(q),aXF=[0,a(d),k8,11,k8,44,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXu=[0,a(d),k8,11,k8,44,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXr=[0,a(r),Gn,14,Gn,27,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXn=[0,a(r),ye,14,ye,36,[0,a(Dr),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXo=[0,a(d),ol,11,ol,33,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXm=[0,a(d),ol,11,ol,33,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXj=[0,a(r),Ee,14,Ee,41,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXd=[0,a(r),kf,14,kf,70,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aW$=[0,a(r),jm,14,jm,69,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aW7=[0,a(r),hX,14,hX,75,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aW3=[0,a(r),zE,14,zE,36,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aW1=a(q),aW2=a(q),aW4=[0,a(d),fZ,10,fZ,32,[0,a(Q),[0,a(B),[0,a(e),0]]]],aW0=[0,a(d),fZ,10,fZ,32,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWW=[0,a(S),zT,6,zT,79,[0,a(fD),[0,a(fT),[0,a(O),0]]]],aWU=a("8708"),aWV=a("13559"),aWX=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWS=[0,a(S),4369,6,4370,38,[0,a(fD),[0,a(fT),[0,a(O),0]]]],aWQ=a("21362"),aWR=a("33196"),aWT=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWN=[0,a(S),4387,6,4388,24,[0,a(fD),[0,a(fT),[0,a(O),0]]]],aWL=a(AX),aWM=a(Bb),aWO=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWK=[0,a(S),4351,6,4352,46,[0,a(fD),[0,a(fT),[0,a(O),0]]]],aWI=a(AX),aWJ=a(Bb),aWP=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWG=[0,a(aQ),FD,6,FD,79,[0,a(fD),[0,a(bA),[0,a(aR),0]]]],aWE=a("8414"),aWF=a("13100"),aWH=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWC=[0,a(aQ),gR,6,cb,38,[0,a(fD),[0,a(bA),[0,a(aR),0]]]],aWA=a("20640"),aWB=a("32073"),aWD=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWx=[0,a(aQ),712,6,lv,24,[0,a(fD),[0,a(bA),[0,a(aR),0]]]],aWv=a(EH),aWw=a(AA),aWy=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWu=[0,a(aQ),674,6,675,46,[0,a(fD),[0,a(bA),[0,a(aR),0]]]],aWs=a(EH),aWt=a(AA),aWz=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWn=[0,a(S),Fr,14,Fr,41,[0,a(CD),[0,a(fT),[0,a(O),0]]]],aWj=a(q),aWk=a(fk),aWl=a(gw),aWm=a(fk),aWo=[0,a(d),fK,10,fK,37,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWh=[0,a(aQ),yt,14,yt,41,[0,a(CD),[0,a(bA),[0,a(aR),0]]]],aWd=a(q),aWe=a(fc),aWf=a(gK),aWg=a(fc),aWi=[0,a(d),fK,10,fK,37,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV9=[0,a(r),m4,14,m4,61,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aV_=[0,a(r),m4,14,m4,61,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aV$=[0,a(aq),[0,a(EU),0]],aV6=[0,a(d),kq,14,kq,49,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV2=[0,a(d),ke,14,ke,53,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVY=[0,a(d),jb,14,jb,44,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVU=[0,a(d),i5,14,i5,70,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVQ=[0,a(d),gP,14,gP,65,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVM=[0,a(d),hn,14,hn,67,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVI=[0,a(d),jr,14,jr,61,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVE=[0,a(d),ik,14,ik,59,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVy=[0,a(d),iT,14,iT,50,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVs=[0,a(r),jx,14,jx,64,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVo=[0,a(r),hA,14,hA,59,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVk=[0,a(r),j1,14,j1,55,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVg=[0,a(S),v_,14,v_,51,[0,a("Article 44"),[0,a(fT),[0,a(O),0]]]],aVf=a(rE),aVb=[0,a(S),Bc,14,Bc,41,[0,a("Article 41"),[0,a(fT),[0,a(O),0]]]],aVa=a(lk),aU8=[0,a(S),yR,14,yR,42,[0,a("Article 42"),[0,a(fT),[0,a(O),0]]]],aU7=a(iP),aU9=[0,a(d),oZ,11,oZ,39,[0,a(Q),[0,a(B),[0,a(e),0]]]],aU6=[0,a(d),oZ,11,oZ,39,[0,a(Q),[0,a(B),[0,a(e),0]]]],aU_=[0,a(aq),[0,a("montant_minimal_aide_d842_15"),0]],aVc=[0,a(d),jT,11,jT,38,[0,a(Q),[0,a(B),[0,a(e),0]]]],aU$=[0,a(d),jT,11,jT,38,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVd=[0,a(aq),[0,a("montant_forfaitaire_d842_15"),0]],aVh=[0,a(d),mX,11,mX,48,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVe=[0,a(d),mX,11,mX,48,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVi=[0,a(aq),[0,a("montant_minimal_d\xc3\xa9pense_nette_d842_17"),0]],aVl=[0,a(r),j1,14,j1,55,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVm=[0,a(aq),[0,a(Ca),0]],aVj=[0,a(r),j1,14,j1,55,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVp=[0,a(r),hA,14,hA,59,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVq=[0,a(aq),[0,a(og),0]],aVn=[0,a(r),hA,14,hA,59,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVt=[0,a(r),jx,14,jx,64,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVu=[0,a(aq),[0,a(o1),0]],aVr=[0,a(r),jx,14,jx,64,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aVv=[0,a(aq),[0,a(f6),[0,a(ly),0]]],aVw=[0,a(aq),[0,a(f6),[0,a(ly),0]]],aVz=[0,a(d),iT,14,iT,50,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVA=[0,a(aq),[0,a(lz),0]],aVx=[0,a(d),iT,14,iT,50,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVB=[0,a(aq),[0,a(eK),[0,a(bl),0]]],aVC=[0,a(aq),[0,a(eK),[0,a(bl),0]]],aVF=[0,a(d),ik,14,ik,59,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVG=[0,a(aq),[0,a(yG),0]],aVD=[0,a(d),ik,14,ik,59,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVJ=[0,a(d),jr,14,jr,61,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVK=[0,a(aq),[0,a(Aj),0]],aVH=[0,a(d),jr,14,jr,61,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVN=[0,a(d),hn,14,hn,67,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVO=[0,a(aq),[0,a(wz),0]],aVL=[0,a(d),hn,14,hn,67,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVR=[0,a(d),gP,14,gP,65,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVS=[0,a(aq),[0,a(F8),0]],aVP=[0,a(d),gP,14,gP,65,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVV=[0,a(d),i5,14,i5,70,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVW=[0,a(aq),[0,a(C2),0]],aVT=[0,a(d),i5,14,i5,70,[0,a(Q),[0,a(B),[0,a(e),0]]]],aVZ=[0,a(d),jb,14,jb,44,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV0=[0,a(aq),[0,a(Dg),0]],aVX=[0,a(d),jb,14,jb,44,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV3=[0,a(d),ke,14,ke,53,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV4=[0,a(aq),[0,a(FP),0]],aV1=[0,a(d),ke,14,ke,53,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV7=[0,a(d),kq,14,kq,49,[0,a(Q),[0,a(B),[0,a(e),0]]]],aV8=[0,a(aq),[0,a(w6),0]],aV5=[0,a(d),kq,14,kq,49,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWa=[0,a(aq),[0,a(oK),[0,a(aw),0]]],aWb=[0,a(aq),[0,a(oK),[0,a(aw),0]]],aWp=[0,a(d),fK,10,fK,37,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWc=[0,a(d),fK,10,fK,37,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWq=[0,a(aq),[0,a(wh),0]],aWY=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWr=[0,a(d),ci,10,ci,27,[0,a(Q),[0,a(B),[0,a(e),0]]]],aWZ=[0,a(aq),[0,a("\xc3\xa9quivalence_loyer"),0]],aW5=[0,a(aq),[0,a(bH),0]],aW8=[0,a(r),hX,14,hX,75,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aW9=[0,a(aq),[0,a(nJ),0]],aW6=[0,a(r),hX,14,hX,75,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXa=[0,a(r),jm,14,jm,69,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXb=[0,a(aq),[0,a(pl),0]],aW_=[0,a(r),jm,14,jm,69,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXe=[0,a(r),kf,14,kf,70,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXf=[0,a(aq),[0,a(nx),0]],aXc=[0,a(r),kf,14,kf,70,[0,a(bw),[0,a(ao),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aXg=[0,a(aq),[0,a(fG),[0,a(dK),0]]],aXh=[0,a(aq),[0,a(fG),[0,a(dK),0]]],aXk=[0,a(d),or,10,or,37,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXi=[0,a(d),or,10,or,37,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXl=[0,a(aq),[0,a(zn),0]],aXp=[0,a(aq),[0,a(dd),0]],aXs=[0,a(d),mQ,10,mQ,23,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXq=[0,a(d),mQ,10,mQ,23,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXt=[0,a(aq),[0,a("loyer_minimal"),0]],aXG=[0,a(aq),[0,a(eL),0]],aXJ=[0,a(d),m9,10,m9,29,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXH=[0,a(d),m9,10,m9,29,[0,a(Q),[0,a(B),[0,a(e),0]]]],aXK=[0,a(aq),[0,a(fo),0]],aXY=[0,a(aq),[0,a(en),0]],aX6=[0,a(aq),[0,a(lD),0]],aYj=[0,a(aq),[0,a(bI),0]],aYs=[0,a(aq),[0,a(bx),0]],aU2=[0,a(r),Cd,24,Cd,43,[0,a(F3),[0,a(ti),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aU1=a(q),aU3=[0,a(d),i$,10,i$,29,[0,a(N),[0,a(B),[0,a(e),0]]]],aU0=[0,a(d),ss,14,ss,33,[0,a(N),[0,a(B),[0,a(e),0]]]],aUV=[0,a(r),CA,24,CA,46,[0,a(F3),[0,a(ti),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aUW=[0,a(d),jg,10,jg,32,[0,a(N),[0,a(B),[0,a(e),0]]]],aUU=[0,a(d),r8,14,r8,36,[0,a(N),[0,a(B),[0,a(e),0]]]],aUQ=[0,a(aG),[0,a(bx),[0,a(ag),0]]],aUR=[0,a(aG),[0,a(bx),0]],aUS=[0,a(aG),[0,a(bx),[0,a(ah),0]]],aUT=[0,a(aG),[0,a(bx),0]],aUX=[0,a(d),jg,10,jg,32,[0,a(N),[0,a(B),[0,a(e),0]]]],aUP=[0,a(d),jg,10,jg,32,[0,a(N),[0,a(B),[0,a(e),0]]]],aUK=[0,a(d),gv,14,gv,55,[0,a(N),[0,a(B),[0,a(e),0]]]],aUG=[0,a(d),iq,14,iq,59,[0,a(N),[0,a(B),[0,a(e),0]]]],aUC=[0,a(d),gt,14,gt,43,[0,a(N),[0,a(B),[0,a(e),0]]]],aUy=[0,a(d),j5,14,j5,42,[0,a(N),[0,a(B),[0,a(e),0]]]],aUu=[0,a(d),r6,5,sL,63,[0,a(N),[0,a(B),[0,a(e),0]]]],aUq=[0,a(d),it,14,it,53,[0,a(N),[0,a(B),[0,a(e),0]]]],aUm=[0,a(d),jU,14,jU,37,[0,a(N),[0,a(B),[0,a(e),0]]]],aUi=[0,a(d),hv,14,hv,63,[0,a(N),[0,a(B),[0,a(e),0]]]],aUe=[0,a(d),gH,14,gH,58,[0,a(N),[0,a(B),[0,a(e),0]]]],aUa=[0,a(d),hp,14,hp,46,[0,a(N),[0,a(B),[0,a(e),0]]]],aT8=[0,a(d),iZ,14,iZ,78,[0,a(N),[0,a(B),[0,a(e),0]]]],aT4=[0,a(d),jV,14,jV,60,[0,a(N),[0,a(B),[0,a(e),0]]]],aT0=[0,a(d),iB,14,iB,48,[0,a(N),[0,a(B),[0,a(e),0]]]],aT1=[0,a(d),iB,14,iB,48,[0,a(N),[0,a(B),[0,a(e),0]]]],aT2=[0,a(bS),[0,a("calcul_apl_locatif.loyer_principal_base"),0]],aTZ=[0,a(d),iB,14,iB,48,[0,a(N),[0,a(B),[0,a(e),0]]]],aT5=[0,a(d),jV,14,jV,60,[0,a(N),[0,a(B),[0,a(e),0]]]],aT6=[0,a(bS),[0,a("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"),0]],aT3=[0,a(d),jV,14,jV,60,[0,a(N),[0,a(B),[0,a(e),0]]]],aT9=[0,a(d),iZ,14,iZ,78,[0,a(N),[0,a(B),[0,a(e),0]]]],aT_=[0,a(bS),[0,a("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),0]],aT7=[0,a(d),iZ,14,iZ,78,[0,a(N),[0,a(B),[0,a(e),0]]]],aUb=[0,a(d),hp,14,hp,46,[0,a(N),[0,a(B),[0,a(e),0]]]],aUc=[0,a(bS),[0,a("calcul_apl_locatif.date_courante"),0]],aT$=[0,a(d),hp,14,hp,46,[0,a(N),[0,a(B),[0,a(e),0]]]],aUf=[0,a(d),gH,14,gH,58,[0,a(N),[0,a(B),[0,a(e),0]]]],aUg=[0,a(bS),[0,a("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"),0]],aUd=[0,a(d),gH,14,gH,58,[0,a(N),[0,a(B),[0,a(e),0]]]],aUj=[0,a(d),hv,14,hv,63,[0,a(N),[0,a(B),[0,a(e),0]]]],aUk=[0,a(bS),[0,a("calcul_apl_locatif.situation_familiale_calcul_apl"),0]],aUh=[0,a(d),hv,14,hv,63,[0,a(N),[0,a(B),[0,a(e),0]]]],aUn=[0,a(d),jU,14,jU,37,[0,a(N),[0,a(B),[0,a(e),0]]]],aUo=[0,a(bS),[0,a("calcul_apl_locatif.zone"),0]],aUl=[0,a(d),jU,14,jU,37,[0,a(N),[0,a(B),[0,a(e),0]]]],aUr=[0,a(d),it,14,it,53,[0,a(N),[0,a(B),[0,a(e),0]]]],aUs=[0,a(bS),[0,a("calcul_apl_locatif.logement_est_chambre"),0]],aUp=[0,a(d),it,14,it,53,[0,a(N),[0,a(B),[0,a(e),0]]]],aUv=[0,a(d),r6,5,sL,63,[0,a(N),[0,a(B),[0,a(e),0]]]],aUw=[0,a(bS),[0,a("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),0]],aUt=[0,a(d),r6,5,sL,63,[0,a(N),[0,a(B),[0,a(e),0]]]],aUz=[0,a(d),j5,14,j5,42,[0,a(N),[0,a(B),[0,a(e),0]]]],aUA=[0,a(bS),[0,a("calcul_apl_locatif.type_aide"),0]],aUx=[0,a(d),j5,14,j5,42,[0,a(N),[0,a(B),[0,a(e),0]]]],aUD=[0,a(d),gt,14,gt,43,[0,a(N),[0,a(B),[0,a(e),0]]]],aUE=[0,a(bS),[0,a("calcul_apl_locatif.colocation"),0]],aUB=[0,a(d),gt,14,gt,43,[0,a(N),[0,a(B),[0,a(e),0]]]],aUH=[0,a(d),iq,14,iq,59,[0,a(N),[0,a(B),[0,a(e),0]]]],aUI=[0,a(bS),[0,a("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"),0]],aUF=[0,a(d),iq,14,iq,59,[0,a(N),[0,a(B),[0,a(e),0]]]],aUL=[0,a(d),gv,14,gv,55,[0,a(N),[0,a(B),[0,a(e),0]]]],aUM=[0,a(bS),[0,a("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"),0]],aUJ=[0,a(d),gv,14,gv,55,[0,a(N),[0,a(B),[0,a(e),0]]]],aUN=[0,a(bS),[0,a(FL),[0,a(aG),0]]],aUO=[0,a(bS),[0,a(FL),[0,a(aG),0]]],aUY=[0,a(bS),[0,a(bz),0]],aU4=[0,a(d),i$,10,i$,29,[0,a(N),[0,a(B),[0,a(e),0]]]],aUZ=[0,a(d),i$,10,i$,29,[0,a(N),[0,a(B),[0,a(e),0]]]],aU5=[0,a(bS),[0,a(fo),0]],aTT=[0,a(np),67,5,71,21,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],aTU=[0,a(bF),40,10,40,22,[0,a(bJ),0]],aTS=[0,a(np),56,5,57,78,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],aTV=[0,a(bF),40,10,40,22,[0,a(bJ),0]],aTW=[0,a(bF),40,10,40,22,[0,a(bJ),0]],aTR=[0,a(bF),40,10,40,22,[0,a(bJ),0]],aTX=[0,a(bF),40,10,40,22,[0,a(bJ),0]],aTQ=[0,a(bF),40,10,40,22,[0,a(bJ),0]],aTM=[0,a(np),77,5,81,24,[0,a(gx),[0,a(gu),[0,a(d_),[0,a(aB),[0,a(ab),[0,a(ad),0]]]]]]],aTN=[0,a(bF),41,10,41,29,[0,a(bJ),0]],aTL=[0,a(bF),41,10,41,29,[0,a(bJ),0]],aTO=[0,a(bF),41,10,41,29,[0,a(bJ),0]],aTK=[0,a(bF),41,10,41,29,[0,a(bJ),0]],aTG=[0,a(r2),62,18,62,41,[0,a(yp),[0,a(eW),[0,a(gE),[0,a(dT),[0,a(c6),[0,a(ad),0]]]]]]],aTE=a(pP),aTF=a(oY),aTH=[0,a(bF),42,11,42,27,[0,a(bJ),0]],aTD=[0,a(r2),31,14,31,30,[0,a(mU),[0,a(oQ),[0,a(d_),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],aTB=a(pP),aTC=a(oY),aTq=[0,0],aTs=[1,0],aTt=[2,0],aTu=[3,0],aTv=[4,0],aTw=[5,0],aTr=[0,a(np),cY,5,xT,30,[0,a(Dq),[0,a(zk),[0,a(le),[0,a(dT),[0,a(ab),[0,a(ad),0]]]]]]],aTx=[0,a(bF),44,10,44,33,[0,a(bJ),0]],aTp=[0,a(bF),44,10,44,33,[0,a(bJ),0]],aTj=[0,a(bF),51,14,51,28,[0,a(bJ),0]],aTf=[0,a(bF),52,14,52,32,[0,a(bJ),0]],aTb=[0,a(r2),21,14,21,26,[0,a(mU),[0,a(oQ),[0,a(d_),[0,a(aB),[0,a(c6),[0,a(ad),0]]]]]]],aTc=[0,a(bF),43,10,43,22,[0,a(bJ),0]],aTa=[0,a(bF),43,10,43,22,[0,a(bJ),0]],aTd=[0,a(cs),[0,a(zV),0]],aTg=[0,a(bF),52,14,52,32,[0,a(bJ),0]],aTh=[0,a(cs),[0,a(FO),0]],aTe=[0,a(bF),52,14,52,32,[0,a(bJ),0]],aTk=[0,a(bF),51,14,51,28,[0,a(bJ),0]],aTl=[0,a(cs),[0,a(Eg),0]],aTi=[0,a(bF),51,14,51,28,[0,a(bJ),0]],aTm=[0,a(cs),[0,a(f7),[0,a(hx),0]]],aTn=[0,a(cs),[0,a(f7),[0,a(hx),0]]],aTy=[0,a(bF),44,10,44,33,[0,a(bJ),0]],aTo=[0,a(bF),44,10,44,33,[0,a(bJ),0]],aTz=[0,a(cs),[0,a(wa),0]],aTI=[0,a(bF),42,11,42,27,[0,a(bJ),0]],aTA=[0,a(bF),42,11,42,27,[0,a(bJ),0]],aTJ=[0,a(cs),[0,a(A2),0]],aTP=[0,a(cs),[0,a(jC),0]],aTY=[0,a(cs),[0,a(dg),0]],aS7=[0,a(r),sT,14,sT,32,[0,a(nC),[0,a(ja),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aS5=a(cN),aS6=a(q),aS0=[0,a(r),d9,6,fp,35,[0,a("Article R822-20"),[0,a("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aS1=[0,a(d),km,10,km,37,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSZ=[0,a(r),pe,14,pe,41,[0,a(mZ),[0,a(m3),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSV=[0,a(r),GJ,14,GJ,32,[0,a("Article R822-8"),[0,a(ja),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSU=a(q),aSO=[0,a(r),i1,14,i1,65,[0,a(nC),[0,a(ja),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSK=[0,a(r),zO,14,zO,33,[0,a("Article R822-10"),[0,a(ja),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSB=a(q),aSC=a(q),aSH=a(X),aSI=a("90100"),aSJ=a("135000"),aSD=a(q),aSE=a(q),aSF=a(q),aSG=a(q),aSx=[0,a(r),i7,14,i7,62,[0,a(mZ),[0,a(m3),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSw=a(q),aSs=[0,a(d),f0,51,f0,57,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSo=[0,a(S),11,14,11,41,[0,a("Article 3"),[0,a(ys),[0,a(O),0]]]],aSn=a("9500"),aSj=[0,a(S),21,14,21,41,[0,a("Article 4"),[0,a(ys),[0,a(O),0]]]],aSi=a("258900"),aSe=[0,a(d),FG,46,FG,52,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSf=[0,a(d),j9,10,j9,15,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSd=[0,a(d),j9,10,j9,15,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSg=[0,a(dR),[0,a(DA),0]],aSk=[0,a(d),ho,11,ho,38,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSh=[0,a(d),ho,11,ho,38,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSl=[0,a(dR),[0,a("montant_forfaitaire_r_822_8"),0]],aSp=[0,a(d),nr,11,nr,38,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSm=[0,a(d),nr,11,nr,38,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSq=[0,a(dR),[0,a("montant_forfaitaire_r_822_7"),0]],aSt=[0,a(d),f0,11,f0,42,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSr=[0,a(d),f0,11,f0,42,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSu=[0,a(dR),[0,a("ressources_forfaitaires_r822_20"),0]],aSy=[0,a(d),m2,11,m2,59,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSv=[0,a(d),m2,11,m2,59,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSz=[0,a(dR),[0,a("ressources_personnes_vivant_habituellement_foyer"),0]],aSL=[0,a(d),oT,11,oT,30,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSA=[0,a(d),oT,11,oT,30,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSM=[0,a(dR),[0,a("abattement_r_822_10"),0]],aSP=[0,a(r),i1,14,i1,65,[0,a(nC),[0,a(ja),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSQ=[0,a(dR),[0,a(Ey),0]],aSN=[0,a(r),i1,14,i1,65,[0,a(nC),[0,a(ja),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aSR=[0,a(dR),[0,a(nR),[0,a(f4),0]]],aSS=[0,a(dR),[0,a(nR),[0,a(f4),0]]],aSW=[0,a(d),oB,11,oB,29,[0,a(cd),[0,a(j),[0,a(e),0]]]],aST=[0,a(d),oB,11,oB,29,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSX=[0,a(dR),[0,a("abattement_r_822_8"),0]],aS2=[0,a(d),km,10,km,37,[0,a(cd),[0,a(j),[0,a(e),0]]]],aSY=[0,a(d),km,10,km,37,[0,a(cd),[0,a(j),[0,a(e),0]]]],aS3=[0,a(dR),[0,a("ressources_prises_en_compte"),0]],aS8=[0,a(d),ns,11,ns,29,[0,a(cd),[0,a(j),[0,a(e),0]]]],aS4=[0,a(d),ns,11,ns,29,[0,a(cd),[0,a(j),[0,a(e),0]]]],aS9=[0,a(dR),[0,a("abattement_r_822_7"),0]],aS_=[0,a(r),nw,13,DY,74,[0,a(mZ),[0,a(m3),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aS$=[0,a(r),nw,13,DY,74,[0,a(mZ),[0,a(m3),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aR5=[0,a(d),rC,14,rC,56,[0,a(Z),[0,a(j),[0,a(e),0]]]],aR1=[0,a(d),CB,14,CB,63,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRZ=a(b3),aR0=a(b3),aRV=[0,a(r),wA,14,wA,49,[0,a(ll),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aRR=[0,a(aW),[0,a(lL),[0,a(ag),0]]],aRS=[0,a(aW),[0,a(lL),0]],aRT=[0,a(aW),[0,a(lL),[0,a(ah),0]]],aRU=[0,a(aW),[0,a(lL),0]],aRL=a(DX),aRK=[0,a(r),1202,4,1208,49,[0,a(ll),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aRM=[0,a(d),dm,11,dm,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRF=[0,a(aW),[0,a(ff),[0,a(ag),0]]],aRG=[0,a(aW),[0,a(ff),0]],aRH=[0,a(aW),[0,a(ff),[0,a(ah),0]]],aRI=[0,a(aW),[0,a(ff),0]],aRJ=[0,a(r),GI,5,GI,44,[0,a(ll),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aRN=[0,a(d),dm,11,dm,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRD=[0,a(r),1138,5,gs,44,[0,a(ll),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aRE=[0,a(d),dm,11,dm,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRC=[0,a(d),dm,11,dm,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRO=[0,a(d),dm,11,dm,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRB=[0,a(d),dm,11,dm,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRw=[0,0],aRx=a(DX),aRv=[0,a(r),1162,5,1178,10,[0,a(ll),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aRy=[0,a(d),fl,10,fl,28,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRu=[0,a(d),fl,10,fl,28,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRz=[0,a(d),fl,10,fl,28,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRt=[0,a(d),fl,10,fl,28,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRp=[0,a(d),A8,5,vX,25,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRq=[0,a(d),fC,10,fC,21,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRo=[0,a(d),fC,10,fC,21,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRk=[0,a(c8),GN,14,GN,31,[0,a("Article L351-8"),[0,a("Section 5 : Taux et montant de la pension"),[0,a("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"),[0,a("Titre V : Assurance vieillesse - Assurance veuvage"),[0,a("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"),[0,a(ab),[0,a(ad),0]]]]]]]],aRe=[0,a(aH),72,5,73,52,[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]],aRf=[0,a(d),c4,11,c4,31,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRd=[0,a(aH),65,5,68,52,[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]],aRg=[0,a(d),c4,11,c4,31,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRc=[0,a(d),c4,11,c4,31,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQ7=[0,a(aH),n4,18,n4,75,[0,a(nz),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQ6=a(q),aQ8=[0,a(d),eb,11,eb,36,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQ3=[4,0],aQ4=[5,0],aQ5=[0,a(aH),rB,18,sj,45,[0,a(nz),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQ2=a(q),aQ9=[0,a(d),eb,11,eb,36,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQ1=[0,a(r),fZ,5,fZ,59,[0,a(FA),[0,a(EV),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aQ_=[0,a(d),eb,11,eb,36,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQ0=[0,a(aH),ht,33,ht,58,[0,a(nz),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQZ=a(q),aQV=[0,a(c8),cu,14,cu,32,[0,a(ln),[0,a(k9),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(j4),[0,a(ab),[0,a(ad),0]]]]]]]]]],aQQ=[0,a(aH),Gv,18,Gv,44,[0,a("Article L822-10"),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQR=[0,a(d),fn,11,fn,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQP=[0,a(d),fn,11,fn,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQI=a(b3),aQH=a(b3),aQG=[0,a(aH),171,5,sv,66,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQJ=[0,a(d),dV,11,dV,45,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQF=[0,a(aH),156,5,158,30,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQK=[0,a(d),dV,11,dV,45,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQE=[0,a(aH),cu,5,xT,33,[0,a(GG),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQL=[0,a(d),dV,11,dV,45,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQD=[0,a(d),dV,11,dV,45,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQx=[0,a(aH),203,5,208,39,[0,a(Eu),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQy=[0,a(d),d4,11,d4,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQw=[0,a(aH),197,5,198,34,[0,a(Eu),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aQz=[0,a(d),d4,11,d4,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQv=[0,a(d),d4,11,d4,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQq=[0,a(c8),329,5,A8,35,[0,a(sN),[0,a(su),[0,a(sU),[0,a(rH),[0,a(sg),[0,a(a$),[0,a(ad),0]]]]]]]],aQp=a("999840"),aQr=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQn=[0,a(c8),rC,5,335,35,[0,a(sN),[0,a(su),[0,a(sU),[0,a(rH),[0,a(sg),[0,a(a$),[0,a(ad),0]]]]]]]],aQm=a("1041840"),aQo=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQk=[0,a(c8),339,5,340,35,[0,a(sN),[0,a(su),[0,a(sU),[0,a(rH),[0,a(sg),[0,a(a$),[0,a(ad),0]]]]]]]],aQj=a("1083840"),aQl=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQh=[0,a(fB),60,5,61,34,[0,a('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'),[0,a(E$),0]]],aQg=a("1100144"),aQi=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQe=[0,a(fB),93,5,94,34,[0,a('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'),[0,a(E$),0]]],aQd=a("1088175"),aQf=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aP_=[0,a(aH),dy,5,iM,67,[0,a(GG),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aP$=[0,a(d),eH,11,eH,32,[0,a(Z),[0,a(j),[0,a(e),0]]]],aP9=[0,a(d),eH,11,eH,32,[0,a(Z),[0,a(j),[0,a(e),0]]]],aP5=[0,a(aH),nd,14,nd,40,[0,a(nz),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aPZ=[0,a(c8),ev,14,ev,61,[0,a(ln),[0,a(k9),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(j4),[0,a(ab),[0,a(ad),0]]]]]]]]]],aPT=[0,a(aH),46,5,46,41,[0,a("Article L821-2"),[0,a(AL),[0,a(FF),[0,a(y7),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]]]],aPU=[0,a(d),dO,12,dO,51,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPS=[0,a(d),dO,12,dO,51,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPV=[0,a(d),dO,12,dO,51,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPw=a(z),aPI=a(X),aPJ=a(X),aPK=a(X),aPL=a(z),aPM=a(X),aPx=a(rx),aPy=a(rx),aPD=a(mY),aPE=a(mY),aPF=a(mY),aPG=a(rx),aPH=a(mY),aPz=a(Dp),aPA=a("8"),aPB=a(Dp),aPC=[0,a(r),1035,5,gL,65,[0,a("Article R822-25"),[0,a("Section 3 : Conditions relatives au logement"),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aPN=[0,a(d),ed,12,ed,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPv=[0,a(d),ed,12,ed,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPO=[0,a(d),ed,12,ed,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPq=[0,a(aH),FJ,18,FJ,67,[0,a("Article L822-8"),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aPr=[0,a(d),fF,11,fF,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPp=[0,a(d),fF,11,fF,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPk=[0,a(aH),CP,18,CP,61,[0,a("Article L822-9"),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aPl=[0,a(d),eD,11,eD,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPj=[0,a(d),eD,11,eD,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPf=[0,a(aH),eX,14,eX,43,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aPb=[0,a(r),jT,14,jT,37,[0,a(FA),[0,a(EV),[0,a(dz),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aPa=a("3000000"),aO8=[0,a(r),ba,14,ba,41,[0,a(Gb),[0,a(B8),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aO7=a(Es),aO3=[0,a(r),bf,14,bf,42,[0,a(Gb),[0,a(B8),[0,a(be),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aO2=a(Es),aOY=[0,a(d),iw,11,iw,48,[0,a(Z),[0,a(j),[0,a(e),0]]]],aOU=[0,a(d),h0,11,h0,25,[0,a(Z),[0,a(j),[0,a(e),0]]]],aOV=[0,a(d),h0,11,h0,25,[0,a(Z),[0,a(j),[0,a(e),0]]]],aOT=[0,a(d),h0,11,h0,25,[0,a(Z),[0,a(j),[0,a(e),0]]]],aOW=[0,a(aW),[0,a("condition_pr\xc3\xaat"),0]],aOZ=[0,a(d),iw,11,iw,48,[0,a(Z),[0,a(j),[0,a(e),0]]]],aOX=[0,a(d),iw,11,iw,48,[0,a(Z),[0,a(j),[0,a(e),0]]]],aO0=[0,a(aW),[0,a("condition_peuplement_logement_l822_10"),0]],aO4=[0,a(d),pt,11,pt,39,[0,a(Z),[0,a(j),[0,a(e),0]]]],aO1=[0,a(d),pt,11,pt,39,[0,a(Z),[0,a(j),[0,a(e),0]]]],aO5=[0,a(aW),[0,a("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"),0]],aO9=[0,a(d),oH,11,oH,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aO6=[0,a(d),oH,11,oH,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aO_=[0,a(aW),[0,a("seuil_l822_3_parts_usufruit"),0]],aPc=[0,a(d),kt,11,kt,34,[0,a(Z),[0,a(j),[0,a(e),0]]]],aO$=[0,a(d),kt,11,kt,34,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPd=[0,a(aW),[0,a("seuil_l822_5_patrimoine"),0]],aPg=[0,a(d),m1,11,m1,40,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPe=[0,a(d),m1,11,m1,40,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPh=[0,a(aW),[0,a("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"),0]],aPm=[0,a(d),eD,11,eD,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPi=[0,a(d),eD,11,eD,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPn=[0,a(aW),[0,a("condition_non_ouverture_l822_9_decence_logement"),0]],aPs=[0,a(d),fF,11,fF,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPo=[0,a(d),fF,11,fF,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPt=[0,a(aW),[0,a("condition_non_ouverture_l822_8"),0]],aPP=[0,a(d),ed,12,ed,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPu=[0,a(d),ed,12,ed,38,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPQ=[0,a(aW),[0,a("condition_logement_surface"),0]],aPW=[0,a(d),dO,12,dO,51,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPR=[0,a(d),dO,12,dO,51,[0,a(Z),[0,a(j),[0,a(e),0]]]],aPX=[0,a(aW),[0,a("condition_logement_r\xc3\xa9sidence_principale"),0]],aP0=[0,a(c8),ev,14,ev,61,[0,a(ln),[0,a(k9),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(j4),[0,a(ab),[0,a(ad),0]]]]]]]]]],aP1=[0,a(aW),[0,a("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"),0]],aPY=[0,a(c8),ev,14,ev,61,[0,a(ln),[0,a(k9),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(j4),[0,a(ab),[0,a(ad),0]]]]]]]]]],aP2=[0,a(aW),[0,a(Dl),[0,a(sE),0]]],aP3=[0,a(aW),[0,a(Dl),[0,a(sE),0]]],aP6=[0,a(d),ne,11,ne,37,[0,a(Z),[0,a(j),[0,a(e),0]]]],aP4=[0,a(d),ne,11,ne,37,[0,a(Z),[0,a(j),[0,a(e),0]]]],aP7=[0,a(aW),[0,a("patrimoine_total_demandeur"),0]],aQa=[0,a(d),eH,11,eH,32,[0,a(Z),[0,a(j),[0,a(e),0]]]],aP8=[0,a(d),eH,11,eH,32,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQb=[0,a(aW),[0,a("condition_nationalit\xc3\xa9"),0]],aQs=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQc=[0,a(d),df,11,df,41,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQt=[0,a(aW),[0,a("plafond_individuel_l815_9_s\xc3\xa9cu"),0]],aQA=[0,a(d),d4,11,d4,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQu=[0,a(d),d4,11,d4,44,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQB=[0,a(aW),[0,a("condition_logement_location_tiers"),0]],aQM=[0,a(d),dV,11,dV,45,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQC=[0,a(d),dV,11,dV,45,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQN=[0,a(aW),[0,a("condition_logement_mode_occupation"),0]],aQS=[0,a(d),fn,11,fn,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQO=[0,a(d),fn,11,fn,58,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQT=[0,a(aW),[0,a("condition_ouverture_l822_10_peuplement_logement"),0]],aQW=[0,a(d),nk,11,nk,29,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQU=[0,a(d),nk,11,nk,29,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQX=[0,a(aW),[0,a("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]],aQ$=[0,a(d),eb,11,eb,36,[0,a(Z),[0,a(j),[0,a(e),0]]]],aQY=[0,a(d),eb,11,eb,36,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRa=[0,a(aW),[0,a("patrimoine_pris_en_compte"),0]],aRh=[0,a(d),c4,11,c4,31,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRb=[0,a(d),c4,11,c4,31,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRi=[0,a(aW),[0,a(BO),0]],aRl=[0,a(d),iH,11,iH,28,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRj=[0,a(d),iH,11,iH,28,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRm=[0,a(aW),[0,a("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]],aRr=[0,a(d),fC,10,fC,21,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRn=[0,a(d),fC,10,fC,21,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRs=[0,a(aW),[0,a(o_),0]],aRA=[0,a(aW),[0,a(ff),0]],aRP=[0,a(aW),[0,a(lL),0]],aRW=[0,a(d),lT,11,lT,46,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRQ=[0,a(d),lT,11,lT,46,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRX=[0,a(aW),[0,a("personnes_\xc3\xa0_charge_prises_en_compte"),0]],aR2=[0,a(d),px,10,px,59,[0,a(Z),[0,a(j),[0,a(e),0]]]],aRY=[0,a(d),px,10,px,59,[0,a(Z),[0,a(j),[0,a(e),0]]]],aR3=[0,a(aW),[0,a(lC),0]],aR6=[0,a(d),o3,10,o3,52,[0,a(Z),[0,a(j),[0,a(e),0]]]],aR4=[0,a(d),o3,10,o3,52,[0,a(Z),[0,a(j),[0,a(e),0]]]],aR7=[0,a(aW),[0,a(sZ),0]],aR9=a(ru),aR8=[0,a(aH),nn,13,nn,48,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aSb=[0,a(aH),nn,13,nn,48,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aR$=a(ru),aR_=[0,a(aH),kx,13,kx,49,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aSa=[0,a(aH),kx,13,kx,49,[0,a(gq),[0,a(be),[0,a(x),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],aOQ=[0,a(r),zM,14,zM,36,[0,a(ju),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aOL=[0,a(an),[0,a(bI),[0,a(ag),0]]],aOM=[0,a(an),[0,a(bI),0]],aON=[0,a(an),[0,a(bI),[0,a(ah),0]]],aOO=[0,a(an),[0,a(bI),0]],aOP=a(q),aOR=[0,a(d),hz,10,hz,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOK=[0,a(d),hz,10,hz,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOH=[0,a(r),DW,14,DW,33,[0,a(ju),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aOF=a(q),aOG=a(q),aOB=[0,a(r),wv,14,wv,36,[0,a(ju),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aOq=[0,a(an),[0,a(eP),[0,a(ag),0]]],aOr=[0,a(an),[0,a(eP),0]],aOs=[0,a(an),[0,a(eP),[0,a(ah),0]]],aOt=[0,a(an),[0,a(eP),0]],aOu=[0,a(bl),[0,a(bN),[0,a(ag),0]]],aOv=[0,a(bl),[0,a(bN),0]],aOw=[0,a(bl),[0,a(bN),[0,a(ah),0]]],aOx=[0,a(bl),[0,a(bN),0]],aOy=a(lU),aOz=a(q),aOA=a(q),aOC=[0,a(d),nX,10,nX,40,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOp=[0,a(d),nX,10,nX,40,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOm=[0,a(r),pQ,14,pQ,49,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aOk=a(hh),aOl=a(hh),aOg=[0,a(r),B1,14,B1,33,[0,a(ju),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aOc=[0,a(r),CO,14,CO,36,[0,a(ju),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aN4=[0,a(an),[0,a(bH),[0,a(ag),0]]],aN5=[0,a(an),[0,a(bH),0]],aN6=[0,a(an),[0,a(bH),[0,a(ah),0]]],aN7=[0,a(an),[0,a(bH),0]],aN8=[0,a(an),[0,a(lM),[0,a(ag),0]]],aN9=[0,a(an),[0,a(lM),0]],aN_=[0,a(an),[0,a(lM),[0,a(ah),0]]],aN$=[0,a(an),[0,a(lM),0]],aOa=a(q),aOb=a(q),aOd=[0,a(d),o2,10,o2,20,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aN3=[0,a(d),o2,10,o2,20,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aN0=[0,a(r),AQ,14,AQ,49,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNX=a(c5),aNY=a(c5),aNZ=a(mW),aNS=[0,a(r),3618,5,3630,77,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNQ=a(cN),aNR=a(b3),aNT=[0,a(d),fS,10,fS,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNO=[0,a(r),x5,5,x5,75,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNP=[0,a(d),fS,10,fS,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNH=[0,a(aQ),v8,14,v8,42,[0,a(jY),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aNG=a(de),aNI=[0,a(d),eC,10,eC,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNF=[0,a(aQ),Ae,14,Ae,42,[0,a(jY),[0,a(bA),[0,a(aR),0]]]],aNE=a(de),aNJ=[0,a(d),eC,10,eC,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aND=[0,a(S),A_,14,A_,42,[0,a(jY),[0,a(aJ),[0,a(O),0]]]],aNC=a(de),aNK=[0,a(d),eC,10,eC,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNy=[0,a(r),Er,14,Er,55,[0,a(sG),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNt=[0,a(an),[0,a(lx),[0,a(ag),0]]],aNu=[0,a(an),[0,a(lx),0]],aNv=[0,a(an),[0,a(lx),[0,a(ah),0]]],aNw=[0,a(an),[0,a(lx),0]],aNx=a(q),aNz=[0,a(d),n2,11,n2,52,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNs=[0,a(d),n2,11,n2,52,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNp=[0,a(r),Eo,14,Eo,49,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNo=a(hh),aNi=[0,a(r),iG,14,iG,70,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNe=[0,a(r),ij,14,ij,69,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNa=[0,a(r),jD,14,jD,75,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aM7=[0,a(r),wl,5,wl,44,[0,a(BW),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aMZ=[0,a(an),[0,a(dx),[0,a(ag),0]]],aM0=[0,a(an),[0,a(dx),0]],aM1=[0,a(an),[0,a(dx),[0,a(ah),0]]],aM2=[0,a(an),[0,a(dx),0]],aM3=[0,a(an),[0,a(dx),[0,a(ag),0]]],aM4=[0,a(an),[0,a(dx),0]],aM5=[0,a(an),[0,a(dx),[0,a(ah),0]]],aM6=[0,a(an),[0,a(dx),0]],aM8=[0,a(d),ic,10,ic,14,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMY=[0,a(r),Ak,14,Ak,42,[0,a(BW),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aMU=[0,a(an),[0,a(dx),[0,a(ag),0]]],aMV=[0,a(an),[0,a(dx),0]],aMW=[0,a(an),[0,a(dx),[0,a(ah),0]]],aMX=[0,a(an),[0,a(dx),0]],aMP=[0,a(r),BT,5,BT,41,[0,a(sG),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aMQ=[0,a(d),kd,11,kd,41,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMO=[0,a(r),B4,14,B4,44,[0,a(sG),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aMR=[0,a(d),kd,11,kd,41,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMN=[0,a(d),kd,11,kd,41,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMK=[0,a(r),E6,14,E6,36,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aMF=[0,a(S),616,5,gV,33,[0,a(pZ),[0,a(aJ),[0,a(O),0]]]],aMn=a(q),aMo=a(xY),aMp=a(wG),aMq=a(z),aMr=a(GL),aMs=a(zB),aMt=a(q),aMu=a(Bl),aMv=a(E4),aMw=a(z),aMx=a(w2),aMy=a(AV),aMz=a(q),aMA=a(z4),aMB=a(Ft),aMC=a(z),aMD=a("35600"),aME=a(nh),aMG=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMl=[0,a(S),705,5,707,33,[0,a(pZ),[0,a(aJ),[0,a(O),0]]]],aL5=a(q),aL6=a(sC),aL7=a("220000"),aL8=a(z),aL9=a("38000"),aL_=a("260000"),aL$=a(q),aMa=a("164200"),aMb=a(z_),aMc=a(z),aMd=a(Gz),aMe=a("231200"),aMf=a(q),aMg=a("153200"),aMh=a("183700"),aMi=a(z),aMj=a(pp),aMk=a("214200"),aMm=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aL3=[0,a(S),748,5,750,33,[0,a(pZ),[0,a(aJ),[0,a(O),0]]]],aLL=a(q),aLM=a("148100"),aLN=a("178700"),aLO=a(z),aLP=a("30600"),aLQ=a("209300"),aLR=a(q),aLS=a(B3),aLT=a("158900"),aLU=a(z),aLV=a("26900"),aLW=a(za),aLX=a(q),aLY=a("123300"),aLZ=a("147900"),aL0=a(z),aL1=a("24600"),aL2=a(EC),aL4=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aLJ=[0,a(S),gH,5,802,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aLr=a(q),aLs=a(xY),aLt=a(wG),aLu=a(z),aLv=a(GL),aLw=a(zB),aLx=a(q),aLy=a(Bl),aLz=a(E4),aLA=a(z),aLB=a(w2),aLC=a(AV),aLD=a(q),aLE=a(z4),aLF=a(Ft),aLG=a(z),aLH=a("34600"),aLI=a(nh),aLK=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aLo=[0,a(S),st,5,lJ,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aK8=a(q),aK9=a(zf),aK_=a(sF),aK$=a(z),aLa=a(GM),aLb=a(CX),aLc=a(q),aLd=a(Fi),aLe=a(r4),aLf=a(z),aLg=a(pp),aLh=a(A7),aLi=a(q),aLj=a(Ev),aLk=a(FZ),aLl=a(z),aLm=a(D6),aLn=a(yO),aLp=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aK7=[0,a(S),660,5,663,33,[0,a(pZ),[0,a(aJ),[0,a(O),0]]]],aKP=a(q),aKQ=a(zf),aKR=a(sF),aKS=a(z),aKT=a(GM),aKU=a(CX),aKV=a(q),aKW=a(Fi),aKX=a(r4),aKY=a(z),aKZ=a(pp),aK0=a(A7),aK1=a(q),aK2=a(Ev),aK3=a(FZ),aK4=a(z),aK5=a(D6),aK6=a(yO),aLq=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aKN=[0,a(S),gN,5,gD,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aKH=a(q),aKI=a("86900"),aKJ=a("97100"),aKK=a(z),aKL=a("10200"),aKM=a("107300"),aKO=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aKF=[0,a(S),922,5,k8,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aKn=a(q),aKo=a("198100"),aKp=a("239000"),aKq=a(z),aKr=a("40900"),aKs=a("279900"),aKt=a(q),aKu=a("176800"),aKv=a("212800"),aKw=a(z),aKx=a("36000"),aKy=a("248800"),aKz=a(q),aKA=a("165000"),aKB=a("197900"),aKC=a(z),aKD=a("32900"),aKE=a("230800"),aKG=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aKl=[0,a(S),966,5,969,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aJ5=a(q),aJ6=a("159500"),aJ7=a(xr),aJ8=a(z),aJ9=a("33000"),aJ_=a(zs),aJ$=a(q),aKa=a("142200"),aKb=a("171200"),aKc=a(z),aKd=a("29000"),aKe=a("200200"),aKf=a(q),aKg=a("132800"),aKh=a("159300"),aKi=a(z),aKj=a("26500"),aKk=a(za),aKm=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aJ3=[0,a(S),1011,5,1014,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aJL=a(q),aJM=a("200100"),aJN=a("141400"),aJO=a(z),aJP=a("41300"),aJQ=a("182700"),aJR=a(q),aJS=a("178600"),aJT=a("215000"),aJU=a(z),aJV=a("36400"),aJW=a("251400"),aJX=a(q),aJY=a("166700"),aJZ=a(rU),aJ0=a(z),aJ1=a("33200"),aJ2=a("233100"),aJ4=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aJJ=[0,a(S),k5,5,1058,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aJr=a(q),aJs=a("161100"),aJt=a("194400"),aJu=a(z),aJv=a("33300"),aJw=a("227700"),aJx=a(q),aJy=a("143600"),aJz=a("172900"),aJA=a(z),aJB=a("29300"),aJC=a("202200"),aJD=a(q),aJE=a("134100"),aJF=a("160900"),aJG=a(z),aJH=a("26800"),aJI=a("187700"),aJK=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aJp=[0,a(S),1102,5,1105,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aI9=a(q),aI_=a(sF),aI$=a("244300"),aJa=a(z),aJb=a("41800"),aJc=a("286100"),aJd=a(q),aJe=a("180700"),aJf=a("217500"),aJg=a(z),aJh=a("36800"),aJi=a("254300"),aJj=a(q),aJk=a("168700"),aJl=a("202300"),aJm=a(z),aJn=a("33600"),aJo=a("235900"),aJq=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aI7=[0,a(S),1145,5,1148,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aIP=a(q),aIQ=a("30871"),aIR=a("37243"),aIS=a(z),aIT=a("6372"),aIU=a("43615"),aIV=a(q),aIW=a("27548"),aIX=a("33148"),aIY=a(z),aIZ=a("5610"),aI0=a("38768"),aI1=a(q),aI2=a("25718"),aI3=a("30840"),aI4=a(z),aI5=a("5122"),aI6=a("35962"),aI8=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aIN=[0,a(S),1191,5,1194,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aIv=a(q),aIw=a(yD),aIx=a("196700"),aIy=a(z),aIz=a("33700"),aIA=a("230400"),aIB=a(q),aIC=a("145300"),aID=a("175000"),aIE=a(z),aIF=a("29700"),aIG=a(DK),aIH=a(q),aII=a("135700"),aIJ=a("162800"),aIK=a(z),aIL=a("27100"),aIM=a("189900"),aIO=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aIt=[0,a(S),1234,5,1237,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aIb=a(q),aIc=a("24849"),aId=a("29987"),aIe=a(z),aIf=a("5138"),aIg=a("35125"),aIh=a(q),aIi=a("22151"),aIj=a("26679"),aIk=a(z),aIl=a("4528"),aIm=a("31207"),aIn=a(q),aIo=a("20687"),aIp=a("24818"),aIq=a(z),aIr=a("4131"),aIs=a("28949"),aIu=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aH$=[0,a(S),1279,5,1282,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aHT=a(q),aHU=a("31241"),aHV=a("37689"),aHW=a(z),aHX=a("6448"),aHY=a("44137"),aHZ=a(q),aH0=a("27879"),aH1=a("33556"),aH2=a(z),aH3=a("5677"),aH4=a("39233"),aH5=a(q),aH6=a("26027"),aH7=a("31210"),aH8=a(z),aH9=a("5183"),aH_=a("36393"),aIa=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aHR=[0,a(S),1323,5,1326,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aHz=a(q),aHA=a("25147"),aHB=a("30347"),aHC=a(z),aHD=a("5200"),aHE=a("35547"),aHF=a(q),aHG=a("22417"),aHH=a("26999"),aHI=a(z),aHJ=a("4582"),aHK=a("31581"),aHL=a(q),aHM=a("20935"),aHN=a(CY),aHO=a(z),aHP=a("4181"),aHQ=a("29297"),aHS=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aHx=[0,a(S),1368,5,1371,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aHf=a(q),aHg=a("31616"),aHh=a("38141"),aHi=a(z),aHj=a("6525"),aHk=a("44666"),aHl=a(q),aHm=a("28214"),aHn=a("33959"),aHo=a(z),aHp=a("5745"),aHq=a("39704"),aHr=a(q),aHs=a("26339"),aHt=a("31584"),aHu=a(z),aHv=a("5245"),aHw=a("36829"),aHy=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aHd=[0,a(S),1412,5,1415,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aGX=a(q),aGY=a("25449"),aGZ=a("30711"),aG0=a(z),aG1=a("5262"),aG2=a("35973"),aG3=a(q),aG4=a("22686"),aG5=a("27323"),aG6=a(z),aG7=a("4637"),aG8=a("31960"),aG9=a(q),aG_=a("21186"),aG$=a("25417"),aHa=a(z),aHb=a("4231"),aHc=a("29648"),aHe=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aGV=[0,a(S),1457,5,gn,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aGD=a(q),aGE=a("32185"),aGF=a("38827"),aGG=a(z),aGH=a("6642"),aGI=a("45469"),aGJ=a(q),aGK=a("28722"),aGL=a(yY),aGM=a(z),aGN=a("5848"),aGO=a("40418"),aGP=a(q),aGQ=a("26813"),aGR=a("32152"),aGS=a(z),aGT=a("5339"),aGU=a("37491"),aGW=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aGB=[0,a(S),1501,5,gQ,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aGj=a(q),aGk=a("25907"),aGl=a(yl),aGm=a(z),aGn=a("5357"),aGo=a("36621"),aGp=a(q),aGq=a("23094"),aGr=a("27814"),aGs=a(z),aGt=a("4720"),aGu=a("32534"),aGv=a(q),aGw=a("21567"),aGx=a("25874"),aGy=a(z),aGz=a("4307"),aGA=a("30181"),aGC=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aGh=[0,a(S),1546,5,1549,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aF1=a(q),aF2=a("33086"),aF3=a("39914"),aF4=a(z),aF5=a("6828"),aF6=a("46742"),aF7=a(q),aF8=a("29526"),aF9=a("35538"),aF_=a(z),aF$=a("6012"),aGa=a("41550"),aGb=a(q),aGc=a("27564"),aGd=a("33052"),aGe=a(z),aGf=a("5488"),aGg=a("38541"),aGi=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aFZ=[0,a(S),1590,5,1593,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aFH=a(q),aFI=a("26632"),aFJ=a("32139"),aFK=a(z),aFL=a("5507"),aFM=a("37646"),aFN=a(q),aFO=a("23741"),aFP=a("28593"),aFQ=a(z),aFR=a("4852"),aFS=a("33445"),aFT=a(q),aFU=a("22171"),aFV=a("36598"),aFW=a(z),aFX=a("4428"),aFY=a("31026"),aF0=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aFF=[0,a(S),1635,5,gC,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aFn=a(q),aFo=a("33999"),aFp=a("41016"),aFq=a(z),aFr=a("7016"),aFs=a("48032"),aFt=a(q),aFu=a("30341"),aFv=a("36519"),aFw=a(z),aFx=a("6178"),aFy=a("42697"),aFz=a(q),aFA=a("28325"),aFB=a("33964"),aFC=a(z),aFD=a("5639"),aFE=a("39605"),aFG=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aFl=[0,a(S),gO,5,1682,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aE5=a(q),aE6=a("27367"),aE7=a("33026"),aE8=a(z),aE9=a("5659"),aE_=a("38685"),aE$=a(q),aFa=a("24396"),aFb=a("29382"),aFc=a(z),aFd=a(CK),aFe=a("34368"),aFf=a(q),aFg=a("22783"),aFh=a("27332"),aFi=a(z),aFj=a("4550"),aFk=a("31882"),aFm=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aE3=[0,a(S),1724,5,1727,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aEL=a(q),aEM=a("35002"),aEN=a("42226"),aEO=a(z),aEP=a("7223"),aEQ=a("49449"),aER=a(q),aES=a("31236"),aET=a("37596"),aEU=a(z),aEV=a("6360"),aEW=a("43957"),aEX=a(q),aEY=a("29161"),aEZ=a("34966"),aE0=a(z),aE1=a("5805"),aE2=a("40773"),aE4=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aEJ=[0,a(S),1768,5,1771,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aEr=a(q),aEs=a("28174"),aEt=a("34000"),aEu=a(z),aEv=a("5826"),aEw=a("39826"),aEx=a(q),aEy=a(CY),aEz=a("30249"),aEA=a(z),aEB=a("5133"),aEC=a("35382"),aED=a(q),aEE=a("23455"),aEF=a("28138"),aEG=a(z),aEH=a("4684"),aEI=a("32823"),aEK=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aEp=[0,a(S),1813,5,1816,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aD9=a(q),aD_=a("35114"),aD$=a("42361"),aEa=a(z),aEb=a("7246"),aEc=a("49607"),aEd=a(q),aEe=a("31336"),aEf=a("37716"),aEg=a(z),aEh=a("6380"),aEi=a("44098"),aEj=a(q),aEk=a("29254"),aEl=a("35078"),aEm=a(z),aEn=a("5824"),aEo=a("40903"),aEq=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aD7=[0,a(S),1857,5,1860,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aDP=a(q),aDQ=a("28264"),aDR=a("34109"),aDS=a(z),aDT=a("5845"),aDU=a("39953"),aDV=a(q),aDW=a("25196"),aDX=a("30346"),aDY=a(z),aDZ=a("5149"),aD0=a("35495"),aD1=a(q),aD2=a("23530"),aD3=a("28228"),aD4=a(z),aD5=a("4699"),aD6=a("32928"),aD8=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aDN=[0,a(S),1902,5,1905,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aDv=a(q),aDw=a("35500"),aDx=a("42827"),aDy=a(z),aDz=a("7326"),aDA=a("50153"),aDB=a(q),aDC=a("31681"),aDD=a("38131"),aDE=a(z),aDF=a("6450"),aDG=a("44583"),aDH=a(q),aDI=a("29576"),aDJ=a("35464"),aDK=a(z),aDL=a("5888"),aDM=a("41353"),aDO=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aDt=[0,a(S),1946,5,1949,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aDb=a(q),aDc=a("28575"),aDd=a("34484"),aDe=a(z),aDf=a("5909"),aDg=a("40392"),aDh=a(q),aDi=a("25473"),aDj=a("30680"),aDk=a(z),aDl=a("5206"),aDm=a("35885"),aDn=a(q),aDo=a("23789"),aDp=a("28539"),aDq=a(z),aDr=a("4751"),aDs=a("33290"),aDu=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aC$=[0,a(S),1991,5,cV,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aCT=a(q),aCU=a("35855"),aCV=a("43255"),aCW=a(z),aCX=a("7399"),aCY=a("50655"),aCZ=a(q),aC0=a("31998"),aC1=a("38512"),aC2=a(z),aC3=a("6515"),aC4=a("45029"),aC5=a(q),aC6=a("29872"),aC7=a("35819"),aC8=a(z),aC9=a("5947"),aC_=a("41767"),aDa=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aCR=[0,a(S),2036,5,2039,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aCz=a(q),aCA=a("28861"),aCB=a(Fk),aCC=a(z),aCD=a("5968"),aCE=a("40796"),aCF=a(q),aCG=a("25728"),aCH=a("30987"),aCI=a(z),aCJ=a("5258"),aCK=a("36244"),aCL=a(q),aCM=a("24027"),aCN=a("28824"),aCO=a(z),aCP=a("4799"),aCQ=a(Ar),aCS=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aCx=[0,a(S),2081,5,2084,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aCf=a(q),aCg=a("36626"),aCh=a("44185"),aCi=a(z),aCj=a("7558"),aCk=a("51744"),aCl=a(q),aCm=a("32686"),aCn=a(y6),aCo=a(z),aCp=a("6655"),aCq=a("45997"),aCr=a(q),aCs=a("30514"),aCt=a("36589"),aCu=a(z),aCv=a("6075"),aCw=a("42665"),aCy=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aCd=[0,a(S),2125,5,2128,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aBX=a(q),aBY=a("29482"),aBZ=a("35578"),aB0=a(z),aB1=a("6096"),aB2=a("41673"),aB3=a(q),aB4=a("26281"),aB5=a("31653"),aB6=a(z),aB7=a("5371"),aB8=a("37023"),aB9=a(q),aB_=a("24544"),aB$=a("29444"),aCa=a(z),aCb=a("4902"),aCc=a("34346"),aCe=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aBV=[0,a(S),2170,5,2173,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aBD=a(q),aBE=a("36835"),aBF=a("44437"),aBG=a(z),aBH=a("7601"),aBI=a("52039"),aBJ=a(q),aBK=a("32872"),aBL=a("39564"),aBM=a(z),aBN=a("6693"),aBO=a("46259"),aBP=a(q),aBQ=a("30688"),aBR=a("36798"),aBS=a(z),aBT=a("6110"),aBU=a("42908"),aBW=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aBB=[0,a(S),2214,5,2217,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aBj=a(q),aBk=a("29650"),aBl=a("35781"),aBm=a(z),aBn=a("6131"),aBo=a("41911"),aBp=a(q),aBq=a("26431"),aBr=a("31833"),aBs=a(z),aBt=a("5402"),aBu=a("37234"),aBv=a(q),aBw=a("24684"),aBx=a("29612"),aBy=a(z),aBz=a("4930"),aBA=a("34542"),aBC=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aBh=[0,a(S),2259,5,2262,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aA1=a(q),aA2=a("36864"),aA3=a("44473"),aA4=a(z),aA5=a("7607"),aA6=a("52081"),aA7=a(q),aA8=a("32898"),aA9=a("39596"),aA_=a(z),aA$=a("6698"),aBa=a("46296"),aBb=a(q),aBc=a("30713"),aBd=a("36827"),aBe=a(z),aBf=a("6115"),aBg=a("42942"),aBi=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aAZ=[0,a(S),2303,5,2306,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aAH=a(q),aAI=a("29674"),aAJ=a("35810"),aAK=a(z),aAL=a("6136"),aAM=a("41945"),aAN=a(q),aAO=a("26452"),aAP=a("31858"),aAQ=a(z),aAR=a("5406"),aAS=a("37264"),aAT=a(q),aAU=a("24704"),aAV=a("29636"),aAW=a(z),aAX=a("4934"),aAY=a(yY),aA0=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aAF=[0,a(S),2348,5,2351,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],aAn=a(q),aAo=a("37140"),aAp=a("44807"),aAq=a(z),aAr=a("7664"),aAs=a("52472"),aAt=a(q),aAu=a("33145"),aAv=a("39893"),aAw=a(z),aAx=a("6748"),aAy=a("46643"),aAz=a(q),aAA=a("30943"),aAB=a("37103"),aAC=a(z),aAD=a("6161"),aAE=a("43264"),aAG=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aAl=[0,a(S),2392,5,rF,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],az5=a(q),az6=a("29897"),az7=a("36079"),az8=a(z),az9=a("6182"),az_=a("42260"),az$=a(q),aAa=a("26650"),aAb=a("32097"),aAc=a(z),aAd=a("5447"),aAe=a("37543"),aAf=a(q),aAg=a("24889"),aAh=a("29858"),aAi=a(z),aAj=a("4971"),aAk=a(Fk),aAm=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],az3=[0,a(S),sy,5,2439,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],azL=a(q),azM=a("37252"),azN=a("44941"),azO=a(z),azP=a("7687"),azQ=a("52629"),azR=a(q),azS=a("33244"),azT=a("40013"),azU=a(z),azV=a("6768"),azW=a("46783"),azX=a(q),azY=a("31036"),azZ=a("37215"),az0=a(z),az1=a("6179"),az2=a("43394"),az4=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azJ=[0,a(S),2480,5,2482,36,[0,a(a_),[0,a(aJ),[0,a(O),0]]]],azr=a(q),azs=a("29986"),azt=a("36187"),azu=a(z),azv=a("6201"),azw=a("42386"),azx=a(q),azy=a("26730"),azz=a("32193"),azA=a(z),azB=a("5463"),azC=a("37656"),azD=a(q),azE=a("24964"),azF=a("29948"),azG=a(z),azH=a(CK),azI=a("34934"),azK=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMH=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azq=[0,a(d),$,11,$,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azm=[0,a(r),yr,5,yr,28,[0,a(Ef),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],azn=[0,a(d),gR,11,gR,41,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azl=[0,a(r),C5,14,C5,44,[0,a(Ef),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],azh=[0,a(r),x1,14,x1,36,[0,a(ju),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],azf=a(q),azg=a(q),azi=[0,a(d),lv,10,lv,32,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aze=[0,a(d),lv,10,lv,32,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ay$=[0,a(S),xy,7,xy,18,[0,a(jY),[0,a(aJ),[0,a(O),0]]]],ay8=a(gw),ay9=a(rS),ay_=a(fk),aza=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ay6=[0,a(aQ),kp,7,kp,18,[0,a(jY),[0,a(bA),[0,a(aR),0]]]],ay3=a(gK),ay4=a(rv),ay5=a(fc),ay7=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ay1=[0,a(aQ),w9,7,w9,18,[0,a(jY),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],ayY=a(pH),ayZ=a(Cu),ay0=a(nM),ay2=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azb=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayV=[0,a(S),AD,29,AD,64,[0,a(ou),[0,a(aJ),[0,a(O),0]]]],ayT=a(gw),ayU=a(fk),ayW=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayR=[0,a(aQ),sK,29,sK,64,[0,a(ou),[0,a(bA),[0,a(aR),0]]]],ayP=a(gK),ayQ=a(fc),ayS=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayN=[0,a(aQ),yk,29,yk,64,[0,a(ou),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],ayL=a(pH),ayM=a(nM),ayO=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayX=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayF=[0,a(d),jE,14,jE,50,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayB=[0,a(S),xm,14,xm,50,[0,a("Article 25"),[0,a(aJ),[0,a(O),0]]]],ayw=a(xs),ayx=a(s$),ayy=a("0.0172"),ayz=a(xs),ayA=a(s$),ayq=[0,a(r),iu,14,iu,64,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aym=[0,a(r),jl,14,jl,59,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ayi=[0,a(fB),eD,14,eD,36,[0,a(DI),[0,a(z0),0]]],ayg=a(wu),ayh=a(ep),ayc=[0,a(S),A5,14,A5,47,[0,a(tb),[0,a(aJ),[0,a(O),0]]]],ayb=a("0.416"),ax9=[0,a(S),Db,14,Db,47,[0,a(tb),[0,a(aJ),[0,a(O),0]]]],ax8=a(we),ax4=[0,a(S),zu,14,zu,47,[0,a(tb),[0,a(aJ),[0,a(O),0]]]],ax3=a("560085"),axZ=[0,a(S),Cm,14,Cm,48,[0,a("Article 26"),[0,a(aJ),[0,a(O),0]]]],axY=a(Bk),axU=[0,a(S),y0,15,y0,49,[0,a("Article 22"),[0,a(aJ),[0,a(O),0]]]],axT=a("2211133"),axP=[0,a(S),yB,14,yB,42,[0,a("Article 21"),[0,a(aJ),[0,a(O),0]]]],axO=a(iP),axK=[0,a(S),wn,14,wn,41,[0,a("Article 20"),[0,a(aJ),[0,a(O),0]]]],axJ=a(lk),axL=[0,a(d),pJ,11,pJ,38,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axI=[0,a(d),pJ,11,pJ,38,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axM=[0,a(an),[0,a("montant_forfaitaire_d832_10"),0]],axQ=[0,a(d),pG,11,pG,39,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axN=[0,a(d),pG,11,pG,39,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axR=[0,a(an),[0,a("montant_minimal_aide_d832_10"),0]],axV=[0,a(d),pm,11,pm,45,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axS=[0,a(d),pm,11,pm,45,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axW=[0,a(an),[0,a("coefficient_multiplicateur_d832_11"),0]],ax0=[0,a(d),pR,11,pR,45,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],axX=[0,a(d),pR,11,pR,45,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ax1=[0,a(an),[0,a("coefficient_multiplicateur_d832_18"),0]],ax5=[0,a(d),nm,11,nm,44,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ax2=[0,a(d),nm,11,nm,44,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ax6=[0,a(an),[0,a("montant_limite_tranches_d832_15_1"),0]],ax_=[0,a(d),lQ,11,lQ,44,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ax7=[0,a(d),lQ,11,lQ,44,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ax$=[0,a(an),[0,a("taux_tranche_inf\xc3\xa9rieure_d832_15_1"),0]],ayd=[0,a(d),oe,11,oe,44,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aya=[0,a(d),oe,11,oe,44,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aye=[0,a(an),[0,a("taux_tranche_sup\xc3\xa9rieure_d832_15_1"),0]],ayj=[0,a(d),nW,11,nW,33,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayf=[0,a(d),nW,11,nW,33,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayk=[0,a(an),[0,a(Ga),0]],ayn=[0,a(r),jl,14,jl,59,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ayo=[0,a(an),[0,a(og),0]],ayl=[0,a(r),jl,14,jl,59,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ayr=[0,a(r),iu,14,iu,64,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ays=[0,a(an),[0,a(o1),0]],ayp=[0,a(r),iu,14,iu,64,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ayt=[0,a(an),[0,a(f6),[0,a(lr),0]]],ayu=[0,a(an),[0,a(f6),[0,a(lr),0]]],ayC=[0,a(d),o4,11,o4,47,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayv=[0,a(d),o4,11,o4,47,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayD=[0,a(an),[0,a("coefficient_multiplicateur_d832_17_3"),0]],ayG=[0,a(d),jE,14,jE,50,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayH=[0,a(an),[0,a(lz),0]],ayE=[0,a(d),jE,14,jE,50,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayI=[0,a(an),[0,a(eK),[0,a(bl),0]]],ayJ=[0,a(an),[0,a(eK),[0,a(bl),0]]],azc=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ayK=[0,a(d),cb,11,cb,46,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azd=[0,a(an),[0,a("montant_forfaitaire_charges_d832_10"),0]],azj=[0,a(an),[0,a(bH),0]],azo=[0,a(d),gR,11,gR,41,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azk=[0,a(d),gR,11,gR,41,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],azp=[0,a(an),[0,a("ressources_m\xc3\xa9nage_avec_d832_18"),0]],aMI=[0,a(an),[0,a(dx),0]],aML=[0,a(d),os,11,os,33,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMJ=[0,a(d),os,11,os,33,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMM=[0,a(an),[0,a(wQ),0]],aMS=[0,a(an),[0,a(lx),0]],aM9=[0,a(d),ic,10,ic,14,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aMT=[0,a(d),ic,10,ic,14,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aM_=[0,a(an),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_base"),0]],aNb=[0,a(r),jD,14,jD,75,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNc=[0,a(an),[0,a(nJ),0]],aM$=[0,a(r),jD,14,jD,75,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNf=[0,a(r),ij,14,ij,69,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNg=[0,a(an),[0,a(pl),0]],aNd=[0,a(r),ij,14,ij,69,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNj=[0,a(r),iG,14,iG,70,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNk=[0,a(an),[0,a(nx),0]],aNh=[0,a(r),iG,14,iG,70,[0,a(d5),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aNl=[0,a(an),[0,a(fG),[0,a(dK),0]]],aNm=[0,a(an),[0,a(fG),[0,a(dK),0]]],aNq=[0,a(d),lq,10,lq,17,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNn=[0,a(d),lq,10,lq,17,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNr=[0,a(an),[0,a("coefficient_prise_en_charge_d832_10_formule"),0]],aNA=[0,a(an),[0,a(lM),0]],aNL=[0,a(d),eC,10,eC,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNB=[0,a(d),eC,10,eC,25,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNM=[0,a(an),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"),0]],aNU=[0,a(d),fS,10,fS,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNN=[0,a(d),fS,10,fS,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNV=[0,a(an),[0,a(zG),0]],aN1=[0,a(d),ng,10,ng,17,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aNW=[0,a(d),ng,10,ng,17,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aN2=[0,a(an),[0,a("coefficient_prise_en_charge_d832_10_arrondi"),0]],aOe=[0,a(an),[0,a(eP),0]],aOh=[0,a(d),pW,10,pW,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOf=[0,a(d),pW,10,pW,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOi=[0,a(an),[0,a(F$),0]],aOn=[0,a(d),pw,10,pw,15,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOj=[0,a(d),pw,10,pw,15,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOo=[0,a(an),[0,a("coefficient_prise_en_charge_d832_10_seuil"),0]],aOD=[0,a(an),[0,a(bI),0]],aOI=[0,a(d),oO,10,oO,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOE=[0,a(d),oO,10,oO,29,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],aOJ=[0,a(an),[0,a(fo),0]],aOS=[0,a(an),[0,a(bx),0]],axF=[0,a(r),wk,14,wk,36,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],axA=[0,a(aw),[0,a(bI),[0,a(ag),0]]],axB=[0,a(aw),[0,a(bI),0]],axC=[0,a(aw),[0,a(bI),[0,a(ah),0]]],axD=[0,a(aw),[0,a(bI),0]],axE=a(q),axG=[0,a(d),nZ,10,nZ,25,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axz=[0,a(d),nZ,10,nZ,25,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axw=[0,a(r),y9,14,y9,33,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],axu=a(q),axv=a(q),axq=[0,a(r),y$,14,y$,36,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],axf=[0,a(aw),[0,a(eP),[0,a(ag),0]]],axg=[0,a(aw),[0,a(eP),0]],axh=[0,a(aw),[0,a(eP),[0,a(ah),0]]],axi=[0,a(aw),[0,a(eP),0]],axj=[0,a(bl),[0,a(bN),[0,a(ag),0]]],axk=[0,a(bl),[0,a(bN),0]],axl=[0,a(bl),[0,a(bN),[0,a(ah),0]]],axm=[0,a(bl),[0,a(bN),0]],axn=a(lU),axo=a(q),axp=a(q),axr=[0,a(d),oC,10,oC,40,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axe=[0,a(d),oC,10,oC,40,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axa=[0,a(r),CW,5,CW,26,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aw_=a(pB),aw$=a(pB),axb=[0,a(d),kn,10,kn,15,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],aw9=[0,a(r),oL,14,oL,49,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aw7=a(hh),aw8=a(hh),aw3=[0,a(r),zL,14,zL,36,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awT=[0,a(aw),[0,a(bH),[0,a(ag),0]]],awU=[0,a(aw),[0,a(bH),0]],awV=[0,a(aw),[0,a(bH),[0,a(ah),0]]],awW=[0,a(aw),[0,a(bH),0]],awX=[0,a(aw),[0,a(lw),[0,a(ag),0]]],awY=[0,a(aw),[0,a(lw),0]],awZ=[0,a(aw),[0,a(lw),[0,a(ah),0]]],aw0=[0,a(aw),[0,a(lw),0]],aw1=a(q),aw2=a(q),aw4=[0,a(d),na,10,na,20,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awS=[0,a(d),na,10,na,20,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awO=[0,a(r),BN,5,BN,26,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awL=a(c5),awM=a(c5),awN=a(mW),awP=[0,a(d),hV,10,hV,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awK=[0,a(r),EI,14,EI,49,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awH=a(c5),awI=a(c5),awJ=a(mW),awD=[0,a(r),EK,14,EK,40,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awz=[0,a(r),Ai,14,Ai,55,[0,a(zy),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awu=[0,a(aw),[0,a(lA),[0,a(ag),0]]],awv=[0,a(aw),[0,a(lA),0]],aww=[0,a(aw),[0,a(lA),[0,a(ah),0]]],awx=[0,a(aw),[0,a(lA),0]],awy=a(q),awA=[0,a(d),pN,11,pN,52,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awt=[0,a(d),pN,11,pN,52,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awp=[0,a(r),Gu,5,Gu,26,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awo=a(pB),awq=[0,a(d),iE,10,iE,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awn=[0,a(r),FX,14,FX,49,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awk=a(q),awl=a(q),awm=a(hh),awe=[0,a(r),il,14,il,70,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awa=[0,a(r),id,14,id,69,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],av8=[0,a(r),h9,14,h9,75,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],av4=[0,a(r),C4,14,C4,44,[0,a(zy),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],av5=[0,a(d),oJ,11,oJ,41,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],av3=[0,a(d),oJ,11,oJ,41,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avZ=[0,a(r),Cx,14,Cx,36,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],av0=[0,a(d),gV,19,gV,41,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avV=[0,a(r),yu,14,yu,40,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avR=[0,a(S),FR,14,FR,48,[0,a(wX),[0,a(fd),[0,a(O),0]]]],avP=a("2142091"),avQ=a("1339340"),avL=[0,a(S),zl,14,zl,41,[0,a("Article 32"),[0,a(fd),[0,a(O),0]]]],avJ=a(rE),avK=a("2668"),avD=[0,a(r),ib,14,ib,64,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avz=[0,a(r),is,14,is,59,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avv=[0,a(r),jw,14,jw,55,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avr=[0,a(r),DZ,14,DZ,36,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avp=a(q),avq=a(q),avs=[0,a(d),mN,10,mN,32,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avo=[0,a(d),mN,10,mN,32,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avk=[0,a(S),At,14,At,48,[0,a(tk),[0,a(fd),[0,a(O),0]]]],auM=a(q),auN=a("46192"),auO=a("54152"),auP=a(z),auQ=a("57741"),auR=a(X),auS=a("61794"),auT=a(aa),auU=a("65862"),auV=a(ae),auW=a("7368"),auX=a("71039"),auY=a(q),auZ=a("42242"),au0=a("49299"),au1=a(z),au2=a("52565"),au3=a(X),au4=a("56268"),au5=a(aa),au6=a("59957"),au7=a(ae),au8=a("6659"),au9=a("63887"),au_=a(q),au$=a("40096"),ava=a("46634"),avb=a(z),avc=a("49475"),avd=a(X),ave=a("52740"),avf=a(aa),avg=a("56004"),avh=a(ae),avi=a("6180"),avj=a("59675"),avl=[0,a(d),eM,10,eM,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],auK=[0,a(aQ),ho,14,ho,48,[0,a(tk),[0,a(bA),[0,a(aR),0]]]],aua=a(q),aub=a("44630"),auc=a("52321"),aud=a(z),aue=a("55788"),auf=a(X),aug=a("59704"),auh=a(aa),aui=a("63635"),auj=a(ae),auk=a("7119"),aul=a("68637"),aum=a(q),aun=a("40814"),auo=a("47632"),aup=a(z),auq=a("50787"),aur=a(X),aus=a("54365"),aut=a(aa),auu=a("57929"),auv=a(ae),auw=a("6434"),aux=a("61727"),auy=a(q),auz=a("38740"),auA=a("45057"),auB=a(z),auC=a("47802"),auD=a(X),auE=a("50957"),auF=a(aa),auG=a("54110"),auH=a(ae),auI=a("5971"),auJ=a("57657"),auL=[0,a(d),eM,10,eM,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],at_=[0,a(aQ),wm,14,wm,48,[0,a(tk),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],atA=a(q),atB=a("44443"),atC=a("52101"),atD=a(z),atE=a("55555"),atF=a(X),atG=a("59454"),atH=a(aa),atI=a("63369"),atJ=a(ae),atK=a("7089"),atL=a("68350"),atM=a(q),atN=a("40643"),atO=a("47433"),atP=a(z),atQ=a("50575"),atR=a(X),atS=a("54138"),atT=a(aa),atU=a("57687"),atV=a(ae),atW=a("6407"),atX=a("61469"),atY=a(q),atZ=a("38578"),at0=a("44869"),at1=a(z),at2=a("47602"),at3=a(X),at4=a("50744"),at5=a(aa),at6=a("53884"),at7=a(ae),at8=a("5946"),at9=a("57416"),at$=[0,a(d),eM,10,eM,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atu=[0,a(d),iA,14,iA,50,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atp=[0,a(r),EL,14,EL,35,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],atq=[0,a(d),iL,12,iL,33,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atl=[0,a(S),zz,14,zz,42,[0,a("Article 29"),[0,a(fd),[0,a(O),0]]]],atk=a(iP),atg=[0,a(S),vP,14,vP,41,[0,a("Article 28"),[0,a(fd),[0,a(O),0]]]],atf=a(lk),atb=[0,a(S),DE,14,DE,35,[0,a(wX),[0,a(fd),[0,a(O),0]]]],ata=a("121726"),atc=[0,a(d),po,10,po,31,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],as$=[0,a(d),po,10,po,31,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atd=[0,a(aw),[0,a("coefficient_r_d832_25"),0]],ath=[0,a(d),m$,11,m$,38,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],ate=[0,a(d),m$,11,m$,38,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],ati=[0,a(aw),[0,a("montant_forfaitaire_d832_24"),0]],atm=[0,a(d),nt,11,nt,39,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atj=[0,a(d),nt,11,nt,39,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atn=[0,a(aw),[0,a("montant_minimal_aide_d823_24"),0]],atr=[0,a(d),iL,12,iL,33,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],ato=[0,a(d),iL,12,iL,33,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],ats=[0,a(aw),[0,a("condition_2_du_832_25"),0]],atv=[0,a(d),iA,14,iA,50,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atw=[0,a(aw),[0,a(lz),0]],att=[0,a(d),iA,14,iA,50,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atx=[0,a(aw),[0,a(eK),[0,a(bl),0]]],aty=[0,a(aw),[0,a(eK),[0,a(bl),0]]],avm=[0,a(d),eM,10,eM,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],atz=[0,a(d),eM,10,eM,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avn=[0,a(aw),[0,a("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],avt=[0,a(aw),[0,a(bH),0]],avw=[0,a(r),jw,14,jw,55,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avx=[0,a(aw),[0,a(Ca),0]],avu=[0,a(r),jw,14,jw,55,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avA=[0,a(r),is,14,is,59,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avB=[0,a(aw),[0,a(og),0]],avy=[0,a(r),is,14,is,59,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avE=[0,a(r),ib,14,ib,64,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avF=[0,a(aw),[0,a(o1),0]],avC=[0,a(r),ib,14,ib,64,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],avG=[0,a(aw),[0,a(f6),[0,a(ly),0]]],avH=[0,a(aw),[0,a(f6),[0,a(ly),0]]],avM=[0,a(d),ox,11,ox,38,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avI=[0,a(d),ox,11,ox,38,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avN=[0,a(aw),[0,a("montant_forfaitaire_d832_27"),0]],avS=[0,a(d),no,10,no,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avO=[0,a(d),no,10,no,44,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avT=[0,a(aw),[0,a("coefficient_multiplicateur_d832_25"),0]],avW=[0,a(d),lf,10,lf,36,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avU=[0,a(d),lf,10,lf,36,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avX=[0,a(aw),[0,a("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],av1=[0,a(d),gV,19,gV,41,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],avY=[0,a(d),gV,19,gV,41,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],av2=[0,a(aw),[0,a(EB),0]],av6=[0,a(aw),[0,a(lA),0]],av9=[0,a(r),h9,14,h9,75,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],av_=[0,a(aw),[0,a(nJ),0]],av7=[0,a(r),h9,14,h9,75,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awb=[0,a(r),id,14,id,69,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awc=[0,a(aw),[0,a(pl),0]],av$=[0,a(r),id,14,id,69,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awf=[0,a(r),il,14,il,70,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awg=[0,a(aw),[0,a(nx),0]],awd=[0,a(r),il,14,il,70,[0,a(cU),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],awh=[0,a(aw),[0,a(fG),[0,a(dK),0]]],awi=[0,a(aw),[0,a(fG),[0,a(dK),0]]],awr=[0,a(d),iE,10,iE,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awj=[0,a(d),iE,10,iE,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],aws=[0,a(aw),[0,a("coefficient_prise_en_charge_d832_25_formule"),0]],awB=[0,a(aw),[0,a(lw),0]],awE=[0,a(d),pf,10,pf,36,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awC=[0,a(d),pf,10,pf,36,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awF=[0,a(aw),[0,a("\xc3\xa9quivalence_loyer_minimale"),0]],awQ=[0,a(d),hV,10,hV,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awG=[0,a(d),hV,10,hV,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],awR=[0,a(aw),[0,a("coefficient_prise_en_charge_d832_25_arrondi"),0]],aw5=[0,a(aw),[0,a(eP),0]],axc=[0,a(d),kn,10,kn,15,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],aw6=[0,a(d),kn,10,kn,15,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axd=[0,a(aw),[0,a("coefficient_prise_en_charge_d832_25_seuil"),0]],axs=[0,a(aw),[0,a(bI),0]],axx=[0,a(d),lc,10,lc,29,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axt=[0,a(d),lc,10,lc,29,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],axy=[0,a(aw),[0,a(fo),0]],axH=[0,a(aw),[0,a(bx),0]],as1=[0,a(r),Ch,14,Ch,33,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],asZ=a(q),as0=a(q),asV=[0,a(r),w0,14,w0,39,[0,a(sI),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],asT=a(q),asU=a(q),asP=[0,a(r),DT,14,DT,36,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],asK=[0,a(aG),[0,a(li),[0,a(ag),0]]],asL=[0,a(aG),[0,a(li),0]],asM=[0,a(aG),[0,a(li),[0,a(ah),0]]],asN=[0,a(aG),[0,a(li),0]],asO=a(q),asQ=[0,a(d),nL,10,nL,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asJ=[0,a(d),nL,10,nL,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asG=[0,a(r),EZ,14,EZ,42,[0,a(sI),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],asC=[0,a(aH),CS,14,CS,36,[0,a(rN),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],asw=[0,a(aG),[0,a(bI),[0,a(ag),0]]],asx=[0,a(aG),[0,a(bI),0]],asy=[0,a(aG),[0,a(bI),[0,a(ah),0]]],asz=[0,a(aG),[0,a(bI),0]],asA=a(q),asB=a(q),asD=[0,a(d),pa,10,pa,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asv=[0,a(d),pa,10,pa,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asp=[0,a(aQ),Gy,14,Gy,33,[0,a(cK),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],asn=a(hQ),aso=a(hQ),asq=[0,a(d),eG,10,eG,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asm=[0,a(aQ),sf,14,sf,33,[0,a(cK),[0,a(bA),[0,a(aR),0]]]],ask=a(hQ),asl=a(hQ),asr=[0,a(d),eG,10,eG,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asj=[0,a(S),fV,14,fV,33,[0,a(cK),[0,a(bV),[0,a(O),0]]]],ash=a(hQ),asi=a(hQ),ass=[0,a(d),eG,10,eG,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asd=[0,a(r),Bu,14,Bu,36,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],ar4=[0,a(aG),[0,a(bH),[0,a(ag),0]]],ar5=[0,a(aG),[0,a(bH),0]],ar6=[0,a(aG),[0,a(bH),[0,a(ah),0]]],ar7=[0,a(aG),[0,a(bH),0]],ar8=[0,a(bl),[0,a(bN),[0,a(ag),0]]],ar9=[0,a(bl),[0,a(bN),0]],ar_=[0,a(bl),[0,a(bN),[0,a(ah),0]]],ar$=[0,a(bl),[0,a(bN),0]],asa=a(lU),asb=a(q),asc=a(q),ase=[0,a(d),p2,10,p2,40,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ar3=[0,a(d),p2,10,p2,40,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],arX=[0,a(aQ),Ba,14,Ba,33,[0,a(cK),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],arL=a(hl),arM=a(b3),arN=a(hl),arO=a(de),arP=a(fa),arQ=a(fa),arR=a(de),arS=a(de),arT=a(s3),arU=a(rG),arV=a(fa),arW=a(b3),arY=[0,a(d),eI,10,eI,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],arK=[0,a(aQ),xl,14,xl,33,[0,a(cK),[0,a(bA),[0,a(aR),0]]]],ary=a(hl),arz=a(b3),arA=a(hl),arB=a(de),arC=a(fa),arD=a(fa),arE=a(de),arF=a(de),arG=a(s3),arH=a(rG),arI=a(fa),arJ=a(b3),arZ=[0,a(d),eI,10,eI,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],arx=[0,a(S),xB,14,xB,33,[0,a(cK),[0,a(bV),[0,a(O),0]]]],arl=a(hl),arm=a(b3),arn=a(hl),aro=a(de),arp=a(fa),arq=a(fa),arr=a(de),ars=a(de),art=a(s3),aru=a(rG),arv=a(fa),arw=a(b3),ar0=[0,a(d),eI,10,eI,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],arh=[0,a(r),AU,14,AU,36,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],arb=[0,a(aG),[0,a(ls),[0,a(ag),0]]],arc=[0,a(aG),[0,a(ls),0]],ard=[0,a(aG),[0,a(ls),[0,a(ah),0]]],are=[0,a(aG),[0,a(ls),0]],arf=a(q),arg=a(q),ari=[0,a(d),ny,10,ny,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ara=[0,a(d),ny,10,ny,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aq6=[0,a(aQ),z$,14,z$,28,[0,a(cK),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aq4=a(c5),aq5=a(c5),aq7=[0,a(d),eF,11,eF,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aq3=[0,a(aQ),fb,14,fb,28,[0,a(cK),[0,a(bA),[0,a(aR),0]]]],aq1=a(c5),aq2=a(c5),aq8=[0,a(d),eF,11,eF,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aq0=[0,a(S),od,14,od,28,[0,a(cK),[0,a(bV),[0,a(O),0]]]],aqY=a(c5),aqZ=a(c5),aq9=[0,a(d),eF,11,eF,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqT=[0,a(S),c4,14,c4,36,[0,a(tf),[0,a(bV),[0,a(O),0]]]],aqP=a(Gw),aqQ=a(i_),aqR=a(i_),aqS=a(Gw),aqU=[0,a(d),d7,10,d7,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqN=[0,a(aQ),sV,14,sV,36,[0,a(tf),[0,a(bA),[0,a(aR),0]]]],aqJ=a(DG),aqK=a(i_),aqL=a(i_),aqM=a(DG),aqO=[0,a(d),d7,10,d7,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqH=[0,a(aQ),DS,14,DS,36,[0,a(tf),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aqD=a(E9),aqE=a(i_),aqF=a(i_),aqG=a(E9),aqI=[0,a(d),d7,10,d7,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqy=[0,a(r),rV,5,rV,50,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aqz=[0,a(d),iY,10,iY,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqx=[0,a(r),Fc,14,Fc,36,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aqw=a(q),aqA=[0,a(d),iY,10,iY,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqv=[0,a(d),iY,10,iY,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqs=[0,a(r),j0,14,j0,28,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aqo=[0,a(S),sa,14,sa,42,[0,a(CL),[0,a(bV),[0,a(O),0]]]],aql=a("3.4"),aqm=a(iS),aqn=a(iS),aqh=[0,a(S),sd,14,sd,41,[0,a(CL),[0,a(bV),[0,a(O),0]]]],aqe=a("4."),aqf=a(zS),aqg=a(zS),aqa=[0,a(r),BP,14,BP,29,[0,a("Article D842-2"),[0,a(ti),[0,a(ak),[0,a(aj),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ap_=a(pr),ap$=a(lG),ap4=[0,a(S),h8,29,h8,64,[0,a(dL),[0,a(bV),[0,a(O),0]]]],ap1=a(gw),ap2=a(rS),ap3=a(fk),ap5=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apZ=[0,a(aQ),wP,29,wP,64,[0,a(dL),[0,a(bA),[0,a(aR),0]]]],apW=a(gK),apX=a(rv),apY=a(fc),ap0=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apU=[0,a(aQ),yA,29,yA,64,[0,a(dL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],apR=a(pH),apS=a(Cu),apT=a(nM),apV=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ap6=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apO=[0,a(S),AF,29,AF,64,[0,a(s8),[0,a(bV),[0,a(O),0]]]],apM=a(gw),apN=a(fk),apP=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apK=[0,a(aQ),oc,29,oc,64,[0,a(s8),[0,a(bA),[0,a(aR),0]]]],apI=a(gK),apJ=a(fc),apL=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apG=[0,a(aQ),F_,29,F_,64,[0,a(s8),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],apE=a(pH),apF=a(nM),apH=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apQ=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apx=a(q),apy=[0,a(S),527,5,528,34,[0,a(dL),[0,a(bV),[0,a(O),0]]]],apu=a(BV),apv=a(wO),apw=a(D$),apz=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apr=a(q),aps=[0,a(S),536,5,537,34,[0,a(dL),[0,a(bV),[0,a(O),0]]]],apo=a("27905"),app=a("24683"),apq=a("22911"),apt=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apl=a(z),apm=[0,a(S),wy,5,wy,35,[0,a(dL),[0,a(bV),[0,a(O),0]]]],apc=a(z),apd=a("4576"),ape=a("31539"),apf=a(z),apg=a("4043"),aph=a("27774"),api=a(z),apj=a("3682"),apk=a("25689"),apn=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ao$=a(q),apa=[0,a(aQ),353,5,354,34,[0,a(dL),[0,a(bA),[0,a(aR),0]]]],ao8=a(Ej),ao9=a(y1),ao_=a(xE),apb=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ao5=a(q),ao6=[0,a(aQ),CG,5,cq,34,[0,a(dL),[0,a(bA),[0,a(aR),0]]]],ao2=a("26962"),ao3=a("23848"),ao4=a("22136"),ao7=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoZ=a(z),ao0=[0,a(aQ),hs,5,hs,35,[0,a(dL),[0,a(bA),[0,a(aR),0]]]],aoQ=a(z),aoR=a("4421"),aoS=a("30473"),aoT=a(z),aoU=a("3906"),aoV=a("26835"),aoW=a(z),aoX=a("3557"),aoY=a("24821"),ao1=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoN=a(q),aoO=[0,a(aQ),s1,5,gM,34,[0,a(dL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aoK=a(Ds),aoL=a(wZ),aoM=a(DO),aoP=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoH=a(q),aoI=[0,a(aQ),gz,5,1082,34,[0,a(dL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aoE=a("26849"),aoF=a("23748"),aoG=a("22044"),aoJ=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoB=a(z),aoC=[0,a(aQ),f2,5,f2,35,[0,a(dL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aos=a(z),aot=a("4403"),aou=a("30345"),aov=a(z),aow=a("3890"),aox=a("26723"),aoy=a(z),aoz=a("3542"),aoA=a("24717"),aoD=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apA=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoo=[0,a(S),jq,5,jq,61,[0,a(i8),[0,a(bV),[0,a(O),0]]]],aol=a(BV),aom=a(wO),aon=a(D$),aop=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoj=[0,a(aQ),cY,5,cY,61,[0,a(i8),[0,a(bA),[0,a(aR),0]]]],aog=a(Ej),aoh=a(y1),aoi=a(xE),aok=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoe=[0,a(aQ),gG,5,gG,61,[0,a(i8),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],aob=a(Ds),aoc=a(wZ),aod=a(DO),aof=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoq=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],an_=[0,a(S),nl,14,nl,37,[0,a(i8),[0,a(bV),[0,a(O),0]]]],an7=a("27765"),an8=a("24198"),an9=a("22680"),an$=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],an5=[0,a(aQ),lB,14,lB,37,[0,a(i8),[0,a(bA),[0,a(aR),0]]]],an2=a("26826"),an3=a("23380"),an4=a("21913"),an6=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],an0=[0,a(aQ),st,14,st,37,[0,a(i8),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],anX=a(GO),anY=a("23282"),anZ=a("21821"),an1=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aoa=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aor=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anT=a(q),anU=[0,a(S),dM,5,bf,34,[0,a(cL),[0,a(bV),[0,a(O),0]]]],anQ=a("30850"),anR=a("26887"),anS=a("25200"),anV=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anN=a(q),anO=[0,a(S),Ab,5,115,34,[0,a(cL),[0,a(bV),[0,a(O),0]]]],anK=a("37207"),anL=a("32910"),anM=a("30548"),anP=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anH=a(z),anI=[0,a(S),pe,5,pe,35,[0,a(cL),[0,a(bV),[0,a(O),0]]]],any=a(z),anz=a("6101"),anA=a("42052"),anB=a(z),anC=a("5390"),anD=a("37032"),anE=a(z),anF=a("4909"),anG=a("34252"),anJ=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anv=a(q),anw=[0,a(aQ),34,5,35,34,[0,a(cL),[0,a(bA),[0,a(aR),0]]]],ans=a("29807"),ant=a(s_),anu=a("24348"),anx=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anp=a(q),anq=[0,a(aQ),44,5,45,34,[0,a(cL),[0,a(bA),[0,a(aR),0]]]],anm=a("35949"),ann=a(nT),ano=a("29515"),anr=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anj=a(z),ank=[0,a(aQ),54,5,54,35,[0,a(cL),[0,a(bA),[0,a(aR),0]]]],ana=a(z),anb=a("5895"),anc=a("40630"),and=a(z),ane=a(sH),anf=a(s7),ang=a(z),anh=a("4743"),ani=a("33094"),anl=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],am9=a(q),am_=[0,a(aQ),759,5,760,34,[0,a(cL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],am6=a("29682"),am7=a("25859"),am8=a("24246"),am$=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],am3=a(q),am4=[0,a(aQ),769,5,770,34,[0,a(cL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],am0=a("35799"),am1=a(BQ),am2=a("29392"),am5=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amX=a(z),amY=[0,a(aQ),Da,5,Da,35,[0,a(cL),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],amO=a(z),amP=a("5870"),amQ=a("40460"),amR=a(z),amS=a(xg),amT=a(Bp),amU=a(z),amV=a("4723"),amW=a(zC),amZ=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],anW=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amK=[0,a(S),n4,14,n4,42,[0,a("Article 12"),[0,a(bV),[0,a(O),0]]]],amH=a(q),amI=a(iP),amJ=a(iP),amB=[0,a(aQ),sk,14,sk,29,[0,a(cK),[0,a(bA),[0,a(aR),0]]]],amv=a(q),amw=a(s_),amx=a(nT),amy=a(z),amz=a(sH),amA=a(s7),amC=[0,a(d),er,11,er,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amu=[0,a(S),hw,14,hw,29,[0,a(cK),[0,a(bV),[0,a(O),0]]]],amo=a(q),amp=a(s_),amq=a(nT),amr=a(z),ams=a(sH),amt=a(s7),amD=[0,a(d),er,11,er,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amm=[0,a(aQ),p1,14,p1,29,[0,a(cK),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],amg=a(q),amh=a("25869"),ami=a(BQ),amj=a(z),amk=a(xg),aml=a(Bp),amn=[0,a(d),er,11,er,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amb=[0,a(S),fN,14,fN,44,[0,a(rQ),[0,a(bV),[0,a(O),0]]]],alV=a(q),alW=a("487000"),alX=a("697700"),alY=a(z),alZ=a(Cq),al0=a(X),al1=a("850900"),al2=a(aa),al3=a("883400"),al4=a(ae),al5=a("916300"),al6=a(R),al7=a("948800"),al8=a(dS),al9=a(D2),al_=a(dS),al$=a("32300"),ama=a(D2),amc=[0,a(d),ez,11,ez,41,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],alT=[0,a(aQ),zh,14,zh,44,[0,a(rQ),[0,a("Articles valables du 1er janvier 2022 au 1er juillet 2022"),[0,a(aR),0]]]],alB=a(q),alC=a("468300"),alD=a("670900"),alE=a(z),alF=a("800200"),alG=a(X),alH=a("819200"),alI=a(aa),alJ=a("849500"),alK=a(ae),alL=a("881100"),alM=a(R),alN=a("912400"),alO=a(dS),alP=a(BH),alQ=a(dS),alR=a("31100"),alS=a(BH),alU=[0,a(d),ez,11,ez,41,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],alz=[0,a(aQ),ze,14,ze,44,[0,a(rQ),[0,a(O),[0,a("Articles valables du 1er janvier 2020 au 1er janvier 2022"),[0,a(aR),0]]]]],alh=a(q),ali=a("458800"),alj=a("657200"),alk=a(z),all=a("783900"),alm=a(X),aln=a("801500"),alo=a(aa),alp=a(Cq),alq=a(ae),alr=a("863100"),als=a(R),alt=a("893800"),alu=a(dS),alv=a(wp),alw=a(dS),alx=a(pp),aly=a(wp),alA=[0,a(d),ez,11,ez,41,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ala=[0,a(aQ),fZ,14,fZ,40,[0,a(cK),[0,a(O),[0,a(cm),[0,a(aR),0]]]]],akU=a(q),akV=a(sr),akW=a(sl),akX=a(z),akY=a(rz),akZ=a(X),ak0=a(r7),ak1=a(aa),ak2=a(s0),ak3=a(ae),ak4=a(rw),ak5=a(R),ak6=a(sb),ak7=a(dS),ak8=a(h7),ak9=a(dS),ak_=a(se),ak$=a(h7),alb=[0,a(d),dU,10,dU,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],akT=[0,a(aQ),oy,14,oy,40,[0,a(cK),[0,a(bA),[0,a(aR),0]]]],akB=a(q),akC=a(sr),akD=a(sl),akE=a(z),akF=a(rz),akG=a(X),akH=a(r7),akI=a(aa),akJ=a(s0),akK=a(ae),akL=a(rw),akM=a(R),akN=a(sb),akO=a(dS),akP=a(h7),akQ=a(dS),akR=a(se),akS=a(h7),alc=[0,a(d),dU,10,dU,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],akA=[0,a(S),A1,14,A1,40,[0,a(cK),[0,a(bV),[0,a(O),0]]]],aki=a(q),akj=a(sr),akk=a(sl),akl=a(z),akm=a(rz),akn=a(X),ako=a(r7),akp=a(aa),akq=a(s0),akr=a(ae),aks=a(rw),akt=a(R),aku=a(sb),akv=a(dS),akw=a(h7),akx=a(dS),aky=a(se),akz=a(h7),ald=[0,a(d),dU,10,dU,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],akc=[0,a(d),fW,14,fW,50,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aj_=[0,a(S),CJ,14,CJ,41,[0,a("Article 11"),[0,a(bV),[0,a(O),0]]]],aj9=a(lk),aj5=[0,a(r),Dc,14,Dc,29,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],aj4=a(yd),aj6=[0,a(d),pK,11,pK,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aj3=[0,a(d),pK,11,pK,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aj7=[0,a(aG),[0,a("fraction_l832_3"),0]],aj$=[0,a(d),oj,11,oj,38,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aj8=[0,a(d),oj,11,oj,38,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aka=[0,a(aG),[0,a("montant_forfaitaire_d823_16"),0]],akd=[0,a(d),fW,14,fW,50,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ake=[0,a(aG),[0,a(lz),0]],akb=[0,a(d),fW,14,fW,50,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],akf=[0,a(aG),[0,a(eK),[0,a(bl),0]]],akg=[0,a(aG),[0,a(eK),[0,a(bl),0]]],ale=[0,a(d),dU,10,dU,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],akh=[0,a(d),dU,10,dU,36,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],alf=[0,a(aG),[0,a("taux_composition_familiale"),0]],amd=[0,a(d),ez,11,ez,41,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],alg=[0,a(d),ez,11,ez,41,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ame=[0,a(aG),[0,a("abattement_forfaitaire_d823_17"),0]],amE=[0,a(d),er,11,er,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amf=[0,a(d),er,11,er,26,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amF=[0,a(aG),[0,a("loyer_r\xc3\xa9f\xc3\xa9rence"),0]],amL=[0,a(d),nj,11,nj,39,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amG=[0,a(d),nj,11,nj,39,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amM=[0,a(aG),[0,a("montant_minimal_aide_d823_16"),0]],apB=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],amN=[0,a(d),ay,10,ay,33,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apC=[0,a(aG),[0,a("plafond_loyer_d823_16_2"),0]],ap7=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],apD=[0,a(d),cn,10,cn,45,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ap8=[0,a(aG),[0,a("montant_forfaitaire_charges_d823_16"),0]],aqb=[0,a(d),oR,10,oR,31,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ap9=[0,a(d),oR,10,oR,31,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqc=[0,a(aG),[0,a("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"),0]],aqi=[0,a(d),n7,11,n7,38,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqd=[0,a(d),n7,11,n7,38,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqj=[0,a(aG),[0,a("plafond_suppression_d823_16"),0]],aqp=[0,a(d),pV,11,pV,39,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqk=[0,a(d),pV,11,pV,39,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqq=[0,a(aG),[0,a("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"),0]],aqt=[0,a(d),oi,11,oi,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqr=[0,a(d),oi,11,oi,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqu=[0,a(aG),[0,a("loyer_\xc3\xa9ligible"),0]],aqB=[0,a(aG),[0,a(ls),0]],aqV=[0,a(d),d7,10,d7,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqC=[0,a(d),d7,10,d7,32,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqW=[0,a(aG),[0,a("participation_minimale"),0]],aq_=[0,a(d),eF,11,eF,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aqX=[0,a(d),eF,11,eF,25,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],aq$=[0,a(aG),[0,a("rapport_loyers"),0]],arj=[0,a(aG),[0,a(bH),0]],ar1=[0,a(d),eI,10,eI,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ark=[0,a(d),eI,10,eI,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],ar2=[0,a(aG),[0,a("taux_loyer_\xc3\xa9ligible_formule"),0]],asf=[0,a(aG),[0,a(bI),0]],ast=[0,a(d),eG,10,eG,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asg=[0,a(d),eG,10,eG,17,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asu=[0,a(aG),[0,a("taux_loyer_\xc3\xa9ligible_arrondi"),0]],asE=[0,a(aG),[0,a(li),0]],asH=[0,a(d),pz,11,pz,39,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asF=[0,a(d),pz,11,pz,39,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asI=[0,a(aG),[0,a("taux_prise_compte_ressources"),0]],asR=[0,a(aG),[0,a(bx),0]],asW=[0,a(d),oV,10,oV,35,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asS=[0,a(d),oV,10,oV,35,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asX=[0,a(aG),[0,a("participation_personnelle"),0]],as2=[0,a(d),h8,10,h8,29,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],asY=[0,a(d),h8,10,h8,29,[0,a(N),[0,a(w),[0,a(j),[0,a(e),0]]]]],as3=[0,a(aG),[0,a(fo),0]],as5=a(iS),as4=[0,a(r),p0,13,p0,76,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],as_=[0,a(r),p0,13,p0,76,[0,a(ew),[0,a(dB),[0,a(F),[0,a(D),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],as7=a(pB),as8=a(yd),as6=[0,a(aH),py,13,py,63,[0,a(rN),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],as9=[0,a(aH),py,13,py,63,[0,a(rN),[0,a(bk),[0,a(ac),[0,a(m),[0,a(ab),[0,a(l),0]]]]]]],ajR=[6,0],ajT=[0,0],ajU=[1,0],ajV=[2,0],ajW=[3,0],ajX=[4,0],ajY=[5,0],ajZ=[7,0],ajS=[0,a(b9),29,5,38,6,[0,a(cH),[0,a(mT),[0,a(a0),0]]]],ajQ=a(xA),aj0=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ajN=[8,0],ajO=[0,a(b9),47,5,49,6,[0,a(cH),[0,a(mT),[0,a(a0),0]]]],ajM=a(yv),ajP=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ajC=[6,0],ajE=[0,0],ajF=[1,0],ajG=[2,0],ajH=[3,0],ajI=[4,0],ajJ=[5,0],ajK=[7,0],ajD=[0,a(b9),68,5,77,6,[0,a(cH),[0,a(oN),[0,a(a0),0]]]],ajB=a(Br),ajL=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ajy=[8,0],ajz=[0,a(b9),86,5,88,6,[0,a(cH),[0,a(oN),[0,a(a0),0]]]],ajx=a(v2),ajA=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ajn=[6,0],ajp=[0,0],ajq=[1,0],ajr=[2,0],ajs=[3,0],ajt=[4,0],aju=[5,0],ajv=[7,0],ajo=[0,a(b9),dy,5,bm,6,[0,a(cH),[0,a(mV),[0,a(a0),0]]]],ajm=a(B5),ajw=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ajj=[8,0],ajk=[0,a(b9),cu,5,cF,6,[0,a(cH),[0,a(mV),[0,a(a0),0]]]],aji=a(Fg),ajl=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ai_=[6,0],aja=[0,0],ajb=[1,0],ajc=[2,0],ajd=[3,0],aje=[4,0],ajf=[5,0],ajg=[7,0],ai$=[0,a(b9),eX,5,fH,6,[0,a(cH),[0,a(ok),[0,a(a0),0]]]],ai9=a(Ci),ajh=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],ai6=[8,0],ai7=[0,a(b9),rO,5,oS,6,[0,a(cH),[0,a(ok),[0,a(a0),0]]]],ai5=a(xO),ai8=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],aiV=[6,0],aiX=[0,0],aiY=[1,0],aiZ=[2,0],ai0=[3,0],ai1=[4,0],ai2=[5,0],ai3=[7,0],aiW=[0,a(b9),oa,5,jq,6,[0,a(om),[0,a(nK),[0,a(a0),0]]]],aiU=a(Av),ai4=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],aiR=[8,0],aiS=[0,a(b9),xS,5,zo,6,[0,a(om),[0,a(nK),[0,a(a0),0]]]],aiQ=a(Ff),aiT=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],aj1=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],aiP=[0,a(b9),11,10,11,22,[0,a(H),[0,a(a0),0]]],aj2=[0,a(hx),[0,a(AM),0]],aiL=[0,a(eN),28,5,29,34,[0,a(C3),[0,a(ch),0]]],aiK=a(yx),aiM=[0,a(eN),6,10,6,17,[0,a(ch),0]],aiI=[0,a(eN),48,5,49,34,[0,a(Bm),[0,a(ch),0]]],aiH=a(ya),aiJ=[0,a(eN),6,10,6,17,[0,a(ch),0]],aiF=[0,a(eN),64,5,65,34,[0,a(CN),[0,a(ch),0]]],aiE=a(Cz),aiG=[0,a(eN),6,10,6,17,[0,a(ch),0]],aiC=[0,a(eN),82,5,83,34,[0,a(xJ),[0,a(ch),0]]],aiB=a(Cs),aiD=[0,a(eN),6,10,6,17,[0,a(ch),0]],aiN=[0,a(eN),6,10,6,17,[0,a(ch),0]],aiA=[0,a(eN),6,10,6,17,[0,a(ch),0]],aiO=[0,a(f4),[0,a(bN),0]],aiv=[0,a(r),sy,14,sy,28,[0,a(lN),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aiu=a(q),aiw=[0,a(d),fg,10,fg,24,[0,a(cl),[0,a(B),[0,a(e),0]]]],ait=[0,a(r),Fq,14,Fq,28,[0,a(lH),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ais=a(q),aix=[0,a(d),fg,10,fg,24,[0,a(cl),[0,a(B),[0,a(e),0]]]],ain=[0,a(r),D7,20,D7,55,[0,a(lH),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aik=a(q),ail=a(q),aim=a(lG),aio=[0,a(d),dG,11,dG,43,[0,a(cl),[0,a(B),[0,a(e),0]]]],aii=[0,a(r),rF,20,rF,51,[0,a(lH),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],aif=a(q),aig=a(q),aih=a(lG),aij=[0,a(d),dG,11,dG,43,[0,a(cl),[0,a(B),[0,a(e),0]]]],aid=[0,a(r),zr,7,zr,42,[0,a(lN),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ah$=a(De),aia=a(ep),aib=a(lG),aic=a(q),aie=[0,a(d),dG,11,dG,43,[0,a(cl),[0,a(B),[0,a(e),0]]]],ah9=[0,a(r),CE,7,CE,51,[0,a(lN),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ah5=a(De),ah6=a(ep),ah7=a(lG),ah8=a(q),ah_=[0,a(d),dG,11,dG,43,[0,a(cl),[0,a(B),[0,a(e),0]]]],ah0=[0,a(r),Gi,14,Gi,36,[0,a(lH),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ah1=[0,a(d),f1,11,f1,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahY=[0,a(r),Fl,14,Fl,36,[0,a(lN),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ahX=a(cN),ahZ=[0,a(d),f1,11,f1,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahR=[0,a(r),w8,14,w8,36,[0,a(lN),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ahS=[0,a(d),fP,11,fP,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahQ=[0,a(r),vR,14,vR,36,[0,a(lH),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ahT=[0,a(d),fP,11,fP,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahM=[0,a(r),Ge,14,Ge,36,[0,a("Article R824-3"),[0,a(d8),[0,a(ec),[0,a(x),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ahH=[0,0],ahI=[1,0],ahJ=[1,0],ahK=[0,0],ahL=[0,0],ahN=[0,a(d),nc,11,nc,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahG=[0,a(d),nc,11,nc,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahO=[0,a(lF),[0,a("mode_occupation_impay\xc3\xa9"),0]],ahU=[0,a(d),fP,11,fP,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahP=[0,a(d),fP,11,fP,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahV=[0,a(lF),[0,a("d\xc3\xa9pense_logement_brute"),0]],ah2=[0,a(d),f1,11,f1,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ahW=[0,a(d),f1,11,f1,33,[0,a(cl),[0,a(B),[0,a(e),0]]]],ah3=[0,a(lF),[0,a("d\xc3\xa9pense_logement_nette"),0]],aip=[0,a(d),dG,11,dG,43,[0,a(cl),[0,a(B),[0,a(e),0]]]],ah4=[0,a(d),dG,11,dG,43,[0,a(cl),[0,a(B),[0,a(e),0]]]],aiq=[0,a(lF),[0,a("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"),0]],aiy=[0,a(d),fg,10,fg,24,[0,a(cl),[0,a(B),[0,a(e),0]]]],air=[0,a(d),fg,10,fg,24,[0,a(cl),[0,a(B),[0,a(e),0]]]],aiz=[0,a(lF),[0,a("montant_impay\xc3\xa9"),0]],ahB=[0,a(c8),lB,5,lB,43,[0,a(ln),[0,a(k9),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(j4),[0,a(ab),[0,a(ad),0]]]]]]]]]],ahC=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahz=[0,a(c8),eA,5,eA,42,[0,a(lE),[0,a(lu),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(k_),[0,a(a$),[0,a(ad),0]]]]]]]]]],ahA=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahx=[0,a(c8),266,5,rB,43,[0,a(lE),[0,a(lu),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(k_),[0,a(a$),[0,a(ad),0]]]]]]]]]],ahy=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahu=a("1952"),ahv=[0,a(c8),x9,5,x9,48,[0,a(lE),[0,a(lu),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(k_),[0,a(a$),[0,a(ad),0]]]]]]]]]],ahw=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahr=a("1953"),ahs=[0,a(c8),oh,5,oh,48,[0,a(lE),[0,a(lu),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(k_),[0,a(a$),[0,a(ad),0]]]]]]]]]],aht=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],aho=a("1954"),ahp=[0,a(c8),dO,5,dO,48,[0,a(lE),[0,a(lu),[0,a(ex),[0,a(eU),[0,a(eV),[0,a(eq),[0,a(k_),[0,a(a$),[0,a(ad),0]]]]]]]]]],ahq=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahD=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahn=[0,a(d),b6,10,b6,29,[0,a(fE),[0,a(B),[0,a(e),0]]]],ahE=[0,a(sE),[0,a("\xc3\xa2ge_ouverture_droit"),0]],ahk=[0,a(r),CR,14,CR,36,[0,a(d3),[0,a(am),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]],ag8=a(q),ag9=a(EO),ag_=a(w7),ag$=a(z),aha=a(iS),ahb=a(X),ahc=a(pr),ahd=a(aa),ahe=a(ry),ahf=a(ae),ahg=a(im),ahh=a(ae),ahi=a(ld),ahj=a(im),ahl=[0,a(d),o5,10,o5,32,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ag7=[0,a(d),o5,10,o5,32,[0,a(I),[0,a(w),[0,a(j),[0,a(e),0]]]]],ahm=[0,a(lr),[0,a(wQ),0]],ag3=[0,a(r),Dt,5,Dt,26,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],agP=a(q),agQ=a("1.2"),agR=a("1.5"),agS=a(z),agT=a(iS),agU=a(X),agV=a(pr),agW=a(aa),agX=a(ry),agY=a(ae),agZ=a(im),ag0=a(ae),ag1=a(ld),ag2=a(im),ag4=[0,a(d),hE,10,hE,32,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agO=[0,a(r),xM,14,xM,36,[0,a(ct),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],agA=a(q),agB=a(EO),agC=a(w7),agD=a(z),agE=a(iS),agF=a(X),agG=a(pr),agH=a(aa),agI=a(ry),agJ=a(ae),agK=a(im),agL=a(ae),agM=a(ld),agN=a(im),ag5=[0,a(d),hE,10,hE,32,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agz=[0,a(d),hE,10,hE,32,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],ag6=[0,a(ly),[0,a(EB),0]],agv=[0,a(r),wH,5,wH,26,[0,a(so),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],agu=a(b3),ags=a(cN),agt=a(b3),agw=[0,a(d),jp,10,jp,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agr=[0,a(r),of,14,of,21,[0,a(so),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],agq=a(b3),ago=a(cN),agp=a(b3),agk=[0,a(r),y_,14,y_,50,[0,a(so),[0,a(a9),[0,a(ao),[0,a(al),[0,a(ac),[0,a(m),[0,a(s),[0,a(l),0]]]]]]]]],agj=[1,0],age=[0,a(S),E8,5,E8,26,[0,a(tl),[0,a(fd),[0,a(O),0]]]],af1=a("0.328"),af2=a(yJ),af3=[1,0],af4=a(wV),af5=a(Ew),af6=a(yJ),af7=a(we),af8=a(zR),af9=a(Ew),af_=a("0.024"),af$=a(xc),aga=a(zR),agb=a(b3),agc=a(q),agd=a(xc),agf=[0,a(d),gB,11,gB,35,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],af0=[0,a(S),xu,14,xu,38,[0,a(tl),[0,a(fd),[0,a(O),0]]]],afI=a("0.48"),afJ=a(yb),afK=[1,0],afL=a(th),afM=a(zX),afN=a(yb),afO=a("0.264"),afP=a(zc),afQ=a(zX),afR=a("0.216"),afS=a(ET),afT=a(zc),afU=a("0.104"),afV=a(y8),afW=a(ET),afX=a(C_),afY=a(q),afZ=a(y8),afE=[0,a(S),xf,14,xf,41,[0,a(tl),[0,a(fd),[0,a(O),0]]]],afC=a("7632"),afD=a("4557"),afF=[0,a(d),m6,11,m6,38,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],afB=[0,a(d),m6,11,m6,38,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],afG=[0,a(dK),[0,a("montant_forfaitaire_d832_26"),0]],agg=[0,a(d),gB,11,gB,35,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],afH=[0,a(d),gB,11,gB,35,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agh=[0,a(dK),[0,a("tranches_revenus_d832_26"),0]],agl=[0,a(d),oA,11,oA,47,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agi=[0,a(d),oA,11,oA,47,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agm=[0,a(dK),[0,a("tranches_revenus_d832_26_multipli\xc3\xa9es"),0]],agx=[0,a(d),jp,10,jp,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agn=[0,a(d),jp,10,jp,17,[0,a(Q),[0,a(w),[0,a(j),[0,a(e),0]]]]],agy=[0,a(dK),[0,a(bN),0]],afx=[0,a(fB),ev,5,ev,35,[0,a(cK),[0,a(sh),[0,a(tj),0]]]],afy=[0,a(d),o7,10,o7,17,[0,a(fI),[0,a(j),[0,a(e),0]]]],afw=[0,a(d),o7,10,o7,17,[0,a(fI),[0,a(j),[0,a(e),0]]]],aft=[0,a(fB),oc,39,oc,69,[0,a(ou),[0,a(sh),[0,a(tj),0]]]],afs=a(mW),afn=[0,a(c8),37,9,37,20,[0,a("Article L136-1-3"),[0,a("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"),[0,a("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"),[0,a(j4),[0,a(ab),[0,a(ad),0]]]]]]],afo=[0,a(d),fY,11,fY,22,[0,a(fI),[0,a(j),[0,a(e),0]]]],afm=[0,a(d),fY,11,fY,22,[0,a(fI),[0,a(j),[0,a(e),0]]]],afp=[0,a(d),fY,11,fY,22,[0,a(fI),[0,a(j),[0,a(e),0]]]],afl=[0,a(d),fY,11,fY,22,[0,a(fI),[0,a(j),[0,a(e),0]]]],afq=[0,a(bl),[0,a("exon\xc3\xa9r\xc3\xa9_csg"),0]],afu=[0,a(d),n_,11,n_,20,[0,a(fI),[0,a(j),[0,a(e),0]]]],afr=[0,a(d),n_,11,n_,20,[0,a(fI),[0,a(j),[0,a(e),0]]]],afv=[0,a(bl),[0,a("taux_crds"),0]],afz=[0,a(bl),[0,a(bN),0]],afA=[0,a(fB),cF,13,cF,24,[0,a(cK),[0,a(sh),[0,a(tj),0]]]],afd=a("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"),afe=a("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"),aff=a("situation_familiale"),afg=a("nombre_autres_occupants_logement"),afh=a("personnes_\xc3\xa0_charge"),afi=a("logement"),afj=a("prestations_re\xc3\xa7ues"),afk=[0,a("M\xc3\xa9nage"),0],ae5=a("zone"),ae6=a("surface_m_carr\xc3\xa9s"),ae7=a("logement_decent_l89_462"),ae8=a("usufruit"),ae9=a("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"),ae_=a("propri\xc3\xa9taire"),ae$=a("mode_occupation"),afa=a("est_ehpad_ou_maison_autonomie_l313_12_asf"),afb=a("r\xc3\xa9sidence_principale"),afc=[0,a("Logement"),0],aeZ=a(zZ),ae1=a("R\xc3\xa9sidentLogementFoyer"),ae2=a("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"),ae3=a(DU),ae4=a(yF),ae0=[0,a("ModeOccupation"),0],aeQ=a("changement_logement_d842_4"),aeR=a("logement_meubl\xc3\xa9_d842_2"),aeS=a("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),aeT=a("colocation"),aeU=a("logement_est_chambre"),aeV=a("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),aeW=a("loyer_principal"),aeX=a("bailleur"),aeY=[0,a(GA),0],aeL=a("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"),aeM=a("patrimoine"),aeN=a("nationalit\xc3\xa9"),aeO=a(B2),aeP=[0,a(rs),0],aeI=a(ED),aeK=a(Dv),aeJ=[0,a("Personne\xc3\x80Charge"),0],aew=a("pr\xc3\xaat"),aex=a("anciennet\xc3\xa9_logement"),aey=a("situation_r822_11_13_17"),aez=a("copropri\xc3\xa9t\xc3\xa9"),aeA=a("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"),aeB=a("type_travaux_logement_r842_5"),aeC=a("type_travaux_logement_d832_15"),aeD=a("date_entr\xc3\xa9e_logement"),aeE=a("charges_mensuelles_pr\xc3\xaat"),aeF=a("mensualit\xc3\xa9_principale"),aeG=a("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"),aeH=[0,a("Propri\xc3\xa9taire"),0],aet=a(Bt),aev=a(Al),aeu=[0,a("ChangementLogementD842_4"),0],aeq=a("Fran\xc3\xa7aise"),aes=a("\xc3\x89trang\xc3\xa8re"),aer=[0,a("Nationalit\xc3\xa9"),0],aen=a(lO),aep=a(p3),aeo=[0,a("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"),0],aej=a(Dy),ael=a("BailleurPriv\xc3\xa9AvecConventionnementSocial"),aem=a("BailleurPriv\xc3\xa9"),aek=[0,a("TypeBailleur"),0],aeb=a("situation_garde_altern\xc3\xa9e"),aec=a(sx),aed=a(rY),aee=a(rX),aef=a(rR),aeg=a(rD),aeh=a(sp),aei=[0,a(ED),0],ad5=a(rD),ad6=a(rR),ad7=a(FB),ad8=a(rX),ad9=a(rY),ad_=a(sx),ad$=a(sp),aea=[0,a("EnfantPrestationsFamiliales"),0],adX=a("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"),adY=a("redevance"),adZ=a("construit_application_loi_1957_12_III"),ad0=a("date_conventionnement"),ad1=a(FV),ad2=a("remplit_conditions_r832_21"),ad3=a("type"),ad4=[0,a(yI),0],adP=a("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"),adQ=a("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"),adR=a("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"),adS=a("parent\xc3\xa9"),adT=a("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"),adU=a("ressources"),adV=a(B2),adW=[0,a(Dv),0],adL=a(vY),adM=a(wd),adN=a(Fo),adO=[0,a("TrancheRevenuD\xc3\xa9cimal"),0],adG=a(vY),adH=a(wd),adI=a(Fo),adJ=[0,a("TrancheRevenu"),0],adC=a(Be),adE=a(DJ),adD=[0,a("NeufOuAncien"),0],ady=a("titulaire_pr\xc3\xaat"),adz=a("date_signature"),adA=a("type_pr\xc3\xaat"),adB=[0,a("Pr\xc3\xaat"),0],adv=a("ancienne_allocation_logement"),adw=a("ancien_loyer_principal"),adx=[0,a("InfosChangementLogementD842_4"),0],adt=a("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"),adu=[0,a("Conditions\xc3\x89trangers"),0],adq=a("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),adr=a("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),ads=[0,a("Patrimoine"),0],adn=a("conforme_article_l442_1"),ado=a("date_naissance_personne_sous_location"),adp=[0,a("PersonneSousLocation"),0],adl=a("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"),adm=[0,a("ConventionANHA"),0],adi=a("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"),adj=a(FV),adk=[0,a("ConventionBailleurSocial"),0],ac$=a(pj),adb=a(W),adc=a(rP),add=a(oW),ade=a(Et),adf=a(jH),adg=a(Cp),adh=a(zI),ada=[0,a(Gs),0],ac6=a(lt),ac8=a(lh),ac9=a(CU),ac7=[0,a(Dx),0],ac0=a(BI),ac2=a(EF),ac3=a(k7),ac4=a(F2),ac5=a(zt),ac1=[0,a("PriseEnChargeEnfant"),0],acQ=a(nu),acS=a(pu),acT=a(m_),acU=a(D4),acV=a(zD),acW=a(p6),acX=a(DD),acY=a(op),acZ=a(pI),acR=[0,a(Ct),0],acN=a(Fx),acP=a(A6),acO=[0,a("SituationFamilialeCalculAPL"),0],acI=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"),acK=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"),acL=a("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"),acM=a(Fv),acJ=[0,a("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"),0],acD=a("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"),acF=a("R\xc3\xa9sidenceSociale"),acG=a("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"),acH=a(iV),acE=[0,a("TypeLogementFoyer"),0],acw=a("C\xc3\xa9libataire"),acy=a("Mari\xc3\xa9s"),acz=a("Pacs\xc3\xa9s"),acA=a(zF),acB=a("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"),acC=a("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"),acx=[0,a("SituationFamiliale"),0],acs=a("AidePersonnalis\xc3\xa9eLogement"),acu=a(pU),acv=a(oo),act=[0,a("TypeAidesPersonnelleLogement"),0],aco=a("Pas\xc3\x89ligible"),acq=a(pU),acr=a(oo),acp=[0,a(b5),0],acl=a("Impay\xc3\xa9Loyer"),acn=a("Impay\xc3\xa9Pr\xc3\xaat"),acm=[0,a("ModeOccupationImpay\xc3\xa9"),0],acg=a("TotalAnnuel\xc3\x89ch\xc3\xa9ances"),aci=a("Mensualit\xc3\xa9"),acj=a(F6),ach=[0,a("D\xc3\xa9penseLogement"),0],acc=a(GA),ace=a("AccessionPropri\xc3\xa9t\xc3\xa9"),acf=a(yI),acd=[0,a("Cat\xc3\xa9gorieCalculAPL"),0],ab_=a(zY),aca=a(wS),acb=a(zw),ab$=[0,a("ZoneDHabitation"),0],ab6=a(BU),ab8=a(BL),ab9=a("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"),ab7=[0,a("Parent\xc3\xa9"),0],ab3=a("PasDeGardeAltern\xc3\xa9e"),ab5=a("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"),ab4=[0,a("SituationGardeAltern\xc3\xa9e"),0],ab0=a("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"),ab2=a(iV),ab1=[0,a("ParentOuAutre"),0],abT=a(W),abV=a(rP),abW=a(Du),abX=a(jH),abY=a("AllocationSoutienEnfantHandicap\xc3\xa9"),abZ=a("AllocationAdulteHandicap\xc3\xa9"),abU=[0,a("PrestationRe\xc3\xa7ue"),0],abP=a(EW),abR=a(wM),abQ=[0,a("LimiteTrancheD\xc3\xa9cimal"),0],abM=a(EW),abO=a(wM),abN=[0,a("LimiteTranche"),0],abJ=a(p3),abL=a(lO),abK=[0,a("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0],abE=a("ObjectifD\xc3\xa9cenceLogement"),abG=a("Pr\xc3\xa9vuDansListeR321_15"),abH=a(CZ),abI=a(ps),abF=[0,a("TypeTravauxLogementR842_5"),0],abA=a(x3),abC=a("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"),abD=a(ps),abB=[0,a("TypeTravauxLogementD832_15"),0],abx=a(rs),abz=a(yo),aby=[0,a("TitulairePr\xc3\xaat"),0],abr=a(B_),abt=a(ym),abu=a(AO),abv=a(AY),abw=a(iV),abs=[0,a("TypePr\xc3\xaat"),0],bAd=a(_),bzP=a("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."),bzQ=a("The function 'condition_2_du_832_25_in' translation isn't yet supported..."),bzN=a("The function 'condition_logement_surface_in' translation isn't yet supported..."),bzO=a("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."),bzH=a("AccessionProprieteLocalUsageExclusifHabitation"),bzI=a(zZ),bzJ=a(yF),bzK=a("ResidentLogementFoyer"),bzL=a(DU),bzM=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'ModeOccupation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")],bzE=a("AutrePersonneACharge"),bzF=a("EnfantACharge"),bzG=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'PersonneACharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")],bzA=a(Bt),bzB=a(Al),bzD=[1,0],bzC=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'ChangementLogementD8424.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")],bzw=a("Etrangere"),bzx=a("Francaise"),bzz=[0,0],bzy=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'Nationalite.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Nationalite.t'")],bzs=a(lO),bzt=a(p3),bzv=[0,0],bzu=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")],bzn=a("BailleurPrive"),bzo=a("BailleurPriveAvecConventionnementSocial"),bzp=a(Dy),bzr=[2,0],bzq=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TypeBailleur.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")],bzj=a("MoinsDeTroisEnfants"),bzk=a("PlusDeTroisEnfants"),bzm=[0,0],bzl=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")],bzf=a(DJ),bzg=a(Be),bzi=[0,0],bzh=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'NeufOuAncien.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")],by0=a(wI),by1=a(yU),by2=a(oW),by3=a(Fb),by4=a(jH),by5=a(W),by6=a(rr),by7=a(pj),by9=[0,0],by_=[2,0],by$=[1,0],bza=[5,0],bzb=[6,0],bzc=[3,0],bzd=[7,0],bze=[4,0],by8=[0,[11,a(bi),[2,0,[11,a(EG),0]]],a(Gt)],byT=a(sX),byU=a(lt),byV=a(lh),byX=[1,0],byY=[0,0],byZ=[2,0],byW=[0,[11,a(bi),[2,0,[11,a(yM),0]]],a(xh)],byI=a(k7),byJ=a(r5),byK=a(rM),byL=a(sm),byM=a(rJ),byO=[4,0],byP=[3,0],byQ=[0,0],byR=[1,0],byS=[2,0],byN=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'PriseEnChargeEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")],byp=a(nu),byq=a(pu),byr=a(xb),bys=a(m_),byt=a(pI),byu=a(FW),byv=a(x6),byw=a(p6),byx=a(op),byz=[7,0],byA=[5,0],byB=[4,0],byC=[6,0],byD=[8,0],byE=[2,0],byF=[3,0],byG=[1,0],byH=[0,0],byy=[0,[11,a(bi),[2,0,[11,a(Cl),0]]],a(xD)],byk=a(A6),byl=a(Fx),byn=[0,0],byo=[1,0],bym=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")],byb=a(Fv),byc=a("EtudiantLogeEnChambreCROUS"),byd=a("EtudiantLogeEnChambreCROUSRehabilitee"),bye=a("PersonnesAgeesSelon3DeD842_16"),byg=[2,0],byh=[1,0],byi=[0,0],byj=[3,0],byf=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")],bx4=a(iV),bx5=a("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"),bx6=a("LogementPersonnesAgeesOuHandicapees"),bx7=a("ResidenceSociale"),bx9=[1,0],bx_=[0,0],bx$=[2,0],bya=[3,0],bx8=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TypeLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")],bxS=a("Celibataire"),bxT=a("CelibataireSepareDeFait"),bxU=a("ConcubinageDontSepareDeFait"),bxV=a(zF),bxW=a("Maries"),bxX=a("Pacses"),bxZ=[2,0],bx0=[3,0],bx1=[5,0],bx2=[4,0],bx3=[0,0],bxY=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'SituationFamiliale.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")],bxL=a("AidePersonnaliseeLogement"),bxM=a(pU),bxN=a(oo),bxP=[2,0],bxQ=[1,0],bxR=[0,0],bxO=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")],bxH=a(F6),bxI=a("Mensualite"),bxJ=a("TotalAnnuelEcheances"),bxK=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'DepenseLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")],bxA=a("Bailleur"),bxB=a("Beneficiaire"),bxC=a("EtablissementHabilite"),bxE=[2,0],bxF=[1,0],bxG=[0,0],bxD=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'VersementA.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'VersementA.t'")],bxw=a(lO),bxx=a("OuiAvecLoyerOuCharges"),bxz=[1,0],bxy=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")],bxp=a(zY),bxq=a(wS),bxr=a(zw),bxt=[2,0],bxu=[1,0],bxv=[0,0],bxs=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'ZoneDHabitation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")],bxj=a("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"),bxk=a("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"),bxl=a("DateDeNaissance"),bxn=[1,0],bxo=[2,0],bxm=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")],bxc=a(BU),bxd=a("CollateralDeuxiemeTroisiemeDegre"),bxe=a(BL),bxg=[1,0],bxh=[2,0],bxi=[0,0],bxf=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'Parente.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Parente.t'")],bw_=a("GardeAlterneeCoefficientPriseEnCharge"),bw$=a("PasDeGardeAlternee"),bxb=[0,0],bxa=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'SituationGardeAlternee.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")],bw6=a(iV),bw7=a("DemandeurOuConjointOuParentOuViaPartsSocietes"),bw9=[1,0],bw8=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'ParentOuAutre.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")],bwT=a("AllocationAdulteHandicape"),bwU=a(Du),bwV=a("AllocationSoutienEnfantHandicape"),bwW=a(jH),bwX=a(W),bwY=a(rr),bw0=[1,0],bw1=[0,0],bw2=[3,0],bw3=[4,0],bw4=[2,0],bw5=[5,0],bwZ=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'PrestationRecue.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")],bwO=a(lO),bwP=a(p3),bwR=[0,0],bwS=[1,0],bwQ=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'AmelioreParOccupant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")],bwF=a(CZ),bwG=a("ObjectifDecenceLogement"),bwH=a(ps),bwI=a("PrevuDansListeR321_15"),bwK=[1,0],bwL=[3,0],bwM=[0,0],bwN=[2,0],bwJ=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementR8425.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")],bwy=a(ps),bwz=a(x3),bwA=a("TravauxSurLogementDejaAcquisD832_15_2"),bwC=[1,0],bwD=[0,0],bwE=[2,0],bwB=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementD83215.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")],bwt=a(rs),bwu=a(yo),bww=[1,0],bwx=[0,0],bwv=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TitulairePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")],bwi=a(iV),bwj=a(B_),bwk=a(AO),bwl=a(ym),bwm=a(AY),bwo=[3,0],bwp=[1,0],bwq=[2,0],bwr=[0,0],bws=[4,0],bwn=[0,[11,a(bi),[2,0,[11,a("' kind for the enumeration 'TypePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypePret.t'")],bwg=[0,a(F4),a(Am),a(Fu),a(BD),a(x_),a(pY),a(f7),a(BC),a(zQ),a(wt),a(Ec),a(zg),a(BM),a(zq),a(FS),a(DL),a(Cc),a(Af),a(GE),a(Cy),a(wi),a(xU),a(BE),a(v5)],bwh=[0,a(f7),a(BD),a(DL),a(Cc),a(Af),a(x_),a(wi),a(Fu),a(wt),a(BC),a(GE),a(BM),a(Ec),a(zq),a(BE),a(Am),a(zg),a(Cy),a(v5),a(xU),a(zQ),a(F4),a(FS),a(pY)],bAC=a("AidesLogementLib"),bAE=a(_);function +bL(a){if(typeof a==="number")return 0;else switch(a[0]){case -0:return[0,bP(a[1])];case -1:return[1,bP(a[1])];case -2:return[2,bP(a[1])];case -3:return[3,bP(a[1])];case -4:return[4,bP(a[1])];case -5:return[5,bP(a[1])];case -6:return[6,bP(a[1])];case -7:return[7,bP(a[1])];case +0:return[0,bL(a[1])];case +1:return[1,bL(a[1])];case +2:return[2,bL(a[1])];case +3:return[3,bL(a[1])];case +4:return[4,bL(a[1])];case +5:return[5,bL(a[1])];case +6:return[6,bL(a[1])];case +7:return[7,bL(a[1])];case 8:var -c=a[1];return[8,c,bP(a[2])];case +c=a[1];return[8,c,bL(a[2])];case 9:var -b=a[1];return[9,b,b,bP(a[3])];case -10:return[10,bP(a[1])];case -11:return[11,bP(a[1])];case -12:return[12,bP(a[1])];case -13:return[13,bP(a[1])];default:return[14,bP(a[1])]}}function -cU(a,b){if(typeof +b=a[1];return[9,b,b,bL(a[3])];case +10:return[10,bL(a[1])];case +11:return[11,bL(a[1])];case +12:return[12,bL(a[1])];case +13:return[13,bL(a[1])];default:return[14,bL(a[1])]}}function +cR(a,b){if(typeof a==="number")return b;else switch(a[0]){case -0:return[0,cU(a[1],b)];case -1:return[1,cU(a[1],b)];case -2:return[2,cU(a[1],b)];case -3:return[3,cU(a[1],b)];case -4:return[4,cU(a[1],b)];case -5:return[5,cU(a[1],b)];case -6:return[6,cU(a[1],b)];case -7:return[7,cU(a[1],b)];case +0:return[0,cR(a[1],b)];case +1:return[1,cR(a[1],b)];case +2:return[2,cR(a[1],b)];case +3:return[3,cR(a[1],b)];case +4:return[4,cR(a[1],b)];case +5:return[5,cR(a[1],b)];case +6:return[6,cR(a[1],b)];case +7:return[7,cR(a[1],b)];case 8:var -c=a[1];return[8,c,cU(a[2],b)];case +c=a[1];return[8,c,cR(a[2],b)];case 9:var -d=a[2],e=a[1];return[9,e,d,cU(a[3],b)];case -10:return[10,cU(a[1],b)];case -11:return[11,cU(a[1],b)];case -12:return[12,cU(a[1],b)];case -13:return[13,cU(a[1],b)];default:return[14,cU(a[1],b)]}}function -bC(a,b){if(typeof +d=a[2],e=a[1];return[9,e,d,cR(a[3],b)];case +10:return[10,cR(a[1],b)];case +11:return[11,cR(a[1],b)];case +12:return[12,cR(a[1],b)];case +13:return[13,cR(a[1],b)];default:return[14,cR(a[1],b)]}}function +bE(a,b){if(typeof a==="number")return b;else switch(a[0]){case -0:return[0,bC(a[1],b)];case -1:return[1,bC(a[1],b)];case +0:return[0,bE(a[1],b)];case +1:return[1,bE(a[1],b)];case 2:var -c=a[1];return[2,c,bC(a[2],b)];case +c=a[1];return[2,c,bE(a[2],b)];case 3:var -d=a[1];return[3,d,bC(a[2],b)];case +d=a[1];return[3,d,bE(a[2],b)];case 4:var -e=a[3],f=a[2],g=a[1];return[4,g,f,e,bC(a[4],b)];case +e=a[3],f=a[2],g=a[1];return[4,g,f,e,bE(a[4],b)];case 5:var -h=a[3],i=a[2],j=a[1];return[5,j,i,h,bC(a[4],b)];case +h=a[3],i=a[2],j=a[1];return[5,j,i,h,bE(a[4],b)];case 6:var -k=a[3],l=a[2],m=a[1];return[6,m,l,k,bC(a[4],b)];case +k=a[3],l=a[2],m=a[1];return[6,m,l,k,bE(a[4],b)];case 7:var -n=a[3],o=a[2],p=a[1];return[7,p,o,n,bC(a[4],b)];case +n=a[3],o=a[2],p=a[1];return[7,p,o,n,bE(a[4],b)];case 8:var -q=a[3],r=a[2],s=a[1];return[8,s,r,q,bC(a[4],b)];case +q=a[3],r=a[2],s=a[1];return[8,s,r,q,bE(a[4],b)];case 9:var -t=a[1];return[9,t,bC(a[2],b)];case -10:return[10,bC(a[1],b)];case +t=a[1];return[9,t,bE(a[2],b)];case +10:return[10,bE(a[1],b)];case 11:var -u=a[1];return[11,u,bC(a[2],b)];case +u=a[1];return[11,u,bE(a[2],b)];case 12:var -v=a[1];return[12,v,bC(a[2],b)];case +v=a[1];return[12,v,bE(a[2],b)];case 13:var -w=a[2],x=a[1];return[13,x,w,bC(a[3],b)];case +w=a[2],x=a[1];return[13,x,w,bE(a[3],b)];case 14:var -y=a[2],z=a[1];return[14,z,y,bC(a[3],b)];case -15:return[15,bC(a[1],b)];case -16:return[16,bC(a[1],b)];case +y=a[2],z=a[1];return[14,z,y,bE(a[3],b)];case +15:return[15,bE(a[1],b)];case +16:return[16,bE(a[1],b)];case 17:var -A=a[1];return[17,A,bC(a[2],b)];case +A=a[1];return[17,A,bE(a[2],b)];case 18:var -B=a[1];return[18,B,bC(a[2],b)];case -19:return[19,bC(a[1],b)];case +B=a[1];return[18,B,bE(a[2],b)];case +19:return[19,bE(a[1],b)];case 20:var -C=a[2],D=a[1];return[20,D,C,bC(a[3],b)];case +C=a[2],D=a[1];return[20,D,C,bE(a[3],b)];case 21:var -E=a[1];return[21,E,bC(a[2],b)];case -22:return[22,bC(a[1],b)];case +E=a[1];return[21,E,bE(a[2],b)];case +22:return[22,bE(a[1],b)];case 23:var -F=a[1];return[23,F,bC(a[2],b)];default:var -G=a[2],H=a[1];return[24,H,G,bC(a[3],b)]}}function -oB(a,c,b){return a[1]===c?(a[1]=b,1):0}function -aF(a){throw[0,j0,a]}function -cf(a){throw[0,sg,a]}var -sh=[bg,Jc,da(0)];function -iu(a){return 0<=a?a:-a|0}var -sm=ip(Je),sn=ip(Jf),Jd=rz,Jh=ip(Jg);function -b2(d,c){var -a=aL(d),e=aL(c),b=ce(a+e|0);em(d,0,b,0,a);em(c,0,b,a,e);return cS(b)}function -Ji(a){return a?Jj:Jk}bCE(0);var -Jn=IV(1),er=IV(2);function -Jo(b){function +F=a[1];return[23,F,bE(a[2],b)];default:var +G=a[2],H=a[1];return[24,H,G,bE(a[3],b)]}}function +qm(a,c,b){return a[1]===c?(a[1]=b,1):0}function +aI(a){throw[0,l6,a]}function +bY(a){throw[0,tI,a]}var +tJ=[bh,Hu,c0(0)];function +tO(b,a){return G8(b,a)?b:a}function +gc(a){return 0<=a?a:-a|0}var +tP=kA(Hw),tQ=kA(Hx),Hv=s6,Hz=kA(Hy);function +bP(d,c){var +a=aK(d),e=aK(c),b=bX(a+e|0);ef(d,0,b,0,a);ef(c,0,b,a,e);return cP(b)}function +HA(a){return a?HB:HC}bBq(0);var +HF=Hb(1),ei=Hb(2);function +HG(b){function a(b){var a=b;for(;;){if(a){var -c=a[2],d=a[1];try{gN(d)}catch(a){a=m(a);if(a[1]!==sk)throw a;var +c=a[2],d=a[1];try{gZ(d)}catch(a){a=o(a);if(a[1]!==tM)throw a;var e=a}var -a=c;continue}return 0}}return a(bCF(0))}function -iv(b,a){return r6(b,a,0,aL(a))}function -so(a){iv(er,a);IW(er,10);return gN(er)}var -oE=[0,Jo];function -Jq(c){for(;;){var -a=oE[1],d=[0,1],b=1-oB(oE,a,function(a,b){return function(d){if(oB(a,1,0))r(c,0);return r(b,0)}}(d,a));if(b)continue;return b}}function -oF(a){return r(oE[1],0)}r9(a(ur),oF);function -sp(a){if(0<=a&&!(lY>>0))e=1}else +f=0;if(1>>0))e=1}else if(65<=d)e=1}else{var -f=0;if(32!==d)if(43<=d)switch(d+Bc|0){case +f=0;if(32!==d)if(43<=d)switch(d+Bd|0){case 5:if(a<(c+2|0)&&1>>0){if(33>>0)p=1}else +n=d0(k,j)+A4|0,p=0;if(59>>0){if(33>>0)p=1}else if(2===n)p=1;if(!p){var j=j+1|0;continue}var -e=ge(k),a=[0,0],t=dw(e)-1|0,y=0;if(!(t<0)){var +e=fq(k),a=[0,0],t=dq(e)-1|0,y=0;if(!(t<0)){var i=y;for(;;){var -f=jR(e,i),g=0;if(32<=f){var +f=lW(e,i),g=0;if(32<=f){var l=f-34|0,q=0;if(58>>0){if(93<=l)q=1}else if(56>>0){g=1;q=1}if(!q){var m=1;g=2}}else @@ -2050,254 +2124,254 @@ m=4;break;case 1:var m=2;break}a[1]=a[1]+m|0;var B=i+1|0;if(t!==i){var -i=B;continue}break}}if(a[1]===dw(e)){var -r=dw(e),s=ce(r);gd(e,0,s,0,r);var +i=B;continue}break}}if(a[1]===dq(e)){var +r=dq(e),s=bX(r);f9(e,0,s,0,r);var v=s}else{var -b=ce(a[1]);a[1]=0;var -u=dw(e)-1|0,z=0;if(!(u<0)){var +b=bX(a[1]);a[1]=0;var +u=dq(e)-1|0,z=0;if(!(u<0)){var h=z;for(;;){var -c=jR(e,h),d=0;if(35<=c)if(92===c)d=2;else -if(cE<=c)d=1;else +c=lW(e,h),d=0;if(35<=c)if(92===c)d=2;else +if(cF<=c)d=1;else d=3;else if(32<=c)if(34<=c)d=2;else d=3;else if(14<=c)d=1;else switch(c){case -8:b1(b,a[1],92);a[1]++;b1(b,a[1],98);break;case -9:b1(b,a[1],92);a[1]++;b1(b,a[1],bj);break;case -10:b1(b,a[1],92);a[1]++;b1(b,a[1],hE);break;case -13:b1(b,a[1],92);a[1]++;b1(b,a[1],zR);break;default:d=1}switch(d){case -1:b1(b,a[1],92);a[1]++;b1(b,a[1],48+(c/du|0)|0);a[1]++;b1(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;b1(b,a[1],48+(c%10|0)|0);break;case -2:b1(b,a[1],92);a[1]++;b1(b,a[1],c);break;case -3:b1(b,a[1],c);break}a[1]++;var +8:bW(b,a[1],92);a[1]++;bW(b,a[1],98);break;case +9:bW(b,a[1],92);a[1]++;bW(b,a[1],bm);break;case +10:bW(b,a[1],92);a[1]++;bW(b,a[1],iM);break;case +13:bW(b,a[1],92);a[1]++;bW(b,a[1],Ab);break;default:d=1}switch(d){case +1:bW(b,a[1],92);a[1]++;bW(b,a[1],48+(c/c7|0)|0);a[1]++;bW(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;bW(b,a[1],48+(c%10|0)|0);break;case +2:bW(b,a[1],92);a[1]++;bW(b,a[1],c);break;case +3:bW(b,a[1],c);break}a[1]++;var A=h+1|0;if(u!==h){var h=A;continue}break}}var v=b}var -o=cS(v)}var -w=aL(o),x=gi(w+2|0,34);em(o,0,x,1,w);return cS(x)}}function -sB(d,f){var -g=iu(f),e=Lu[1];switch(d[2]){case +o=cP(v)}var +w=aK(o),x=gd(w+2|0,34);ef(o,0,x,1,w);return cP(x)}}function +t3(d,f){var +g=gc(f),e=JR[1];switch(d[2]){case 0:var -b=D7;break;case +b=Dm;break;case 1:var -b=hf;break;case +b=hP;break;case 2:var b=69;break;case 3:var -b=cR;break;case +b=cO;break;case 4:var b=71;break;case 5:var b=e;break;case 6:var -b=dW;break;case +b=dM;break;case 7:var b=72;break;default:var b=70}var -c=sx(16);gU(c,37);switch(d[1]){case +c=tZ(16);g6(c,37);switch(d[1]){case 0:break;case -1:gU(c,43);break;default:gU(c,32)}if(8<=d[2])gU(c,35);gU(c,46);cA(c,a(_+g));gU(c,b);return sz(c)}function -j7(m,a){if(13<=m){var -g=[0,0],h=aL(a)-1|0,n=0;if(!(h<0)){var -c=n;for(;;){if(!(9>>0))g[1]++;var +1:g6(c,43);break;default:g6(c,32)}if(8<=d[2])g6(c,35);g6(c,46);cA(c,a(_+g));g6(c,b);return t1(c)}function +mb(m,a){if(13<=m){var +g=[0,0],h=aK(a)-1|0,n=0;if(!(h<0)){var +c=n;for(;;){if(!(9>>0))g[1]++;var q=c+1|0;if(h!==c){var c=q;continue}break}}var -i=g[1],j=ce(aL(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){gL(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=aL(a)-1|0,o=0;if(!(l<0)){var +i=g[1],j=bX(aK(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){dX(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=aK(a)-1|0,o=0;if(!(l<0)){var b=o;for(;;){var -f=d8(a,b);if(9>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var +f=d0(a,b);if(9>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var p=b+1|0;if(l!==b){var -b=p;continue}break}}return cS(j)}return a}function -Lv(b,c){switch(b){case +b=p;continue}break}}return cP(j)}return a}function +JS(b,c){switch(b){case 1:var -a=KH;break;case +a=I4;break;case 2:var -a=KI;break;case +a=I5;break;case 4:var -a=KK;break;case +a=I7;break;case 5:var -a=KL;break;case +a=I8;break;case 6:var -a=KM;break;case +a=I9;break;case 7:var -a=KN;break;case +a=I_;break;case 8:var -a=KO;break;case +a=I$;break;case 9:var -a=KP;break;case +a=Ja;break;case 10:var -a=KQ;break;case +a=Jb;break;case 11:var -a=KR;break;case +a=Jc;break;case 0:case 13:var -a=KG;break;case +a=I3;break;case 3:case 14:var -a=KJ;break;default:var -a=KS}return j7(b,on(a,c))}function -Lw(b,c){switch(b){case +a=I6;break;default:var +a=Jd}return mb(b,p$(a,c))}function +JT(b,c){switch(b){case 1:var -a=K7;break;case +a=Js;break;case 2:var -a=K8;break;case +a=Jt;break;case 4:var -a=K_;break;case +a=Jv;break;case 5:var -a=K$;break;case +a=Jw;break;case 6:var -a=La;break;case +a=Jx;break;case 7:var -a=Lb;break;case +a=Jy;break;case 8:var -a=Lc;break;case +a=Jz;break;case 9:var -a=Ld;break;case +a=JA;break;case 10:var -a=Le;break;case +a=JB;break;case 11:var -a=Lf;break;case +a=JC;break;case 0:case 13:var -a=K6;break;case +a=Jr;break;case 3:case 14:var -a=K9;break;default:var -a=Lg}return j7(b,on(a,c))}function -Lx(b,c){switch(b){case +a=Ju;break;default:var +a=JD}return mb(b,p$(a,c))}function +JU(b,c){switch(b){case 1:var -a=Li;break;case +a=JF;break;case 2:var -a=Lj;break;case +a=JG;break;case 4:var -a=Ll;break;case +a=JI;break;case 5:var -a=Lm;break;case +a=JJ;break;case 6:var -a=Ln;break;case +a=JK;break;case 7:var -a=Lo;break;case +a=JL;break;case 8:var -a=Lp;break;case +a=JM;break;case 9:var -a=Lq;break;case +a=JN;break;case 10:var -a=Lr;break;case +a=JO;break;case 11:var -a=Ls;break;case +a=JP;break;case 0:case 13:var -a=Lh;break;case +a=JE;break;case 3:case 14:var -a=Lk;break;default:var -a=Lt}return j7(b,on(a,c))}function -Ly(b,c){switch(b){case +a=JH;break;default:var +a=JQ}return mb(b,p$(a,c))}function +JV(b,c){switch(b){case 1:var -a=KU;break;case +a=Jf;break;case 2:var -a=KV;break;case +a=Jg;break;case 4:var -a=KX;break;case +a=Ji;break;case 5:var -a=KY;break;case +a=Jj;break;case 6:var -a=KZ;break;case +a=Jk;break;case 7:var -a=K0;break;case +a=Jl;break;case 8:var -a=K1;break;case +a=Jm;break;case 9:var -a=K2;break;case +a=Jn;break;case 10:var -a=K3;break;case +a=Jo;break;case 11:var -a=K4;break;case +a=Jp;break;case 0:case 13:var -a=KT;break;case +a=Je;break;case 3:case 14:var -a=KW;break;default:var -a=K5}return j7(b,bCr(a,c))}function -e6(c,i,b){function +a=Jh;break;default:var +a=Jq}return mb(b,bBb(a,c))}function +e4(c,i,b){function j(d){switch(c[1]){case 0:var a=45;break;case 1:var a=43;break;default:var -a=32}return bCo(b,i,a)}function +a=32}return bA_(b,i,a)}function q(c){var -a=ok(b);return 3===a?b<0.?LA:LB:4<=a?LC:c}switch(c[2]){case +a=p8(b);return 3===a?b<0.?JX:JY:4<=a?JZ:c}switch(c[2]){case 5:var -e=rZ(sB(c,i),b),d=0,u=aL(e);for(;;){if(d===u)var +e=tp(t3(c,i),b),d=0,u=aK(e);for(;;){if(d===u)var p=0;else{var -k=bO(e,d)-46|0,l=0;if(23>>0){if(55===k)l=1}else +k=by(e,d)-46|0,l=0;if(23>>0){if(55===k)l=1}else if(21>>0)l=1;if(!l){var d=d+1|0;continue}var p=1}var -v=p?e:b2(e,Lz);return q(v)}case +v=p?e:bP(e,JW);return q(v)}case 6:return j(0);case 7:var -h=ge(j(0)),f=dw(h);if(0===f)var +h=fq(j(0)),f=dq(h);if(0===f)var o=h;else{var -m=ce(f),n=f-1|0,r=0;if(!(n<0)){var +m=bX(f),n=f-1|0,r=0;if(!(n<0)){var a=r;for(;;){var -g=jR(h,a),s=25>>0?g:g+A0|0;b1(m,a,s);var +g=lW(h,a),s=25>>0?g:g+A4|0;bW(m,a,s);var t=a+1|0;if(n!==a){var a=t;continue}break}}var -o=m}return cS(o);case -8:return q(j(0));default:return rZ(sB(c,i),b)}}function -iU(d,x,w,v){var +o=m}return cP(o);case +8:return q(j(0));default:return tp(t3(c,i),b)}}function +k3(d,x,w,v){var b=x,a=w,c=v;for(;;)if(typeof -c==="number")return r(b,a);else +c==="number")return u(b,a);else switch(c[0]){case 0:var -y=c[1];return function(c){return a_(b,[5,a,c],y)};case +y=c[1];return function(c){return bb(b,[5,a,c],y)};case 1:var z=c[1];return function(c){var e=0;if(40<=c)if(92===c)var -d=Js;else -if(cE<=c)e=1;else +d=HO;else +if(cF<=c)e=1;else e=2;else if(32<=c)if(39<=c)var -d=Jt;else +d=HP;else e=2;else if(14<=c)e=1;else switch(c){case 8:var -d=Ju;break;case +d=HQ;break;case 9:var -d=Jv;break;case +d=HR;break;case 10:var -d=Jw;break;case +d=HS;break;case 13:var -d=Jx;break;default:e=1}switch(e){case +d=HT;break;default:e=1}switch(e){case 1:var -f=ce(4);b1(f,0,92);b1(f,1,48+(c/du|0)|0);b1(f,2,48+((c/10|0)%10|0)|0);b1(f,3,48+(c%10|0)|0);var -d=cS(f);break;case +f=bX(4);bW(f,0,92);bW(f,1,48+(c/c7|0)|0);bW(f,2,48+((c/10|0)%10|0)|0);bW(f,3,48+(c%10|0)|0);var +d=cP(f);break;case 2:var -g=ce(1);b1(g,0,c);var -d=cS(g);break}var -h=aL(d),i=gi(h+2|0,39);em(d,0,i,1,h);return a_(b,[4,a,cS(i)],z)};case +g=bX(1);bW(g,0,c);var +d=cP(g);break}var +h=aK(d),i=gd(h+2|0,39);ef(d,0,i,1,h);return bb(b,[4,a,cP(i)],z)};case 2:var -A=c[2],B=c[1];return oN(b,a,A,B,function(a){return a});case -3:return oN(b,a,c[2],c[1],KF);case -4:return j8(b,a,c[4],c[2],c[3],Lv,c[1]);case -5:return j8(b,a,c[4],c[2],c[3],Lw,c[1]);case -6:return j8(b,a,c[4],c[2],c[3],Lx,c[1]);case -7:return j8(b,a,c[4],c[2],c[3],Ly,c[1]);case +A=c[2],B=c[1];return qC(b,a,A,B,function(a){return a});case +3:return qC(b,a,c[2],c[1],I2);case +4:return mc(b,a,c[4],c[2],c[3],JS,c[1]);case +5:return mc(b,a,c[4],c[2],c[3],JT,c[1]);case +6:return mc(b,a,c[4],c[2],c[3],JU,c[1]);case +7:return mc(b,a,c[4],c[2],c[3],JV,c[1]);case 8:var g=c[4],h=c[3],i=c[2],f=c[1];if(typeof i==="number"){if(typeof -h==="number")return h?function(d,c){return a_(b,[4,a,e6(f,d,c)],g)}:function(c){return a_(b,[4,a,e6(f,oL(f),c)],g)};var -S=h[1];return function(c){return a_(b,[4,a,e6(f,S,c)],g)}}else{if(0===i[0]){var +h==="number")return h?function(d,c){return bb(b,[4,a,e4(f,d,c)],g)}:function(c){return bb(b,[4,a,e4(f,qA(f),c)],g)};var +S=h[1];return function(c){return bb(b,[4,a,e4(f,S,c)],g)}}else{if(0===i[0]){var l=i[2],m=i[1];if(typeof -h==="number")return h?function(d,c){return a_(b,[4,a,dd(m,l,e6(f,d,c))],g)}:function(c){return a_(b,[4,a,dd(m,l,e6(f,oL(f),c))],g)};var -T=h[1];return function(c){return a_(b,[4,a,dd(m,l,e6(f,T,c))],g)}}var +h==="number")return h?function(d,c){return bb(b,[4,a,c$(m,l,e4(f,d,c))],g)}:function(c){return bb(b,[4,a,c$(m,l,e4(f,qA(f),c))],g)};var +T=h[1];return function(c){return bb(b,[4,a,c$(m,l,e4(f,T,c))],g)}}var n=i[1];if(typeof -h==="number")return h?function(e,d,c){return a_(b,[4,a,dd(n,e,e6(f,d,c))],g)}:function(d,c){return a_(b,[4,a,dd(n,d,e6(f,oL(f),c))],g)};var -U=h[1];return function(d,c){return a_(b,[4,a,dd(n,d,e6(f,U,c))],g)}}case -9:return oN(b,a,c[2],c[1],Ji);case +h==="number")return h?function(e,d,c){return bb(b,[4,a,c$(n,e,e4(f,d,c))],g)}:function(d,c){return bb(b,[4,a,c$(n,d,e4(f,qA(f),c))],g)};var +U=h[1];return function(d,c){return bb(b,[4,a,c$(n,d,e4(f,U,c))],g)}}case +9:return qC(b,a,c[2],c[1],HA);case 10:var a=[7,a],c=c[1];continue;case 11:var @@ -2305,281 +2379,445 @@ a=[2,a,c[1]],c=c[2];continue;case 12:var a=[3,a,c[1]],c=c[2];continue;case 13:var -C=c[3],D=c[2],o=sx(16);oM(o,D);var -u=sz(o);return function(c){return a_(b,[4,a,u],C)};case +C=c[3],D=c[2],o=tZ(16);qB(o,D);var +t=t1(o);return function(c){return bb(b,[4,a,t],C)};case 14:var E=c[3],F=c[2];return function(d){var -e=d[1],c=br(e,bP(ca(F)));if(typeof -c[2]==="number")return a_(b,a,bC(c[1],E));throw cq};case +e=d[1],c=bv(e,bL(b_(F)));if(typeof +c[2]==="number")return bb(b,a,bE(c[1],E));throw co};case 15:var -G=c[1];return function(d,c){return a_(b,[6,a,function(a){return az(d,a,c)}],G)};case +G=c[1];return function(d,c){return bb(b,[6,a,function(a){return ar(d,a,c)}],G)};case 16:var -H=c[1];return function(c){return a_(b,[6,a,c],H)};case +H=c[1];return function(c){return bb(b,[6,a,c],H)};case 17:var a=[0,a,c[1]],c=c[2];continue;case 18:var k=c[1];if(0===k[0]){var -I=c[2],J=k[1][1],K=0,b=function(b,c,d){return function(a){return a_(c,[1,b,[0,a]],d)}}(a,b,I),a=K,c=J;continue}var -L=c[2],M=k[1][1],N=0,b=function(b,c,d){return function(a){return a_(c,[1,b,[1,a]],d)}}(a,b,L),a=N,c=M;continue;case -19:throw[0,bn,LE];case +I=c[2],J=k[1][1],K=0,b=function(b,c,d){return function(a){return bb(c,[1,b,[0,a]],d)}}(a,b,I),a=K,c=J;continue}var +L=c[2],M=k[1][1],N=0,b=function(b,c,d){return function(a){return bb(c,[1,b,[1,a]],d)}}(a,b,L),a=N,c=M;continue;case +19:throw[0,br,J1];case 20:var -O=c[3],P=[8,a,LF];return function(a){return a_(b,P,O)};case +O=c[3],P=[8,a,J2];return function(a){return bb(b,P,O)};case 21:var -Q=c[2];return function(c){return a_(b,[4,a,on(LG,c)],Q)};case +Q=c[2];return function(c){return bb(b,[4,a,p$(J3,c)],Q)};case 22:var -R=c[1];return function(c){return a_(b,[5,a,c],R)};case +R=c[1];return function(c){return bb(b,[5,a,c],R)};case 23:var e=c[2],j=c[1];if(typeof j==="number")switch(j){case -0:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -1:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -2:throw[0,bn,LH];default:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e])}else +0:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +1:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +2:throw[0,br,J4];default:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e])}else switch(j[0]){case -0:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -1:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -2:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -3:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -4:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -5:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -6:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -7:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case -8:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);case +0:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +1:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +2:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +3:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +4:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +5:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +6:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +7:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case +8:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);case 9:var -t=j[2];return d<50?pv(d+1|0,b,a,t,e):cy(pv,[0,b,a,t,e]);case -10:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e]);default:return d<50?bo(d+1|0,b,a,e):cy(bo,[0,b,a,e])}default:var -p=c[3],q=c[1],s=r(c[2],0);return d<50?pu(d+1|0,b,a,p,q,s):cy(pu,[0,b,a,p,q,s])}}function -pv(e,d,c,a,b){if(typeof -a==="number")return e<50?bo(e+1|0,d,c,b):cy(bo,[0,d,c,b]);else +s=j[2];return d<50?rp(d+1|0,b,a,s,e):cy(rp,[0,b,a,s,e]);case +10:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e]);default:return d<50?bs(d+1|0,b,a,e):cy(bs,[0,b,a,e])}default:var +p=c[3],q=c[1],r=u(c[2],0);return d<50?ro(d+1|0,b,a,p,q,r):cy(ro,[0,b,a,p,q,r])}}function +rp(e,d,c,a,b){if(typeof +a==="number")return e<50?bs(e+1|0,d,c,b):cy(bs,[0,d,c,b]);else switch(a[0]){case 0:var -f=a[1];return function(a){return dy(d,c,f,b)};case +f=a[1];return function(a){return dr(d,c,f,b)};case 1:var -g=a[1];return function(a){return dy(d,c,g,b)};case +g=a[1];return function(a){return dr(d,c,g,b)};case 2:var -h=a[1];return function(a){return dy(d,c,h,b)};case +h=a[1];return function(a){return dr(d,c,h,b)};case 3:var -i=a[1];return function(a){return dy(d,c,i,b)};case +i=a[1];return function(a){return dr(d,c,i,b)};case 4:var -j=a[1];return function(a){return dy(d,c,j,b)};case +j=a[1];return function(a){return dr(d,c,j,b)};case 5:var -k=a[1];return function(a){return dy(d,c,k,b)};case +k=a[1];return function(a){return dr(d,c,k,b)};case 6:var -l=a[1];return function(a){return dy(d,c,l,b)};case +l=a[1];return function(a){return dr(d,c,l,b)};case 7:var -m=a[1];return function(a){return dy(d,c,m,b)};case +m=a[1];return function(a){return dr(d,c,m,b)};case 8:var -n=a[2];return function(a){return dy(d,c,n,b)};case +n=a[2];return function(a){return dr(d,c,n,b)};case 9:var -o=a[3],p=a[2],q=cg(ca(a[1]),p);return function(a){return dy(d,c,cU(q,o),b)};case +o=a[3],p=a[2],q=cf(b_(a[1]),p);return function(a){return dr(d,c,cR(q,o),b)};case 10:var -r=a[1];return function(e,a){return dy(d,c,r,b)};case +r=a[1];return function(e,a){return dr(d,c,r,b)};case 11:var -s=a[1];return function(a){return dy(d,c,s,b)};case +s=a[1];return function(a){return dr(d,c,s,b)};case 12:var -t=a[1];return function(a){return dy(d,c,t,b)};case -13:throw[0,bn,LI];default:throw[0,bn,LJ]}}function -bo(d,b,e,a){var -c=[8,e,LK];return d<50?iU(d+1|0,b,c,a):cy(iU,[0,b,c,a])}function -pu(g,b,e,a,d,c){if(d){var -h=d[1];return function(d){return LD(b,e,a,h,r(c,d))}}var -f=[4,e,c];return g<50?iU(g+1|0,b,f,a):cy(iU,[0,b,f,a])}function -a_(a,b,c){return sa(iU(0,a,b,c))}function -dy(a,b,c,d){return sa(pv(0,a,b,c,d))}function -LD(a,b,c,d,e){return sa(pu(0,a,b,c,d,e))}function -oN(e,d,c,a,b){if(typeof -a==="number")return function(a){return a_(e,[4,d,r(b,a)],c)};else{if(0===a[0]){var -f=a[2],g=a[1];return function(a){return a_(e,[4,d,dd(g,f,r(b,a))],c)}}var -h=a[1];return function(f,a){return a_(e,[4,d,dd(h,f,r(b,a))],c)}}}function -j8(f,e,d,g,c,b,a){if(typeof +t=a[1];return function(a){return dr(d,c,t,b)};case +13:throw[0,br,J5];default:throw[0,br,J6]}}function +bs(d,b,e,a){var +c=[8,e,J7];return d<50?k3(d+1|0,b,c,a):cy(k3,[0,b,c,a])}function +ro(g,b,e,a,d,c){if(d){var +h=d[1];return function(d){return J0(b,e,a,h,u(c,d))}}var +f=[4,e,c];return g<50?k3(g+1|0,b,f,a):cy(k3,[0,b,f,a])}function +bb(a,b,c){return tC(k3(0,a,b,c))}function +dr(a,b,c,d){return tC(rp(0,a,b,c,d))}function +J0(a,b,c,d,e){return tC(ro(0,a,b,c,d,e))}function +qC(e,d,c,a,b){if(typeof +a==="number")return function(a){return bb(e,[4,d,u(b,a)],c)};else{if(0===a[0]){var +f=a[2],g=a[1];return function(a){return bb(e,[4,d,c$(g,f,u(b,a))],c)}}var +h=a[1];return function(f,a){return bb(e,[4,d,c$(h,f,u(b,a))],c)}}}function +mc(f,e,d,g,c,b,a){if(typeof g==="number"){if(typeof -c==="number")return c?function(g,c){return a_(f,[4,e,gV(g,az(b,a,c))],d)}:function(c){return a_(f,[4,e,az(b,a,c)],d)};var -k=c[1];return function(c){return a_(f,[4,e,gV(k,az(b,a,c))],d)}}else{if(0===g[0]){var +c==="number")return c?function(g,c){return bb(f,[4,e,g7(g,ar(b,a,c))],d)}:function(c){return bb(f,[4,e,ar(b,a,c)],d)};var +k=c[1];return function(c){return bb(f,[4,e,g7(k,ar(b,a,c))],d)}}else{if(0===g[0]){var h=g[2],i=g[1];if(typeof -c==="number")return c?function(g,c){return a_(f,[4,e,dd(i,h,gV(g,az(b,a,c)))],d)}:function(c){return a_(f,[4,e,dd(i,h,az(b,a,c))],d)};var -l=c[1];return function(c){return a_(f,[4,e,dd(i,h,gV(l,az(b,a,c)))],d)}}var +c==="number")return c?function(g,c){return bb(f,[4,e,c$(i,h,g7(g,ar(b,a,c)))],d)}:function(c){return bb(f,[4,e,c$(i,h,ar(b,a,c))],d)};var +l=c[1];return function(c){return bb(f,[4,e,c$(i,h,g7(l,ar(b,a,c)))],d)}}var j=g[1];if(typeof -c==="number")return c?function(h,g,c){return a_(f,[4,e,dd(j,h,gV(g,az(b,a,c)))],d)}:function(g,c){return a_(f,[4,e,dd(j,g,az(b,a,c))],d)};var -m=c[1];return function(g,c){return a_(f,[4,e,dd(j,g,gV(m,az(b,a,c)))],d)}}}function -e7(b,e){var +c==="number")return c?function(h,g,c){return bb(f,[4,e,c$(j,h,g7(g,ar(b,a,c)))],d)}:function(g,c){return bb(f,[4,e,c$(j,g,ar(b,a,c))],d)};var +m=c[1];return function(g,c){return bb(f,[4,e,c$(j,g,g7(m,ar(b,a,c)))],d)}}}function +e5(b,e){var a=e;for(;;)if(typeof a==="number")return 0;else switch(a[0]){case 0:var -f=a[1],g=sA(a[2]);e7(b,f);return iv(b,g);case +f=a[1],g=t2(a[2]);e5(b,f);return kF(b,g);case 1:var c=a[2],d=a[1];if(0===c[0]){var -h=c[1];e7(b,d);iv(b,LL);var +h=c[1];e5(b,d);kF(b,J8);var a=h;continue}var -i=c[1];e7(b,d);iv(b,LM);var +i=c[1];e5(b,d);kF(b,J9);var a=i;continue;case 6:var -l=a[2];e7(b,a[1]);return r(l,b);case -7:e7(b,a[1]);return gN(b);case +l=a[2];e5(b,a[1]);return u(l,b);case +7:e5(b,a[1]);return gZ(b);case 8:var -m=a[2];e7(b,a[1]);return cf(m);case +m=a[2];e5(b,a[1]);return bY(m);case 2:case 4:var -j=a[2];e7(b,a[1]);return iv(b,j);default:var -k=a[2];e7(b,a[1]);return IW(b,k)}}function -e8(b,e){var -a=e;for(;;)if(typeof +j=a[2];e5(b,a[1]);return kF(b,j);default:var +k=a[2];e5(b,a[1]);return Hc(b,k)}}function +e6(b,f){var +a=f;for(;;)if(typeof a==="number")return 0;else switch(a[0]){case 0:var -f=a[1],g=sA(a[2]);e8(b,f);return cz(b,g);case +g=a[1],h=t2(a[2]);e6(b,g);return kM(b,h);case 1:var -c=a[2],d=a[1];if(0===c[0]){var -h=c[1];e8(b,d);cz(b,LN);var -a=h;continue}var -i=c[1];e8(b,d);cz(b,LO);var -a=i;continue;case +d=a[2],e=a[1];if(0===d[0]){var +i=d[1];e6(b,e);kM(b,J_);var +a=i;continue}var +j=d[1];e6(b,e);kM(b,J$);var +a=j;continue;case 6:var -l=a[2];e8(b,a[1]);return cz(b,r(l,0));case +m=a[2];e6(b,a[1]);return kM(b,u(m,0));case 7:var a=a[1];continue;case 8:var -m=a[2];e8(b,a[1]);return cf(m);case +n=a[2];e6(b,a[1]);return bY(n);case 2:case 4:var -j=a[2];e8(b,a[1]);return cz(b,j);default:var -k=a[2];e8(b,a[1]);return bq(b,k)}}function -LP(a){if(oy(a,LQ))return LR;var -d=aL(a);function +k=a[2];e6(b,a[1]);return kM(b,k);default:var +l=a[2];e6(b,a[1]);var +c=b[2];if(b[3]<=c)qz(b,1);bW(b[1],c,l);b[2]=c+1|0;return 0}}function +Ka(a){if(qi(a,Kb))return Kc;var +d=aK(a);function f(d){var -c=LS[1],b=iC(fT);return r(a_(function(a){e8(b,a);return aF(iD(b))},0,c),a)}function +c=Kd[1],b=l_(eA);return u(bb(function(a){e6(b,a);return aI(l$(b))},0,c),a)}function g(e){var b=e;for(;;){if(b===d)return b;var -c=bO(a,b);if(9!==c&&32!==c)return b;var +c=by(a,b);if(9!==c&&32!==c)return b;var b=b+1|0;continue}}function -n(e,c){var -b=c;for(;;){if(b===d)return b;if(25>>0)return b;var +m(e,c){var +b=c;for(;;){if(b===d)return b;if(25>>0)return b;var b=b+1|0;continue}}function -o(g,f){var +n(g,f){var b=f;for(;;){if(b===d)return b;var -c=bO(a,b),e=0;if(48<=c){if(!(58<=c))e=1}else +c=by(a,b),e=0;if(48<=c){if(!(58<=c))e=1}else if(45===c)e=1;if(e){var b=b+1|0;continue}return b}}var -e=g(0),j=n(e,e),b=gR(a,e,j-e|0),c=g(j),h=o(c,c);if(c===h)var +e=g(0),j=m(e,e),b=g3(a,e,j-e|0),c=g(j),h=n(c,c);if(c===h)var i=0;else try{var -p=or(gR(a,c,h-c|0)),i=p}catch(a){a=m(a);if(a[1]!==j0)throw a;var +p=qd(g3(a,c,h-c|0)),i=p}catch(a){a=o(a);if(a[1]!==l6)throw a;var i=f(0)}if(g(h)!==d)f(0);var -l=0;if(N(b,LT)&&N(b,LU))var -k=N(b,LV)?N(b,LW)?N(b,LX)?N(b,LY)?f(0):1:2:3:0;else +l=0;if(P(b,Ke)&&P(b,Kf))var +k=P(b,Kg)?P(b,Kh)?P(b,Ki)?P(b,Kj)?f(0):1:2:3:0;else l=1;if(l)var k=4;return[0,i,k]}function -sC(d,c){var -a=c[1],b=0;return a_(function(a){e7(d,a);return 0},b,a)}function -iF(a){return sC(er,a)}function -aH(b){var -a=b[1];return a_(function(b){var -a=iC(64);e8(a,b);return iD(a)},0,a)}var -oO=[0,0];function -oQ(h,g){var +t4(d,c){var +a=c[1],b=0;return bb(function(a){e5(d,a);return 0},b,a)}function +kO(a){return t4(ei,a)}function +aL(b){var +a=b[1];return bb(function(b){var +a=l_(64);e6(a,b);return l$(a)},0,a)}var +qD=[0,0];function +qF(h,g){var a=h[1+g];if(1-(typeof -a==="number"?1:0)){if(ow(a)===i4)return r(aH(LZ),a);if(ow(a)===qu){var -c=rZ(Jm,a),b=0,f=aL(c);for(;;){if(f<=b)return b2(c,Jl);var -d=bO(c,b),e=0;if(48<=d){if(!(58<=d))e=1}else +a==="number"?1:0)){if(l3(a)===lb)return u(aL(Kk),a);if(l3(a)===sa){var +c=tp(HE,a),b=0,f=aK(c);for(;;){if(f<=b)return bP(c,HD);var +d=by(c,b),e=0;if(48<=d){if(!(58<=d))e=1}else if(45===d)e=1;if(e){var -b=b+1|0;continue}return c}}return L0}return r(aH(L1),a)}function -sD(b,a){if(b.length-1<=a)return L2;var -c=sD(b,a+1|0),d=oQ(b,a);return az(aH(L3),d,c)}function -oR(a){function +b=b+1|0;continue}return c}}return Kl}return u(aL(Km),a)}function +t5(b,a){if(b.length-1<=a)return Kn;var +c=t5(b,a+1|0),d=qF(b,a);return ar(aL(Ko),d,c)}function +qG(a){function n(e){var b=e;for(;;){if(b){var f=b[2],g=b[1];try{var -d=0,c=r(g,a);d=1}catch(a){}if(d&&c)return[0,c[1]];var +d=0,c=u(g,a);d=1}catch(a){}if(d&&c)return[0,c[1]];var b=f;continue}return 0}}var -g=n(oO[1]);if(g)return g[1];if(a===oC)return L8;if(a===sj)return L9;if(a[1]===si){var -c=a[2],h=c[3],o=c[2],p=c[1];return pw(aH(oP),p,o,h,h+5|0,L_)}if(a[1]===bn){var -d=a[2],i=d[3],q=d[2],s=d[1];return pw(aH(oP),s,q,i,i+6|0,L$)}if(a[1]===sl){var -e=a[2],j=e[3],t=e[2],u=e[1];return pw(aH(oP),u,t,j,j+6|0,Ma)}if(0===ow(a)){var +g=n(qD[1]);if(g)return g[1];if(a===qn)return Kt;if(a===tL)return Ku;if(a[1]===tK){var +c=a[2],h=c[3],o=c[2],p=c[1];return rq(aL(qE),p,o,h,h+5|0,Kv)}if(a[1]===br){var +d=a[2],i=d[3],q=d[2],r=d[1];return rq(aL(qE),r,q,i,i+6|0,Kw)}if(a[1]===tN){var +e=a[2],j=e[3],s=e[2],t=e[1];return rq(aL(qE),t,s,j,j+6|0,Kx)}if(0===l3(a)){var f=a.length-1,v=a[1][1];if(2>>0)var -k=sD(a,2),l=oQ(a,1),b=az(aH(L4),l,k);else +k=t5(a,2),l=qF(a,1),b=ar(aL(Kp),l,k);else switch(f){case 0:var -b=L5;break;case +b=Kq;break;case 1:var -b=L6;break;default:var -m=oQ(a,1),b=r(aH(L7),m)}return b2(v,b)}return a[1]}function -oS(t,s){var -d=bCg(s),f=d.length-1-1|0,o=0;if(!(f<0)){var +b=Kr;break;default:var +m=qF(a,1),b=u(aL(Ks),m)}return bP(v,b)}return a[1]}function +qH(s,r){var +d=bAY(r),f=d.length-1-1|0,o=0;if(!(f<0)){var b=o;for(;;){var -a=dM(d,b)[1+b],e=function(a){return function(b){return b?0===a?Mb:Mc:0===a?Md:Me}}(b);if(0===a[0])var -g=a[5],h=a[4],i=a[3],j=a[6]?Mf:Mh,k=a[2],l=a[7],m=e(a[1]),c=[0,bB8(aH(Mg),m,l,k,j,i,h,g)];else +a=a6(d,b)[1+b],e=function(a){return function(b){return b?0===a?Ky:Kz:0===a?KA:KB}}(b);if(0===a[0])var +g=a[5],h=a[4],i=a[3],j=a[6]?KC:KE,k=a[2],l=a[7],m=e(a[1]),c=[0,bAN(aL(KD),m,l,k,j,i,h,g)];else if(a[1])var c=0;else var -n=e(0),c=[0,r(aH(Mi),n)];if(c){var -p=c[1];r(sC(t,Mj),p)}var +n=e(0),c=[0,u(aL(KF),n)];if(c){var +p=c[1];u(t4(s,KG),p)}var q=b+1|0;if(f!==b){var b=q;continue}break}}return 0}function -sE(c){for(;;){var -a=oO[1],b=1-oB(oO,a,[0,c,a]);if(b)continue;return b}}var -Ml=Mk.slice();function -Mm(d,c){var -e=oR(d);r(iF(Mn),e);oS(er,c);var -a=bCD(0);if(a<0){var -b=iu(a);so(dM(Ml,b)[1+b])}return gN(er)}var -Mo=[0];r9(a(F1),function(d,h){try{try{var -b=h?Mo:IP(0);try{oF(0)}catch(a){}try{var -a=Mm(d,b),c=a}catch(a){a=m(a);var -f=oR(d);r(iF(Mq),f);oS(er,b);var -g=oR(a);r(iF(Mr),g);oS(er,IP(0));var -c=gN(er)}var -e=c}catch(a){a=m(a);if(a!==oC)throw a;var -e=so(Mp)}return e}catch(a){return 0}});try{var -bB5=I3(bB4),sG=bB5}catch(a){a=m(a);if(a!==dx)throw a;try{var -bB3=I3(bB2),sF=bB3}catch(a){a=m(a);if(a!==dx)throw a;var -sF=Ms}var -sG=sF}oG(sG,82);var -oT=[bg,Mt,da(0)],j9=0,sH=-1;function -iG(a,b){a[13]=a[13]+b[3]|0;return sv(b,a[28])}var -sI=1000000010;function -oU(b,a){return cK(b[17],a,0,aL(a))}function -j_(a){return r(a[19],0)}function -sJ(a,c,b){a[9]=a[9]-c|0;oU(a,b);a[11]=0;return 0}function -j$(c,a){var -b=N(a,Mu);return b?sJ(c,aL(a),a):b}function -gk(a,b,e){var -f=b[3],g=b[2];j$(a,b[1]);j_(a);a[11]=1;var -c=(a[6]-e|0)+g|0,d=a[8],h=d<=c?d:c;a[10]=h;a[9]=a[6]-a[10]|0;r(a[21],a[10]);return j$(a,f)}function -sK(b,a){return gk(b,Mv,a)}function -gW(a,b){var -c=b[2],d=b[3];j$(a,b[1]);a[9]=a[9]-c|0;r(a[20],c);return j$(a,d)}function -Mw(a,i,b){if(typeof +t6(c){for(;;){var +a=qD[1],b=1-qm(qD,a,[0,c,a]);if(b)continue;return b}}var +KI=KH.slice();function +KJ(d,c){var +e=qG(d);u(kO(KK),e);qH(ei,c);var +a=bBp(0);if(a<0){var +b=gc(a);tR(a6(KI,b)[1+b])}return gZ(ei)}var +KL=[0];tA(a(EQ),function(d,h){try{try{var +b=h?KL:G6(0);try{qq(0)}catch(a){}try{var +a=KJ(d,b),c=a}catch(a){a=o(a);var +f=qG(d);u(kO(KN),f);qH(ei,b);var +g=qG(a);u(kO(KO),g);qH(ei,G6(0));var +c=gZ(ei)}var +e=c}catch(a){a=o(a);if(a!==qn)throw a;var +e=tR(KM)}return e}catch(a){return 0}});function +md(a){var +b=a.length-1<4?1:0,c=b||(a[4]<0?1:0);return c}function +e7(a){a[4]=-a[4]|0;return 0}try{var +bAK=Hj(bAJ),t8=bAK}catch(a){a=o(a);if(a!==cI)throw a;try{var +bAI=Hj(bAH),t7=bAI}catch(a){a=o(a);if(a!==cI)throw a;var +t7=KQ}var +t8=t7}qv(t8,82);var +me=[nd,function(w){var +m=bBF(0),c=[0,e0(55,0),0],i=0===m.length-1?[0,0]:m,j=i.length-1,b=0;for(;;){a6(c[1],b)[1+b]=b;var +v=b+1|0;if(54!==b){var +b=v;continue}var +g=[0,KP],k=54+qt(55,j)|0,r=0;if(!(k<0)){var +d=r;for(;;){var +e=d%55|0,l=bBt(d,j),s=a6(i,l)[1+l],h=bP(g[1],a(_+s));g[1]=bBo(h,0,aK(h));var +f=g[1],n=by(f,3)<<24,o=by(f,2)<<16,p=by(f,1)<<8,q=((by(f,0)+p|0)+o|0)+n|0,t=(a6(c[1],e)[1+e]^q)&s4;a6(c[1],e)[1+e]=t;var +u=d+1|0;if(k!==d){var +d=u;continue}break}}c[2]=0;return c}}];function +t9(a){var +c=0>>25|0)&31)|0)&s4,g=a[2];a6(a[1],g)[1+g]=f;var +i=f}else +var +i=0;return[0,0,e0(b,0),i,b]}}return[0,g,t9,KR,KT,c,h,i,j,k,d,l,KV,KX,KY,KU,KZ,qI,K0,K1,m,e,function(b){var +a=g(16);e(a,b);return a}]}var +qJ=[bh,K5,c0(0)];function +K4(a){return bA4(10,c7,0,a)}var +mf=0,ua=-1;function +kP(a,b){a[13]=a[13]+b[3]|0;return tY(b,a[28])}var +ub=1000000010;function +qK(b,a){return cE(b[17],a,0,aK(a))}function +mg(a){return u(a[19],0)}function +uc(a,c,b){a[9]=a[9]-c|0;qK(a,b);a[11]=0;return 0}function +mh(c,a){var +b=P(a,K6);return b?uc(c,aK(a),a):b}function +gf(a,b,e){var +f=b[3],g=b[2];mh(a,b[1]);mg(a);a[11]=1;var +c=(a[6]-e|0)+g|0,d=a[8],h=d<=c?d:c;a[10]=h;a[9]=a[6]-a[10]|0;u(a[21],a[10]);return mh(a,f)}function +ud(b,a){return gf(b,K7,a)}function +g8(a,b){var +c=b[2],d=b[3];mh(a,b[1]);a[9]=a[9]-c|0;u(a[20],c);return mh(a,d)}function +K8(a,i,b){if(typeof b==="number")switch(b){case 0:var -s=gT(a[3]);if(s){var -t=s[1][1],u=function(b,a){if(a){var -c=a[1],d=a[2];return IU(b,c)?[0,b,a]:[0,c,u(b,d)]}return[0,b,0]};t[1]=u(a[6]-a[9]|0,t[1]);return 0}return 0;case -1:gS(a[2]);return 0;case -2:gS(a[3]);return 0;case +r=g5(a[3]);if(r){var +s=r[1][1],t=function(b,a){if(a){var +c=a[1],d=a[2];return G$(b,c)?[0,b,a]:[0,c,t(b,d)]}return[0,b,0]};s[1]=t(a[6]-a[9]|0,s[1]);return 0}return 0;case +1:g4(a[2]);return 0;case +2:g4(a[3]);return 0;case 3:var -v=gT(a[2]);return v?sK(a,v[1][2]):j_(a);case +v=g5(a[2]);return v?ud(a,v[1][2]):mg(a);case 4:var w=a[10]!==(a[6]-a[9]|0)?1:0;if(w){var e=a[28],g=e[2];if(g){var m=g[1];if(g[2]){var J=g[2];e[1]=e[1]-1|0;e[2]=J;var -h=[0,m]}else{oJ(e);var +h=[0,m]}else{qy(e);var h=[0,m]}}else var h=0;if(h){var q=h[1],L=q[1];a[12]=a[12]-q[3]|0;a[9]=a[9]+L|0;return 0}return 0}return w;default:var -x=gS(a[5]);return x?oU(a,r(a[25],x[1])):0}else +x=g4(a[5]);return x?qK(a,u(a[25],x[1])):0}else switch(b[0]){case -0:return sJ(a,i,b[1]);case +0:return uc(a,i,b[1]);case 1:var -c=b[2],f=b[1],y=c[1],M=c[2],z=gT(a[2]);if(z){var +c=b[2],f=b[1],y=c[1],M=c[2],z=g5(a[2]);if(z){var A=z[1],d=A[2];switch(A[1]){case -0:return gW(a,f);case -1:return gk(a,c,d);case -2:return gk(a,c,d);case -3:return a[9]<(i+aL(y)|0)?gk(a,c,d):gW(a,f);case -4:return a[11]?gW(a,f):a[9]<(i+aL(y)|0)?gk(a,c,d):((a[6]-d|0)+M|0)>>0))sK(a,p)}else -j_(a)}var -S=a[9]-R|0,T=1===H?1:a[9]>>0))ud(a,p)}else +mg(a)}var +S=a[9]-R|0,T=1===H?1:a[9]>>0)throw o4;switch(a){case +d=0===(a%4|0)?1:0,c=d?0!==(a%c7|0)?1:0:d;return c}function +ms(c,b){var +a=c-1|0;if(11>>0)throw qU;switch(a){case 1:return b?29:28;case 3:case 5:case 8:case 10:return 30;default:return 31}}function -o6(a){try{var +qW(a){try{var b=1<=a[3]?1:0;if(b)var -d=kj(a[1]),e=kk(a[2],d),c=a[3]<=e?1:0;else +d=mr(a[1]),e=ms(a[2],d),c=a[3]<=e?1:0;else var -c=b;return c}catch(a){a=m(a);if(a===o4)return 0;throw a}}function -s6(d,c,b){var -a=[0,d,c,b];if(o6(a))return a;throw o4}function -kl(f,e,d){var +c=b;return c}catch(a){a=o(a);if(a===qU)return 0;throw a}}function +uz(d,c,b){var +a=[0,d,c,b];if(qW(a))return a;throw qU}function +mt(f,e,d){var b=f,a=d;for(;;){var c=e+a|0;if(1<=c&&!(12>a===b?c:Ja(b,a)}return Ja(b,a)}function -s8(a){return typeof -a==="number"?a:bDd(a)}var -e9=0,kp=1,Nb=-1;function -s9(a){return gQ(0,a,0,aL(a))}function -Nc(b,a){return gQ(b,a,0,aL(a))}function -o7(a){if(typeof +c=b<>a===b?c:Hs(b,a)}return Hs(b,a)}function +uB(a){return typeof +a==="number"?a:bB5(a)}var +e8=0,mx=1,LN=-1;function +uC(a){return g2(0,a,0,aK(a))}function +LO(b,a){return g2(b,a,0,aK(a))}function +qX(a){if(typeof a==="number")return a;var -e=sd(a);if(63>g;f=1}if(!f)var -c=bDb(a,b);var -i=bC0(a,fv(c,b)),d=oA(c),h=i?d:bCy(d,Nd);return ot(oq(h),b)}return oq(oA(a))}function -gY(a,b){if(a!==0&&b!==1){var -c=bC3(a,b);if(c===1)return[0,a,b];var -d=s7(b,c);return[0,s7(a,c),d]}return[0,a,kp]}function -s_(b,a){var -c=db(a);if(0===c)return[0,db(b),e9];if(0>>0))switch(b){case +c=bB3(a,b);var +i=bBQ(a,fu(c,b)),d=ql(c),h=i?d:bBi(d,LP);return qf(qc(h),b)}return qc(ql(a))}function +g_(a,b){if(a!==0&&b!==1){var +c=bBT(a,b);if(c===1)return[0,a,b];var +d=uA(b,c);return[0,uA(a,c),d]}return[0,a,mx]}function +uD(b,a){var +c=c9(a);if(0===c)return[0,c9(b),e8];if(0>>0))switch(b){case 0:return 2;case 1:break;default:return 1}return 3}return a[1]===0?0:4}function -o8(d,c){var -e=gm(d),b=gm(c),a=0;switch(e){case +qY(d,c){var +e=gh(d),b=gh(c),a=0;switch(e){case 1:var j=b-1|0;if(!(2>>0))switch(j){case 0:a=2;break;case @@ -2953,44 +3196,45 @@ f=0;if(!(4<=e))switch(e){case 0:break;case 2:f=1;break;default:f=2}var h=0;switch(f){case -0:if(2!==b){if(g(d[2],c[2]))return eq(d[1],c[1]);var -l=cV(c[1],d[2]);return eq(cV(d[1],c[2]),l)}h=1;break;case +0:if(2!==b){if(g(d[2],c[2]))return eh(d[1],c[1]);var +l=cS(c[1],d[2]);return eh(cS(d[1],c[2]),l)}h=1;break;case 1:break;default:h=1}if(h)return 1}return-1}function -tb(a){var -b=a[2];return[0,gl(a[1]),b]}function -tc(c,a,b){if(a[2]===b[2]){var -d=a[2];return gY(az(c,a[1],b[1]),d)}var -e=cV(a[2],b[2]),f=cV(b[1],a[2]);return gY(az(c,cV(a[1],b[2]),f),e)}function -iK(b,a){if(b[2]!==0&&a[2]!==0){var -c=cV(b[2],a[2]);return gY(cV(b[1],a[1]),c)}return[0,iq(db(b[1]),db(a[1])),e9]}function -o9(b,a){if(0<=db(a[1]))return iK(b,[0,a[2],a[1]]);var -c=gl(a[1]);return iK(b,[0,gl(a[2]),c])}function -o_(a){switch(a){case +uG(a){var +b=a[2];return[0,gg(a[1]),b]}function +uH(c,a,b){if(a[2]===b[2]){var +d=a[2];return g_(ar(c,a[1],b[1]),d)}var +e=cS(a[2],b[2]),f=cS(b[1],a[2]);return g_(ar(c,cS(a[1],b[2]),f),e)}function +kT(b,a){if(b[2]!==0&&a[2]!==0){var +c=cS(b[2],a[2]);return g_(cS(b[1],a[1]),c)}return[0,gb(c9(b[1]),c9(a[1])),e8]}function +qZ(b,a){if(0<=c9(a[1]))return kT(b,[0,a[2],a[1]]);var +c=gg(a[1]);return kT(b,[0,gg(a[2]),c])}function +q0(a){switch(a){case 0:return 2;case 1:return 8;case 2:return 10;default:return 16}}function -o$(e,d,c,b){var -a=d;for(;;){if(c<=a)return 0;if(r(b,bO(e,a)))return[0,a];var -a=a+1|0;continue}}function -Ng(a){if(N(a,Nh)){if(N(a,Ni)){if(!N(a,Nj))return kr;if(N(a,Nk)){if(N(a,Nl))try{var -k=JH(a,47),X=gQ(0,a,k+1|0,(aL(a)-k|0)-1|0),Y=s_(gQ(0,a,0,k),X);return Y}catch(k){k=m(k);if(k===dx){var -i=aL(a),x=0;if(i<1)var +q1(e,d,c,b){var +a=d;for(;;){if(c<=a)return 0;if(u(b,by(e,a)))return[0,a];var +a=a+1|0;continue}}var +q2=[0,-1];function +LS(a){if(P(a,LT)){if(P(a,LU)){if(!P(a,LV))return mz;if(P(a,LW)){if(P(a,LX))try{var +k=H3(a,47),X=g2(0,a,k+1|0,(aK(a)-k|0)-1|0),Y=uD(g2(0,a,0,k),X);return Y}catch(k){k=o(k);if(k===cI){var +i=aK(a),x=0;if(i<1)var s=[0,0,x];else{var -M=bO(a,0)+Bc|0,Q=0;if(!(2>>0)){var +M=by(a,0)+Bd|0,Q=0;if(!(2>>0)){var R=0;switch(M){case 0:var -P=[0,0,1];break;case +O=[0,0,1];break;case 1:R=1;break;default:var -P=[0,1,1]}if(!R){var -O=P;Q=1}}if(!Q)var -O=[0,0,x];var -s=O}var +O=[0,1,1]}if(!R){var +N=O;Q=1}}if(!Q)var +N=[0,0,x];var +s=N}var c=s[2];if(i<(c+2|0))var t=[0,2,c];else{var -W=bO(a,c),g=bO(a,c+1|0),r=0;if(48===W){var +W=by(a,c),g=by(a,c+1|0),r=0;if(48===W){var h=0;if(89<=g){if(98===g)h=2;else -if(jN===g)h=1;else -if(dB!==g){r=1;h=3}}else +if(lS===g)h=1;else +if(du!==g){r=1;h=3}}else if(66===g)h=2;else if(79===g)h=1;else if(!(88<=g)){r=1;h=3}switch(h){case @@ -3003,269 +3247,226 @@ q=[0,0,c+2|0]}}else r=1;if(r)var q=[0,2,c];var t=q}var -d=t[2],b=t[1],S=2===b?function(a){if(69!==a&&hf!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&jM!==a)return 0;return 1}:function(a){return 0},y=o$(a,d,i,S);if(y)var -z=y[1],A=z+1|0,e=z,B=s8(gQ(10,a,A,i-A|0));else +d=t[2],b=t[1],S=2===b?function(a){if(69!==a&&hP!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&lR!==a)return 0;return 1}:function(a){return 0},y=q1(a,d,i,S);if(y)var +z=y[1],A=z+1|0,e=z,B=uB(g2(10,a,A,i-A|0));else var e=i,B=0;if(2<=b){var -C=o$(a,d,e,function(a){return 46===a?1:0});if(C){var +C=q1(a,d,e,function(a){return 46===a?1:0});if(C){var u=C[1];if(2===b)var -D=1;else{if(!(3<=b))throw[0,bn,Nn];var +D=1;else{if(!(3<=b))throw[0,br,LZ];var D=4}var F=u+1|0,G=e-1|0,E=0;if(G>>4|0));bq(a,te(e&15));c[1]=b+1|0;break}}var -j=b+1|0;if(g!==b){var -b=j;continue}break}}Nu(d,c,a);return bq(a,34)}function -tf(a,b){return cz(a,ND)}function -tg(b,a){var -c=a?NE:NF;return cz(b,c)}function -pa(b,a){return 0===a?0:(pa(b,a/10|0),bq(b,sp(iu(a%10|0)+48|0)))}function -th(b,a){return 0>>4|0));dX(h,g+5|0,uK(e&15));c[1]=a+1|0;break}}var +l=a+1|0;if(i!==a){var +a=l;continue}break}}L_(d,c,b);return bM(b,34)},uL=function(a,b){return d2(a,Mh)},uM=function(b,a){var +c=a?Mi:Mj;return d2(b,c)},Mk=tO(10,11),q6=function(c,b,a){if(0===a)return b;var +d=q6(c,b,a/10|0);dX(c,d,tT(gc(a%10|0)+48|0));return d+1|0},uN=function(a,b){q4(a,Mk);if(0>>1|0;L0[1]++;continue}}(globalThis)); diff --git a/french_law/ocaml/law_source/aides_logement.ml b/french_law/ocaml/law_source/aides_logement.ml index dba56afc..a1d789bb 100644 --- a/french_law/ocaml/law_source/aides_logement.ml +++ b/french_law/ocaml/law_source/aides_logement.ml @@ -2062,7 +2062,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=518; start_column=11; @@ -2070,7 +2070,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=37; start_column=9; end_line=37; end_column=20; @@ -2080,14 +2080,14 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai "Titre III: Titre III : Dispositions communes relatives au financement"; "Partie législative"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=518; start_column=11; end_line=518; end_column=22; law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2105,14 +2105,14 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=161; start_column=39; end_line=161; end_column=69; law_headings=["Article 19"; "Chapitre II : Des contributions pour le remboursement de la dette sociale."; "Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]} (date_courante_ >=@ (date_of_numbers (2020) (1) (1))))) - (fun (_: _) -> decimal_of_string "0.005")) + (fun (_: unit) -> decimal_of_string "0.005")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2132,7 +2132,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=123; start_column=5; end_line=123; end_column=35; @@ -2140,7 +2140,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai "Chapitre II : Des contributions pour le remboursement de la dette sociale."; "Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]} (date_courante_ >=@ (date_of_numbers (2018) (9) (1))))) - (fun (_: _) -> param_ *$ taux_crds_)) + (fun (_: unit) -> param_ *$ taux_crds_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2187,14 +2187,14 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2900; start_column=14; end_line=2900; end_column=41; + start_line=2901; start_column=14; end_line=2901; end_column=41; law_headings=["Article 31"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if condition_2_du_832_25_ then (money_of_cents_string "7632") else (money_of_cents_string "4557"))) with @@ -2216,7 +2216,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=591; start_column=11; @@ -2225,15 +2225,15 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2865; start_column=5; - end_line=2865; end_column=26; + start_line=2866; start_column=5; + end_line=2866; end_column=26; law_headings=["Article 31"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} condition_2_du_832_25_)) - (fun (_: _) -> + (fun (_: unit) -> [|{TrancheRevenu.haut = (LimiteTranche.Revenu (money_of_cents_string "142303")); @@ -2257,14 +2257,14 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal {TrancheRevenu.haut = (LimiteTranche.Infini ()); TrancheRevenu.bas = (money_of_cents_string "409505"); TrancheRevenu.taux = (decimal_of_string "0.328")}|]))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2816; start_column=14; end_line=2816; end_column=38; + start_line=2817; start_column=14; end_line=2817; end_column=38; law_headings=["Article 31"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> [|{TrancheRevenu.haut = (LimiteTranche.Revenu (money_of_cents_string "194810")); TrancheRevenu.bas = (money_of_cents_string "0"); @@ -2308,7 +2308,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4230; start_column=14; end_line=4230; end_column=50; law_headings=["Article D832-26"; @@ -2320,7 +2320,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> Array.map (fun (tranche_: _) -> {TrancheRevenuDecimal.haut = @@ -2355,7 +2355,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=596; start_column=10; @@ -2364,7 +2364,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4281; start_column=5; end_line=4281; end_column=26; @@ -2377,7 +2377,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Partie réglementaire"; "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) - (fun (_: _) -> + (fun (_: unit) -> (let ressources_menage_arrondies_ : _ = (decimal_of_money ressources_menage_arrondies_) in @@ -2414,7 +2414,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal tranches_revenus_d832_26_multipliees_) +& (decimal_of_money montant_forfaitaire_d832_26_)) /& (decimal_of_string "12."))))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4243; start_column=14; end_line=4243; end_column=21; law_headings=["Article D832-26"; @@ -2426,7 +2426,7 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let ressources_menage_arrondies_ : _ = (decimal_of_money ressources_menage_arrondies_) in @@ -2486,7 +2486,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=603; start_column=10; @@ -2495,7 +2495,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4195; start_column=5; end_line=4195; end_column=26; @@ -2508,7 +2508,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Partie réglementaire"; "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -2537,7 +2537,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "4")))))))))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4108; start_column=14; end_line=4108; end_column=36; law_headings=["Article D832-25"; @@ -2549,7 +2549,7 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -2597,7 +2597,7 @@ let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propr "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3452; start_column=14; end_line=3452; end_column=36; law_headings=["Article D832-11"; @@ -2608,7 +2608,7 @@ let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propr "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -2653,7 +2653,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1000; start_column=10; @@ -2661,7 +2661,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=119; start_column=5; end_line=119; end_column=43; @@ -2676,8 +2676,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Code de la sécurité sociale"]} (date_naissance_assure_ >=@ (date_of_numbers (1955) (1) (1))))) - (fun (_: _) -> duration_of_numbers (62) (0) (0))); - (fun (_: _) -> + (fun (_: unit) -> duration_of_numbers (62) (0) (0))); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1000; start_column=10; @@ -2685,7 +2685,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=256; start_column=5; end_line=256; end_column=42; @@ -2700,8 +2700,8 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Code de la sécurité sociale"]} (date_naissance_assure_ <@ (date_of_numbers (1951) (7) (1))))) - (fun (_: _) -> duration_of_numbers (60) (0) (0))); - (fun (_: _) -> + (fun (_: unit) -> duration_of_numbers (60) (0) (0))); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1000; start_column=10; @@ -2709,7 +2709,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=266; start_column=5; end_line=267; end_column=43; @@ -2726,10 +2726,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr (date_of_numbers (1951) (7) (1))) && (date_naissance_assure_ <=@ (date_of_numbers (1951) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (duration_of_numbers (60) (0) (0)) +^ (duration_of_numbers (0) (4) (0)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1000; start_column=10; @@ -2737,7 +2737,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=276; start_column=5; end_line=276; end_column=48; @@ -2752,10 +2752,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Code de la sécurité sociale"]} ((year_of_date date_naissance_assure_) = (integer_of_string "1952")))) - (fun (_: _) -> + (fun (_: unit) -> (duration_of_numbers (60) (0) (0)) +^ (duration_of_numbers (0) (9) (0)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1000; start_column=10; @@ -2763,7 +2763,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=285; start_column=5; end_line=285; end_column=48; @@ -2778,10 +2778,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Code de la sécurité sociale"]} ((year_of_date date_naissance_assure_) = (integer_of_string "1953")))) - (fun (_: _) -> + (fun (_: unit) -> (duration_of_numbers (61) (0) (0)) +^ (duration_of_numbers (0) (2) (0)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1000; start_column=10; @@ -2789,7 +2789,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr law_headings=["Date d'ouverture des droits à la retraite"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=294; start_column=5; end_line=294; end_column=48; @@ -2804,10 +2804,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Code de la sécurité sociale"]} ((year_of_date date_naissance_assure_) = (integer_of_string "1954")))) - (fun (_: _) -> + (fun (_: unit) -> (duration_of_numbers (61) (0) (0)) +^ (duration_of_numbers (0) (7) (0))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2834,7 +2834,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2537; start_column=14; end_line=2537; end_column=36; law_headings=["Article R824-3"; @@ -2845,7 +2845,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> @@ -2875,7 +2875,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1017; start_column=11; @@ -2883,7 +2883,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1017; start_column=11; @@ -2892,7 +2892,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2505; start_column=14; end_line=2505; end_column=36; @@ -2907,8 +2907,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | ModeOccupationImpaye.ImpayeLoyer _ -> false | ModeOccupationImpaye.ImpayePret _ -> true))) - (fun (_: _) -> depense_logement_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> depense_logement_))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2409; start_column=14; end_line=2409; end_column=36; @@ -2923,8 +2923,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | ModeOccupationImpaye.ImpayeLoyer _ -> true | ModeOccupationImpaye.ImpayePret _ -> false))) - (fun (_: _) -> depense_logement_))|]) (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> depense_logement_))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2942,7 +2942,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1018; start_column=11; @@ -2950,7 +2950,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2418; start_column=14; end_line=2418; end_column=36; @@ -2965,7 +2965,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | ModeOccupationImpaye.ImpayeLoyer _ -> true | ModeOccupationImpaye.ImpayePret _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> match depense_logement_brute_ with | DepenseLogement.TotalAnnuelEcheances total_ -> @@ -2975,7 +2975,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Loyer montant_loyer_ -> (DepenseLogement.Loyer (montant_loyer_ -$ montant_apl_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1018; start_column=11; @@ -2983,7 +2983,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2514; start_column=14; end_line=2514; end_column=36; @@ -2998,7 +2998,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | ModeOccupationImpaye.ImpayeLoyer _ -> false | ModeOccupationImpaye.ImpayePret _ -> true))) - (fun (_: _) -> + (fun (_: unit) -> match depense_logement_ with | DepenseLogement.TotalAnnuelEcheances total_echeances_ -> @@ -3010,7 +3010,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (mensualite_ -$ montant_apl_)) | DepenseLogement.Loyer loyer_ -> (DepenseLogement.Loyer loyer_)))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3028,7 +3028,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1015; start_column=11; @@ -3036,7 +3036,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2379; start_column=20; end_line=2379; end_column=55; @@ -3056,7 +3056,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | VersementA.Bailleur _ -> false | VersementA.Beneficiaire _ -> true | VersementA.EtablissementHabilite _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match depense_logement_brute_ with | DepenseLogement.TotalAnnuelEcheances _ -> @@ -3066,7 +3066,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Loyer loyer_brut_ -> ((loyer_brut_ +$ montant_charges_) *$ (decimal_of_string "2.")))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1015; start_column=11; @@ -3074,7 +3074,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2395; start_column=20; end_line=2395; end_column=51; @@ -3094,7 +3094,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | VersementA.Bailleur _ -> true | VersementA.Beneficiaire _ -> false | VersementA.EtablissementHabilite _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match depense_logement_nette_ with | DepenseLogement.TotalAnnuelEcheances _ -> @@ -3104,7 +3104,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Loyer loyer_net_ -> ((loyer_net_ +$ montant_charges_) *$ (decimal_of_string "2.")))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1015; start_column=11; @@ -3112,7 +3112,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2461; start_column=7; end_line=2461; end_column=42; @@ -3132,7 +3132,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | VersementA.Bailleur _ -> false | VersementA.Beneficiaire _ -> true | VersementA.EtablissementHabilite _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match depense_logement_brute_ with | DepenseLogement.TotalAnnuelEcheances echeance_pret_brute_ -> @@ -3142,7 +3142,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Mensualite mensualite_brute_ -> (mensualite_brute_ *$ (decimal_of_string "2.")) | DepenseLogement.Loyer _ -> (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1015; start_column=11; @@ -3150,7 +3150,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2489; start_column=7; end_line=2489; end_column=51; @@ -3170,7 +3170,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | VersementA.Bailleur _ -> false | VersementA.Beneficiaire _ -> false | VersementA.EtablissementHabilite _ -> true)))) - (fun (_: _) -> + (fun (_: unit) -> match depense_logement_nette_ with | DepenseLogement.TotalAnnuelEcheances echeance_pret_nette_ -> @@ -3180,7 +3180,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Mensualite mensualite_nette_ -> (mensualite_nette_ *$ (decimal_of_string "2.")) | DepenseLogement.Loyer _ -> (money_of_cents_string "0")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3197,7 +3197,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1020; start_column=10; @@ -3205,7 +3205,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn law_headings=["Quantification des impayés de dépense de logement"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1020; start_column=10; @@ -3214,7 +3214,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2437; start_column=14; end_line=2437; end_column=28; @@ -3229,12 +3229,12 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | ModeOccupationImpaye.ImpayeLoyer _ -> false | ModeOccupationImpaye.ImpayePret _ -> true))) - (fun (_: _) -> + (fun (_: unit) -> if (montant_dette_ >=$ seuil_impaye_depense_de_logement_) then montant_dette_ else (money_of_cents_string "0")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2374; start_column=14; end_line=2374; end_column=28; @@ -3249,11 +3249,11 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | ModeOccupationImpaye.ImpayeLoyer _ -> true | ModeOccupationImpaye.ImpayePret _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> if (montant_dette_ >=$ seuil_impaye_depense_de_logement_) then montant_dette_ else (money_of_cents_string "0")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3272,13 +3272,13 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=28; start_column=5; end_line=29; end_column=34; @@ -3286,14 +3286,14 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2019) (4) (1))) && (date_courante_ <@ (date_of_numbers (2020) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "41316")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "41316")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=48; start_column=5; end_line=49; end_column=34; @@ -3301,14 +3301,14 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2020) (4) (1))) && (date_courante_ <@ (date_of_numbers (2021) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "41440")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "41440")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=64; start_column=5; end_line=65; end_column=34; @@ -3316,14 +3316,14 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2021) (4) (1))) && (date_courante_ <@ (date_of_numbers (2022) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "41481")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "41481")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=82; start_column=5; end_line=83; end_column=34; @@ -3331,8 +3331,8 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2022) (4) (1))) && (date_courante_ <@ (date_of_numbers (2023) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "42228"))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> money_of_cents_string "42228"))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; @@ -3351,7 +3351,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = start_line=11; start_column=10; end_line=11; end_column=22; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3359,7 +3359,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=29; start_column=5; end_line=38; end_column=6; @@ -3385,8 +3385,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1003")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1003")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3394,7 +3394,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=47; start_column=5; end_line=49; end_column=6; @@ -3405,8 +3405,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2019) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "757")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "757")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3414,7 +3414,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=68; start_column=5; end_line=77; end_column=6; @@ -3440,8 +3440,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1015")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1015")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3449,7 +3449,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=86; start_column=5; end_line=88; end_column=6; @@ -3460,8 +3460,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2020) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "766")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "766")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3469,7 +3469,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=107; start_column=5; end_line=116; end_column=6; @@ -3495,8 +3495,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1025")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1025")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3504,7 +3504,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=125; start_column=5; end_line=127; end_column=6; @@ -3515,8 +3515,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2021) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "774")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "774")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3524,7 +3524,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=146; start_column=5; end_line=155; end_column=6; @@ -3550,8 +3550,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1057")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1057")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3559,7 +3559,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=165; start_column=5; end_line=167; end_column=6; @@ -3569,8 +3569,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && ((date_courante_ <=@ (date_of_numbers (2022) (4) (30))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "798")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "798")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3578,7 +3578,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=186; start_column=5; end_line=195; end_column=6; @@ -3604,8 +3604,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1085")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1085")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -3613,7 +3613,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; start_line=204; start_column=5; end_line=206; end_column=6; @@ -3624,8 +3624,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2022) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "819"))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> money_of_cents_string "819"))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; @@ -3658,7 +3658,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2097; start_column=14; end_line=2097; end_column=29; law_headings=["Article D823-16"; @@ -3669,7 +3669,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> decimal_of_string "0.98")) + true)) (fun (_: unit) -> decimal_of_string "0.98")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3689,13 +3689,13 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=274; start_column=14; end_line=274; end_column=41; law_headings=["Article 11"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "500")) + true)) (fun (_: unit) -> money_of_cents_string "500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3710,24 +3710,25 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=567; start_column=3; end_line=567; end_column=25; + start_line=580; start_column=14; end_line=580; end_column=50; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=580; start_column=14; end_line=580; end_column=50; law_headings=["Secteur locatif"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=515; start_column=10; end_line=515; end_column=23; - law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; + start_line=580; start_column=14; end_line=580; end_column=50; + law_headings=["Secteur locatif"; + "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let result_: ContributionsSocialesAidesPersonnelleLogementOut.t = (log_end_call @@ -3750,7 +3751,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=564; start_column=10; @@ -3759,7 +3760,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=564; start_column=10; @@ -3768,7 +3769,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=564; start_column=10; @@ -3778,7 +3779,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=944; start_column=14; end_line=944; end_column=40; @@ -3790,7 +3791,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2020) (10) (1))) && (date_courante_ <@ (date_of_numbers (2021) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -3842,7 +3843,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme -! (integer_of_string "6")))))))))))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=220; start_column=14; end_line=220; end_column=40; @@ -3853,7 +3854,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -3899,7 +3900,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme -! (integer_of_string "6")))))))))))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=348; start_column=14; end_line=348; end_column=40; @@ -3907,7 +3908,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -3945,7 +3946,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (nombre_personnes_a_charge_ -! (integer_of_string "6")))))))))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3965,7 +3966,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=558; start_column=11; @@ -3974,7 +3975,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=467; start_column=14; end_line=467; end_column=44; @@ -3982,7 +3983,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -4022,7 +4023,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (nombre_personnes_a_charge_ -! (integer_of_string "6"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=558; start_column=11; @@ -4031,7 +4032,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1313; start_column=14; end_line=1313; end_column=44; @@ -4040,7 +4041,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Archives législatives et réglementaires"]} ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -4080,7 +4081,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (nombre_personnes_a_charge_ -! (integer_of_string "6"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=558; start_column=11; @@ -4089,7 +4090,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1367; start_column=14; end_line=1367; end_column=44; @@ -4099,7 +4100,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Archives législatives et réglementaires"]} ((date_courante_ <@ (date_of_numbers (2022) (1) (1))) && (date_courante_ >=@ (date_of_numbers (2020) (1) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -4139,7 +4140,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (nombre_personnes_a_charge_ -! (integer_of_string "6")))))))))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -4159,7 +4160,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=552; start_column=11; @@ -4168,7 +4169,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=552; start_column=11; @@ -4178,7 +4179,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=306; start_column=14; end_line=306; end_column=29; @@ -4189,7 +4190,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -4204,7 +4205,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=431; start_column=14; end_line=431; end_column=29; @@ -4212,7 +4213,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -4227,7 +4228,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=552; start_column=11; @@ -4236,7 +4237,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1027; start_column=14; end_line=1027; end_column=29; @@ -4247,7 +4248,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ >=@ (date_of_numbers (2020) (10) (1))) && (date_courante_ <@ (date_of_numbers (2021) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -4262,7 +4263,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -4282,14 +4283,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=286; start_column=14; end_line=286; end_column=42; law_headings=["Article 12"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match type_aide_ with | TypeAidesPersonnelleLogement.AidePersonnaliseeLogement _ -> @@ -4317,7 +4318,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4326,7 +4327,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4336,7 +4337,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=527; start_column=5; end_line=528; end_column=34; @@ -4354,7 +4355,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme false) && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4363,7 +4364,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "20165") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "18900"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4373,7 +4374,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=536; start_column=5; end_line=537; end_column=34; @@ -4391,7 +4392,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true) && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4400,7 +4401,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "24683") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "22911"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4410,7 +4411,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=545; start_column=5; end_line=545; end_column=35; @@ -4422,7 +4423,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme colocation_) && (nombre_personnes_a_charge_ >=! (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4443,7 +4444,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4453,7 +4454,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=353; start_column=5; end_line=354; end_column=34; @@ -4473,7 +4474,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme false) && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4482,7 +4483,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "19484") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "18261"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4492,7 +4493,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=362; start_column=5; end_line=363; end_column=34; @@ -4512,7 +4513,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true) && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4521,7 +4522,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "23848") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "22136"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4531,7 +4532,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=371; start_column=5; end_line=371; end_column=35; @@ -4545,7 +4546,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme colocation_)) && (nombre_personnes_a_charge_ >=! (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4566,7 +4567,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4576,7 +4577,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1072; start_column=5; end_line=1073; end_column=34; @@ -4597,7 +4598,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme false) && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4606,7 +4607,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "19402") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "18185"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4616,7 +4617,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1081; start_column=5; end_line=1082; end_column=34; @@ -4637,7 +4638,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true) && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4646,7 +4647,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "23748") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "22044"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4656,7 +4657,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1090; start_column=5; end_line=1090; end_column=35; @@ -4671,7 +4672,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme colocation_)) && (nombre_personnes_a_charge_ >=! (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4692,8 +4693,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)); - (fun (_: _) -> + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4702,7 +4703,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4711,7 +4712,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4721,7 +4722,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=195; start_column=5; end_line=195; end_column=61; @@ -4732,7 +4733,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2022) (7) (1))) && logement_est_chambre_) && agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4741,7 +4742,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "20165") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "18900"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4751,7 +4752,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=126; start_column=5; end_line=126; end_column=61; @@ -4765,7 +4766,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2022) (7) (1))) && logement_est_chambre_)) && agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4774,7 +4775,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "19484") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "18261"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4784,7 +4785,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=850; start_column=5; end_line=850; end_column=61; @@ -4799,7 +4800,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2020) (10) (1))) && logement_est_chambre_)) && agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4808,10 +4809,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "19402") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "18185")))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> true) - (fun (_: _) -> + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4820,7 +4821,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4830,7 +4831,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=188; start_column=14; end_line=188; end_column=37; @@ -4840,7 +4841,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && logement_est_chambre_))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4849,7 +4850,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "24198") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "22680"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4859,7 +4860,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=119; start_column=14; end_line=119; end_column=37; @@ -4871,7 +4872,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ <@ (date_of_numbers (2022) (7) (1))) && logement_est_chambre_)))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4880,7 +4881,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "23380") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "21913"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4890,7 +4891,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=843; start_column=14; end_line=843; end_column=37; @@ -4903,7 +4904,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ >=@ (date_of_numbers (2020) (10) (1))) && logement_est_chambre_)))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -4912,9 +4913,10 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "23282") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "21821")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)))|]) - (fun (_: _) -> true) - (fun (_: _) -> + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError)))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; end_line=562; end_column=33; @@ -4922,7 +4924,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4932,7 +4934,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=104; start_column=5; end_line=105; end_column=34; @@ -4949,7 +4951,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> (money_of_cents_string @@ -4958,7 +4960,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "26887") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "25200"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -4968,7 +4970,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=114; start_column=5; end_line=115; end_column=34; @@ -4985,7 +4987,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> (money_of_cents_string @@ -4994,7 +4996,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "32910") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "30548"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5004,7 +5006,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=124; start_column=5; end_line=124; end_column=35; @@ -5015,7 +5017,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2022) (7) (1))) && (nombre_personnes_a_charge_ >=! (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -5036,7 +5038,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5046,7 +5048,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=34; start_column=5; end_line=35; end_column=34; @@ -5065,7 +5067,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> (money_of_cents_string @@ -5074,7 +5076,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "25978") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "24348"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5084,7 +5086,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=44; start_column=5; end_line=45; end_column=34; @@ -5103,7 +5105,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> (money_of_cents_string @@ -5112,7 +5114,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "31797") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "29515"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5122,7 +5124,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=54; start_column=5; end_line=54; end_column=35; @@ -5135,7 +5137,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2022) (7) (1)))) && (nombre_personnes_a_charge_ >=! (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -5156,7 +5158,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5166,7 +5168,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=759; start_column=5; end_line=760; end_column=34; @@ -5186,7 +5188,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> (money_of_cents_string @@ -5195,7 +5197,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "25859") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "24246"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5205,7 +5207,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=769; start_column=5; end_line=770; end_column=34; @@ -5225,7 +5227,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme && (nombre_personnes_a_charge_ = (integer_of_string "0")))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> (money_of_cents_string @@ -5234,7 +5236,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "31664") | ZoneDHabitation.Zone3 _ -> (money_of_cents_string "29392"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=562; start_column=10; @@ -5244,7 +5246,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=779; start_column=5; end_line=779; end_column=35; @@ -5258,7 +5260,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2020) (10) (1)))) && (nombre_personnes_a_charge_ >=! (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -5279,7 +5281,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5299,7 +5301,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5308,7 +5310,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5318,7 +5320,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=570; start_column=29; end_line=570; end_column=64; @@ -5328,7 +5330,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && colocation_))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -5338,7 +5340,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5348,7 +5350,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=397; start_column=29; end_line=397; end_column=64; @@ -5360,7 +5362,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ <@ (date_of_numbers (2022) (7) (1))) && colocation_)))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -5370,7 +5372,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5380,7 +5382,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1116; start_column=29; end_line=1116; end_column=64; @@ -5393,7 +5395,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ >=@ (date_of_numbers (2020) (10) (1))) && colocation_)))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -5403,9 +5405,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((money_of_cents_string "1224") *$ (decimal_of_integer nombre_personnes_a_charge_))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> true) - (fun (_: _) -> + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; end_line=561; end_column=45; @@ -5413,7 +5415,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5423,7 +5425,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=230; start_column=29; end_line=230; end_column=64; @@ -5431,11 +5433,11 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5612") +$ ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5445,7 +5447,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=161; start_column=29; end_line=161; end_column=64; @@ -5456,11 +5458,11 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5422") +$ ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=561; start_column=10; @@ -5470,7 +5472,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=885; start_column=29; end_line=885; end_column=64; @@ -5482,11 +5484,11 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5399") +$ ((money_of_cents_string "1224") *$ (decimal_of_integer nombre_personnes_a_charge_))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5506,7 +5508,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4403; start_column=14; end_line=4403; end_column=29; law_headings=["Article D842-2"; @@ -5517,7 +5519,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if logement_meuble_d842_2_ then (loyer_principal_base_ *$ ((decimal_of_string "2.") /& (decimal_of_string "3."))) else @@ -5541,14 +5543,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=259; start_column=14; end_line=259; end_column=41; law_headings=["Article 10"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -5576,14 +5578,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=253; start_column=14; end_line=253; end_column=42; law_headings=["Article 10"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -5611,7 +5613,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1998; start_column=14; end_line=1998; end_column=28; law_headings=["Article D823-16"; @@ -5623,7 +5625,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (loyer_principal_avec_reduction_meuble_ >$ plafond_loyer_d823_16_2_) then plafond_loyer_d823_16_2_ else @@ -5649,7 +5651,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=573; start_column=10; @@ -5659,7 +5661,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2047; start_column=5; end_line=2047; end_column=50; @@ -5672,8 +5674,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} beneficiaire_aide_adulte_ou_enfant_handicapes_)) - (fun (_: _) -> param_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> param_))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2033; start_column=14; end_line=2033; end_column=36; @@ -5686,7 +5688,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (loyer_principal_avec_reduction_meuble_ >$ plafond_suppression_d823_16_) then @@ -5728,7 +5730,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=563; start_column=10; @@ -5737,7 +5739,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=302; start_column=14; end_line=302; end_column=36; @@ -5745,7 +5747,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (((loyer_eligible_ +$ montant_forfaitaire_charges_d823_16_) *$ @@ -5755,7 +5757,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme montant_forfaitaire_charges_d823_16_) *$ (decimal_of_string "0.085")) else (money_of_cents_string "3663"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=563; start_column=10; @@ -5764,7 +5766,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=175; start_column=14; end_line=175; end_column=36; @@ -5774,7 +5776,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (((loyer_eligible_ +$ montant_forfaitaire_charges_d823_16_) *$ @@ -5784,7 +5786,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme montant_forfaitaire_charges_d823_16_) *$ (decimal_of_string "0.085")) else (money_of_cents_string "3539"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=563; start_column=10; @@ -5793,7 +5795,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=899; start_column=14; end_line=899; end_column=36; @@ -5803,7 +5805,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Archives législatives et réglementaires"]} ((date_courante_ <@ (date_of_numbers (2021) (10) (1))) && (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (((loyer_eligible_ +$ montant_forfaitaire_charges_d823_16_) *$ @@ -5813,7 +5815,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme montant_forfaitaire_charges_d823_16_) *$ (decimal_of_string "0.085")) else (money_of_cents_string "3524")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5833,7 +5835,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=551; start_column=11; @@ -5842,7 +5844,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=551; start_column=11; @@ -5851,7 +5853,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=551; start_column=11; @@ -5861,7 +5863,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=978; start_column=14; end_line=978; end_column=28; @@ -5873,12 +5875,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2020) (10) (1))) && (date_courante_ <@ (date_of_numbers (2021) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round ((loyer_eligible_ /$ loyer_reference_) *& (decimal_of_string "100."))) /& (decimal_of_string "100.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=254; start_column=14; end_line=254; end_column=28; @@ -5889,12 +5891,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round ((loyer_eligible_ /$ loyer_reference_) *& (decimal_of_string "100."))) /& (decimal_of_string "100.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=381; start_column=14; end_line=381; end_column=28; @@ -5902,12 +5904,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round ((loyer_eligible_ /$ loyer_reference_) *& (decimal_of_string "100."))) /& - (decimal_of_string "100.")))|]) (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError)) + (decimal_of_string "100.")))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5929,7 +5931,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2057; start_column=14; end_line=2057; end_column=36; @@ -5942,7 +5944,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementLocatif"; "traitement_aide_finale_diminué"] @@ -5990,7 +5992,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=549; start_column=10; @@ -5999,7 +6001,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=549; start_column=10; @@ -6008,7 +6010,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=549; start_column=10; @@ -6018,7 +6020,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1002; start_column=14; end_line=1002; end_column=33; @@ -6030,7 +6032,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2020) (10) (1))) && (date_courante_ <@ (date_of_numbers (2021) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (rapport_loyers_ <& (decimal_of_string "0.45")) then @@ -6056,7 +6058,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (rapport_loyers_ -& (decimal_of_string "0.75")))) else (decimal_of_string "0.")))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=281; start_column=14; end_line=281; end_column=33; @@ -6067,7 +6069,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (rapport_loyers_ <& (decimal_of_string "0.45")) then (decimal_of_string "0.") else @@ -6088,7 +6090,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (rapport_loyers_ -& (decimal_of_string "0.75")))) else (decimal_of_string "0.")))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=407; start_column=14; end_line=407; end_column=33; @@ -6096,7 +6098,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (rapport_loyers_ <& (decimal_of_string "0.45")) then (decimal_of_string "0.") else ( if @@ -6115,7 +6117,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (rapport_loyers_ -& (decimal_of_string "0.75")))) else (decimal_of_string "0.")))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6138,7 +6140,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2074; start_column=14; end_line=2074; end_column=36; @@ -6151,7 +6153,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementLocatif"; "traitement_aide_finale_minoration_forfaitaire"] @@ -6215,7 +6217,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=550; start_column=10; @@ -6224,7 +6226,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=550; start_column=10; @@ -6233,7 +6235,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=550; start_column=10; @@ -6243,7 +6245,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1009; start_column=14; end_line=1009; end_column=33; @@ -6255,12 +6257,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2020) (10) (1))) && (date_courante_ <@ (date_of_numbers (2021) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round (taux_loyer_eligible_formule_ *& (decimal_of_string "100000."))) /& (decimal_of_string "100000.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=288; start_column=14; end_line=288; end_column=33; @@ -6271,12 +6273,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round (taux_loyer_eligible_formule_ *& (decimal_of_string "100000."))) /& (decimal_of_string "100000.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=414; start_column=14; end_line=414; end_column=33; @@ -6284,12 +6286,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round (taux_loyer_eligible_formule_ *& (decimal_of_string "100000."))) /& (decimal_of_string "100000.")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6311,7 +6313,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=807; start_column=14; end_line=807; end_column=36; @@ -6322,7 +6324,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementLocatif"; "traitement_aide_finale_contributions_sociales_arrondi"] @@ -6372,7 +6374,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2157; start_column=14; end_line=2157; end_column=42; law_headings=["Article D823-17"; @@ -6384,7 +6386,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> taux_composition_familiale_ +& taux_loyer_eligible_arrondi_)) with EmptyError -> (raise (NoValueProvided @@ -6407,7 +6409,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2106; start_column=14; end_line=2106; end_column=36; @@ -6420,7 +6422,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementLocatif"; "traitement_aide_finale_réduction_loyer_solidarité"] @@ -6465,7 +6467,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2123; start_column=14; end_line=2123; end_column=39; law_headings=["Article D823-17"; @@ -6477,7 +6479,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let participation_ressources_ : _ = ((ressources_menage_arrondies_ -$ abattement_forfaitaire_d823_17_) *$ @@ -6509,7 +6511,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1980; start_column=14; end_line=1980; end_column=33; law_headings=["Article D823-16"; @@ -6521,7 +6523,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((loyer_eligible_ +$ montant_forfaitaire_charges_d823_16_) -$ participation_personnelle_) @@ -6627,13 +6629,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2780; start_column=14; end_line=2780; end_column=35; + start_line=2781; start_column=14; end_line=2781; end_column=35; law_headings=["Article 30"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "121726")) + true)) (fun (_: unit) -> money_of_cents_string "121726")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6653,13 +6655,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2755; start_column=14; end_line=2755; end_column=41; + start_line=2756; start_column=14; end_line=2756; end_column=41; law_headings=["Article 28"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "500")) + true)) (fun (_: unit) -> money_of_cents_string "500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6679,13 +6681,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2766; start_column=14; end_line=2766; end_column=42; + start_line=2767; start_column=14; end_line=2767; end_column=42; law_headings=["Article 29"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "1000")) + true)) (fun (_: unit) -> money_of_cents_string "1000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6705,8 +6707,9 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> condition_2_du_832_25_ ())|]) (fun (_: _) -> true) - (fun (_: _) -> + ([|(fun (_: unit) -> condition_2_du_832_25_ ())|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=615; start_column=12; end_line=615; end_column=33; @@ -6714,7 +6717,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4042; start_column=14; end_line=4042; end_column=35; @@ -6727,7 +6730,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match type_logement_foyer_ with | TypeLogementFoyer.LogementPersonnesAgeesOuHandicapees _ -> @@ -6753,24 +6756,25 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=633; start_column=3; end_line=633; end_column=25; + start_line=649; start_column=14; end_line=649; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=649; start_column=14; end_line=649; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=515; start_column=10; end_line=515; end_column=23; - law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; + start_line=649; start_column=14; end_line=649; end_column=50; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let result_: ContributionsSocialesAidesPersonnelleLogementOut.t = (log_end_call @@ -6793,7 +6797,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=621; start_column=10; @@ -6802,15 +6806,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2701; start_column=14; - end_line=2701; end_column=48; + start_line=2702; start_column=14; + end_line=2702; end_column=48; law_headings=["Article 27"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -6894,7 +6898,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "4"))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=621; start_column=10; @@ -6903,7 +6907,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=499; start_column=14; end_line=499; end_column=48; @@ -6913,7 +6917,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -6997,7 +7001,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "4"))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=621; start_column=10; @@ -7006,7 +7010,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1222; start_column=14; end_line=1222; end_column=48; @@ -7016,7 +7020,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Archives législatives et réglementaires"]} ((date_courante_ <@ (date_of_numbers (2021) (10) (1))) && (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -7100,7 +7104,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "4")))))))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7122,7 +7126,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3975; start_column=14; end_line=3975; end_column=36; @@ -7135,7 +7139,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((param_ -$ montant_forfaitaire_d832_24_) >=$ (money_of_cents_string "0")) then @@ -7162,13 +7166,18 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement ["CalculAidePersonnaliséeLogementFoyer"; "calcul_nombre_parts.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=630; start_column=3; end_line=630; end_column=22; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4131; start_column=14; end_line=4131; end_column=55; + law_headings=["Article D832-25"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4131; start_column=14; end_line=4131; end_column=55; law_headings=["Article D832-25"; @@ -7179,27 +7188,36 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> condition_2_du_832_25_)))) + true)) (fun (_: unit) -> condition_2_du_832_25_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=599; start_column=10; end_line=599; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4131; start_column=14; end_line=4131; end_column=55; + law_headings=["Article D832-25"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_nombre_parts_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAidePersonnaliséeLogementFoyer"; "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=630; start_column=3; end_line=630; end_column=22; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4127; start_column=14; end_line=4127; end_column=59; + law_headings=["Article D832-25"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4127; start_column=14; end_line=4127; end_column=59; law_headings=["Article D832-25"; @@ -7210,28 +7228,37 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=600; start_column=10; end_line=600; end_column=35; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4127; start_column=14; end_line=4127; end_column=59; + law_headings=["Article D832-25"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogementFoyer"; "calcul_nombre_parts.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=630; start_column=3; end_line=630; end_column=22; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4129; start_column=14; end_line=4129; end_column=64; + law_headings=["Article D832-25"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4129; start_column=14; end_line=4129; end_column=64; law_headings=["Article D832-25"; @@ -7242,15 +7269,19 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=10; end_line=601; end_column=40; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4129; start_column=14; end_line=4129; end_column=64; + law_headings=["Article D832-25"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculNombrePartLogementFoyerOut.t = (log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "calcul_nombre_parts"; "CalculNombrePartLogementFoyer"] ((log_begin_call @@ -7274,14 +7305,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2929; start_column=14; end_line=2929; end_column=41; + start_line=2930; start_column=14; end_line=2930; end_column=41; law_headings=["Article 32"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if condition_2_du_832_25_ then (money_of_cents_string "1500") else (money_of_cents_string "2668"))) with @@ -7303,14 +7334,14 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2790; start_column=14; end_line=2790; end_column=48; + start_line=2791; start_column=14; end_line=2791; end_column=48; law_headings=["Article 30"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if condition_2_du_832_25_ then (money_of_cents_string "2142091") else (money_of_cents_string "1339340"))) with @@ -7332,7 +7363,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3949; start_column=14; end_line=3949; end_column=40; law_headings=["Article D832-24"; @@ -7344,7 +7375,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (redevance_ >=$ plafond_equivalence_loyer_eligible_) then plafond_equivalence_loyer_eligible_ else redevance_)) with @@ -7366,9 +7397,9 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> n_nombre_parts_d832_25_ ())|]) - (fun (_: _) -> true) - (fun (_: _) -> + ([|(fun (_: unit) -> n_nombre_parts_d832_25_ ())|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=619; start_column=19; end_line=619; end_column=41; @@ -7376,7 +7407,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4133; start_column=14; end_line=4133; end_column=36; @@ -7389,7 +7420,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_nombre_parts_dot_n_nombre_parts_d832_25_))) + (fun (_: unit) -> + calcul_nombre_parts_dot_n_nombre_parts_d832_25_))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7411,7 +7443,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4329; start_column=14; end_line=4329; end_column=44; @@ -7423,7 +7455,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> equivalence_loyer_eligible_ -$ param_)) + true)) + (fun (_: unit) -> equivalence_loyer_eligible_ -$ param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7446,13 +7479,18 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=631; start_column=3; end_line=631; end_column=36; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3965; start_column=14; end_line=3965; end_column=75; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3965; start_column=14; end_line=3965; end_column=75; law_headings=["Article D832-24"; @@ -7463,28 +7501,37 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_arrondies_)))) + true)) (fun (_: unit) -> ressources_menage_arrondies_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=587; start_column=10; end_line=587; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3965; start_column=14; end_line=3965; end_column=75; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogementFoyer"; "calcul_équivalence_loyer_minimale.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=631; start_column=3; end_line=631; end_column=36; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3963; start_column=14; end_line=3963; end_column=69; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3963; start_column=14; end_line=3963; end_column=69; law_headings=["Article D832-24"; @@ -7495,28 +7542,37 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> condition_2_du_832_25_)))) + true)) (fun (_: unit) -> condition_2_du_832_25_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=588; start_column=10; end_line=588; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3963; start_column=14; end_line=3963; end_column=69; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal = try ((log_variable_definition ["CalculAidePersonnaliséeLogementFoyer"; "calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"] (embed_decimal) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=631; start_column=3; end_line=631; end_column=36; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3967; start_column=14; end_line=3967; end_column=70; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3967; start_column=14; end_line=3967; end_column=70; law_headings=["Article D832-24"; @@ -7527,15 +7583,19 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> n_nombre_parts_d832_25_)))) + true)) (fun (_: unit) -> n_nombre_parts_d832_25_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=589; start_column=10; end_line=589; end_column=32; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3967; start_column=14; end_line=3967; end_column=70; + law_headings=["Article D832-24"; + "Sous-Section 2 : Conditions d'octroi de l'aide personnalisée au logement aux personnes résidant dans un logement-foyer"; + "Section 3 : Logements-foyers"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculEquivalenceLoyerMinimaleOut.t = (log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "calcul_équivalence_loyer_minimale"; @@ -7561,7 +7621,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=637; start_column=10; @@ -7570,7 +7630,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4145; start_column=5; end_line=4145; end_column=26; @@ -7583,12 +7643,12 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_of_string "0.9") -& (ressources_menage_arrondies_ /$ (coefficient_multiplicateur_d832_25_ *$ n_nombre_parts_d832_25_))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4057; start_column=14; end_line=4057; end_column=49; law_headings=["Article D832-25"; @@ -7600,7 +7660,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let denominateur_ : _ = (ressources_menage_arrondies_ -$ (coefficient_r_d832_25_ *$ n_nombre_parts_d832_25_)) @@ -7634,7 +7694,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4333; start_column=14; end_line=4333; end_column=55; @@ -7647,7 +7707,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let depense_nette_minimale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "dépense_nette_minimale_d832_27"] @@ -7695,7 +7755,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3961; start_column=14; end_line=3961; end_column=40; law_headings=["Article D832-24"; @@ -7707,7 +7767,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_equivalence_loyer_minimale_dot_montant_)) + (fun (_: unit) -> calcul_equivalence_loyer_minimale_dot_montant_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7727,7 +7787,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=638; start_column=10; @@ -7736,7 +7796,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4162; start_column=5; end_line=4162; end_column=26; @@ -7749,13 +7809,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round ((coefficient_prise_en_charge_d832_25_formule_ -& (decimal_of_string "0.005")) *& (decimal_of_string "100."))) /& (decimal_of_string "100.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4078; start_column=14; end_line=4078; end_column=49; law_headings=["Article D832-25"; @@ -7767,7 +7827,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round ((coefficient_prise_en_charge_d832_25_formule_ -& (decimal_of_string "0.005")) *& (decimal_of_string "100."))) @@ -7793,7 +7853,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3989; start_column=14; end_line=3989; end_column=36; @@ -7806,7 +7866,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "traitement_aide_finale_minoration_forfaitaire"] @@ -7867,7 +7927,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=639; start_column=10; @@ -7876,7 +7936,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4168; start_column=5; end_line=4168; end_column=26; @@ -7889,13 +7949,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) - (fun (_: _) -> + (fun (_: unit) -> if (coefficient_prise_en_charge_d832_25_arrondi_ >=& (decimal_of_string "0.9")) then (decimal_of_string "0.9") else coefficient_prise_en_charge_d832_25_arrondi_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4081; start_column=14; end_line=4081; end_column=49; law_headings=["Article D832-25"; @@ -7907,7 +7967,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (coefficient_prise_en_charge_d832_25_arrondi_ >=& (decimal_of_string "0.95")) then (decimal_of_string "0.95") @@ -7934,7 +7994,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4003; start_column=14; end_line=4003; end_column=36; @@ -7947,7 +8007,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "traitement_aide_finale_abattement"] @@ -8011,7 +8071,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3928; start_column=14; end_line=3928; end_column=33; law_headings=["Article D832-24"; @@ -8023,7 +8083,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((equivalence_loyer_eligible_ -$ equivalence_loyer_minimale_) *$ coefficient_prise_en_charge_d832_25_seuil_) @@ -8051,7 +8111,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4024; start_column=14; end_line=4024; end_column=36; @@ -8064,7 +8124,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "traitement_aide_finale_contributions_sociales_arrondi"] @@ -8143,13 +8203,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2559; start_column=14; end_line=2559; end_column=41; + start_line=2560; start_column=14; end_line=2560; end_column=41; law_headings=["Article 20"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "500")) + true)) (fun (_: unit) -> money_of_cents_string "500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8169,13 +8229,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2570; start_column=14; end_line=2570; end_column=42; + start_line=2571; start_column=14; end_line=2571; end_column=42; law_headings=["Article 21"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "1000")) + true)) (fun (_: unit) -> money_of_cents_string "1000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8195,13 +8255,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2579; start_column=15; end_line=2579; end_column=49; + start_line=2580; start_column=15; end_line=2580; end_column=49; law_headings=["Article 22"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "2211133")) + true)) (fun (_: unit) -> money_of_cents_string "2211133")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8221,13 +8281,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2672; start_column=14; end_line=2672; end_column=48; + start_line=2673; start_column=14; end_line=2673; end_column=48; law_headings=["Article 26"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> decimal_of_string "16.25")) + true)) (fun (_: unit) -> decimal_of_string "16.25")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8247,13 +8307,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2594; start_column=14; end_line=2594; end_column=47; + start_line=2595; start_column=14; end_line=2595; end_column=47; law_headings=["Article 23"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "560085")) + true)) (fun (_: unit) -> money_of_cents_string "560085")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8273,13 +8333,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2595; start_column=14; end_line=2595; end_column=47; + start_line=2596; start_column=14; end_line=2596; end_column=47; law_headings=["Article 23"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> decimal_of_string "0.208")) + true)) (fun (_: unit) -> decimal_of_string "0.208")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8299,13 +8359,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2596; start_column=14; end_line=2596; end_column=47; + start_line=2597; start_column=14; end_line=2597; end_column=47; law_headings=["Article 23"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> decimal_of_string "0.416")) + true)) (fun (_: unit) -> decimal_of_string "0.416")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8325,13 +8385,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=299; start_column=14; end_line=299; end_column=36; law_headings=["Article premier"; "Règlement (CE) n°2866/98 du conseil du 31 décembre 1998 concernant les taux de conversion entre l'euro et les monnaies des États membres adoptant l'euro"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_of_string "1.") /& (decimal_of_string "6.55957"))) with EmptyError -> (raise (NoValueProvided @@ -8346,13 +8406,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=705; start_column=3; end_line=705; end_column=22; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3473; start_column=14; end_line=3473; end_column=59; + law_headings=["Article D832-11"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3473; start_column=14; end_line=3473; end_column=59; law_headings=["Article D832-11"; @@ -8362,28 +8426,35 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=656; start_column=10; end_line=656; end_column=35; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3473; start_column=14; end_line=3473; end_column=59; + law_headings=["Article D832-11"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_nombre_parts.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=705; start_column=3; end_line=705; end_column=22; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3475; start_column=14; end_line=3475; end_column=64; + law_headings=["Article D832-11"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3475; start_column=14; end_line=3475; end_column=64; law_headings=["Article D832-11"; @@ -8393,15 +8464,18 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=657; start_column=10; end_line=657; end_column=40; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3475; start_column=14; end_line=3475; end_column=64; + law_headings=["Article D832-11"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculNombrePartsAccessionProprieteOut.t = (log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_nombre_parts"; "CalculNombrePartsAccessionPropriété"] @@ -8425,14 +8499,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2654; start_column=14; end_line=2654; end_column=50; + start_line=2655; start_column=14; end_line=2655; end_column=50; law_headings=["Article 25"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match anciennete_logement_ with | NeufOuAncien.Neuf _ -> @@ -8465,24 +8539,25 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=708; start_column=3; end_line=708; end_column=25; + start_line=719; start_column=14; end_line=719; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=719; start_column=14; end_line=719; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=515; start_column=10; end_line=515; end_column=23; - law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; + start_line=719; start_column=14; end_line=719; end_column=50; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let result_: ContributionsSocialesAidesPersonnelleLogementOut.t = (log_end_call @@ -8507,7 +8582,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8516,7 +8591,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8526,17 +8601,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2627; start_column=7; - end_line=2627; end_column=18; + start_line=2628; start_column=7; + end_line=2628; end_column=18; law_headings=["Article 24"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && copropriete_))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -8546,7 +8621,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8556,7 +8631,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=464; start_column=7; end_line=464; end_column=18; @@ -8568,7 +8643,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (date_courante_ <@ (date_of_numbers (2022) (7) (1)))) && copropriete_))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -8578,7 +8653,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8588,7 +8663,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1185; start_column=7; end_line=1185; end_column=18; @@ -8601,7 +8676,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))) && copropriete_))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -8611,9 +8686,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna ((money_of_cents_string "1224") *$ (decimal_of_integer nombre_personnes_a_charge_))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> true) - (fun (_: _) -> + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; end_line=694; end_column=46; @@ -8621,7 +8696,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8631,19 +8706,19 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2548; start_column=29; - end_line=2548; end_column=64; + start_line=2549; start_column=29; + end_line=2549; end_column=64; law_headings=["Article 19"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5612") +$ ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8653,7 +8728,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=430; start_column=29; end_line=430; end_column=64; @@ -8664,11 +8739,11 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5422") +$ ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_)))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=694; start_column=11; @@ -8678,7 +8753,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1151; start_column=29; end_line=1151; end_column=64; @@ -8690,11 +8765,11 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (date_of_numbers (2021) (10) (1))) && (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5399") +$ ((money_of_cents_string "1224") *$ (decimal_of_integer nombre_personnes_a_charge_))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8716,7 +8791,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3322; start_column=14; end_line=3322; end_column=36; @@ -8728,7 +8803,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((param_ -$ montant_forfaitaire_d832_10_) >=$ (money_of_cents_string "0")) then @@ -8761,7 +8836,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=693; start_column=11; @@ -8770,7 +8845,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3787; start_column=5; end_line=3787; end_column=28; @@ -8782,8 +8857,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} situation_r822_11_13_17_)) - (fun (_: _) -> ressources_menage_arrondies_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> ressources_menage_arrondies_))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3779; start_column=14; end_line=3779; end_column=44; law_headings=["Article D832-18"; @@ -8794,7 +8869,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (ressources_menage_arrondies_ <=$ (mensualite_principale_ *$ @@ -8822,7 +8897,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -8832,7 +8907,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=616; start_column=5; end_line=619; end_column=33; @@ -8853,7 +8928,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -8902,7 +8977,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -8912,7 +8987,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=705; start_column=5; end_line=707; end_column=33; @@ -8931,7 +9006,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -8980,7 +9055,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -8990,7 +9065,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=748; start_column=5; end_line=750; end_column=33; @@ -9009,7 +9084,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9058,7 +9133,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9068,7 +9143,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=799; start_column=5; end_line=802; end_column=36; @@ -9089,7 +9164,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9138,7 +9213,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9147,7 +9222,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9157,7 +9232,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=843; start_column=5; end_line=849; end_column=36; @@ -9186,7 +9261,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9250,7 +9325,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=660; start_column=5; end_line=663; end_column=33; @@ -9271,7 +9346,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9320,7 +9395,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9330,7 +9405,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=890; start_column=5; end_line=896; end_column=36; @@ -9356,7 +9431,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> ( if (nombre_personnes_a_charge_ = (integer_of_string "0")) then @@ -9372,7 +9447,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1")))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9382,7 +9457,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=922; start_column=5; end_line=925; end_column=36; @@ -9402,7 +9477,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9451,7 +9526,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9461,7 +9536,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=966; start_column=5; end_line=969; end_column=36; @@ -9481,7 +9556,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9530,7 +9605,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9540,7 +9615,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1011; start_column=5; end_line=1014; end_column=36; @@ -9561,7 +9636,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9610,7 +9685,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9620,7 +9695,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1055; start_column=5; end_line=1058; end_column=36; @@ -9641,7 +9716,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9690,7 +9765,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9700,7 +9775,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1102; start_column=5; end_line=1105; end_column=36; @@ -9721,7 +9796,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9770,7 +9845,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9780,7 +9855,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1145; start_column=5; end_line=1148; end_column=36; @@ -9800,7 +9875,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9848,7 +9923,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9858,7 +9933,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1191; start_column=5; end_line=1194; end_column=36; @@ -9879,7 +9954,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -9928,7 +10003,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -9938,7 +10013,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1234; start_column=5; end_line=1237; end_column=36; @@ -9958,7 +10033,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10006,7 +10081,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10016,7 +10091,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1279; start_column=5; end_line=1282; end_column=36; @@ -10036,7 +10111,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10084,7 +10159,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10094,7 +10169,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1323; start_column=5; end_line=1326; end_column=36; @@ -10114,7 +10189,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10162,7 +10237,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10172,7 +10247,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1368; start_column=5; end_line=1371; end_column=36; @@ -10192,7 +10267,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10240,7 +10315,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10250,7 +10325,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1412; start_column=5; end_line=1415; end_column=36; @@ -10270,7 +10345,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10318,7 +10393,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10328,7 +10403,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1457; start_column=5; end_line=1460; end_column=36; @@ -10349,7 +10424,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10397,7 +10472,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10407,7 +10482,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1501; start_column=5; end_line=1504; end_column=36; @@ -10428,7 +10503,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10476,7 +10551,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10486,7 +10561,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1546; start_column=5; end_line=1549; end_column=36; @@ -10507,7 +10582,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10555,7 +10630,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10565,7 +10640,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1590; start_column=5; end_line=1593; end_column=36; @@ -10586,7 +10661,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10634,7 +10709,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10644,7 +10719,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1635; start_column=5; end_line=1638; end_column=36; @@ -10665,7 +10740,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10713,7 +10788,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10723,7 +10798,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1679; start_column=5; end_line=1682; end_column=36; @@ -10744,7 +10819,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10792,7 +10867,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10802,7 +10877,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1724; start_column=5; end_line=1727; end_column=36; @@ -10823,7 +10898,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10871,7 +10946,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10881,7 +10956,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1768; start_column=5; end_line=1771; end_column=36; @@ -10902,7 +10977,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -10950,7 +11025,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -10960,7 +11035,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1813; start_column=5; end_line=1816; end_column=36; @@ -10981,7 +11056,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11029,7 +11104,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11039,7 +11114,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1857; start_column=5; end_line=1860; end_column=36; @@ -11060,7 +11135,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11108,7 +11183,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11118,7 +11193,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1902; start_column=5; end_line=1905; end_column=36; @@ -11139,7 +11214,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11187,7 +11262,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11197,7 +11272,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1946; start_column=5; end_line=1949; end_column=36; @@ -11218,7 +11293,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11266,7 +11341,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11276,7 +11351,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=1991; start_column=5; end_line=1994; end_column=36; @@ -11297,7 +11372,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11345,7 +11420,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11355,7 +11430,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2036; start_column=5; end_line=2039; end_column=36; @@ -11376,7 +11451,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11424,7 +11499,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11434,7 +11509,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2081; start_column=5; end_line=2084; end_column=36; @@ -11454,7 +11529,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11502,7 +11577,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11512,7 +11587,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2125; start_column=5; end_line=2128; end_column=36; @@ -11532,7 +11607,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11580,7 +11655,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11590,7 +11665,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2170; start_column=5; end_line=2173; end_column=36; @@ -11610,7 +11685,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11658,7 +11733,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11668,7 +11743,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2214; start_column=5; end_line=2217; end_column=36; @@ -11688,7 +11763,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11736,7 +11811,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11746,7 +11821,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2259; start_column=5; end_line=2262; end_column=36; @@ -11766,7 +11841,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11814,7 +11889,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11824,7 +11899,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2303; start_column=5; end_line=2306; end_column=36; @@ -11844,7 +11919,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11892,7 +11967,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11902,7 +11977,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2348; start_column=5; end_line=2351; end_column=36; @@ -11922,7 +11997,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -11970,7 +12045,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -11980,7 +12055,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2392; start_column=5; end_line=2395; end_column=36; @@ -12000,7 +12075,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -12048,7 +12123,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -12058,7 +12133,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2437; start_column=5; end_line=2439; end_column=36; @@ -12077,7 +12152,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -12125,7 +12200,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1")))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=684; start_column=11; @@ -12135,7 +12210,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=2480; start_column=5; end_line=2482; end_column=36; @@ -12154,7 +12229,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -12202,7 +12277,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (decimal_of_integer (nombre_personnes_a_charge_ -! (integer_of_string "1"))))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -12230,7 +12305,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3471; start_column=14; end_line=3471; end_column=36; law_headings=["Article D832-11"; @@ -12241,7 +12316,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_nombre_parts_dot_n_nombre_parts_d832_11_)) + (fun (_: unit) -> calcul_nombre_parts_dot_n_nombre_parts_d832_11_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -12263,7 +12338,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=690; start_column=11; @@ -12273,7 +12348,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3723; start_column=5; end_line=3723; end_column=41; @@ -12286,10 +12361,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Code de la construction et de l'habitation"]} (date_signature_pret_ >=@ (date_of_numbers (1999) (6) (30))))) - (fun (_: _) -> + (fun (_: unit) -> (mensualite_principale_ +$ montant_forfaitaire_charges_d832_10_) -$ param_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3734; start_column=14; end_line=3734; end_column=44; @@ -12300,7 +12375,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> mensualite_principale_ -$ param_)) + true)) (fun (_: unit) -> mensualite_principale_ -$ param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -12328,7 +12403,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=682; start_column=10; @@ -12337,7 +12412,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3558; start_column=5; end_line=3558; end_column=44; @@ -12349,7 +12424,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} local_habite_premiere_fois_beneficiaire_)) - (fun (_: _) -> + (fun (_: unit) -> (let plafond_signature_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_plafond_mensualité_d832_10_3"] @@ -12382,7 +12457,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna in ( if (plafond_signature_ <$ plafond_entree_) then plafond_entree_ else plafond_signature_)))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3538; start_column=14; end_line=3538; end_column=42; law_headings=["Article D832-14"; @@ -12393,7 +12468,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> (log_end_call + (fun (_: unit) -> (log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_plafond_mensualité_d832_10_3"] ((log_variable_definition @@ -12420,13 +12495,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=706; start_column=3; end_line=706; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3679; start_column=14; end_line=3679; end_column=75; + law_headings=["Article D832-15"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3679; start_column=14; end_line=3679; end_column=75; law_headings=["Article D832-15"; @@ -12436,28 +12515,35 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_arrondies_)))) + true)) (fun (_: unit) -> ressources_menage_arrondies_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=587; start_column=10; end_line=587; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3679; start_column=14; end_line=3679; end_column=75; + law_headings=["Article D832-15"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_équivalence_loyer_minimale.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=706; start_column=3; end_line=706; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3678; start_column=14; end_line=3678; end_column=69; + law_headings=["Article D832-15"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3678; start_column=14; end_line=3678; end_column=69; law_headings=["Article D832-15"; @@ -12467,28 +12553,35 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> false)))) + true)) (fun (_: unit) -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=588; start_column=10; end_line=588; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3678; start_column=14; end_line=3678; end_column=69; + law_headings=["Article D832-15"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal = try ((log_variable_definition ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"] (embed_decimal) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=706; start_column=3; end_line=706; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3681; start_column=14; end_line=3681; end_column=70; + law_headings=["Article D832-15"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3681; start_column=14; end_line=3681; end_column=70; law_headings=["Article D832-15"; @@ -12498,15 +12591,18 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> n_nombre_parts_d832_11_)))) + true)) (fun (_: unit) -> n_nombre_parts_d832_11_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=589; start_column=10; end_line=589; end_column=32; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=3681; start_column=14; end_line=3681; end_column=70; + law_headings=["Article D832-15"; + "Section 2 : Accession à la propriété"; + "Chapitre II : Modalités de liquidation et de versement de l'aide personnalisée au logement"; + "Titre III : Aide personnalisée au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculEquivalenceLoyerMinimaleOut.t = (log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "calcul_équivalence_loyer_minimale"; @@ -12532,7 +12628,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3386; start_column=14; end_line=3386; end_column=49; law_headings=["Article D832-11"; @@ -12543,7 +12639,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_of_string "0.95") -& (ressources_menage_arrondies_ /$ (coefficient_multiplicateur_d832_11_ *$ @@ -12569,7 +12665,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3745; start_column=14; end_line=3745; end_column=55; @@ -12581,7 +12677,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let depense_nette_minimale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "dépense_nette_minimale_d832_10"] @@ -12632,7 +12728,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=683; start_column=10; @@ -12641,7 +12737,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=683; start_column=10; @@ -12650,7 +12746,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=683; start_column=10; @@ -12660,7 +12756,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=1165; start_column=14; end_line=1165; end_column=42; @@ -12672,12 +12768,12 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (date_of_numbers (2021) (10) (1))) && (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if copropriete_ then (plafond_mensualite_d832_10_3_base_ *$ (decimal_of_string "0.75")) else plafond_mensualite_d832_10_3_base_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=444; start_column=14; end_line=444; end_column=42; @@ -12688,25 +12784,25 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if copropriete_ then (plafond_mensualite_d832_10_3_base_ *$ (decimal_of_string "0.75")) else plafond_mensualite_d832_10_3_base_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=2608; start_column=14; - end_line=2608; end_column=42; + start_line=2609; start_column=14; + end_line=2609; end_column=42; law_headings=["Article 24"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if copropriete_ then (plafond_mensualite_d832_10_3_base_ *$ (decimal_of_string "0.75")) else plafond_mensualite_d832_10_3_base_))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -12726,7 +12822,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=680; start_column=10; @@ -12735,7 +12831,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3618; start_column=5; end_line=3630; end_column=77; @@ -12760,7 +12856,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ -> false | TypeTravauxLogementD83215.PasDeTravaux _ -> true)))) - (fun (_: _) -> + (fun (_: unit) -> (let ressources_menage_arrondies_ : _ = (decimal_of_money ressources_menage_arrondies_) in @@ -12787,7 +12883,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna n_nombre_parts_d832_11_) *& taux_tranche_inferieure_d832_15_1_))) /& (decimal_of_string "12."))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=680; start_column=10; @@ -12796,7 +12892,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3673; start_column=5; end_line=3673; end_column=75; @@ -12814,9 +12910,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ -> true | TypeTravauxLogementD83215.PasDeTravaux _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> calcul_equivalence_loyer_minimale_dot_montant_))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -12836,7 +12932,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3402; start_column=14; end_line=3402; end_column=49; law_headings=["Article D832-11"; @@ -12847,7 +12943,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_round ((coefficient_prise_en_charge_d832_10_formule_ -& (decimal_of_string "0.005")) *& (decimal_of_string "100."))) @@ -12873,7 +12969,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3336; start_column=14; end_line=3336; end_column=36; @@ -12885,7 +12981,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "traitement_aide_finale_minoration_forfaitaire"] @@ -12946,7 +13042,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3297; start_column=14; end_line=3297; end_column=33; law_headings=["Article D832-10"; @@ -12957,7 +13053,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (mensualite_principale_ >$ plafond_mensualite_d832_10_3_coproprietaires_) then @@ -12982,7 +13078,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3405; start_column=14; end_line=3405; end_column=49; law_headings=["Article D832-11"; @@ -12993,7 +13089,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (coefficient_prise_en_charge_d832_10_arrondi_ >=& (decimal_of_string "0.95")) then (decimal_of_string "0.95") @@ -13020,7 +13116,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3350; start_column=14; end_line=3350; end_column=36; @@ -13032,7 +13128,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "traitement_aide_finale_abattement"] @@ -13096,7 +13192,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3277; start_column=14; end_line=3277; end_column=33; law_headings=["Article D832-10"; @@ -13107,7 +13203,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = (((mensualite_eligible_ +$ montant_forfaitaire_charges_d832_10_) -$ @@ -13137,7 +13233,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3370; start_column=14; end_line=3370; end_column=36; @@ -13149,7 +13245,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "traitement_aide_finale_contributions_sociales_arrondi"] @@ -13212,14 +13308,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=292; start_column=11; end_line=292; end_column=25; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13244,13 +13340,13 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=301; start_column=11; end_line=301; end_column=48; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13268,7 +13364,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=105; start_column=14; end_line=105; end_column=42; law_headings=["Article R822-1"; @@ -13278,7 +13374,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> decimal_of_string "0.1")) + true)) (fun (_: unit) -> decimal_of_string "0.1")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13296,7 +13392,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=106; start_column=14; end_line=106; end_column=41; law_headings=["Article R822-1"; @@ -13306,7 +13402,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> decimal_of_string "0.1")) + true)) (fun (_: unit) -> decimal_of_string "0.1")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13324,7 +13420,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=927; start_column=14; end_line=927; end_column=37; law_headings=["Article R822-22"; @@ -13335,7 +13431,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> money_of_cents_string "3000000")) + true)) (fun (_: unit) -> money_of_cents_string "3000000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13353,7 +13449,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=146; start_column=14; end_line=146; end_column=43; law_headings=["Article L822-3"; @@ -13363,7 +13459,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (match ((menage_.Menage.logement).Logement.proprietaire) with | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> @@ -13391,7 +13487,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=299; start_column=11; @@ -13399,7 +13495,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=360; start_column=18; end_line=360; end_column=61; @@ -13411,14 +13507,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]} (not ((menage_.Menage.logement).Logement.logement_decent_l89_462)))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=299; start_column=11; end_line=299; end_column=58; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13436,7 +13532,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=298; start_column=11; @@ -13444,7 +13540,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=346; start_column=18; end_line=346; end_column=67; @@ -13455,14 +13551,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la construction et de l'habitation"]} (menage_.Menage.condition_rattache_foyer_fiscal_parent_ifi))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=298; start_column=11; end_line=298; end_column=41; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13480,16 +13576,16 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> condition_logement_surface_ ())|]) - (fun (_: _) -> true) - (fun (_: _) -> + ([|(fun (_: unit) -> condition_logement_surface_ ())|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=297; start_column=12; end_line=297; end_column=38; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=297; start_column=12; @@ -13498,7 +13594,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1035; start_column=5; end_line=1063; end_column=65; @@ -13562,15 +13658,15 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (((menage_.Menage.logement).Logement.surface_m_carres) >=! condition_logement_surface_minimale_sans_seuil_m_carres_)))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=297; start_column=12; end_line=297; end_column=38; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false))) + (fun (_: unit) -> false))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13588,16 +13684,16 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> condition_logement_residence_principale_ ())|]) - (fun (_: _) -> true) - (fun (_: _) -> + ([|(fun (_: unit) -> condition_logement_residence_principale_ ())|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=294; start_column=12; end_line=294; end_column=51; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=294; start_column=12; @@ -13606,7 +13702,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=46; start_column=5; end_line=46; end_column=41; @@ -13619,15 +13715,15 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la construction et de l'habitation"]} ((menage_.Menage.logement).Logement.residence_principale))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=294; start_column=12; end_line=294; end_column=51; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false))) + (fun (_: unit) -> false))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13640,12 +13736,18 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ["ÉligibilitéAidesPersonnelleLogement"; "ouverture_droits_retraite.date_naissance_assuré"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=319; start_column=3; end_line=319; end_column=28; - law_headings=["Éligibilité aux aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; + start_line=123; start_column=14; end_line=123; end_column=61; + law_headings=["Article L161-17-2"; + "Paragraphe 1 : Information et simplification des démarches des assurés."; + "Sous-section 4 : Assurance vieillesse"; + "Section 1 : Bénéficiaires"; + "Chapitre 1er : Dispositions relatives aux prestations"; + "Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales"; + "Titre III: Titre III : Dispositions communes relatives au financement"; + "Partie législative"; + "Code de la sécurité sociale"]} ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=123; start_column=14; end_line=123; end_column=61; law_headings=["Article L161-17-2"; @@ -13657,14 +13759,20 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Titre III: Titre III : Dispositions communes relatives au financement"; "Partie législative"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> demandeur_.Demandeur.date_naissance)))) + (fun (_: unit) -> demandeur_.Demandeur.date_naissance)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1001; start_column=10; end_line=1001; end_column=31; - law_headings=["Date d'ouverture des droits à la retraite"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; + start_line=123; start_column=14; end_line=123; end_column=61; + law_headings=["Article L161-17-2"; + "Paragraphe 1 : Information et simplification des démarches des assurés."; + "Sous-section 4 : Assurance vieillesse"; + "Section 1 : Bénéficiaires"; + "Chapitre 1er : Dispositions relatives aux prestations"; + "Titre VI : Dispositions relatives aux prestations et aux soins - Contrôle médical - Tutelle aux prestations sociales"; + "Titre III: Titre III : Dispositions communes relatives au financement"; + "Partie législative"; + "Code de la sécurité sociale"]})) in let result_: OuvertureDroitsRetraiteOut.t = (log_end_call ["ÉligibilitéAidesPersonnelleLogement"; "ouverture_droits_retraite"; "OuvertureDroitsRetraite"] ((log_begin_call @@ -13683,7 +13791,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=246; start_column=14; end_line=246; end_column=40; law_headings=["Article L822-5"; @@ -13693,7 +13801,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> ((demandeur_.Demandeur.patrimoine).Patrimoine.produisant_revenu_periode_r822_3_3_r822_4) +$ ((demandeur_.Demandeur.patrimoine).Patrimoine.ne_produisant_pas_revenu_periode_r822_3_3_r822_4))) @@ -13714,7 +13822,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=293; start_column=11; @@ -13722,7 +13830,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=107; start_column=5; end_line=110; end_column=67; @@ -13737,14 +13845,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme | Nationalite.Francaise _ -> true | Nationalite.Etrangere conditions_ -> (conditions_.ConditionsEtrangers.satisfait_conditions_l512_2_code_securite_sociale)))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=293; start_column=11; end_line=293; end_column=32; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13762,7 +13870,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=317; start_column=11; @@ -13770,7 +13878,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=329; start_column=5; end_line=330; end_column=35; @@ -13783,8 +13891,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la sécurité sociale"]} ((date_courante_ >=@ (date_of_numbers (2018) (1) (4))) && (date_courante_ <@ (date_of_numbers (2019) (1) (1)))))) - (fun (_: _) -> money_of_cents_string "999840")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "999840")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=317; start_column=11; @@ -13792,7 +13900,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=334; start_column=5; end_line=335; end_column=35; @@ -13805,8 +13913,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la sécurité sociale"]} ((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) && (date_courante_ <@ (date_of_numbers (2020) (1) (1)))))) - (fun (_: _) -> money_of_cents_string "1041840")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1041840")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=317; start_column=11; @@ -13814,7 +13922,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=339; start_column=5; end_line=340; end_column=35; @@ -13827,8 +13935,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la sécurité sociale"]} ((date_courante_ >=@ (date_of_numbers (2020) (1) (4))) && (date_courante_ <@ (date_of_numbers (2021) (1) (1)))))) - (fun (_: _) -> money_of_cents_string "1083840")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1083840")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=317; start_column=11; @@ -13836,7 +13944,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=60; start_column=5; end_line=61; end_column=34; @@ -13844,8 +13952,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Montants revalorisés de l'allocation de solidarité aux personnes âgées"]} ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && (date_courante_ <@ (date_of_numbers (2023) (1) (1)))))) - (fun (_: _) -> money_of_cents_string "1100144")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1100144")); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=317; start_column=11; @@ -13853,7 +13961,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=93; start_column=5; end_line=94; end_column=34; @@ -13861,8 +13969,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Montants revalorisés de l'allocation de solidarité aux personnes âgées"]} ((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) && (date_courante_ <@ (date_of_numbers (2022) (1) (1)))))) - (fun (_: _) -> money_of_cents_string "1088175"))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> money_of_cents_string "1088175"))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13880,7 +13988,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=296; start_column=11; @@ -13888,7 +13996,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=296; start_column=11; @@ -13897,7 +14005,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=203; start_column=5; end_line=208; end_column=39; @@ -13916,8 +14024,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme +@ (duration_of_numbers (30) (0) (0))) >@ date_courante_) || (personne_.PersonneSousLocation.conforme_article_l442_1))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=197; start_column=5; end_line=198; end_column=34; @@ -13932,14 +14040,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme with | LoueOuSousLoueADesTiers.Non _ -> true | LoueOuSousLoueADesTiers.Oui _ -> false))) - (fun (_: _) -> false))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=296; start_column=11; end_line=296; end_column=44; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13957,7 +14065,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=295; start_column=11; @@ -13965,7 +14073,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=295; start_column=11; @@ -13973,7 +14081,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=295; start_column=11; @@ -13982,7 +14090,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=171; start_column=5; end_line=177; end_column=66; @@ -14009,8 +14117,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme | ParentOuAutre.Autre _ -> (decimal_of_string "0.")) <& seuil_l822_3_parts_usufruit_))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=156; start_column=5; end_line=158; end_column=30; @@ -14031,8 +14139,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme false | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> false))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=125; start_column=5; end_line=131; end_column=33; @@ -14051,14 +14159,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ((menage_.Menage.logement).Logement.residence_principale) | ModeOccupation.SousLocataire _ -> true | ModeOccupation.LocationAccession _ -> true))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=295; start_column=11; end_line=295; end_column=45; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14076,7 +14184,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=300; start_column=11; @@ -14084,7 +14192,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=385; start_column=18; end_line=385; end_column=44; @@ -14094,14 +14202,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - condition_logement_surface_)) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + condition_logement_surface_)) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=300; start_column=11; end_line=300; end_column=58; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14119,7 +14227,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=125; start_column=14; end_line=125; end_column=32; law_headings=["Article L161-17-2"; @@ -14131,7 +14239,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Titre III: Titre III : Dispositions communes relatives au financement"; "Partie législative"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> ouverture_droits_retraite_dot_age_ouverture_droit_)) + (fun (_: unit) -> ouverture_droits_retraite_dot_age_ouverture_droit_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14149,7 +14257,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=314; start_column=11; @@ -14157,7 +14265,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=314; start_column=11; @@ -14165,7 +14273,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=314; start_column=11; @@ -14174,7 +14282,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=286; start_column=18; end_line=286; end_column=75; @@ -14185,8 +14293,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la construction et de l'habitation"]} ((menage_.Menage.logement).Logement.est_ehpad_ou_maison_autonomie_l313_12_asf))) - (fun (_: _) -> money_of_cents_string "0"))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> money_of_cents_string "0"))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=267; start_column=18; end_line=269; end_column=45; @@ -14206,8 +14314,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (PrestationRecue.AllocationAdulteHandicape ())))) false (menage_.Menage.prestations_recues)))) - (fun (_: _) -> money_of_cents_string "0"))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> money_of_cents_string "0"))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=944; start_column=5; end_line=944; end_column=59; @@ -14220,9 +14328,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} (patrimoine_total_demandeur_ >=$ seuil_l822_5_patrimoine_))) - (fun (_: _) -> + (fun (_: unit) -> (demandeur_.Demandeur.patrimoine).Patrimoine.ne_produisant_pas_revenu_periode_r822_3_3_r822_4))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=250; start_column=33; end_line=250; end_column=58; law_headings=["Article L822-5"; @@ -14232,7 +14340,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (patrimoine_total_demandeur_ >$ seuil_l822_5_patrimoine_) then patrimoine_total_demandeur_ else (money_of_cents_string "0"))) @@ -14253,7 +14361,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=302; start_column=11; @@ -14261,7 +14369,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=302; start_column=11; @@ -14270,7 +14378,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=72; start_column=5; end_line=73; end_column=52; @@ -14281,8 +14389,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]} (condition_non_ouverture_l822_8_ || condition_non_ouverture_l822_9_decence_logement_))) - (fun (_: _) -> false))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=65; start_column=5; end_line=68; end_column=52; @@ -14295,14 +14403,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (condition_logement_mode_occupation_ && (condition_logement_location_tiers_ && condition_ouverture_l822_10_peuplement_logement_))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=302; start_column=11; end_line=302; end_column=31; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14320,7 +14428,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_sécurité_sociale.catala_fr"; start_line=163; start_column=14; end_line=163; end_column=31; law_headings=["Article L351-8"; @@ -14330,7 +14438,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre III : Dispositions relatives aux assurances sociales et à diverses catégories de personnes rattachées au régime générale"; "Partie législative"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> age_l161_17_2_secu_ +^ (duration_of_numbers (5) (0) (0)))) with EmptyError -> (raise (NoValueProvided @@ -14348,7 +14456,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=320; start_column=10; @@ -14356,7 +14464,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=330; start_column=5; end_line=332; end_column=25; @@ -14365,14 +14473,14 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Prologue : aides au logement"]} (condition_nationalite_ && (condition_logement_mode_occupation_ && - eligibilite_logement_)))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + eligibilite_logement_)))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=320; start_column=10; end_line=320; end_column=21; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14392,7 +14500,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=324; start_column=10; @@ -14401,7 +14509,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1162; start_column=5; end_line=1178; end_column=10; @@ -14435,15 +14543,15 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme +@ age_l161_17_2_secu_) <=@ date_courante_) && (parent_.AutrePersonneACharge.beneficiaire_l161_19_l351_8_l643_3_secu)))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=324; start_column=10; end_line=324; end_column=28; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14470,7 +14578,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=303; start_column=11; @@ -14478,7 +14586,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=303; start_column=11; @@ -14487,7 +14595,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1202; start_column=4; end_line=1208; end_column=49; @@ -14509,8 +14617,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme <=$ (plafond_individuel_l815_9_secu_ *$ (decimal_of_string "1.25"))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1183; start_column=5; end_line=1183; end_column=44; @@ -14533,8 +14641,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme ["ÉligibilitéAidesPersonnelleLogement"; "condition_2_r823_4"; "input"] (embed_personne_a_charge) param_))))))))) - (fun (_: _) -> true)); - (fun (_: _) -> + (fun (_: unit) -> true)); + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=303; start_column=11; @@ -14543,7 +14651,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1138; start_column=5; end_line=1141; end_column=44; @@ -14561,15 +14669,15 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (duration_of_numbers (21) (0) (0))) >@ date_courante_) | PersonneACharge.AutrePersonneACharge parent_ -> - false))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + false))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=303; start_column=11; end_line=303; end_column=44; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14595,7 +14703,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1126; start_column=14; end_line=1126; end_column=49; law_headings=["Article R823-4"; @@ -14606,7 +14714,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> array_filter (fun (personne_a_charge_: _) -> (log_end_call ["ÉligibilitéAidesPersonnelleLogement"; @@ -14641,13 +14749,13 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=336; start_column=14; end_line=336; end_column=63; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> Array.map (fun (personne_a_charge_: _) -> match personne_a_charge_ @@ -14692,13 +14800,13 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=334; start_column=14; end_line=334; end_column=56; law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> array_length personnes_a_charge_prises_en_compte_)) + (fun (_: unit) -> array_length personnes_a_charge_prises_en_compte_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14790,13 +14898,13 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=493; start_column=46; end_line=493; end_column=52; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} false)) - (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14814,13 +14922,13 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=21; start_column=14; end_line=21; end_column=41; law_headings=["Article 4"; "Chapitre II : Dispositions applicables aux ressources"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "258900")) + true)) (fun (_: unit) -> money_of_cents_string "258900")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14838,13 +14946,13 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=11; start_column=14; end_line=11; end_column=41; law_headings=["Article 3"; "Chapitre II : Dispositions applicables aux ressources"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "9500")) + true)) (fun (_: unit) -> money_of_cents_string "9500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14862,13 +14970,13 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=503; start_column=51; end_line=503; end_column=57; law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} false)) - (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14886,7 +14994,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=129; start_column=14; end_line=129; end_column=62; law_headings=["Article R822-2"; @@ -14898,7 +15006,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> Array.fold_left (fun (acc_: money) (personne_: _) -> acc_ +$ @@ -14922,7 +15030,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=524; start_column=14; end_line=524; end_column=33; law_headings=["Article R822-10"; @@ -14934,7 +15042,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let abattement_ : _ = ( if ((array_length personnes_a_charge_) = (integer_of_string @@ -14966,12 +15074,18 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement ["RessourcesAidesPersonnelleLogement"; "base_mensuelle_allocations_familiales.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=505; start_column=3; end_line=505; end_column=40; - law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=418; start_column=14; end_line=418; end_column=65; + law_headings=["Article R822-7"; + "Sous-section 2 : Principes de neutralisation et d'abattement"; + "Section 2 : Conditions relatives aux ressources"; + "Chapitre II : Conditions générales d'attribution"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=418; start_column=14; end_line=418; end_column=65; law_headings=["Article R822-7"; @@ -14982,12 +15096,19 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_demande_ou_reexamen_droit_)))) + true)) (fun (_: unit) -> date_demande_ou_reexamen_droit_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; - start_line=5; start_column=10; end_line=5; end_column=23; - law_headings=["Montant de la base mensuelle des allocations familiales"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=418; start_column=14; end_line=418; end_column=65; + law_headings=["Article R822-7"; + "Sous-section 2 : Principes de neutralisation et d'abattement"; + "Section 2 : Conditions relatives aux ressources"; + "Chapitre II : Conditions générales d'attribution"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: BaseMensuelleAllocationsFamilialesOut.t = (log_end_call ["RessourcesAidesPersonnelleLogement"; "base_mensuelle_allocations_familiales"; @@ -15009,7 +15130,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=462; start_column=14; end_line=462; end_column=32; law_headings=["Article R822-8"; @@ -15021,7 +15142,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match paiement_logement_distinct_professionnel_ with | PaiementLogementDistinctProfessionnel.OuiAvecLoyerOuCharges loyer_ou_charges_ -> @@ -15045,7 +15166,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=508; start_column=10; @@ -15053,7 +15174,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=854; start_column=6; end_line=857; end_column=35; @@ -15083,8 +15204,8 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement | ModeOccupation.LocationAccession _ -> false)) && (condition_age_bourse_enseignement_superieur_ && demandeur_poursuit_des_etudes_)))) - (fun (_: _) -> ressources_forfaitaires_r822_20_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> ressources_forfaitaires_r822_20_))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=124; start_column=14; end_line=124; end_column=41; law_headings=["Article R822-2"; @@ -15096,7 +15217,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (ressources_demandeur_ +$ ressources_conjoint_) +$ ressources_personnes_vivant_habituellement_foyer_)) with @@ -15116,7 +15237,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement law_headings=["Prise en compte des ressources pour les aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=409; start_column=14; end_line=409; end_column=32; law_headings=["Article R822-7"; @@ -15128,7 +15249,7 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (demandeur_exerce_activite_remuneree_ && (conjoint_exerce_activite_remuneree_ && @@ -15190,7 +15311,7 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=43; start_column=10; end_line=43; end_column=22; law_headings=["Prologue : prestations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr"; start_line=21; start_column=14; end_line=21; end_column=26; law_headings=["Article R512-2"; @@ -15199,7 +15320,7 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> duration_of_numbers (20) (0) (0))) + (fun (_: unit) -> duration_of_numbers (20) (0) (0))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; @@ -15211,36 +15332,36 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E (embed_date) (handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; - start_line=48; start_column=3; end_line=48; end_column=7; + start_line=52; start_column=14; end_line=52; end_column=32; law_headings=["Prologue : prestations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=52; start_column=14; end_line=52; end_column=32; law_headings=["Prologue : prestations familiales"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; - start_line=9; start_column=10; end_line=9; end_column=23; - law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})) in + {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; + start_line=52; start_column=14; end_line=52; end_column=32; + law_headings=["Prologue : prestations familiales"]})) in let smic_dot_residence_: Collectivite.t = try ((log_variable_definition ["ÉligibilitéPrestationsFamiliales"; "smic.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; - start_line=48; start_column=3; end_line=48; end_column=7; + start_line=51; start_column=14; end_line=51; end_column=28; law_headings=["Prologue : prestations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=51; start_column=14; end_line=51; end_column=28; law_headings=["Prologue : prestations familiales"]} true)) - (fun (_: _) -> residence_)))) + (fun (_: unit) -> residence_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr"; - start_line=10; start_column=10; end_line=10; end_column=19; - law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})) in + {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; + start_line=51; start_column=14; end_line=51; end_column=28; + law_headings=["Prologue : prestations familiales"]})) in let result_: SmicOut.t = (log_end_call ["ÉligibilitéPrestationsFamiliales"; "smic"; "Smic"] ((log_begin_call ["ÉligibilitéPrestationsFamiliales"; "smic"; "Smic"] smic) @@ -15255,14 +15376,14 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=44; start_column=10; end_line=44; end_column=33; law_headings=["Prologue : prestations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=44; start_column=10; end_line=44; end_column=33; law_headings=["Prologue : prestations familiales"]} ( [||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr"; start_line=126; start_column=5; end_line=131; end_column=30; @@ -15280,12 +15401,12 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E (Collectivite.SaintBarthelemy ())) || (residence_ = (Collectivite.SaintMartin ()))))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=44; start_column=10; end_line=44; end_column=33; law_headings=["Prologue : prestations familiales"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; @@ -15299,14 +15420,14 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=42; start_column=11; end_line=42; end_column=27; law_headings=["Prologue : prestations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=42; start_column=11; end_line=42; end_column=27; law_headings=["Prologue : prestations familiales"]} ( [||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr"; start_line=62; start_column=18; end_line=62; end_column=41; @@ -15317,10 +15438,10 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} regime_outre_mer_l751_1_)) - (fun (_: _) -> + (fun (_: unit) -> (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ (decimal_of_string "169.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr"; start_line=31; start_column=14; end_line=31; end_column=30; law_headings=["Article R512-2"; @@ -15329,7 +15450,7 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ (decimal_of_string "169."))) with @@ -15347,14 +15468,14 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=41; start_column=10; end_line=41; end_column=29; law_headings=["Prologue : prestations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=41; start_column=10; end_line=41; end_column=29; law_headings=["Prologue : prestations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr"; start_line=77; start_column=5; end_line=81; end_column=24; @@ -15389,13 +15510,14 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E | SituationObligationScolaire.Apres _ -> true))) && ((param_.EnfantPrestationsFamiliales.remuneration_mensuelle) - <=$ plafond_l512_3_2_)))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + <=$ plafond_l512_3_2_)))) + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=41; start_column=10; end_line=41; end_column=29; law_headings=["Prologue : prestations familiales"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; @@ -15415,26 +15537,26 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=40; start_column=10; end_line=40; end_column=22; law_headings=["Prologue : prestations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=40; start_column=10; end_line=40; end_column=22; law_headings=["Prologue : prestations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=40; start_column=10; end_line=40; end_column=22; law_headings=["Prologue : prestations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=40; start_column=10; end_line=40; end_column=22; law_headings=["Prologue : prestations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr"; start_line=67; start_column=5; end_line=71; end_column=21; @@ -15458,8 +15580,8 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E (((param_.EnfantPrestationsFamiliales.date_de_naissance) +@ age_l512_3_2_) >@ date_courante_))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_L.catala_fr"; start_line=56; start_column=5; end_line=57; end_column=78; @@ -15486,14 +15608,15 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E | SituationObligationScolaire.Pendant _ -> true | SituationObligationScolaire.Apres _ -> - false)))) (fun (_: _) -> true))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + false)))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=40; start_column=10; end_line=40; end_column=22; law_headings=["Prologue : prestations familiales"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; @@ -15532,24 +15655,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.loyer_principal_base"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=790; start_column=14; end_line=790; end_column=48; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=790; start_column=14; end_line=790; end_column=48; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> loyer_principal_)))) + (fun (_: unit) -> loyer_principal_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=529; start_column=10; end_line=529; end_column=25; + start_line=790; start_column=14; end_line=790; end_column=48; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_ressources_menage_arrondies_: money = try ((log_variable_definition @@ -15557,24 +15679,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.ressources_ménage_arrondies"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=792; start_column=14; end_line=792; end_column=60; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=792; start_column=14; end_line=792; end_column=60; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_arrondies_)))) + (fun (_: unit) -> ressources_menage_arrondies_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=532; start_column=10; end_line=532; end_column=37; + start_line=792; start_column=14; end_line=792; end_column=60; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes_: bool = try ((log_variable_definition @@ -15583,24 +15704,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=794; start_column=14; end_line=794; end_column=78; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=794; start_column=14; end_line=794; end_column=78; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> beneficiaire_aide_adulte_ou_enfant_handicapes_)))) + (fun (_: unit) -> beneficiaire_aide_adulte_ou_enfant_handicapes_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=533; start_column=10; end_line=533; end_column=55; + start_line=794; start_column=14; end_line=794; end_column=78; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_date_courante_: date = try ((log_variable_definition @@ -15608,24 +15728,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=797; start_column=14; end_line=797; end_column=46; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=797; start_column=14; end_line=797; end_column=46; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=535; start_column=10; end_line=535; end_column=23; + start_line=797; start_column=14; end_line=797; end_column=46; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -15633,24 +15752,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.nombre_personnes_à_charge"] (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=799; start_column=14; end_line=799; end_column=58; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=799; start_column=14; end_line=799; end_column=58; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> nombre_personnes_a_charge_)))) + (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=536; start_column=10; end_line=536; end_column=35; + start_line=799; start_column=14; end_line=799; end_column=58; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition @@ -15659,24 +15777,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=801; start_column=14; end_line=801; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=801; start_column=14; end_line=801; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> situation_familiale_calcul_apl_)))) + (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=537; start_column=10; end_line=537; end_column=40; + start_line=801; start_column=14; end_line=801; end_column=63; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -15684,24 +15801,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=803; start_column=14; end_line=803; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=803; start_column=14; end_line=803; end_column=37; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> zone_)))) + (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=538; start_column=10; end_line=538; end_column=14; + start_line=803; start_column=14; end_line=803; end_column=37; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_logement_est_chambre_: bool = try ((log_variable_definition @@ -15709,24 +15825,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.logement_est_chambre"] (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=805; start_column=14; end_line=805; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=805; start_column=14; end_line=805; end_column=53; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> logement_est_chambre_)))) + (fun (_: unit) -> logement_est_chambre_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=539; start_column=10; end_line=539; end_column=30; + start_line=805; start_column=14; end_line=805; end_column=53; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool = try ((log_variable_definition @@ -15735,25 +15850,24 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=808; start_column=5; end_line=809; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=808; start_column=5; end_line=809; end_column=63; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> agees_ou_handicap_adultes_hebergees_onereux_particuliers_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=540; start_column=10; end_line=540; end_column=66; + start_line=808; start_column=5; end_line=809; end_column=63; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition @@ -15761,24 +15875,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_type_aides_personnelle_logement) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=812; start_column=14; end_line=812; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=812; start_column=14; end_line=812; end_column=42; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> type_aide_)))) + (fun (_: unit) -> type_aide_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=542; start_column=10; end_line=542; end_column=19; + start_line=812; start_column=14; end_line=812; end_column=42; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_colocation_: bool = try ((log_variable_definition @@ -15786,24 +15899,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=814; start_column=14; end_line=814; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=814; start_column=14; end_line=814; end_column=43; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> colocation_)))) + (fun (_: unit) -> colocation_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=543; start_column=10; end_line=543; end_column=20; + start_line=814; start_column=14; end_line=814; end_column=43; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_reduction_loyer_solidarite_: money = try ((log_variable_definition @@ -15811,24 +15923,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.réduction_loyer_solidarité"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=816; start_column=14; end_line=816; end_column=59; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=816; start_column=14; end_line=816; end_column=59; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> reduction_loyer_solidarite_)))) + (fun (_: unit) -> reduction_loyer_solidarite_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=544; start_column=10; end_line=544; end_column=36; + start_line=816; start_column=14; end_line=816; end_column=59; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_locatif_dot_logement_meuble_d842_2_: bool = try ((log_variable_definition @@ -15836,24 +15947,23 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "calcul_apl_locatif.logement_meublé_d842_2"] (embed_bool) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=783; start_column=3; end_line=783; end_column=21; + start_line=818; start_column=14; end_line=818; end_column=55; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=818; start_column=14; end_line=818; end_column=55; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> logement_meuble_d842_2_)))) + (fun (_: unit) -> logement_meuble_d842_2_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=545; start_column=10; end_line=545; end_column=32; + start_line=818; start_column=14; end_line=818; end_column=55; law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let result_: CalculAidePersonnaliseeLogementLocatifOut.t = (log_end_call ["CalculAllocationLogementLocatif"; "calcul_apl_locatif"; @@ -15907,7 +16017,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=787; start_column=10; @@ -15916,7 +16026,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4473; start_column=24; end_line=4473; end_column=46; @@ -15933,15 +16043,15 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (loyer_principal_ >=$ (infos_.InfosChangementLogementD8424.ancien_loyer_principal)) | ChangementLogementD8424.PasDeChangement _ -> - false))) (fun (_: _) -> param_))|]) - (fun (_: _) -> (log_decision_taken + false))) (fun (_: unit) -> param_))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=823; start_column=14; end_line=823; end_column=36; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> (log_end_call + (fun (_: unit) -> (log_end_call ["CalculAidePersonnaliséeLogementLocatif"; "traitement_aide_finale_montant_minimal"] ((log_variable_definition @@ -15979,7 +16089,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=785; start_column=10; @@ -15987,7 +16097,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4465; start_column=24; end_line=4465; end_column=43; @@ -16004,7 +16114,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (loyer_principal_ >=$ (infos_.InfosChangementLogementD8424.ancien_loyer_principal)) | ChangementLogementD8424.PasDeChangement _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> match changement_logement_d842_4_ with | ChangementLogementD8424.Changement infos_ -> @@ -16014,13 +16124,13 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (infos_.InfosChangementLogementD8424.ancienne_allocation_logement))) | ChangementLogementD8424.PasDeChangement _ -> (money_of_cents_string "0")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=822; start_column=14; end_line=822; end_column=33; law_headings=["Secteur locatif"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> calcul_apl_locatif_dot_aide_finale_formule_)) + (fun (_: unit) -> calcul_apl_locatif_dot_aide_finale_formule_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16053,13 +16163,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4315; start_column=14; end_line=4315; end_column=42; + start_line=4316; start_column=14; end_line=4316; end_column=42; law_headings=["Article 42"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "1000")) + true)) (fun (_: unit) -> money_of_cents_string "1000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16077,13 +16187,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4304; start_column=14; end_line=4304; end_column=41; + start_line=4305; start_column=14; end_line=4305; end_column=41; law_headings=["Article 41"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "500")) + true)) (fun (_: unit) -> money_of_cents_string "500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16101,13 +16211,13 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4406; start_column=14; end_line=4406; end_column=51; + start_line=4407; start_column=14; end_line=4407; end_column=51; law_headings=["Article 44"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "1500")) + true)) (fun (_: unit) -> money_of_cents_string "1500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16120,12 +16230,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ["CalculAllocationLogementFoyer"; "calcul_nombre_parts.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=934; start_column=3; end_line=934; end_column=22; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5031; start_column=14; end_line=5031; end_column=55; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5031; start_column=14; end_line=5031; end_column=55; law_headings=["Article D842-15"; @@ -16135,26 +16249,32 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> true)))) + true)) (fun (_: unit) -> true)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=599; start_column=10; end_line=599; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5031; start_column=14; end_line=5031; end_column=55; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_nombre_parts_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAllocationLogementFoyer"; "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=934; start_column=3; end_line=934; end_column=22; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5027; start_column=14; end_line=5027; end_column=59; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5027; start_column=14; end_line=5027; end_column=59; law_headings=["Article D842-15"; @@ -16164,27 +16284,33 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=600; start_column=10; end_line=600; end_column=35; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5027; start_column=14; end_line=5027; end_column=59; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAllocationLogementFoyer"; "calcul_nombre_parts.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=934; start_column=3; end_line=934; end_column=22; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5029; start_column=14; end_line=5029; end_column=64; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5029; start_column=14; end_line=5029; end_column=64; law_headings=["Article D842-15"; @@ -16194,15 +16320,17 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=601; start_column=10; end_line=601; end_column=40; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5029; start_column=14; end_line=5029; end_column=64; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculNombrePartLogementFoyerOut.t = (log_end_call ["CalculAllocationLogementFoyer"; "calcul_nombre_parts"; "CalculNombrePartLogementFoyer"] ((log_begin_call @@ -16221,23 +16349,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=937; start_column=3; end_line=937; end_column=25; + start_line=967; start_column=14; end_line=967; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=967; start_column=14; end_line=967; end_column=50; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=515; start_column=10; end_line=515; end_column=23; - law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; - "Déclarations des champs d'application"; + start_line=967; start_column=14; end_line=967; end_column=50; + law_headings=["Secteur logement-foyer"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let result_: ContributionsSocialesAidesPersonnelleLogementOut.t = (log_end_call ["CalculAllocationLogementFoyer"; "contributions_sociales"; @@ -16255,24 +16383,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_type_logement_foyer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=951; start_column=14; end_line=951; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=951; start_column=14; end_line=951; end_column=59; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> type_logement_foyer_)))) + (fun (_: unit) -> type_logement_foyer_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=10; end_line=606; end_column=29; + start_line=951; start_column=14; end_line=951; end_column=59; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_date_conventionnement_: date = try ((log_variable_definition @@ -16280,24 +16407,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.date_conventionnement"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=953; start_column=14; end_line=953; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=953; start_column=14; end_line=953; end_column=61; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_conventionnement_)))) + (fun (_: unit) -> date_conventionnement_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=10; end_line=607; end_column=31; + start_line=953; start_column=14; end_line=953; end_column=61; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_ressources_menage_arrondies_: money = try ((log_variable_definition @@ -16306,24 +16432,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=957; start_column=14; end_line=957; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=957; start_column=14; end_line=957; end_column=67; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_arrondies_)))) + (fun (_: unit) -> ressources_menage_arrondies_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=608; start_column=10; end_line=608; end_column=37; + start_line=957; start_column=14; end_line=957; end_column=67; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -16332,24 +16457,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=959; start_column=14; end_line=959; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=959; start_column=14; end_line=959; end_column=65; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> nombre_personnes_a_charge_)))) + (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=609; start_column=10; end_line=609; end_column=35; + start_line=959; start_column=14; end_line=959; end_column=65; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition @@ -16358,24 +16482,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=961; start_column=14; end_line=961; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=961; start_column=14; end_line=961; end_column=70; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> situation_familiale_calcul_apl_)))) + (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=610; start_column=10; end_line=610; end_column=40; + start_line=961; start_column=14; end_line=961; end_column=70; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -16383,24 +16506,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=963; start_column=14; end_line=963; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=963; start_column=14; end_line=963; end_column=44; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> zone_)))) + (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=611; start_column=10; end_line=611; end_column=14; + start_line=963; start_column=14; end_line=963; end_column=44; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_date_courante_: date = try ((log_variable_definition @@ -16408,24 +16530,23 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=965; start_column=14; end_line=965; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=965; start_column=14; end_line=965; end_column=53; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=612; start_column=10; end_line=612; end_column=23; + start_line=965; start_column=14; end_line=965; end_column=53; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_redevance_: money = try ((log_variable_definition @@ -16433,36 +16554,39 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_apl_logement_foyer.redevance"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; + start_line=955; start_column=14; end_line=955; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=955; start_column=14; end_line=955; end_column=49; law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> redevance_)))) + (fun (_: unit) -> redevance_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=613; start_column=10; end_line=613; end_column=19; + start_line=955; start_column=14; end_line=955; end_column=49; law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_condition_2_du_832_25_: unit -> bool = fun (_: unit) -> (log_variable_definition ["CalculAllocationLogementFoyer"; "calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=935; start_column=3; end_line=935; end_column=28; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4994; start_column=14; end_line=4994; end_column=61; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4994; start_column=14; end_line=4994; end_column=61; law_headings=["Article D842-15"; @@ -16472,7 +16596,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> true))) in + true)) (fun (_: unit) -> true))) in let calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_: unit -> decimal = fun (_: unit) -> (log_variable_definition ["CalculAllocationLogementFoyer"; @@ -16524,7 +16648,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=931; start_column=10; @@ -16532,22 +16656,22 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4291; start_column=14; - end_line=4291; end_column=41; + start_line=4292; start_column=14; + end_line=4292; end_column=41; law_headings=["Article 40"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then (money_of_cents_string "5612") else ((money_of_cents_string "5612") +$ ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=931; start_column=10; @@ -16555,7 +16679,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=633; start_column=14; end_line=633; end_column=41; @@ -16565,14 +16689,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then (money_of_cents_string "5422") else ((money_of_cents_string "5422") +$ ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_)))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16589,7 +16713,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16597,10 +16721,10 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4333; start_column=6; - end_line=4333; end_column=79; + start_line=4334; start_column=6; + end_line=4334; end_column=79; law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -16615,14 +16739,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu false | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "8708") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "13559"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16630,10 +16754,10 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4368; start_column=6; - end_line=4369; end_column=38; + start_line=4369; start_column=6; + end_line=4370; end_column=38; law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -16648,14 +16772,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu true | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "21362") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33196"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16663,7 +16787,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16672,10 +16796,10 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4386; start_column=6; - end_line=4387; end_column=24; + start_line=4387; start_column=6; + end_line=4388; end_column=24; law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -16691,17 +16815,17 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu false | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> true)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "17607") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27365")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4350; start_column=6; - end_line=4351; end_column=46; + start_line=4351; start_column=6; + end_line=4352; end_column=46; law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -16716,14 +16840,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu false | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "17607") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27365"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16731,7 +16855,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=656; start_column=6; end_line=656; end_column=79; @@ -16752,14 +16876,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu false | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "8414") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "13100"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16767,7 +16891,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=693; start_column=6; end_line=694; end_column=38; @@ -16788,14 +16912,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu true | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "20640") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32073"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16803,7 +16927,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=930; start_column=10; @@ -16812,7 +16936,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=712; start_column=6; end_line=713; end_column=24; @@ -16833,14 +16957,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu false | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> true)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "17012") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26440")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=674; start_column=6; end_line=675; end_column=46; @@ -16861,14 +16985,14 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu false | CategorieEquivalenceLoyerAllocationLogementFoyer.AutresPersonnes _ -> false)))) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "17012") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26440")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16888,7 +17012,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5043; start_column=14; end_line=5043; end_column=36; @@ -16900,7 +17024,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((param_ -$ montant_forfaitaire_d842_15_) <$ (money_of_cents_string "0")) then @@ -16926,12 +17050,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=939; start_column=3; end_line=939; end_column=36; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5024; start_column=14; end_line=5024; end_column=75; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5024; start_column=14; end_line=5024; end_column=75; law_headings=["Article D842-15"; @@ -16941,27 +17069,33 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_arrondies_)))) + true)) (fun (_: unit) -> ressources_menage_arrondies_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=587; start_column=10; end_line=587; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5024; start_column=14; end_line=5024; end_column=75; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool = try ((log_variable_definition ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=939; start_column=3; end_line=939; end_column=36; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5023; start_column=14; end_line=5023; end_column=69; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5023; start_column=14; end_line=5023; end_column=69; law_headings=["Article D842-15"; @@ -16971,27 +17105,33 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> true)))) + true)) (fun (_: unit) -> true)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=588; start_column=10; end_line=588; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5023; start_column=14; end_line=5023; end_column=69; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal = try ((log_variable_definition ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"] (embed_decimal) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=939; start_column=3; end_line=939; end_column=36; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5033; start_column=14; end_line=5033; end_column=70; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5033; start_column=14; end_line=5033; end_column=70; law_headings=["Article D842-15"; @@ -17002,15 +17142,17 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_nombre_parts_dot_n_nombre_parts_d832_25_)))) + (fun (_: unit) -> calcul_nombre_parts_dot_n_nombre_parts_d832_25_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=589; start_column=10; end_line=589; end_column=32; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=5033; start_column=14; end_line=5033; end_column=70; + law_headings=["Article D842-15"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculEquivalenceLoyerMinimaleOut.t = (log_end_call ["CalculAllocationLogementFoyer"; "calcul_équivalence_loyer_minimale"; "CalculÉquivalenceLoyerMinimale"] ((log_begin_call @@ -17033,7 +17175,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4997; start_column=14; end_line=4997; end_column=41; law_headings=["Article D842-15"; @@ -17044,7 +17186,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_)) with EmptyError -> (raise (NoValueProvided @@ -17065,7 +17207,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5155; start_column=14; end_line=5155; end_column=36; @@ -17077,7 +17219,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (equivalence_loyer_ +$ montant_forfaitaire_charges_) -$ param_)) with @@ -17103,7 +17245,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5035; start_column=14; end_line=5035; end_column=27; law_headings=["Article D842-15"; @@ -17114,7 +17256,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_equivalence_loyer_minimale_dot_montant_)) + (fun (_: unit) -> calcul_equivalence_loyer_minimale_dot_montant_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17134,7 +17276,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5164; start_column=14; end_line=5164; end_column=47; @@ -17146,7 +17288,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (((log_end_call ["CalculAllocationLogementFoyer"; @@ -17196,7 +17338,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4976; start_column=14; end_line=4976; end_column=33; law_headings=["Article D842-15"; @@ -17207,7 +17349,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> ((equivalence_loyer_ +$ montant_forfaitaire_charges_) -$ loyer_minimal_) *$ coefficient_prise_en_charge_)) with @@ -17229,7 +17371,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5057; start_column=14; end_line=5057; end_column=36; @@ -17241,7 +17383,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementFoyer"; "traitement_aide_finale_minoration_forfaitaire"] @@ -17302,7 +17444,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5075; start_column=14; end_line=5075; end_column=36; @@ -17314,7 +17456,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementFoyer"; "traitement_aide_finale_dépense_nette_minimale"] @@ -17359,7 +17501,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5089; start_column=14; end_line=5089; end_column=36; @@ -17371,7 +17513,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementFoyer"; "traitement_aide_finale_redevance"] @@ -17434,7 +17576,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5110; start_column=14; end_line=5110; end_column=36; @@ -17446,7 +17588,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementFoyer"; "traitement_aide_finale_contributions_sociales_arrondi"] @@ -17514,13 +17656,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4178; start_column=14; end_line=4178; end_column=40; + start_line=4179; start_column=14; end_line=4179; end_column=40; law_headings=["Article 35"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "500")) + true)) (fun (_: unit) -> money_of_cents_string "500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17538,13 +17680,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=302; start_column=14; end_line=302; end_column=36; law_headings=["Article premier"; "Règlement (CE) n°2866/98 du conseil du 31 décembre 1998 concernant les taux de conversion entre l'euro et les monnaies des États membres adoptant l'euro"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (decimal_of_string "1.") /& (decimal_of_string "6.55957"))) with EmptyError -> (raise (NoValueProvided @@ -17563,13 +17705,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4188; start_column=14; end_line=4188; end_column=41; + start_line=4189; start_column=14; end_line=4189; end_column=41; law_headings=["Article 36"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "1000")) + true)) (fun (_: unit) -> money_of_cents_string "1000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17587,13 +17729,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4242; start_column=14; end_line=4242; end_column=41; + start_line=4243; start_column=14; end_line=4243; end_column=41; law_headings=["Article 38"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "1500")) + true)) (fun (_: unit) -> money_of_cents_string "1500")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17611,13 +17753,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4267; start_column=14; end_line=4267; end_column=41; + start_line=4268; start_column=14; end_line=4268; end_column=41; law_headings=["Article 39"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> money_of_cents_string "390000")) + true)) (fun (_: unit) -> money_of_cents_string "390000")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17635,13 +17777,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4249; start_column=14; end_line=4249; end_column=33; + start_line=4250; start_column=14; end_line=4250; end_column=33; law_headings=["Article 38"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> decimal_of_string "0.0234")) + true)) (fun (_: unit) -> decimal_of_string "0.0234")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17659,13 +17801,13 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4260; start_column=14; end_line=4260; end_column=33; + start_line=4261; start_column=14; end_line=4261; end_column=33; law_headings=["Article 39"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - true)) (fun (_: _) -> decimal_of_string "16.25")) + true)) (fun (_: unit) -> decimal_of_string "16.25")) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17678,12 +17820,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_nombre_parts.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=867; start_column=3; end_line=867; end_column=22; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4638; start_column=14; end_line=4638; end_column=59; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4638; start_column=14; end_line=4638; end_column=59; law_headings=["Article D842-6"; @@ -17693,27 +17840,35 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=656; start_column=10; end_line=656; end_column=35; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4638; start_column=14; end_line=4638; end_column=59; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_nombre_parts_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_nombre_parts.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=867; start_column=3; end_line=867; end_column=22; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4640; start_column=14; end_line=4640; end_column=64; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4640; start_column=14; end_line=4640; end_column=64; law_headings=["Article D842-6"; @@ -17723,15 +17878,18 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=657; start_column=10; end_line=657; end_column=40; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4640; start_column=14; end_line=4640; end_column=64; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculNombrePartsAccessionProprieteOut.t = (log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_nombre_parts"; "CalculNombrePartsAccessionPropriété"] ((log_begin_call @@ -17749,23 +17907,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "contributions_sociales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=870; start_column=3; end_line=870; end_column=25; + start_line=906; start_column=14; end_line=906; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=906; start_column=14; end_line=906; end_column=50; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=515; start_column=10; end_line=515; end_column=23; - law_headings=["Calcul des contributions sociales s'appliquant aux aides personnelles au logement"; - "Déclarations des champs d'application"; + start_line=906; start_column=14; end_line=906; end_column=50; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let result_: ContributionsSocialesAidesPersonnelleLogementOut.t = (log_end_call ["CalculAllocationLogementAccessionPropriété"; @@ -17788,7 +17946,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=848; start_column=11; @@ -17796,7 +17954,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=848; start_column=11; @@ -17805,7 +17963,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=602; start_column=5; end_line=602; end_column=16; @@ -17817,7 +17975,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_courante_ <@ (date_of_numbers (2022) (7) (1)))) && copropriete_))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -17827,7 +17985,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=564; start_column=43; end_line=564; end_column=70; @@ -17837,14 +17995,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then (money_of_cents_string "5422") else ((money_of_cents_string "5422") +$ ((money_of_cents_string "1229") *$ (decimal_of_integer nombre_personnes_a_charge_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=848; start_column=11; @@ -17852,7 +18010,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=848; start_column=11; @@ -17861,17 +18019,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4220; start_column=5; - end_line=4220; end_column=16; + start_line=4221; start_column=5; + end_line=4221; end_column=16; law_headings=["Article 37"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && copropriete_))) - (fun (_: _) -> + (fun (_: unit) -> (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -17881,28 +18039,28 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4166; start_column=31; - end_line=4166; end_column=58; + start_line=4167; start_column=31; + end_line=4167; end_column=58; law_headings=["Article 34"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_personnes_a_charge_ = (integer_of_string "0")) then (money_of_cents_string "5612") else ((money_of_cents_string "5612") +$ ((money_of_cents_string "1272") *$ (decimal_of_integer nombre_personnes_a_charge_)))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=848; start_column=47; end_line=848; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} false)) - (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17922,7 +18080,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4648; start_column=14; end_line=4648; end_column=36; @@ -17934,7 +18092,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((param_ -$ montant_forfaitaire_d842_6_) <$ (money_of_cents_string "0")) then @@ -17966,7 +18124,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -17975,10 +18133,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3128; start_column=5; - end_line=3128; end_column=64; + start_line=3129; start_column=5; + end_line=3129; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -17986,7 +18144,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (1992) (7) (1))) && (param_ <@ (date_of_numbers (1994) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -18119,7 +18277,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -18128,10 +18286,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3174; start_column=5; - end_line=3174; end_column=64; + start_line=3175; start_column=5; + end_line=3175; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -18139,7 +18297,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (1994) (7) (1))) && (param_ <@ (date_of_numbers (1997) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -18272,7 +18430,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -18281,10 +18439,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3220; start_column=5; - end_line=3220; end_column=64; + start_line=3221; start_column=5; + end_line=3221; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -18292,7 +18450,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (1997) (7) (1))) && (param_ <@ (date_of_numbers (1998) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -18425,7 +18583,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -18434,10 +18592,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3266; start_column=5; - end_line=3266; end_column=64; + start_line=3267; start_column=5; + end_line=3267; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -18445,7 +18603,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (1998) (7) (1))) && (param_ <@ (date_of_numbers (1999) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -18578,7 +18736,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -18587,10 +18745,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3312; start_column=5; - end_line=3312; end_column=64; + start_line=3313; start_column=5; + end_line=3313; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -18598,7 +18756,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (1999) (7) (1))) && (param_ <@ (date_of_numbers (2000) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -18731,7 +18889,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -18740,10 +18898,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3358; start_column=5; - end_line=3358; end_column=64; + start_line=3359; start_column=5; + end_line=3359; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -18751,7 +18909,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2000) (7) (1))) && (param_ <@ (date_of_numbers (2001) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -18884,7 +19042,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -18893,10 +19051,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3404; start_column=5; - end_line=3404; end_column=64; + start_line=3405; start_column=5; + end_line=3405; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -18904,7 +19062,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2001) (7) (1))) && (param_ <@ (date_of_numbers (2002) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> (match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19037,7 +19195,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (integer_of_string "5")))))))))))) *$ taux_francs_vers_euros_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19046,10 +19204,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3450; start_column=5; - end_line=3450; end_column=64; + start_line=3451; start_column=5; + end_line=3451; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19057,7 +19215,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2002) (1) (1))) && (param_ <@ (date_of_numbers (2002) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19186,7 +19344,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19195,10 +19353,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3495; start_column=5; - end_line=3495; end_column=64; + start_line=3496; start_column=5; + end_line=3496; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19206,7 +19364,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2002) (7) (1))) && (param_ <@ (date_of_numbers (2003) (7) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19335,7 +19493,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19344,10 +19502,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3540; start_column=5; - end_line=3540; end_column=64; + start_line=3541; start_column=5; + end_line=3541; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19355,7 +19513,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2003) (7) (1))) && (param_ <@ (date_of_numbers (2005) (9) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19484,7 +19642,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19493,10 +19651,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3585; start_column=5; - end_line=3585; end_column=64; + start_line=3586; start_column=5; + end_line=3586; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19504,7 +19662,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2005) (9) (1))) && (param_ <@ (date_of_numbers (2007) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19633,7 +19791,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19642,10 +19800,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3630; start_column=5; - end_line=3630; end_column=64; + start_line=3631; start_column=5; + end_line=3631; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19653,7 +19811,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2007) (1) (1))) && (param_ <@ (date_of_numbers (2008) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19782,7 +19940,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19791,10 +19949,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3675; start_column=5; - end_line=3675; end_column=64; + start_line=3676; start_column=5; + end_line=3676; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19802,7 +19960,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2008) (1) (1))) && (param_ <@ (date_of_numbers (2009) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -19931,7 +20089,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -19940,10 +20098,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3720; start_column=5; - end_line=3720; end_column=64; + start_line=3721; start_column=5; + end_line=3721; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -19951,7 +20109,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2009) (1) (1))) && (param_ <@ (date_of_numbers (2010) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20080,7 +20238,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20089,10 +20247,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3765; start_column=5; - end_line=3765; end_column=64; + start_line=3766; start_column=5; + end_line=3766; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20100,7 +20258,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2010) (1) (1))) && (param_ <@ (date_of_numbers (2011) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20229,7 +20387,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20238,10 +20396,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3810; start_column=5; - end_line=3810; end_column=64; + start_line=3811; start_column=5; + end_line=3811; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20249,7 +20407,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2011) (1) (1))) && (param_ <@ (date_of_numbers (2012) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20378,7 +20536,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20387,10 +20545,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3855; start_column=5; - end_line=3855; end_column=64; + start_line=3856; start_column=5; + end_line=3856; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20398,7 +20556,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2012) (1) (1))) && (param_ <@ (date_of_numbers (2013) (1) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20527,7 +20685,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20536,10 +20694,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3900; start_column=5; - end_line=3900; end_column=64; + start_line=3901; start_column=5; + end_line=3901; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20547,7 +20705,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (date_of_numbers (2020) (1) (1))) && ((param_ >=@ (date_of_numbers (2013) (1) (1))) && (param_ <@ (date_of_numbers (2014) (10) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20676,7 +20834,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20685,10 +20843,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3945; start_column=5; - end_line=3945; end_column=64; + start_line=3946; start_column=5; + end_line=3946; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20697,7 +20855,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((param_ >=@ (date_of_numbers (2014) (10) (1))) && (param_ <@ (date_of_numbers (2015) (10) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20826,7 +20984,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20835,10 +20993,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=3990; start_column=5; - end_line=3990; end_column=64; + start_line=3991; start_column=5; + end_line=3991; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20847,7 +21005,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((param_ >=@ (date_of_numbers (2015) (10) (1))) && (param_ <@ (date_of_numbers (2017) (10) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -20976,7 +21134,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -20985,10 +21143,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4035; start_column=5; - end_line=4035; end_column=64; + start_line=4036; start_column=5; + end_line=4036; end_column=64; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} @@ -20997,7 +21155,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ((param_ >=@ (date_of_numbers (2017) (10) (1))) && (param_ <@ (date_of_numbers (2019) (10) (1))))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -21126,7 +21284,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5"))))))))))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=853; start_column=10; @@ -21135,17 +21293,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4080; start_column=5; - end_line=4080; end_column=33; + start_line=4081; start_column=5; + end_line=4081; end_column=33; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} ((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) && (param_ >=@ (date_of_numbers (2019) (10) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> @@ -21274,7 +21432,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a -! (integer_of_string "5")))))))))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -21299,7 +21457,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=857; start_column=11; @@ -21307,7 +21465,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4888; start_column=6; end_line=4894; end_column=6; @@ -21354,9 +21512,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a true | TypeTravauxLogementR8425.PasDeTravaux _ -> false))))))) - (fun (_: _) -> + (fun (_: unit) -> mensualite_principale_ *$ coefficient_d842_12_)); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=857; start_column=11; @@ -21364,7 +21522,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4906; start_column=5; end_line=4907; end_column=59; @@ -21386,8 +21544,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> false | TypeTravauxLogementR8425.PasDeTravaux _ -> false)))) - (fun (_: _) -> montant_forfaitaire_d842_12_))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> montant_forfaitaire_d842_12_))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -21407,7 +21565,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4829; start_column=15; end_line=4829; end_column=37; @@ -21419,7 +21577,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (charges_mensuelles_pret_ +$ montant_forfaitaire_charges_) -$ param_)) with @@ -21449,7 +21607,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=854; start_column=10; @@ -21457,7 +21615,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=854; start_column=10; @@ -21465,7 +21623,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=854; start_column=10; @@ -21474,7 +21632,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=580; start_column=24; end_line=580; end_column=56; @@ -21486,7 +21644,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a && (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> if copropriete_ then (((log_end_call ["CalculAllocationLogementAccessionPropriété"; @@ -21522,16 +21680,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_plafond_mensualité_d842_6_base"; "input"] (embed_date) param_)))))))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4200; start_column=24; - end_line=4200; end_column=56; + start_line=4201; start_column=24; + end_line=4201; end_column=56; law_headings=["Article 37"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) - (fun (_: _) -> + (fun (_: unit) -> if copropriete_ then (((log_end_call ["CalculAllocationLogementAccessionPropriété"; @@ -21564,16 +21722,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "input"] (embed_date) param_)))))))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4124; start_column=14; - end_line=4124; end_column=46; + start_line=4125; start_column=14; + end_line=4125; end_column=46; law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} (date_courante_ >=@ (date_of_numbers (2020) (1) (1))))) - (fun (_: _) -> (log_end_call + (fun (_: unit) -> (log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"] ((log_variable_definition @@ -21611,7 +21770,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=833; start_column=10; @@ -21619,7 +21778,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4927; start_column=5; end_line=4927; end_column=28; @@ -21631,8 +21790,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} situation_r822_11_13_17_)) - (fun (_: _) -> ressources_menage_arrondies_base_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> ressources_menage_arrondies_base_))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4917; start_column=14; end_line=4917; end_column=41; law_headings=["Article D842-12"; @@ -21643,7 +21802,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (ressources_menage_arrondies_base_ <=$ seuil_minimal_ressources_menage_) then @@ -21670,7 +21829,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=851; start_column=11; @@ -21678,7 +21837,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4778; start_column=5; end_line=4778; end_column=44; @@ -21690,7 +21849,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} local_habite_premiere_fois_beneficiaire_)) - (fun (_: _) -> + (fun (_: unit) -> (let plafond_signature_ : _ = ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_avec_copropriété"] @@ -21723,7 +21882,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a in ( if (plafond_signature_ <$ plafond_entree_) then plafond_entree_ else plafond_signature_)))))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4760; start_column=14; end_line=4760; end_column=39; law_headings=["Article D842-9"; @@ -21734,7 +21893,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> (log_end_call + (fun (_: unit) -> (log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_avec_copropriété"] ((log_variable_definition @@ -21761,12 +21920,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_équivalence_loyer_minimale.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=872; start_column=3; end_line=872; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4634; start_column=14; end_line=4634; end_column=75; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4634; start_column=14; end_line=4634; end_column=75; law_headings=["Article D842-6"; @@ -21776,27 +21940,35 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_arrondies_seuil_)))) + true)) (fun (_: unit) -> ressources_menage_arrondies_seuil_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=587; start_column=10; end_line=587; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4634; start_column=14; end_line=4634; end_column=75; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_condition_2_du_832_25_: bool = try ((log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_équivalence_loyer_minimale.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=872; start_column=3; end_line=872; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4633; start_column=14; end_line=4633; end_column=69; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4633; start_column=14; end_line=4633; end_column=69; law_headings=["Article D842-6"; @@ -21806,27 +21978,35 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> true)))) + true)) (fun (_: unit) -> true)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=588; start_column=10; end_line=588; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4633; start_column=14; end_line=4633; end_column=69; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let calcul_equivalence_loyer_minimale_dot_n_nombre_parts_d832_25_: decimal = try ((log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_équivalence_loyer_minimale.n_nombre_parts_d832_25"] (embed_decimal) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=872; start_column=3; end_line=872; end_column=36; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4636; start_column=14; end_line=4636; end_column=70; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4636; start_column=14; end_line=4636; end_column=70; law_headings=["Article D842-6"; @@ -21837,15 +22017,18 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_nombre_parts_dot_n_nombre_parts_d832_11_)))) + (fun (_: unit) -> calcul_nombre_parts_dot_n_nombre_parts_d832_11_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=589; start_column=10; end_line=589; end_column=32; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4636; start_column=14; end_line=4636; end_column=70; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculEquivalenceLoyerMinimaleOut.t = (log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_équivalence_loyer_minimale"; @@ -21867,24 +22050,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_type_logement_foyer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=890; start_column=14; end_line=890; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=890; start_column=14; end_line=890; end_column=59; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> TypeLogementFoyer.Autre ())))) + (fun (_: unit) -> TypeLogementFoyer.Autre ())))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=10; end_line=606; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=890; start_column=14; end_line=890; end_column=59; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_date_conventionnement_: date = try ((log_variable_definition @@ -21892,24 +22074,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.date_conventionnement"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=892; start_column=14; end_line=892; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=892; start_column=14; end_line=892; end_column=61; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_of_numbers (1970) (1) (1))))) + (fun (_: unit) -> date_of_numbers (1970) (1) (1))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=10; end_line=607; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=892; start_column=14; end_line=892; end_column=61; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_ressources_menage_arrondies_: money = try ((log_variable_definition @@ -21918,24 +22099,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=896; start_column=14; end_line=896; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=896; start_column=14; end_line=896; end_column=67; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_arrondies_seuil_)))) + (fun (_: unit) -> ressources_menage_arrondies_seuil_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=608; start_column=10; end_line=608; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=896; start_column=14; end_line=896; end_column=67; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition @@ -21944,24 +22124,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=898; start_column=14; end_line=898; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=898; start_column=14; end_line=898; end_column=65; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> nombre_personnes_a_charge_)))) + (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=609; start_column=10; end_line=609; end_column=35; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=898; start_column=14; end_line=898; end_column=65; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition @@ -21970,24 +22149,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a (embed_situation_familiale_calcul_a_p_l) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=900; start_column=14; end_line=900; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=900; start_column=14; end_line=900; end_column=70; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> situation_familiale_calcul_apl_)))) + (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=610; start_column=10; end_line=610; end_column=40; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=900; start_column=14; end_line=900; end_column=70; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition @@ -21995,24 +22173,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=902; start_column=14; end_line=902; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=902; start_column=14; end_line=902; end_column=44; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> zone_)))) + (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=611; start_column=10; end_line=611; end_column=14; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=902; start_column=14; end_line=902; end_column=44; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_date_courante_: date = try ((log_variable_definition @@ -22020,24 +22197,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=904; start_column=14; end_line=904; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=904; start_column=14; end_line=904; end_column=53; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=612; start_column=10; end_line=612; end_column=23; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=904; start_column=14; end_line=904; end_column=53; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_redevance_: money = try ((log_variable_definition @@ -22045,36 +22221,40 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_apl_logement_foyer.redevance"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; + start_line=894; start_column=14; end_line=894; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=894; start_column=14; end_line=894; end_column=49; law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> money_of_cents_string "0")))) + (fun (_: unit) -> money_of_cents_string "0")))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=613; start_column=10; end_line=613; end_column=19; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; + start_line=894; start_column=14; end_line=894; end_column=49; + law_headings=["Secteur accession à la propriété"; + "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]})) in let calcul_apl_logement_foyer_dot_condition_2_du_832_25_: unit -> bool = fun (_: unit) -> (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_apl_logement_foyer.condition_2_du_832_25"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4593; start_column=14; end_line=4593; end_column=61; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4593; start_column=14; end_line=4593; end_column=61; law_headings=["Article D842-6"; @@ -22084,18 +22264,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> true))) in + true)) (fun (_: unit) -> true))) in let calcul_apl_logement_foyer_dot_n_nombre_parts_d832_25_: unit -> decimal = fun (_: unit) -> (log_variable_definition ["CalculAllocationLogementAccessionPropriété"; "calcul_apl_logement_foyer.n_nombre_parts_d832_25"] (embed_decimal) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=868; start_column=3; end_line=868; end_column=28; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4600; start_column=14; end_line=4600; end_column=62; + law_headings=["Article D842-6"; + "Section 2 : Accession à la propriété"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4600; start_column=14; end_line=4600; end_column=62; law_headings=["Article D842-6"; @@ -22106,7 +22291,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_nombre_parts_dot_n_nombre_parts_d832_11_))) in + (fun (_: unit) -> calcul_nombre_parts_dot_n_nombre_parts_d832_11_))) in let result_: CalculAidePersonnaliseeLogementFoyerOut.t = (log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_apl_logement_foyer"; "CalculAidePersonnaliséeLogementFoyer"] @@ -22154,7 +22339,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=856; start_column=11; @@ -22162,7 +22347,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4863; start_column=7; end_line=4866; end_column=45; @@ -22204,10 +22389,10 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a false))) && (date_signature_pret_ >=@ (date_of_numbers (1999) (7) (1)))))) - (fun (_: _) -> + (fun (_: unit) -> ressources_menage_arrondies_seuil_ *$ coefficient_d842_11_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4851; start_column=14; end_line=4851; end_column=50; law_headings=["Article D842-11"; @@ -22217,7 +22402,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> montant_forfaitaire_d842_11_)) + true)) (fun (_: unit) -> montant_forfaitaire_d842_11_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22235,7 +22420,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4614; start_column=14; end_line=4614; end_column=33; law_headings=["Article D842-6"; @@ -22246,7 +22431,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (mensualite_principale_ >$ plafond_mensualite_d842_6_) then plafond_mensualite_d842_6_ else mensualite_principale_)) with @@ -22266,7 +22451,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4629; start_column=14; end_line=4629; end_column=33; law_headings=["Article D842-6"; @@ -22277,7 +22462,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> calcul_equivalence_loyer_minimale_dot_montant_)) + (fun (_: unit) -> calcul_equivalence_loyer_minimale_dot_montant_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22295,7 +22480,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4603; start_column=14; end_line=4603; end_column=41; law_headings=["Article D842-6"; @@ -22306,7 +22491,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> calcul_apl_logement_foyer_dot_coefficient_prise_en_charge_d832_25_seuil_)) with EmptyError -> (raise (NoValueProvided @@ -22327,7 +22512,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4840; start_column=14; end_line=4840; end_column=47; @@ -22339,7 +22524,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let depense_nette_minimale_ : _ = ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "dépense_nette_minimale"] ((log_variable_definition @@ -22383,7 +22568,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4574; start_column=14; end_line=4574; end_column=33; law_headings=["Article D842-6"; @@ -22394,7 +22579,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> ((mensualite_eligible_ +$ montant_forfaitaire_charges_) -$ mensualite_minimale_) *$ coefficient_prise_en_charge_)) with @@ -22416,7 +22601,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4662; start_column=14; end_line=4662; end_column=36; @@ -22428,7 +22613,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "traitement_aide_finale_minoration_forfaitaire"] @@ -22489,7 +22674,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4676; start_column=14; end_line=4676; end_column=36; @@ -22501,7 +22686,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "traitement_aide_finale_dépense_nette_minimale"] @@ -22564,7 +22749,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Secteur accession à la propriété"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4696; start_column=14; end_line=4696; end_column=36; @@ -22576,7 +22761,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_ : _ = ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "traitement_aide_finale_contributions_sociales_arrondi"] @@ -22632,7 +22817,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1405; start_column=14; end_line=1405; end_column=34; law_headings=["Article D823-9"; @@ -22643,7 +22828,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (CategorieCalculAPL.Location ()) @@ -22674,7 +22859,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2166; start_column=14; end_line=2166; end_column=31; law_headings=["Article D823-17"; @@ -22686,7 +22871,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (money_round ((ressources_menage_sans_arrondi_ *$ (decimal_of_string "0.01")) +$ (money_of_cents_string @@ -22710,14 +22895,14 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=78; start_column=14; end_line=78; end_column=44; law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_ with | SituationFamiliale.Celibataire _ -> @@ -22745,13 +22930,17 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ["CalculAidePersonnaliséeLogement"; "accession_propriété.mensualité_principale"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1538; start_column=14; end_line=1538; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1538; start_column=14; end_line=1538; end_column=55; law_headings=["Article D823-9"; @@ -22762,7 +22951,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (money_of_cents_string "0") @@ -22775,24 +22964,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.mensualite_principale))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=664; start_column=10; end_line=664; end_column=31; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1538; start_column=14; end_line=1538; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_ressources_menage_arrondies_: money = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1452; start_column=14; end_line=1452; end_column=61; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1452; start_column=14; end_line=1452; end_column=61; law_headings=["Article D823-9"; @@ -22802,27 +22998,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_avec_arrondi_)))) + true)) (fun (_: unit) -> ressources_menage_avec_arrondi_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=665; start_column=10; end_line=665; end_column=37; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1452; start_column=14; end_line=1452; end_column=61; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1458; start_column=14; end_line=1458; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1458; start_column=14; end_line=1458; end_column=59; law_headings=["Article D823-9"; @@ -22832,28 +23035,35 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=666; start_column=10; end_line=666; end_column=35; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1458; start_column=14; end_line=1458; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1470; start_column=14; end_line=1470; end_column=64; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1470; start_column=14; end_line=1470; end_column=64; law_headings=["Article D823-9"; @@ -22863,28 +23073,35 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=667; start_column=10; end_line=667; end_column=40; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1470; start_column=14; end_line=1470; end_column=64; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_type_travaux_logement_: TypeTravauxLogementD83215.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.type_travaux_logement"] (embed_type_travaux_logement_d832_15) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1547; start_column=14; end_line=1547; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1547; start_column=14; end_line=1547; end_column=55; law_headings=["Article D823-9"; @@ -22895,7 +23112,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> @@ -22910,24 +23127,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.type_travaux_logement_d832_15))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=668; start_column=10; end_line=668; end_column=31; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1547; start_column=14; end_line=1547; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_date_signature_pret_: date = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.date_signature_prêt"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1558; start_column=14; end_line=1558; end_column=53; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1558; start_column=14; end_line=1558; end_column=53; law_headings=["Article D823-9"; @@ -22938,7 +23162,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (date_of_numbers (2010) (1) (1)) @@ -22952,25 +23176,32 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ((proprietaire_.Proprietaire.pret).Pret.date_signature))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=669; start_column=10; end_line=669; end_column=29; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1558; start_column=14; end_line=1558; end_column=53; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_local_habite_premiere_fois_beneficiaire_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.local_habité_première_fois_bénéficiaire"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1567; start_column=14; end_line=1567; end_column=73; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1567; start_column=14; end_line=1567; end_column=73; law_headings=["Article D823-9"; @@ -22981,7 +23212,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> false @@ -22993,24 +23224,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.local_habite_premiere_fois_beneficiaire))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=670; start_column=10; end_line=670; end_column=49; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1567; start_column=14; end_line=1567; end_column=73; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_date_entree_logement_: date = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.date_entrée_logement"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1576; start_column=14; end_line=1576; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1576; start_column=14; end_line=1576; end_column=54; law_headings=["Article D823-9"; @@ -23021,7 +23259,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (date_of_numbers (2010) (1) (1)) @@ -23035,24 +23273,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.date_entree_logement))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=671; start_column=10; end_line=671; end_column=30; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1576; start_column=14; end_line=1576; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_copropriete_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.copropriété"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1585; start_column=14; end_line=1585; end_column=45; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1585; start_column=14; end_line=1585; end_column=45; law_headings=["Article D823-9"; @@ -23063,7 +23308,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> false @@ -23075,24 +23320,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.copropriete))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=672; start_column=10; end_line=672; end_column=21; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1585; start_column=14; end_line=1585; end_column=45; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_situation_r822_11_13_17_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.situation_r822_11_13_17"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1594; start_column=14; end_line=1594; end_column=57; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1594; start_column=14; end_line=1594; end_column=57; law_headings=["Article D823-9"; @@ -23103,7 +23355,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> false @@ -23115,24 +23367,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.situation_r822_11_13_17))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=673; start_column=10; end_line=673; end_column=33; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1594; start_column=14; end_line=1594; end_column=57; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1462; start_column=14; end_line=1462; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1462; start_column=14; end_line=1462; end_column=38; law_headings=["Article D823-9"; @@ -23142,27 +23401,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> zone_)))) + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=674; start_column=10; end_line=674; end_column=14; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1462; start_column=14; end_line=1462; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_type_pret_: TypePret.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.type_prêt"] (embed_type_pret) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1603; start_column=14; end_line=1603; end_column=43; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1603; start_column=14; end_line=1603; end_column=43; law_headings=["Article D823-9"; @@ -23173,7 +23439,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (TypePret.D331_32 ()) @@ -23185,24 +23451,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ((proprietaire_.Proprietaire.pret).Pret.type_pret))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=675; start_column=10; end_line=675; end_column=19; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1603; start_column=14; end_line=1603; end_column=43; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_anciennete_logement_: NeufOuAncien.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.ancienneté_logement"] (embed_neuf_ou_ancien) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1612; start_column=14; end_line=1612; end_column=53; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1612; start_column=14; end_line=1612; end_column=53; law_headings=["Article D823-9"; @@ -23213,7 +23486,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (NeufOuAncien.Neuf ()) @@ -23226,24 +23499,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (proprietaire_.Proprietaire.anciennete_logement))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=676; start_column=10; end_line=676; end_column=29; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1612; start_column=14; end_line=1612; end_column=53; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_date_courante_: date = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "accession_propriété.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=741; start_column=3; end_line=741; end_column=22; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1465; start_column=14; end_line=1465; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1465; start_column=14; end_line=1465; end_column=47; law_headings=["Article D823-9"; @@ -23253,15 +23533,18 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_courante_)))) + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=677; start_column=10; end_line=677; end_column=23; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1465; start_column=14; end_line=1465; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAidePersonnaliseeLogementAccessionProprieteOut.t = (log_end_call ["CalculAidePersonnaliséeLogement"; "accession_propriété"; "CalculAidePersonnaliséeLogementAccessionPropriété"] @@ -23308,13 +23591,17 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ["CalculAidePersonnaliséeLogement"; "logement_foyer.type_logement_foyer"] (embed_type_logement_foyer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1629; start_column=14; end_line=1629; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1629; start_column=14; end_line=1629; end_column=48; law_headings=["Article D823-9"; @@ -23325,7 +23612,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (TypeLogementFoyer.Autre ()) @@ -23338,24 +23625,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (TypeLogementFoyer.Autre ()))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=606; start_column=10; end_line=606; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1629; start_column=14; end_line=1629; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_date_conventionnement_: date = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.date_conventionnement"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1638; start_column=14; end_line=1638; end_column=50; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1638; start_column=14; end_line=1638; end_column=50; law_headings=["Article D823-9"; @@ -23366,7 +23660,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (date_of_numbers (1970) (1) (1)) @@ -23380,24 +23674,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C (date_of_numbers (1970) (1) (1)))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=607; start_column=10; end_line=607; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1638; start_column=14; end_line=1638; end_column=50; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_ressources_menage_arrondies_: money = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1450; start_column=14; end_line=1450; end_column=56; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1450; start_column=14; end_line=1450; end_column=56; law_headings=["Article D823-9"; @@ -23407,27 +23708,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_avec_arrondi_)))) + true)) (fun (_: unit) -> ressources_menage_avec_arrondi_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=608; start_column=10; end_line=608; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1450; start_column=14; end_line=1450; end_column=56; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1456; start_column=14; end_line=1456; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1456; start_column=14; end_line=1456; end_column=54; law_headings=["Article D823-9"; @@ -23437,28 +23745,35 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=609; start_column=10; end_line=609; end_column=35; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1456; start_column=14; end_line=1456; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1468; start_column=14; end_line=1468; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1468; start_column=14; end_line=1468; end_column=59; law_headings=["Article D823-9"; @@ -23468,27 +23783,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=610; start_column=10; end_line=610; end_column=40; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1468; start_column=14; end_line=1468; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1461; start_column=14; end_line=1461; end_column=33; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1461; start_column=14; end_line=1461; end_column=33; law_headings=["Article D823-9"; @@ -23498,27 +23820,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> zone_)))) + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=611; start_column=10; end_line=611; end_column=14; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1461; start_column=14; end_line=1461; end_column=33; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_date_courante_: date = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1464; start_column=14; end_line=1464; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1464; start_column=14; end_line=1464; end_column=42; law_headings=["Article D823-9"; @@ -23528,27 +23857,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_courante_)))) + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=612; start_column=10; end_line=612; end_column=23; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1464; start_column=14; end_line=1464; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_redevance_: money = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "logement_foyer.redevance"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=740; start_column=3; end_line=740; end_column=17; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1622; start_column=14; end_line=1622; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1622; start_column=14; end_line=1622; end_column=38; law_headings=["Article D823-9"; @@ -23559,7 +23895,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (money_of_cents_string "0") @@ -23572,12 +23908,15 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "0"))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=613; start_column=10; end_line=613; end_column=19; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1622; start_column=14; end_line=1622; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_condition_2_du_832_25_: unit -> bool = fun (_: unit) -> (log_variable_definition @@ -23635,13 +23974,17 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C ["CalculAidePersonnaliséeLogement"; "locatif.loyer_principal_base"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1473; start_column=14; end_line=1473; end_column=37; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1473; start_column=14; end_line=1473; end_column=37; law_headings=["Article D823-9"; @@ -23652,7 +23995,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -23667,24 +24010,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "0"))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=529; start_column=10; end_line=529; end_column=25; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1473; start_column=14; end_line=1473; end_column=37; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_ressources_menage_arrondies_: money = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1449; start_column=14; end_line=1449; end_column=49; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1449; start_column=14; end_line=1449; end_column=49; law_headings=["Article D823-9"; @@ -23694,28 +24044,35 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_avec_arrondi_)))) + true)) (fun (_: unit) -> ressources_menage_avec_arrondi_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=532; start_column=10; end_line=532; end_column=37; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1449; start_column=14; end_line=1449; end_column=49; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.bénéficiaire_aide_adulte_ou_enfant_handicapés"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1480; start_column=14; end_line=1480; end_column=67; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1480; start_column=14; end_line=1480; end_column=67; law_headings=["Article D823-9"; @@ -23726,7 +24083,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -23739,24 +24096,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=533; start_column=10; end_line=533; end_column=55; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1480; start_column=14; end_line=1480; end_column=67; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_date_courante_: date = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1463; start_column=14; end_line=1463; end_column=35; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1463; start_column=14; end_line=1463; end_column=35; law_headings=["Article D823-9"; @@ -23766,27 +24130,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_courante_)))) + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=535; start_column=10; end_line=535; end_column=23; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1463; start_column=14; end_line=1463; end_column=35; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1454; start_column=14; end_line=1454; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1454; start_column=14; end_line=1454; end_column=47; law_headings=["Article D823-9"; @@ -23796,28 +24167,35 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=536; start_column=10; end_line=536; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1454; start_column=14; end_line=1454; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1466; start_column=14; end_line=1466; end_column=52; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1466; start_column=14; end_line=1466; end_column=52; law_headings=["Article D823-9"; @@ -23827,27 +24205,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=537; start_column=10; end_line=537; end_column=40; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1466; start_column=14; end_line=1466; end_column=52; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1460; start_column=14; end_line=1460; end_column=26; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1460; start_column=14; end_line=1460; end_column=26; law_headings=["Article D823-9"; @@ -23857,27 +24242,34 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> zone_)))) + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=538; start_column=10; end_line=538; end_column=14; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1460; start_column=14; end_line=1460; end_column=26; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_logement_est_chambre_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.logement_est_chambre"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1489; start_column=14; end_line=1489; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1489; start_column=14; end_line=1489; end_column=42; law_headings=["Article D823-9"; @@ -23888,7 +24280,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -23901,25 +24293,32 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=539; start_column=10; end_line=539; end_column=30; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1489; start_column=14; end_line=1489; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1504; start_column=5; end_line=1504; end_column=69; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1504; start_column=5; end_line=1504; end_column=69; law_headings=["Article D823-9"; @@ -23930,7 +24329,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -23943,24 +24342,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=540; start_column=10; end_line=540; end_column=66; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1504; start_column=5; end_line=1504; end_column=69; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.type_aide"] (embed_type_aides_personnelle_logement) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1514; start_column=14; end_line=1514; end_column=31; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1514; start_column=14; end_line=1514; end_column=31; law_headings=["Article D823-9"; @@ -23970,26 +24376,33 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> type_aide_)))) + true)) (fun (_: unit) -> type_aide_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=542; start_column=10; end_line=542; end_column=19; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1514; start_column=14; end_line=1514; end_column=31; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_colocation_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.colocation"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1496; start_column=14; end_line=1496; end_column=32; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1496; start_column=14; end_line=1496; end_column=32; law_headings=["Article D823-9"; @@ -24000,7 +24413,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -24013,24 +24426,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=543; start_column=10; end_line=543; end_column=20; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1496; start_column=14; end_line=1496; end_column=32; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_reduction_loyer_solidarite_: money = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.réduction_loyer_solidarité"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1515; start_column=14; end_line=1515; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1515; start_column=14; end_line=1515; end_column=48; law_headings=["Article D823-9"; @@ -24041,7 +24461,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -24070,24 +24490,31 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "0"))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=544; start_column=10; end_line=544; end_column=36; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1515; start_column=14; end_line=1515; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_logement_meuble_d842_2_: bool = try ((log_variable_definition ["CalculAidePersonnaliséeLogement"; "locatif.logement_meublé_d842_2"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=739; start_column=3; end_line=739; end_column=10; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1530; start_column=14; end_line=1530; end_column=44; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1530; start_column=14; end_line=1530; end_column=44; law_headings=["Article D823-9"; @@ -24098,7 +24525,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -24111,12 +24538,15 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=545; start_column=10; end_line=545; end_column=32; - law_headings=["Secteur locatif"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1530; start_column=14; end_line=1530; end_column=44; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAidePersonnaliseeLogementLocatifOut.t = (log_end_call ["CalculAidePersonnaliséeLogement"; "locatif"; "CalculAidePersonnaliséeLogementLocatif"] ((log_begin_call @@ -24168,7 +24598,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1418; start_column=14; end_line=1418; end_column=36; @@ -24180,7 +24610,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match categorie_calcul_apl_ with | CategorieCalculAPL.Location _ -> ((log_end_call @@ -24252,7 +24682,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Calcul du montant de l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1413; start_column=14; end_line=1413; end_column=33; law_headings=["Article D823-9"; @@ -24263,7 +24693,7 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match categorie_calcul_apl_ with | CategorieCalculAPL.Location _ -> @@ -24302,7 +24732,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2275; start_column=14; end_line=2275; end_column=47; law_headings=["Article D823-20"; @@ -24312,7 +24742,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> duration_of_numbers (0) (6) (0))) + true)) (fun (_: unit) -> duration_of_numbers (0) (6) (0))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24330,7 +24760,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=454; start_column=11; @@ -24338,7 +24768,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2252; start_column=5; end_line=2257; end_column=77; @@ -24361,14 +24791,14 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli acc_) (integer_of_string "0") (menage_.Menage.personnes_a_charge)) +! (informations_.InformationsPrimeDeDemenagement.nombre_enfants_a_naitre_apres_troisieme_mois_grossesse)) - >=! (integer_of_string "3")))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + >=! (integer_of_string "3")))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=454; start_column=11; end_line=454; end_column=32; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24382,22 +24812,24 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "base_mensuelle_allocations_familiales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=461; start_column=3; end_line=461; end_column=40; + start_line=471; start_column=14; end_line=471; end_column=65; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=471; start_column=14; end_line=471; end_column=65; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; - start_line=5; start_column=10; end_line=5; end_column=23; - law_headings=["Montant de la base mensuelle des allocations familiales"]})) in + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=471; start_column=14; end_line=471; end_column=65; + law_headings=["Éligibilité à la prime de déménagement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})) in let result_: BaseMensuelleAllocationsFamilialesOut.t = (log_end_call ["ÉligibilitéPrimeDeDéménagement"; "base_mensuelle_allocations_familiales"; @@ -24415,22 +24847,22 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=460; start_column=3; end_line=460; end_column=18; + start_line=467; start_column=14; end_line=467; end_column=36; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=467; start_column=14; end_line=467; end_column=36; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_)))) + (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=287; start_column=10; end_line=287; end_column=16; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=467; start_column=14; end_line=467; end_column=36; + law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_apl_dot_demandeur_: Demandeur.t = @@ -24439,22 +24871,22 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=460; start_column=3; end_line=460; end_column=18; + start_line=468; start_column=14; end_line=468; end_column=39; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=468; start_column=14; end_line=468; end_column=39; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=288; start_column=10; end_line=288; end_column=19; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=468; start_column=14; end_line=468; end_column=39; + law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_apl_dot_date_courante_: date = @@ -24463,22 +24895,22 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "éligibilité_apl.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=460; start_column=3; end_line=460; end_column=18; + start_line=469; start_column=14; end_line=469; end_column=43; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=469; start_column=14; end_line=469; end_column=43; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=289; start_column=17; end_line=289; end_column=30; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=469; start_column=14; end_line=469; end_column=43; + law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_apl_dot_condition_logement_residence_principale_: unit -> @@ -24524,7 +24956,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=455; start_column=11; @@ -24532,7 +24964,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2261; start_column=6; end_line=2271; end_column=77; @@ -24560,14 +24992,14 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli | DateDeNaissanceOuMoisDeGrossesse.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse _ -> false | DateDeNaissanceOuMoisDeGrossesse.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse _ -> - true)))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + true)))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=455; start_column=11; end_line=455; end_column=41; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24584,14 +25016,14 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; - start_line=4421; start_column=14; end_line=4421; end_column=29; + start_line=4422; start_column=14; end_line=4422; end_column=29; law_headings=["Article 45"; "Chapitre VIII : Prime de déménagement"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (base_mensuelle_allocations_familiales_dot_montant_ *$ (decimal_of_string "2.4")) +$ ( if @@ -24639,7 +25071,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=456; start_column=11; @@ -24647,7 +25079,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=563; start_column=5; end_line=566; end_column=43; @@ -24663,14 +25095,14 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli ((eligibilite_apl_dot_date_courante_ -@ date_emmenagement_) <=^ delai_apres_emmenagement_l823_8_2_)))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=456; start_column=11; end_line=456; end_column=31; law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24688,7 +25120,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli law_headings=["Éligibilité à la prime de déménagement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=2301; start_column=14; end_line=2301; end_column=40; law_headings=["Article D823-22"; @@ -24699,7 +25131,7 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (depenses_justifiees_reellement_engagees_ <=$ plafond_d823_22_) then depenses_justifiees_reellement_engagees_ else @@ -24730,7 +25162,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=365; start_column=11; @@ -24738,7 +25170,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=365; start_column=11; @@ -24746,7 +25178,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=365; start_column=11; @@ -24755,7 +25187,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3213; start_column=5; end_line=3216; end_column=46; @@ -24790,8 +25222,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | TypePret.D331_76_1 _ -> true | TypePret.Autre _ -> false))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3178; start_column=5; end_line=3180; end_column=47; @@ -24821,16 +25253,17 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | TypePret.D331_59_8 _ -> false | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) - (fun (_: _) -> true))|]) (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=365; start_column=11; end_line=365; end_column=41; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24857,14 +25290,14 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=366; start_column=11; end_line=366; end_column=41; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24889,7 +25322,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=364; start_column=11; @@ -24897,7 +25330,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=364; start_column=11; @@ -24905,7 +25338,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=364; start_column=11; @@ -24914,7 +25347,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=740; start_column=5; end_line=753; end_column=30; @@ -24966,8 +25399,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | NeufOuAncien.Ancien _ -> true) && (propriete_.Proprietaire.logement_situe_commune_desequilibre_l831_2))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=721; start_column=5; end_line=726; end_column=30; @@ -24990,8 +25423,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | ModeOccupation.LocationAccession propriete_ -> (((propriete_.Proprietaire.pret).Pret.date_signature) >=@ (date_of_numbers (2017) (12) (31)))))) - (fun (_: _) -> false))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=716; start_column=31; end_line=716; end_column=54; @@ -25001,14 +25434,14 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + true)) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=364; start_column=11; end_line=364; end_column=34; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -25022,22 +25455,22 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "éligibilité_commune.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=368; start_column=3; end_line=368; end_column=22; + start_line=377; start_column=14; end_line=377; end_column=40; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=377; start_column=14; end_line=377; end_column=40; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_)))) + (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=287; start_column=10; end_line=287; end_column=16; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=377; start_column=14; end_line=377; end_column=40; + law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_commune_dot_demandeur_: Demandeur.t = @@ -25046,22 +25479,22 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "éligibilité_commune.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=368; start_column=3; end_line=368; end_column=22; + start_line=378; start_column=14; end_line=378; end_column=43; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=378; start_column=14; end_line=378; end_column=43; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=288; start_column=10; end_line=288; end_column=19; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=378; start_column=14; end_line=378; end_column=43; + law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_commune_dot_date_courante_: date = @@ -25070,22 +25503,22 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "éligibilité_commune.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=368; start_column=3; end_line=368; end_column=22; + start_line=379; start_column=14; end_line=379; end_column=47; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=379; start_column=14; end_line=379; end_column=47; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=289; start_column=17; end_line=289; end_column=30; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=379; start_column=14; end_line=379; end_column=47; + law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_commune_dot_condition_logement_residence_principale_: @@ -25130,7 +25563,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; start_column=11; @@ -25138,7 +25571,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; start_column=11; @@ -25146,7 +25579,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; start_column=11; @@ -25154,7 +25587,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; start_column=11; @@ -25162,7 +25595,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; @@ -25171,7 +25604,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; @@ -25182,7 +25615,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3885; @@ -25210,8 +25643,9 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))|]) - (fun (_: _) -> + (fun (_: unit) -> + true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=701; @@ -25253,8 +25687,9 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "input"] (embed_pret) (propriete_.Proprietaire.pret))))))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> + (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=684; start_column=5; end_line=687; end_column=30; @@ -25277,8 +25712,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=641; start_column=5; end_line=650; end_column=30; @@ -25307,8 +25742,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> - false))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + false))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=620; start_column=5; end_line=623; end_column=30; @@ -25342,15 +25777,15 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (propriete_.Proprietaire.pret)))))))) | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))|]) (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=363; start_column=11; end_line=363; end_column=38; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -25369,13 +25804,13 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=383; start_column=14; end_line=383; end_column=63; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_commune_dot_coefficents_enfants_garde_alternee_pris_en_compte_)) with EmptyError -> (raise (NoValueProvided @@ -25394,13 +25829,13 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=381; start_column=14; end_line=381; end_column=56; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_commune_dot_nombre_personnes_a_charge_prises_en_compte_)) with EmptyError -> (raise (NoValueProvided @@ -25419,7 +25854,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=370; start_column=10; @@ -25427,7 +25862,7 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=591; start_column=5; end_line=593; end_column=36; @@ -25439,14 +25874,14 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge (condition_logement_bailleur_ && (condition_logement_pret_ && eligibilite_commune_dot_eligibilite_)))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=370; start_column=10; end_line=370; end_column=21; law_headings=["Éligibilité à l'aide personnalisée au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -25475,7 +25910,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4363; start_column=14; end_line=4363; end_column=28; law_headings=["Article D841-1"; @@ -25484,7 +25919,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> duration_of_numbers (5) (0) (0))) + true)) (fun (_: unit) -> duration_of_numbers (5) (0) (0))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -25498,22 +25933,24 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "prestations_familiales.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=406; start_column=3; end_line=406; end_column=25; + start_line=420; start_column=14; end_line=420; end_column=50; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=420; start_column=14; end_line=420; end_column=50; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; - start_line=45; start_column=10; end_line=45; end_column=23; - law_headings=["Prologue : prestations familiales"]})) in + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=420; start_column=14; end_line=420; end_column=50; + law_headings=["Éligibilité aux allocations de logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})) in let prestations_familiales_dot_prestation_courante_: ElementPrestationsFamiliales.t = try ((log_variable_definition ["ÉligibilitéAllocationLogement"; @@ -25521,44 +25958,49 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (embed_element_prestations_familiales) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=406; start_column=3; end_line=406; end_column=25; + start_line=421; start_column=14; end_line=421; end_column=56; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=421; start_column=14; end_line=421; end_column=56; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ElementPrestationsFamiliales.AllocationsFamiliales ())))) + (fun (_: unit) -> + ElementPrestationsFamiliales.AllocationsFamiliales ())))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; - start_line=46; start_column=10; end_line=46; end_column=29; - law_headings=["Prologue : prestations familiales"]})) in + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=421; start_column=14; end_line=421; end_column=56; + law_headings=["Éligibilité aux allocations de logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})) in let prestations_familiales_dot_residence_: Collectivite.t = try ((log_variable_definition ["ÉligibilitéAllocationLogement"; "prestations_familiales.résidence"] (embed_collectivite) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=406; start_column=3; end_line=406; end_column=25; + start_line=425; start_column=14; end_line=425; end_column=46; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=425; start_column=14; end_line=425; end_column=46; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> Collectivite.Metropole ())))) + (fun (_: unit) -> Collectivite.Metropole ())))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; - start_line=47; start_column=10; end_line=47; end_column=19; - law_headings=["Prologue : prestations familiales"]})) in + {filename = "examples/aides_logement/prologue.catala_fr"; + start_line=425; start_column=14; end_line=425; end_column=46; + law_headings=["Éligibilité aux allocations de logement"; + "Déclarations des champs d'application"; + "Prologue : aides au logement"]})) in let result_: EligibilitePrestationsFamilialesOut.t = (log_end_call ["ÉligibilitéAllocationLogement"; "prestations_familiales"; "ÉligibilitéPrestationsFamiliales"] ((log_begin_call @@ -25587,7 +26029,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=401; start_column=11; @@ -25595,7 +26037,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=401; start_column=11; @@ -25603,7 +26045,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=401; start_column=11; @@ -25611,7 +26053,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=401; start_column=11; @@ -25619,7 +26061,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=401; @@ -25629,7 +26071,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4556; @@ -25672,8 +26114,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> + (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4539; start_column=5; @@ -25715,8 +26158,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4522; start_column=5; end_line=4529; end_column=28; @@ -25766,10 +26209,10 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> - false))) (fun (_: _) -> true))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + false))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4492; start_column=5; end_line=4494; end_column=28; @@ -25789,14 +26232,14 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | ModeOccupation.SousLocataire _ -> true | ModeOccupation.LocationAccession _ -> true))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=401; start_column=11; end_line=401; end_column=40; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -25810,22 +26253,22 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=407; start_column=3; end_line=407; end_column=22; + start_line=427; start_column=14; end_line=427; end_column=40; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=427; start_column=14; end_line=427; end_column=40; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_)))) + (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=287; start_column=10; end_line=287; end_column=16; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=427; start_column=14; end_line=427; end_column=40; + law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_commune_dot_demandeur_: Demandeur.t = @@ -25834,22 +26277,22 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=407; start_column=3; end_line=407; end_column=22; + start_line=428; start_column=14; end_line=428; end_column=43; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=428; start_column=14; end_line=428; end_column=43; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=288; start_column=10; end_line=288; end_column=19; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=428; start_column=14; end_line=428; end_column=43; + law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_commune_dot_date_courante_: date = @@ -25858,22 +26301,22 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "éligibilité_commune.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=407; start_column=3; end_line=407; end_column=22; + start_line=429; start_column=14; end_line=429; end_column=47; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=429; start_column=14; end_line=429; end_column=47; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=289; start_column=17; end_line=289; end_column=30; - law_headings=["Éligibilité aux aides personnelles au logement"; + start_line=429; start_column=14; end_line=429; end_column=47; + law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]})) in let eligibilite_commune_dot_condition_logement_residence_principale_: @@ -25882,14 +26325,18 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "éligibilité_commune.condition_logement_résidence_principale"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=407; start_column=3; - end_line=407; end_column=22; - law_headings=["Éligibilité aux allocations de logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4960; start_column=9; + end_line=4960; end_column=68; + law_headings=["Article R842-14"; + "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4960; start_column=9; end_line=4960; end_column=68; @@ -25910,18 +26357,22 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))) in + (fun (_: unit) -> true))) in let eligibilite_commune_dot_condition_logement_surface_: unit -> bool = fun (_: unit) -> (log_variable_definition ["ÉligibilitéAllocationLogement"; "éligibilité_commune.condition_logement_surface"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=407; start_column=3; end_line=407; end_column=22; - law_headings=["Éligibilité aux allocations de logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=4961; start_column=9; end_line=4961; end_column=55; + law_headings=["Article R842-14"; "Section 3 : Logements-foyers"; + "Chapitre 2 : Modalités de liquidation et de versement des allocations de logement"; + "Titre IV : Allocations de Logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4961; start_column=9; end_line=4961; end_column=55; law_headings=["Article R842-14"; @@ -25940,7 +26391,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> true))) in + (fun (_: unit) -> true))) in let result_: EligibiliteAidesPersonnelleLogementOut.t = (log_end_call ["ÉligibilitéAllocationLogement"; "éligibilité_commune"; "ÉligibilitéAidesPersonnelleLogement"] ((log_begin_call @@ -25974,13 +26425,13 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=433; start_column=14; end_line=433; end_column=63; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_commune_dot_coefficents_enfants_garde_alternee_pris_en_compte_)) with EmptyError -> (raise (NoValueProvided @@ -25999,13 +26450,13 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=431; start_column=14; end_line=431; end_column=56; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_commune_dot_nombre_personnes_a_charge_prises_en_compte_)) with EmptyError -> (raise (NoValueProvided @@ -26025,7 +26476,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=840; start_column=14; end_line=840; end_column=25; law_headings=["Chapitre Ier : Champ d'application"; @@ -26034,7 +26485,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((not eligibilite_commune_dot_eligibilite_) || (not condition_accession_propriete_)) then @@ -26057,7 +26508,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; start_column=11; @@ -26065,7 +26516,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; start_column=11; @@ -26073,7 +26524,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; start_column=11; @@ -26081,7 +26532,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; start_column=11; @@ -26089,7 +26540,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; @@ -26099,7 +26550,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=999; @@ -26131,9 +26582,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | SituationFamiliale.ConcubinageDontSepareDeFait _ -> false))) - (fun (_: _) -> true))|]) - (fun (_: _) -> true) - (fun (_: _) -> + (fun (_: unit) -> true))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; @@ -26142,7 +26593,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; @@ -26152,7 +26603,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi ["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; @@ -26163,7 +26614,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> + (fun + (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=976; @@ -26206,9 +26658,10 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi >=! (integer_of_string "1")))) - (fun (_: _) -> + (fun + (_: unit) -> true))|]) - (fun (_: _) -> + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=959; @@ -26258,10 +26711,11 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi >=! (integer_of_string "1")))) - (fun (_: _) -> true))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError)))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise + EmptyError)))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=921; start_column=5; end_line=945; end_column=29; @@ -26340,8 +26794,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi | SituationFamiliale.CelibataireSepareDeFait _ -> false | SituationFamiliale.ConcubinageDontSepareDeFait _ -> - false)))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + false)))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=889; start_column=5; end_line=910; end_column=11; @@ -26400,8 +26854,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi acc_) (integer_of_string "0") (menage_.Menage.personnes_a_charge)) = (integer_of_string "1")))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=870; start_column=5; end_line=874; end_column=52; @@ -26427,14 +26881,14 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (PrestationRecue.AllocationSoutienEnfantHandicape ())))))) false (menage_.Menage.prestations_recues)))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=403; start_column=11; end_line=403; end_column=52; law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -26452,7 +26906,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=412; start_column=10; @@ -26460,7 +26914,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi law_headings=["Éligibilité aux allocations de logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=412; start_column=10; @@ -26469,7 +26923,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1121; start_column=5; end_line=1121; end_column=73; @@ -26480,10 +26934,10 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Partie législative"; "Code de la construction et de l'habitation"]} (demandeur_.Demandeur.personne_hebergee_centre_soin_l_L162_22_3_securite_sociale))) - (fun (_: _) -> + (fun (_: unit) -> EligibiliteAllocationLogement.AllocationLogementSociale ())); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; start_line=412; start_column=10; @@ -26492,7 +26946,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Déclarations des champs d'application"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1134; start_column=5; end_line=1137; end_column=28; @@ -26513,10 +26967,10 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi >@ (date_of_numbers (2017) (12) (31))) | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> EligibiliteAllocationLogement.PasEligible ()))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1030; start_column=14; end_line=1030; end_column=25; law_headings=["Article L841-2"; @@ -26526,7 +26980,7 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((eligibilite_dispositions_communes_ = (EligibiliteAllocationLogement.PasEligible ())) || @@ -26568,7 +27022,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1384; start_column=14; end_line=1384; end_column=34; law_headings=["Article D823-9"; @@ -26579,7 +27033,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (CategorieCalculAPL.Location ()) @@ -26608,7 +27062,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=5003; start_column=14; end_line=5003; end_column=31; law_headings=["Article D842-15"; @@ -26619,7 +27073,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (money_round ((ressources_menage_sans_arrondi_ *$ (decimal_of_string "0.01")) +$ (money_of_cents_string @@ -26641,14 +27095,14 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=88; start_column=14; end_line=88; end_column=44; law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match situation_familiale_ with | SituationFamiliale.Celibataire _ -> @@ -26676,12 +27130,17 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "accession_propriété.ressources_ménage_arrondies_base"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1651; start_column=14; end_line=1651; end_column=61; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1651; start_column=14; end_line=1651; end_column=61; law_headings=["Article D823-9"; @@ -26691,25 +27150,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_avec_arrondi_)))) + true)) (fun (_: unit) -> ressources_menage_avec_arrondi_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=831; start_column=10; end_line=831; end_column=37; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1651; start_column=14; end_line=1651; end_column=61; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1657; start_column=14; end_line=1657; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1657; start_column=14; end_line=1657; end_column=59; law_headings=["Article D823-9"; @@ -26719,26 +27187,35 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=834; start_column=10; end_line=834; end_column=35; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1657; start_column=14; end_line=1657; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1669; start_column=14; end_line=1669; end_column=64; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1669; start_column=14; end_line=1669; end_column=64; law_headings=["Article D823-9"; @@ -26748,25 +27225,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=835; start_column=10; end_line=835; end_column=40; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1669; start_column=14; end_line=1669; end_column=64; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1661; start_column=14; end_line=1661; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1661; start_column=14; end_line=1661; end_column=38; law_headings=["Article D823-9"; @@ -26776,25 +27262,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> zone_)))) + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=836; start_column=10; end_line=836; end_column=14; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1661; start_column=14; end_line=1661; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_date_courante_: date = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1664; start_column=14; end_line=1664; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1664; start_column=14; end_line=1664; end_column=47; law_headings=["Article D823-9"; @@ -26804,25 +27299,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_courante_)))) + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=837; start_column=10; end_line=837; end_column=23; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1664; start_column=14; end_line=1664; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_mensualite_principale_: money = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.mensualité_principale"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1745; start_column=14; end_line=1745; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1745; start_column=14; end_line=1745; end_column=55; law_headings=["Article D823-9"; @@ -26833,7 +27337,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (money_of_cents_string "0") @@ -26846,22 +27350,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.mensualite_principale))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=838; start_column=10; end_line=838; end_column=31; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1745; start_column=14; end_line=1745; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_situation_r822_11_13_17_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.situation_r822_11_13_17"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1809; start_column=14; end_line=1809; end_column=57; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1809; start_column=14; end_line=1809; end_column=57; law_headings=["Article D823-9"; @@ -26872,7 +27385,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> false @@ -26884,22 +27397,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.situation_r822_11_13_17))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=839; start_column=10; end_line=839; end_column=33; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1809; start_column=14; end_line=1809; end_column=57; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_date_signature_pret_: date = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.date_signature_prêt"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1773; start_column=14; end_line=1773; end_column=53; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1773; start_column=14; end_line=1773; end_column=53; law_headings=["Article D823-9"; @@ -26910,7 +27432,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (date_of_numbers (2010) (1) (1)) @@ -26924,23 +27446,32 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ((proprietaire_.Proprietaire.pret).Pret.date_signature))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=840; start_column=10; end_line=840; end_column=29; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1773; start_column=14; end_line=1773; end_column=53; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_type_travaux_logement_: TypeTravauxLogementR8425.t = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.type_travaux_logement"] (embed_type_travaux_logement_r842_5) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1763; start_column=14; end_line=1763; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1763; start_column=14; end_line=1763; end_column=55; law_headings=["Article D823-9"; @@ -26951,7 +27482,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> @@ -26966,23 +27497,32 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.type_travaux_logement_r842_5))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=841; start_column=10; end_line=841; end_column=31; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1763; start_column=14; end_line=1763; end_column=55; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_local_habite_premiere_fois_beneficiaire_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.local_habité_première_fois_bénéficiaire"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1782; start_column=14; end_line=1782; end_column=73; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1782; start_column=14; end_line=1782; end_column=73; law_headings=["Article D823-9"; @@ -26993,7 +27533,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> false @@ -27005,22 +27545,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.local_habite_premiere_fois_beneficiaire))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=842; start_column=10; end_line=842; end_column=49; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1782; start_column=14; end_line=1782; end_column=73; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_date_entree_logement_: date = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.date_entrée_logement"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1791; start_column=14; end_line=1791; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1791; start_column=14; end_line=1791; end_column=54; law_headings=["Article D823-9"; @@ -27031,7 +27580,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (date_of_numbers (2010) (1) (1)) @@ -27045,22 +27594,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.date_entree_logement))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=843; start_column=10; end_line=843; end_column=30; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1791; start_column=14; end_line=1791; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_charges_mensuelles_pret_: money = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.charges_mensuelles_prêt"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1754; start_column=14; end_line=1754; end_column=57; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1754; start_column=14; end_line=1754; end_column=57; law_headings=["Article D823-9"; @@ -27071,7 +27629,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (money_of_cents_string "0") @@ -27084,22 +27642,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.charges_mensuelles_pret))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=844; start_column=10; end_line=844; end_column=33; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1754; start_column=14; end_line=1754; end_column=57; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let accession_propriete_dot_copropriete_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "accession_propriété.copropriété"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=989; start_column=3; end_line=989; end_column=22; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1800; start_column=14; end_line=1800; end_column=45; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1800; start_column=14; end_line=1800; end_column=45; law_headings=["Article D823-9"; @@ -27110,7 +27677,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> false @@ -27122,11 +27689,15 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (proprietaire_.Proprietaire.copropriete))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=845; start_column=10; end_line=845; end_column=21; - law_headings=["Secteur accession à la propriété"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1800; start_column=14; end_line=1800; end_column=45; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAllocationLogementAccessionProprieteOut.t = (log_end_call ["CalculAllocationLogement"; "accession_propriété"; "CalculAllocationLogementAccessionPropriété"] ((log_begin_call @@ -27167,12 +27738,17 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ["CalculAllocationLogement"; "logement_foyer.type_logement_foyer"] (embed_type_logement_foyer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1835; start_column=14; end_line=1835; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1835; start_column=14; end_line=1835; end_column=48; law_headings=["Article D823-9"; @@ -27183,7 +27759,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (TypeLogementFoyer.Autre ()) @@ -27196,22 +27772,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (TypeLogementFoyer.Autre ()))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=913; start_column=10; end_line=913; end_column=29; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1835; start_column=14; end_line=1835; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_date_conventionnement_: date = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.date_conventionnement"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1844; start_column=14; end_line=1844; end_column=50; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1844; start_column=14; end_line=1844; end_column=50; law_headings=["Article D823-9"; @@ -27222,7 +27807,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (date_of_numbers (1970) (1) (1)) @@ -27236,21 +27821,30 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (date_of_numbers (1970) (1) (1)))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=914; start_column=10; end_line=914; end_column=31; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1844; start_column=14; end_line=1844; end_column=50; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_redevance_: money = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.redevance"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1819; start_column=14; end_line=1819; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1819; start_column=14; end_line=1819; end_column=38; law_headings=["Article D823-9"; @@ -27261,7 +27855,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> (money_of_cents_string "0") @@ -27274,22 +27868,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "0"))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=915; start_column=10; end_line=915; end_column=19; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1819; start_column=14; end_line=1819; end_column=38; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_ressources_menage_arrondies_: money = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1649; start_column=14; end_line=1649; end_column=56; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1649; start_column=14; end_line=1649; end_column=56; law_headings=["Article D823-9"; @@ -27299,25 +27902,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_avec_arrondi_)))) + true)) (fun (_: unit) -> ressources_menage_avec_arrondi_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=916; start_column=10; end_line=916; end_column=37; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1649; start_column=14; end_line=1649; end_column=56; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1655; start_column=14; end_line=1655; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1655; start_column=14; end_line=1655; end_column=54; law_headings=["Article D823-9"; @@ -27327,26 +27939,35 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=917; start_column=10; end_line=917; end_column=35; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1655; start_column=14; end_line=1655; end_column=54; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1667; start_column=14; end_line=1667; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1667; start_column=14; end_line=1667; end_column=59; law_headings=["Article D823-9"; @@ -27356,25 +27977,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=918; start_column=10; end_line=918; end_column=40; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1667; start_column=14; end_line=1667; end_column=59; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1660; start_column=14; end_line=1660; end_column=33; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1660; start_column=14; end_line=1660; end_column=33; law_headings=["Article D823-9"; @@ -27384,25 +28014,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> zone_)))) + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=919; start_column=10; end_line=919; end_column=14; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1660; start_column=14; end_line=1660; end_column=33; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_date_courante_: date = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1663; start_column=14; end_line=1663; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1663; start_column=14; end_line=1663; end_column=42; law_headings=["Article D823-9"; @@ -27412,26 +28051,35 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_courante_)))) + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=920; start_column=10; end_line=920; end_column=23; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1663; start_column=14; end_line=1663; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let logement_foyer_dot_categorie_equivalence_loyer_d842_16_: CategorieEquivalenceLoyerAllocationLogementFoyer.t = try ((log_variable_definition ["CalculAllocationLogement"; "logement_foyer.catégorie_équivalence_loyer_d842_16"] (embed_categorie_equivalence_loyer_allocation_logement_foyer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=988; start_column=3; end_line=988; end_column=17; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1826; start_column=14; end_line=1826; end_column=64; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1826; start_column=14; end_line=1826; end_column=64; law_headings=["Article D823-9"; @@ -27442,7 +28090,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire _ -> @@ -27461,11 +28109,15 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL ()))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=921; start_column=10; end_line=921; end_column=45; - law_headings=["Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1826; start_column=14; end_line=1826; end_column=64; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAllocationLogementFoyerOut.t = (log_end_call ["CalculAllocationLogement"; "logement_foyer"; "CalculAllocationLogementFoyer"] ((log_begin_call @@ -27499,12 +28151,17 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL try ((log_variable_definition ["CalculAllocationLogement"; "locatif.loyer_principal"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1672; start_column=14; end_line=1672; end_column=37; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1672; start_column=14; end_line=1672; end_column=37; law_headings=["Article D823-9"; @@ -27515,7 +28172,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27530,22 +28187,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "0"))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=764; start_column=10; end_line=764; end_column=25; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1672; start_column=14; end_line=1672; end_column=37; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_ressources_menage_arrondies_: money = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.ressources_ménage_arrondies"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1648; start_column=14; end_line=1648; end_column=49; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1648; start_column=14; end_line=1648; end_column=49; law_headings=["Article D823-9"; @@ -27555,26 +28221,35 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> ressources_menage_avec_arrondi_)))) + true)) (fun (_: unit) -> ressources_menage_avec_arrondi_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=765; start_column=10; end_line=765; end_column=37; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1648; start_column=14; end_line=1648; end_column=49; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_beneficiaire_aide_adulte_ou_enfant_handicapes_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.bénéficiaire_aide_adulte_ou_enfant_handicapés"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1679; start_column=14; end_line=1679; end_column=67; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1679; start_column=14; end_line=1679; end_column=67; law_headings=["Article D823-9"; @@ -27585,7 +28260,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27598,21 +28273,30 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=766; start_column=10; end_line=766; end_column=55; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1679; start_column=14; end_line=1679; end_column=67; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_date_courante_: date = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.date_courante"] (embed_date) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1662; start_column=14; end_line=1662; end_column=35; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1662; start_column=14; end_line=1662; end_column=35; law_headings=["Article D823-9"; @@ -27622,25 +28306,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> date_courante_)))) + true)) (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=768; start_column=10; end_line=768; end_column=23; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1662; start_column=14; end_line=1662; end_column=35; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.nombre_personnes_à_charge"] (embed_integer) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1653; start_column=14; end_line=1653; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1653; start_column=14; end_line=1653; end_column=47; law_headings=["Article D823-9"; @@ -27650,25 +28343,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> nombre_personnes_a_charge_)))) + true)) (fun (_: unit) -> nombre_personnes_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=769; start_column=10; end_line=769; end_column=35; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1653; start_column=14; end_line=1653; end_column=47; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_situation_familiale_calcul_apl_: SituationFamilialeCalculAPL.t = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.situation_familiale_calcul_apl"] (embed_situation_familiale_calcul_a_p_l) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1665; start_column=14; end_line=1665; end_column=52; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1665; start_column=14; end_line=1665; end_column=52; law_headings=["Article D823-9"; @@ -27678,24 +28380,33 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> situation_familiale_calcul_apl_)))) + true)) (fun (_: unit) -> situation_familiale_calcul_apl_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=770; start_column=10; end_line=770; end_column=40; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1665; start_column=14; end_line=1665; end_column=52; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.zone"] (embed_zone_d_habitation) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1659; start_column=14; end_line=1659; end_column=26; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1659; start_column=14; end_line=1659; end_column=26; law_headings=["Article D823-9"; @@ -27705,25 +28416,34 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> zone_)))) + true)) (fun (_: unit) -> zone_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=771; start_column=10; end_line=771; end_column=14; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1659; start_column=14; end_line=1659; end_column=26; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_logement_est_chambre_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.logement_est_chambre"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1688; start_column=14; end_line=1688; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1688; start_column=14; end_line=1688; end_column=42; law_headings=["Article D823-9"; @@ -27734,7 +28454,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27747,23 +28467,32 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=772; start_column=10; end_line=772; end_column=30; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1688; start_column=14; end_line=1688; end_column=42; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_agees_ou_handicap_adultes_hebergees_onereux_particuliers_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.âgées_ou_handicap_adultes_hébergées_onéreux_particuliers"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1703; start_column=5; end_line=1703; end_column=69; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1703; start_column=5; end_line=1703; end_column=69; law_headings=["Article D823-9"; @@ -27774,7 +28503,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27787,22 +28516,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=773; start_column=10; end_line=773; end_column=66; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1703; start_column=5; end_line=1703; end_column=69; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.type_aide"] (embed_type_aides_personnelle_logement) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1713; start_column=14; end_line=1713; end_column=31; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1713; start_column=14; end_line=1713; end_column=31; law_headings=["Article D823-9"; @@ -27812,24 +28550,33 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> type_aide_)))) + true)) (fun (_: unit) -> type_aide_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=775; start_column=10; end_line=775; end_column=19; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1713; start_column=14; end_line=1713; end_column=31; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_colocation_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.colocation"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1695; start_column=14; end_line=1695; end_column=32; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1695; start_column=14; end_line=1695; end_column=32; law_headings=["Article D823-9"; @@ -27840,7 +28587,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27853,22 +28600,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=776; start_column=10; end_line=776; end_column=20; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1695; start_column=14; end_line=1695; end_column=32; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_reduction_loyer_solidarite_: money = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.réduction_loyer_solidarité"] (embed_money) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1714; start_column=14; end_line=1714; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1714; start_column=14; end_line=1714; end_column=48; law_headings=["Article D823-9"; @@ -27879,7 +28635,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27908,22 +28664,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "0"))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=777; start_column=10; end_line=777; end_column=36; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1714; start_column=14; end_line=1714; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_logement_meuble_d842_2_: bool = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.logement_meublé_d842_2"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1729; start_column=14; end_line=1729; end_column=44; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1729; start_column=14; end_line=1729; end_column=44; law_headings=["Article D823-9"; @@ -27934,7 +28699,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27947,22 +28712,31 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL | ModeOccupation.LocationAccession _ -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=778; start_column=10; end_line=778; end_column=32; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1729; start_column=14; end_line=1729; end_column=44; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let locatif_dot_changement_logement_d842_4_: ChangementLogementD8424.t = try ((log_variable_definition ["CalculAllocationLogement"; "locatif.changement_logement_d842_4"] (embed_changement_logement_d842_4) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=987; start_column=3; end_line=987; end_column=10; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1736; start_column=14; end_line=1736; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1736; start_column=14; end_line=1736; end_column=48; law_headings=["Article D823-9"; @@ -27973,7 +28747,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match mode_occupation_ with | ModeOccupation.Locataire location_ -> @@ -27988,11 +28762,15 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL (ChangementLogementD8424.PasDeChangement ()))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=781; start_column=10; end_line=781; end_column=36; - law_headings=["Secteur locatif"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; + start_line=1736; start_column=14; end_line=1736; end_column=48; + law_headings=["Article D823-9"; + "Section 1 : Calcul, liquidation et versement des aides"; + "Chapitre III : Modalités de liquidation et de versement"; + "Titre II : Dispositions communes aux aides personnelles au logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie réglementaire"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAllocationLogementLocatifOut.t = (log_end_call ["CalculAllocationLogement"; "locatif"; "CalculAllocationLogementLocatif"] ((log_begin_call @@ -28038,7 +28816,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1397; start_column=14; end_line=1397; end_column=36; @@ -28050,7 +28828,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match categorie_calcul_apl_ with | CategorieCalculAPL.Location _ -> ((log_end_call @@ -28117,7 +28895,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL law_headings=["Tous secteurs"; "Secteur logement-foyer"; "Calcul du montant de l'allocation logement"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=1392; start_column=14; end_line=1392; end_column=33; law_headings=["Article D823-9"; @@ -28128,7 +28906,7 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match categorie_calcul_apl_ with | CategorieCalculAPL.Location _ -> @@ -28159,77 +28937,76 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_allocation_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1045; start_column=3; end_line=1045; end_column=34; + start_line=1071; start_column=14; end_line=1071; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1071; start_column=14; end_line=1071; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=396; start_column=10; end_line=396; end_column=23; - law_headings=["Éligibilité aux allocations de logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1071; start_column=14; end_line=1071; end_column=59; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_menage_: Menage.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; "éligibilité_allocation_logement.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1045; start_column=3; end_line=1045; end_column=34; + start_line=1063; start_column=14; end_line=1063; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1063; start_column=14; end_line=1063; end_column=52; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_)))) + (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=397; start_column=10; end_line=397; end_column=16; - law_headings=["Éligibilité aux allocations de logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1063; start_column=14; end_line=1063; end_column=52; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_demandeur_: Demandeur.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; "éligibilité_allocation_logement.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1045; start_column=3; end_line=1045; end_column=34; + start_line=1067; start_column=14; end_line=1067; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1067; start_column=14; end_line=1067; end_column=55; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=398; start_column=10; end_line=398; end_column=19; - law_headings=["Éligibilité aux allocations de logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1067; start_column=14; end_line=1067; end_column=55; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_allocation_logement_dot_beneficie_aide_personnalisee_logement_: bool = try ((log_variable_definition ["CalculetteAidesAuLogement"; "éligibilité_allocation_logement.bénéficie_aide_personnalisée_logement"] (embed_bool) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1045; start_column=3; end_line=1045; end_column=34; - law_headings=["Calculette globale"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1046; start_column=5; end_line=1046; end_column=74; + law_headings=["Article L841-2"; + "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1046; start_column=5; end_line=1046; end_column=74; law_headings=["Article L841-2"; @@ -28238,14 +29015,16 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - true)) (fun (_: _) -> false)))) + true)) (fun (_: unit) -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=399; start_column=10; end_line=399; end_column=47; - law_headings=["Éligibilité aux allocations de logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1046; start_column=5; end_line=1046; end_column=74; + law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]})) in let result_: EligibiliteAllocationLogementOut.t = (log_end_call ["CalculetteAidesAuLogement"; "éligibilité_allocation_logement"; "ÉligibilitéAllocationLogement"] ((log_begin_call @@ -28269,22 +29048,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "éligibilité_aide_personnalisée_logement.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1042; start_column=3; end_line=1042; end_column=42; + start_line=1061; start_column=14; end_line=1061; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1061; start_column=14; end_line=1061; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_)))) + (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=359; start_column=10; end_line=359; end_column=16; - law_headings=["Éligibilité à l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1061; start_column=14; end_line=1061; end_column=60; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_aide_personnalisee_logement_dot_demandeur_: Demandeur.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28292,22 +29069,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1042; start_column=3; end_line=1042; end_column=42; + start_line=1065; start_column=14; end_line=1065; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1065; start_column=14; end_line=1065; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=360; start_column=10; end_line=360; end_column=19; - law_headings=["Éligibilité à l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1065; start_column=14; end_line=1065; end_column=63; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let eligibilite_aide_personnalisee_logement_dot_date_courante_: date = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28315,22 +29090,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1042; start_column=3; end_line=1042; end_column=42; + start_line=1069; start_column=14; end_line=1069; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1069; start_column=14; end_line=1069; end_column=67; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=361; start_column=17; end_line=361; end_column=30; - law_headings=["Éligibilité à l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1069; start_column=14; end_line=1069; end_column=67; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: EligibiliteAidePersonnaliseeLogementOut.t = (log_end_call ["CalculetteAidesAuLogement"; "éligibilité_aide_personnalisée_logement"; @@ -28356,22 +29129,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "calcul_allocation_logement.mode_occupation"] (embed_mode_occupation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; + start_line=1075; start_column=14; end_line=1075; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1075; start_column=14; end_line=1075; end_column=56; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> (menage_.Menage.logement).Logement.mode_occupation)))) + (fun (_: unit) -> (menage_.Menage.logement).Logement.mode_occupation)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=974; start_column=10; end_line=974; end_column=25; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + start_line=1075; start_column=14; end_line=1075; end_column=56; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_ressources_menage_sans_arrondi_: money = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28379,22 +29150,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; + start_line=1079; start_column=14; end_line=1079; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1079; start_column=14; end_line=1079; end_column=58; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_prises_en_compte_)))) + (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=975; start_column=10; end_line=975; end_column=27; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + start_line=1079; start_column=14; end_line=1079; end_column=58; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_situation_familiale_: SituationFamiliale.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28402,22 +29171,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_situation_familiale) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; + start_line=1083; start_column=14; end_line=1083; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1083; start_column=14; end_line=1083; end_column=60; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_.Menage.situation_familiale)))) + (fun (_: unit) -> menage_.Menage.situation_familiale)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=978; start_column=10; end_line=978; end_column=29; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + start_line=1083; start_column=14; end_line=1083; end_column=60; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28425,77 +29192,76 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; + start_line=1090; start_column=14; end_line=1090; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1090; start_column=14; end_line=1090; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_allocation_logement_dot_nombre_personnes_a_charge_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=979; start_column=10; end_line=979; end_column=35; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + start_line=1090; start_column=14; end_line=1090; end_column=66; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; "calcul_allocation_logement.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; + start_line=1094; start_column=14; end_line=1094; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1094; start_column=14; end_line=1094; end_column=45; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> (menage_.Menage.logement).Logement.zone)))) + (fun (_: unit) -> (menage_.Menage.logement).Logement.zone)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=980; start_column=10; end_line=980; end_column=14; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + start_line=1094; start_column=14; end_line=1094; end_column=45; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_date_courante_: date = try ((log_variable_definition ["CalculetteAidesAuLogement"; "calcul_allocation_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; + start_line=1098; start_column=14; end_line=1098; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1098; start_column=14; end_line=1098; end_column=54; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=981; start_column=10; end_line=981; end_column=23; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + start_line=1098; start_column=14; end_line=1098; end_column=54; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_allocation_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; "calcul_allocation_logement.type_aide"] (embed_type_aides_personnelle_logement) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1051; start_column=3; end_line=1051; end_column=29; - law_headings=["Calculette globale"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1062; start_column=14; end_line=1062; end_column=50; + law_headings=["Article L841-2"; + "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1062; start_column=14; end_line=1062; end_column=50; law_headings=["Article L841-2"; @@ -28505,7 +29271,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> match eligibilite_allocation_logement_dot_eligibilite_l841_2_ with | EligibiliteAllocationLogement.PasEligible _ -> @@ -28516,11 +29282,13 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (TypeAidesPersonnelleLogement.AllocationLogementSociale ()))))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=982; start_column=10; end_line=982; end_column=19; - law_headings=["Tous secteurs"; "Secteur logement-foyer"; - "Calcul du montant de l'allocation logement"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1062; start_column=14; end_line=1062; end_column=50; + law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]})) in let result_: CalculAllocationLogementOut.t = (log_end_call ["CalculetteAidesAuLogement"; "calcul_allocation_logement"; "CalculAllocationLogement"] ((log_begin_call @@ -28549,34 +29317,36 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_mode_occupation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; + start_line=1073; start_column=14; end_line=1073; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1073; start_column=14; end_line=1073; end_column=64; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> (menage_.Menage.logement).Logement.mode_occupation)))) + (fun (_: unit) -> (menage_.Menage.logement).Logement.mode_occupation)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=726; start_column=10; end_line=726; end_column=25; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1073; start_column=14; end_line=1073; end_column=64; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_type_aide_: TypeAidesPersonnelleLogement.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement.type_aide"] (embed_type_aides_personnelle_logement) (handle_default - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; - law_headings=["Calculette globale"; - "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1060; start_column=14; end_line=1060; end_column=58; + law_headings=["Article L841-2"; + "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]} + ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1060; start_column=14; end_line=1060; end_column=58; law_headings=["Article L841-2"; @@ -28586,16 +29356,17 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> TypeAidesPersonnelleLogement.AidePersonnaliseeLogement ())))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=727; start_column=10; end_line=727; end_column=19; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; + start_line=1060; start_column=14; end_line=1060; end_column=58; + law_headings=["Article L841-2"; "Chapitre Ier : Champ d'application"; + "Titre IV : Allocations de logement"; + "Livre VIII : Aides personnelles au logement"; + "Partie législative"; + "Code de la construction et de l'habitation"]})) in let calcul_aide_personnalisee_logement_dot_ressources_menage_sans_arrondi_: money = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28603,23 +29374,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; + start_line=1077; start_column=14; end_line=1077; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1077; start_column=14; end_line=1077; end_column=66; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_prises_en_compte_)))) + (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=728; start_column=10; end_line=728; end_column=27; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1077; start_column=14; end_line=1077; end_column=66; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_situation_familiale_: SituationFamiliale.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28627,23 +29395,20 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_situation_familiale) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; + start_line=1081; start_column=14; end_line=1081; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1081; start_column=14; end_line=1081; end_column=68; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_.Menage.situation_familiale)))) + (fun (_: unit) -> menage_.Menage.situation_familiale)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=731; start_column=10; end_line=731; end_column=29; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1081; start_column=14; end_line=1081; end_column=68; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_nombre_personnes_a_charge_: integer = try ((log_variable_definition ["CalculetteAidesAuLogement"; @@ -28651,70 +29416,61 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid (embed_integer) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; + start_line=1086; start_column=5; end_line=1086; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1086; start_column=5; end_line=1086; end_column=65; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_aide_personnalisee_logement_dot_nombre_personnes_a_charge_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=732; start_column=10; end_line=732; end_column=35; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1086; start_column=5; end_line=1086; end_column=65; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_zone_: ZoneDHabitation.t = try ((log_variable_definition ["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement.zone"] (embed_zone_d_habitation) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; + start_line=1092; start_column=14; end_line=1092; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1092; start_column=14; end_line=1092; end_column=53; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> (menage_.Menage.logement).Logement.zone)))) + (fun (_: unit) -> (menage_.Menage.logement).Logement.zone)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=733; start_column=10; end_line=733; end_column=14; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1092; start_column=14; end_line=1092; end_column=53; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let calcul_aide_personnalisee_logement_dot_date_courante_: date = try ((log_variable_definition ["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1048; start_column=3; end_line=1048; end_column=37; + start_line=1096; start_column=14; end_line=1096; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1096; start_column=14; end_line=1096; end_column=62; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=734; start_column=10; end_line=734; end_column=23; - law_headings=["Tous secteurs"; - "Calcul du montant de l'aide personnalisée au logement"; - "Déclarations des champs d'application"; - "Prologue : aides au logement"]})) in + start_line=1096; start_column=14; end_line=1096; end_column=62; + law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in let result_: CalculAidePersonnaliseeLogementOut.t = (log_end_call ["CalculetteAidesAuLogement"; "calcul_aide_personnalisée_logement"; "CalculAidePersonnaliséeLogement"] ((log_begin_call @@ -28747,12 +29503,12 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid start_line=1057; start_column=10; end_line=1057; end_column=59; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1101; start_column=14; end_line=1101; end_column=63; law_headings=["Calculette globale"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_aide_personnalisee_logement_dot_coefficents_enfants_garde_alternee_pris_en_compte_)) with EmptyError -> (raise (NoValueProvided @@ -28767,7 +29523,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid start_line=1054; start_column=10; end_line=1054; end_column=21; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1051; start_column=14; end_line=1051; end_column=25; law_headings=["Article L841-2"; @@ -28777,7 +29533,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> eligibilite_aide_personnalisee_logement_dot_eligibilite_ || (match eligibilite_allocation_logement_dot_eligibilite_l841_2_ with @@ -28802,7 +29558,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid end_line=1056; end_column=32; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1089; start_column=14; end_line=1089; end_column=36; @@ -28813,7 +29569,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let aide_finale_apl_ : _ = ((log_end_call ["CalculAidePersonnaliséeLogement"; "traitement_aide_finale"] ((log_variable_definition @@ -28877,7 +29633,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid start_line=1055; start_column=10; end_line=1055; end_column=29; law_headings=["Calculette globale"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; start_line=1072; start_column=14; end_line=1072; end_column=33; law_headings=["Article L841-2"; @@ -28887,7 +29643,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Partie législative"; "Code de la construction et de l'habitation"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (not eligibilite_) then (money_of_cents_string "0") else ( if (eligibilite_aide_personnalisee_logement_dot_eligibilite_ && @@ -28961,12 +29717,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga start_line=1120; start_column=11; end_line=1120; end_column=45; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1152; start_column=14; end_line=1152; end_column=48; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> {Menage.prestations_recues = (menage_.Menage.prestations_recues); Menage.logement = (menage_.Menage.logement); Menage.personnes_a_charge = @@ -29004,80 +29760,84 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=3; end_line=1124; end_column=13; + start_line=1131; start_column=14; end_line=1131; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1131; start_column=14; end_line=1131; end_column=31; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_)))) + (fun (_: unit) -> menage_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=10; end_line=1033; end_column=16; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1131; start_column=14; end_line=1131; end_column=31; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let calculette_dot_demandeur_: Demandeur.t = try ((log_variable_definition ["CalculetteAidesAuLogementGardeAlternée"; "calculette.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=3; end_line=1124; end_column=13; + start_line=1133; start_column=14; end_line=1133; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1133; start_column=14; end_line=1133; end_column=34; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=10; end_line=1034; end_column=19; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1133; start_column=14; end_line=1133; end_column=34; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let calculette_dot_date_courante_: date = try ((log_variable_definition ["CalculetteAidesAuLogementGardeAlternée"; "calculette.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=3; end_line=1124; end_column=13; + start_line=1135; start_column=14; end_line=1135; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1135; start_column=14; end_line=1135; end_column=38; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1035; start_column=10; end_line=1035; end_column=23; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1135; start_column=14; end_line=1135; end_column=38; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let calculette_dot_ressources_menage_prises_en_compte_: money = try ((log_variable_definition ["CalculetteAidesAuLogementGardeAlternée"; "calculette.ressources_ménage_prises_en_compte"] (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1124; start_column=3; end_line=1124; end_column=13; + start_line=1137; start_column=14; end_line=1137; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1137; start_column=14; end_line=1137; end_column=59; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_prises_en_compte_)))) + (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1040; start_column=10; end_line=1040; end_column=44; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1137; start_column=14; end_line=1137; end_column=59; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let result_: CalculetteAidesAuLogementOut.t = (log_end_call ["CalculetteAidesAuLogementGardeAlternée"; "calculette"; "CalculetteAidesAuLogement"] ((log_begin_call @@ -29100,60 +29860,63 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga "calculette_sans_garde_alternée.ménage"] (embed_menage) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=3; end_line=1125; end_column=33; + start_line=1139; start_column=14; end_line=1139; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1139; start_column=14; end_line=1139; end_column=51; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> menage_sans_enfants_garde_alternee_)))) + (fun (_: unit) -> menage_sans_enfants_garde_alternee_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1033; start_column=10; end_line=1033; end_column=16; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1139; start_column=14; end_line=1139; end_column=51; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_demandeur_: Demandeur.t = try ((log_variable_definition ["CalculetteAidesAuLogementGardeAlternée"; "calculette_sans_garde_alternée.demandeur"] (embed_demandeur) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=3; end_line=1125; end_column=33; + start_line=1141; start_column=14; end_line=1141; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1141; start_column=14; end_line=1141; end_column=54; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> demandeur_)))) + (fun (_: unit) -> demandeur_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1034; start_column=10; end_line=1034; end_column=19; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1141; start_column=14; end_line=1141; end_column=54; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_date_courante_: date = try ((log_variable_definition ["CalculetteAidesAuLogementGardeAlternée"; "calculette_sans_garde_alternée.date_courante"] (embed_date) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=3; end_line=1125; end_column=33; + start_line=1143; start_column=14; end_line=1143; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1143; start_column=14; end_line=1143; end_column=58; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1035; start_column=10; end_line=1035; end_column=23; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1143; start_column=14; end_line=1143; end_column=58; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let calculette_sans_garde_alternee_dot_ressources_menage_prises_en_compte_: money = try ((log_variable_definition ["CalculetteAidesAuLogementGardeAlternée"; @@ -29161,20 +29924,21 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga (embed_money) (handle_default {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1125; start_column=3; end_line=1125; end_column=33; + start_line=1146; start_column=5; end_line=1146; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1146; start_column=5; end_line=1146; end_column=70; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> ressources_menage_prises_en_compte_)))) + (fun (_: unit) -> ressources_menage_prises_en_compte_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; - start_line=1040; start_column=10; end_line=1040; end_column=44; - law_headings=["Calculette globale"; "Prologue : aides au logement"]})) in + start_line=1146; start_column=5; end_line=1146; end_column=70; + law_headings=["Calculette avec garde alternée"; + "Prologue : aides au logement"]})) in let result_: CalculetteAidesAuLogementOut.t = (log_end_call ["CalculetteAidesAuLogementGardeAlternée"; "calculette_sans_garde_alternée"; "CalculetteAidesAuLogement"] @@ -29205,12 +29969,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga start_line=1127; start_column=10; end_line=1127; end_column=21; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1179; start_column=14; end_line=1179; end_column=25; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> calculette_dot_eligibilite_)) + (fun (_: unit) -> calculette_dot_eligibilite_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -29227,12 +29991,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga start_line=1121; start_column=11; end_line=1121; end_column=60; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=1150; start_column=14; end_line=1150; end_column=63; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} true)) - (fun (_: _) -> + (fun (_: unit) -> calculette_dot_coefficents_enfants_garde_alternee_pris_en_compte_)) with EmptyError -> (raise (NoValueProvided @@ -29249,12 +30013,12 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga start_line=1128; start_column=10; end_line=1128; end_column=21; law_headings=["Calculette avec garde alternée"; "Prologue : aides au logement"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/autres_sources.catala_fr"; start_line=254; start_column=14; end_line=254; end_column=25; law_headings=["Conseil d'État, 5ème - 4ème chambres réunies, 21/07/2017, 398563"]} true)) - (fun (_: _) -> (log_end_call + (fun (_: unit) -> (log_end_call ["CalculetteAidesAuLogement"; "traitement_aide_finale"] ((log_variable_definition ["CalculetteAidesAuLogement"; "traitement_aide_finale"; "output"] diff --git a/french_law/ocaml/law_source/allocations_familiales.ml b/french_law/ocaml/law_source/allocations_familiales.ml index 65ee668e..aa8e1521 100644 --- a/french_law/ocaml/law_source/allocations_familiales.ml +++ b/french_law/ocaml/law_source/allocations_familiales.ml @@ -371,7 +371,7 @@ let allocation_familiales_avril2008 (allocation_familiales_avril2008_in: Allocat start_line=76; start_column=10; end_line=76; end_column=37; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=78; start_column=14; end_line=78; end_column=41; law_headings=["Article R521-1"; @@ -380,7 +380,7 @@ let allocation_familiales_avril2008 (allocation_familiales_avril2008_in: Allocat "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> duration_of_numbers (16) (0) (0))) + (fun (_: unit) -> duration_of_numbers (16) (0) (0))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -400,11 +400,11 @@ let enfant_le_plus_age (enfant_le_plus_age_in: EnfantLePlusAgeIn.t) : EnfantLePl start_line=80; start_column=10; end_line=80; end_column=21; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=12; start_column=14; end_line=12; end_column=25; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (let predicate_ : _ = (fun (potentiel_plus_age_: _) -> potentiel_plus_age_.Enfant.date_de_naissance) @@ -444,7 +444,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = start_line=11; start_column=10; end_line=11; end_column=22; law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -452,7 +452,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=29; start_column=5; end_line=38; end_column=6; @@ -478,8 +478,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1003")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1003")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -487,7 +487,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=47; start_column=5; end_line=49; end_column=6; @@ -498,8 +498,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2019) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "757")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "757")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -507,7 +507,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=68; start_column=5; end_line=77; end_column=6; @@ -533,8 +533,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1015")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1015")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -542,7 +542,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=86; start_column=5; end_line=88; end_column=6; @@ -553,8 +553,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2020) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "766")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "766")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -562,7 +562,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=107; start_column=5; end_line=116; end_column=6; @@ -588,8 +588,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1025")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1025")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -597,7 +597,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=125; start_column=5; end_line=127; end_column=6; @@ -608,8 +608,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2021) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "774")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "774")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -617,7 +617,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=146; start_column=5; end_line=155; end_column=6; @@ -643,8 +643,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1057")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1057")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -652,7 +652,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=165; start_column=5; end_line=167; end_column=6; @@ -662,8 +662,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && ((date_courante_ <=@ (date_of_numbers (2022) (4) (30))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "798")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "798")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -671,7 +671,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=186; start_column=5; end_line=195; end_column=6; @@ -697,8 +697,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = (residence_ = (Collectivite.SaintPierreEtMiquelon ()))))))))))))) - (fun (_: _) -> money_of_cents_string "1085")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "1085")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=11; start_column=10; @@ -706,7 +706,7 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = law_headings=["Prologue"; "Montant du salaire minimum de croissance"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; start_line=204; start_column=5; end_line=206; end_column=6; @@ -717,8 +717,8 @@ let smic (smic_in: SmicIn.t) : SmicOut.t = ((date_courante_ <=@ (date_of_numbers (2022) (12) (31))) && (residence_ = (Collectivite.Mayotte ())))))) - (fun (_: _) -> money_of_cents_string "819"))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> money_of_cents_string "819"))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; @@ -735,13 +735,13 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=28; start_column=5; end_line=29; end_column=34; @@ -749,14 +749,14 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2019) (4) (1))) && (date_courante_ <@ (date_of_numbers (2020) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "41316")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "41316")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=48; start_column=5; end_line=49; end_column=34; @@ -764,14 +764,14 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2020) (4) (1))) && (date_courante_ <@ (date_of_numbers (2021) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "41440")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "41440")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=64; start_column=5; end_line=65; end_column=34; @@ -779,14 +779,14 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2021) (4) (1))) && (date_courante_ <@ (date_of_numbers (2022) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "41481")); - (fun (_: _) -> + (fun (_: unit) -> money_of_cents_string "41481")); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=6; start_column=10; end_line=6; end_column=17; law_headings=["Montant de la base mensuelle des allocations familiales"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; start_line=82; start_column=5; end_line=83; end_column=34; @@ -794,8 +794,8 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales "Montant de la base mensuelle des allocations familiales"]} ((date_courante_ >=@ (date_of_numbers (2022) (4) (1))) && (date_courante_ <@ (date_of_numbers (2023) (4) (1)))))) - (fun (_: _) -> money_of_cents_string "42228"))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> money_of_cents_string "42228"))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; @@ -815,7 +815,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t start_line=60; start_column=10; end_line=60; end_column=22; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=21; start_column=14; end_line=21; end_column=26; law_headings=["Article R512-2"; @@ -824,7 +824,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> duration_of_numbers (20) (0) (0))) + (fun (_: unit) -> duration_of_numbers (20) (0) (0))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -836,39 +836,41 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t ["PrestationsFamiliales"; "smic.date_courante"] (embed_date) (handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=65; start_column=3; end_line=65; end_column=7; + start_line=69; start_column=14; end_line=69; end_column=32; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=69; start_column=14; end_line=69; end_column=32; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; - start_line=9; start_column=10; end_line=9; end_column=23; - law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})) in + {filename = "examples/allocations_familiales/prologue.catala_fr"; + start_line=69; start_column=14; end_line=69; end_column=32; + law_headings=["Prestations familiales"; "Champs d'applications"; + "Prologue"]})) in let smic_dot_residence_: Collectivite.t = try ((log_variable_definition ["PrestationsFamiliales"; "smic.résidence"] (embed_collectivite) (handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=65; start_column=3; end_line=65; end_column=7; + start_line=68; start_column=14; end_line=68; end_column=28; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=68; start_column=14; end_line=68; end_column=28; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> residence_)))) + (fun (_: unit) -> residence_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/../smic/smic.catala_fr"; - start_line=10; start_column=10; end_line=10; end_column=19; - law_headings=["Prologue"; "Montant du salaire minimum de croissance"]})) in + {filename = "examples/allocations_familiales/prologue.catala_fr"; + start_line=68; start_column=14; end_line=68; end_column=28; + law_headings=["Prestations familiales"; "Champs d'applications"; + "Prologue"]})) in let result_: SmicOut.t = (log_end_call ["PrestationsFamiliales"; "smic"; "Smic"] ((log_begin_call ["PrestationsFamiliales"; "smic"; "Smic"] smic) @@ -883,7 +885,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t start_line=61; start_column=10; end_line=61; end_column=33; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=61; start_column=10; @@ -891,7 +893,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=357; start_column=5; end_line=362; end_column=30; @@ -909,13 +911,13 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t (Collectivite.SaintBarthelemy ())) || (residence_ = (Collectivite.SaintMartin ()))))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=61; start_column=10; end_line=61; end_column=33; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -930,7 +932,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t start_line=59; start_column=11; end_line=59; end_column=27; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=59; start_column=11; @@ -938,7 +940,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=217; start_column=18; end_line=217; end_column=41; @@ -949,10 +951,10 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} regime_outre_mer_l751_1_)) - (fun (_: _) -> + (fun (_: unit) -> (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ (decimal_of_string "169.")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=31; start_column=14; end_line=31; end_column=30; law_headings=["Article R512-2"; @@ -961,7 +963,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ (decimal_of_string "169."))) with @@ -980,7 +982,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t start_line=58; start_column=10; end_line=58; end_column=29; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=58; start_column=10; @@ -988,7 +990,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=68; start_column=5; end_line=71; end_column=57; @@ -1020,14 +1022,14 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t | SituationObligationScolaire.Apres _ -> true))) && ((param_.Enfant.remuneration_mensuelle) <=$ - plafond_l512_3_2_)))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + plafond_l512_3_2_)))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=58; start_column=10; end_line=58; end_column=29; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1050,14 +1052,14 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t start_line=57; start_column=10; end_line=57; end_column=22; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=57; start_column=10; end_line=57; end_column=22; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=57; start_column=10; @@ -1065,7 +1067,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/autres_codes.catala_fr"; start_line=24; start_column=5; end_line=24; end_column=63; @@ -1078,8 +1080,9 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Partie législative"; "Code de la construction et de l'habitation"]} (param_.Enfant.beneficie_titre_personnel_aide_personnelle_logement))) - (fun (_: _) -> false))|]) (fun (_: _) -> true) - (fun (_: _) -> + (fun (_: unit) -> false))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=57; start_column=10; @@ -1087,7 +1090,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=57; start_column=10; @@ -1095,7 +1098,7 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=57; start_column=10; @@ -1104,7 +1107,8 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> + (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=60; start_column=5; @@ -1130,8 +1134,8 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t (((param_.Enfant.date_de_naissance) +@ age_l512_3_2_) >@ date_courante_))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=49; start_column=5; end_line=50; end_column=50; @@ -1158,16 +1162,17 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t | SituationObligationScolaire.Pendant _ -> true | SituationObligationScolaire.Apres _ -> - false)))) (fun (_: _) -> true))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError)))|]) - (fun (_: _) -> (log_decision_taken + false)))) + (fun (_: unit) -> true))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError)))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=57; start_column=10; end_line=57; end_column=22; law_headings=["Prestations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1204,7 +1209,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=97; start_column=11; end_line=97; end_column=26; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=97; start_column=11; @@ -1212,7 +1217,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=215; start_column=5; end_line=215; end_column=70; @@ -1233,8 +1238,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> PriseEnCompte.Partagee ())); - (fun (_: _) -> + (fun (_: unit) -> PriseEnCompte.Partagee ())); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=97; start_column=11; @@ -1242,7 +1247,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=254; start_column=5; end_line=255; end_column=56; @@ -1262,15 +1267,16 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t | PriseEnCharge.ServicesSociauxAllocationVerseeALaFamille _ -> false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> - true))) (fun (_: _) -> PriseEnCompte.Zero ())); - (fun (_: _) -> + true))) + (fun (_: unit) -> PriseEnCompte.Zero ())); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=97; start_column=11; end_line=97; end_column=26; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=97; start_column=11; @@ -1278,7 +1284,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=97; start_column=11; @@ -1287,7 +1293,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Champs d'applications"; "Prologue"]} ( [||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=264; start_column=5; end_line=265; end_column=48; @@ -1310,9 +1316,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t true | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> PriseEnCompte.Complete ()))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=205; start_column=5; end_line=205; end_column=69; @@ -1334,8 +1340,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> PriseEnCompte.Complete ()))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> PriseEnCompte.Complete ()))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=185; start_column=5; end_line=185; end_column=60; @@ -1356,8 +1362,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> PriseEnCompte.Complete ()))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> PriseEnCompte.Complete ()))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1380,7 +1386,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=98; start_column=11; end_line=98; end_column=20; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=98; start_column=11; @@ -1388,7 +1394,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=259; start_column=5; end_line=260; end_column=56; @@ -1409,17 +1415,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> true))) - (fun (_: _) -> + (fun (_: unit) -> VersementAllocations.AllocationVerseeAuxServicesSociaux ())); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=98; start_column=11; end_line=98; end_column=20; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=98; start_column=11; @@ -1427,7 +1433,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=98; start_column=11; @@ -1435,7 +1441,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=98; @@ -1445,7 +1451,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=270; @@ -1470,10 +1476,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t true | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> VersementAllocations.Normal ()))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=219; start_column=5; end_line=219; end_column=70; @@ -1496,9 +1502,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> + (fun (_: unit) -> VersementAllocations.Normal ()))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=209; start_column=5; end_line=209; end_column=69; @@ -1520,8 +1526,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> VersementAllocations.Normal ()))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> + VersementAllocations.Normal ()))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=189; start_column=5; end_line=189; end_column=60; @@ -1542,8 +1549,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t false | PriseEnCharge.ServicesSociauxAllocationVerseeAuxServicesSociaux _ -> false))) - (fun (_: _) -> VersementAllocations.Normal ()))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> VersementAllocations.Normal ()))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1564,7 +1571,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=145; start_column=11; end_line=145; end_column=32; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=293; start_column=14; end_line=293; end_column=35; law_headings=["Article D521-2"; @@ -1573,7 +1580,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> integer_of_string "3")) + (fun (_: unit) -> integer_of_string "3")) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1589,7 +1596,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=147; start_column=11; end_line=147; end_column=41; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=64; start_column=14; end_line=64; end_column=44; law_headings=["Article R521-1"; @@ -1598,7 +1605,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> integer_of_string "3")) + (fun (_: unit) -> integer_of_string "3")) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1617,20 +1624,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "bmaf.date_courante"] (embed_date) (handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=142; start_column=3; end_line=142; end_column=7; + start_line=159; start_column=14; end_line=159; end_column=32; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=159; start_column=14; end_line=159; end_column=32; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr"; - start_line=5; start_column=10; end_line=5; end_column=23; - law_headings=["Montant de la base mensuelle des allocations familiales"]})) in + {filename = "examples/allocations_familiales/prologue.catala_fr"; + start_line=159; start_column=14; end_line=159; end_column=32; + law_headings=["Allocations familiales"; "Champs d'applications"; + "Prologue"]})) in let result_: BaseMensuelleAllocationsFamilialesOut.t = (log_end_call ["AllocationsFamiliales"; "bmaf"; "BaseMensuelleAllocationsFamiliales"] ((log_begin_call @@ -1645,20 +1653,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (embed_date) (handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=139; start_column=3; end_line=139; end_column=25; + start_line=155; start_column=14; end_line=155; end_column=50; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=155; start_column=14; end_line=155; end_column=50; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> date_courante_)))) + (fun (_: unit) -> date_courante_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=62; start_column=10; end_line=62; end_column=23; - law_headings=["Prestations familiales"; "Champs d'applications"; + start_line=155; start_column=14; end_line=155; end_column=50; + law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]})) in let prestations_familiales_dot_prestation_courante_: ElementPrestationsFamiliales.t = try ((log_variable_definition @@ -1666,20 +1674,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (embed_element_prestations_familiales) (handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=139; start_column=3; end_line=139; end_column=25; + start_line=153; start_column=14; end_line=153; end_column=56; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=153; start_column=14; end_line=153; end_column=56; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> ElementPrestationsFamiliales.AllocationsFamiliales ())))) + (fun (_: unit) -> + ElementPrestationsFamiliales.AllocationsFamiliales ())))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=63; start_column=10; end_line=63; end_column=29; - law_headings=["Prestations familiales"; "Champs d'applications"; + start_line=153; start_column=14; end_line=153; end_column=56; + law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]})) in let prestations_familiales_dot_residence_: Collectivite.t = try ((log_variable_definition @@ -1687,20 +1696,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (embed_collectivite) (handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=139; start_column=3; end_line=139; end_column=25; + start_line=157; start_column=14; end_line=157; end_column=46; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=157; start_column=14; end_line=157; end_column=46; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> residence_)))) + (fun (_: unit) -> residence_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=64; start_column=10; end_line=64; end_column=19; - law_headings=["Prestations familiales"; "Champs d'applications"; + start_line=157; start_column=14; end_line=157; end_column=46; + law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]})) in let result_: PrestationsFamilialesOut.t = (log_end_call ["AllocationsFamiliales"; "prestations_familiales"; @@ -1722,21 +1731,19 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "enfant_le_plus_âgé.enfants"] (embed_array (embed_enfant)) (handle_default - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=141; start_column=3; end_line=141; end_column=21; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=32; start_column=14; end_line=32; end_column=40; + law_headings=["Règles diverses"; "Épilogue"]} ([||]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=32; start_column=14; end_line=32; end_column=40; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> enfants_a_charge_)))) + (fun (_: unit) -> enfants_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=79; start_column=10; end_line=79; end_column=17; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=32; start_column=14; end_line=32; end_column=40; + law_headings=["Règles diverses"; "Épilogue"]})) in let result_: EnfantLePlusAgeOut.t = (log_end_call ["AllocationsFamiliales"; "enfant_le_plus_âgé"; "EnfantLePlusÂgé"] ((log_begin_call @@ -1755,7 +1762,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=146; start_column=11; end_line=146; end_column=38; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=146; start_column=11; @@ -1763,7 +1770,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=83; start_column=19; end_line=83; end_column=69; @@ -1776,9 +1783,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (((param_.Enfant.date_de_naissance) +@ (duration_of_numbers (11) (0) (0))) <=@ (date_of_numbers (2008) (4) (30))))) - (fun (_: _) -> + (fun (_: unit) -> version_avril_2008_dot_age_minimum_alinea_1_l521_3_))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=56; start_column=14; end_line=56; end_column=41; @@ -1788,7 +1795,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> duration_of_numbers (14) (0) (0))) + (fun (_: unit) -> duration_of_numbers (14) (0) (0))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1811,7 +1818,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=95; start_column=11; end_line=95; end_column=61; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=75; start_column=14; end_line=75; end_column=64; law_headings=["Article L512-3"; @@ -1820,7 +1827,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> array_filter (fun (enfant_: _) -> (log_end_call ["PrestationsFamiliales"; "droit_ouvert"] @@ -1849,12 +1856,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ( [||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=33; start_column=14; end_line=33; end_column=36; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> enfant_le_plus_age_dot_le_plus_age_ = param_)) + (fun (_: unit) -> enfant_le_plus_age_dot_le_plus_age_ = param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1875,14 +1882,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=150; start_column=11; end_line=150; end_column=28; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=150; start_column=11; end_line=150; end_column=28; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=150; start_column=11; @@ -1890,7 +1897,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=30; start_column=5; end_line=30; end_column=69; @@ -1900,13 +1907,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2018) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2018) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "7877000") +$ ((money_of_cents_string "562800") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=150; start_column=11; @@ -1914,7 +1921,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=63; start_column=5; end_line=63; end_column=69; @@ -1924,13 +1931,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2019) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2019) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "7955800") +$ ((money_of_cents_string "568400") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=150; start_column=11; @@ -1938,7 +1945,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=96; start_column=5; end_line=96; end_column=69; @@ -1948,13 +1955,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2020) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2020) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "8083100") +$ ((money_of_cents_string "577500") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=150; start_column=11; @@ -1962,7 +1969,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=132; start_column=5; end_line=132; end_column=69; @@ -1973,14 +1980,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2021) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2021) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "8155800") +$ ((money_of_cents_string "582700") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_)))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=313; start_column=14; end_line=313; end_column=31; law_headings=["Article D521-3"; @@ -1989,7 +1996,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "7830000") +$ ((money_of_cents_string "559500") *$ (decimal_of_integer @@ -2009,14 +2016,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=149; start_column=11; end_line=149; end_column=27; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=149; start_column=11; end_line=149; end_column=27; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=149; start_column=11; @@ -2024,7 +2031,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=23; start_column=5; end_line=23; end_column=69; @@ -2034,13 +2041,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2018) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2018) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5628600") +$ ((money_of_cents_string "562800") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=149; start_column=11; @@ -2048,7 +2055,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=56; start_column=5; end_line=56; end_column=69; @@ -2058,13 +2065,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2019) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2019) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5684900") +$ ((money_of_cents_string "568400") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=149; start_column=11; @@ -2072,7 +2079,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=89; start_column=5; end_line=89; end_column=69; @@ -2082,13 +2089,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2020) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2020) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5775900") +$ ((money_of_cents_string "577500") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=149; start_column=11; @@ -2096,7 +2103,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=116; start_column=5; end_line=116; end_column=69; @@ -2107,14 +2114,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2021) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2021) (12) (31)))))) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5827900") +$ ((money_of_cents_string "582700") *$ (decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_)))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=303; start_column=14; end_line=303; end_column=30; law_headings=["Article D521-3"; @@ -2123,7 +2130,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> (money_of_cents_string "5595000") +$ ((money_of_cents_string "559500") *$ (decimal_of_integer @@ -2143,14 +2150,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=132; start_column=11; end_line=132; end_column=34; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=132; start_column=11; end_line=132; end_column=34; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=132; start_column=11; @@ -2158,7 +2165,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=429; start_column=5; end_line=430; end_column=71; @@ -2173,19 +2180,19 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) = (integer_of_string "1"))))) - (fun (_: _) -> false))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=30; start_column=9; end_line=30; end_column=32; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=132; start_column=11; end_line=132; end_column=34; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -2202,14 +2209,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=120; start_column=11; end_line=120; end_column=35; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=120; start_column=11; end_line=120; end_column=35; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=120; start_column=11; @@ -2217,7 +2224,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=423; start_column=6; end_line=424; end_column=72; @@ -2232,8 +2239,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) = (integer_of_string "1"))))) - (fun (_: _) -> false))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=119; start_column=5; end_line=126; end_column=59; @@ -2264,14 +2271,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["PrestationsFamiliales"; "conditions_hors_âge"; "input"] (embed_enfant) param_)))))))))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=120; start_column=11; end_line=120; end_column=35; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -2294,14 +2301,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=117; start_column=11; end_line=117; end_column=64; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=195; start_column=14; end_line=195; end_column=67; law_headings=["Article 7"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! @@ -2327,14 +2334,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=116; start_column=11; end_line=116; end_column=56; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; end_line=116; end_column=56; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2342,7 +2349,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=431; start_column=5; end_line=431; end_column=69; @@ -2354,7 +2361,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2011) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2011) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2362,7 +2369,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0463")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2370,7 +2377,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=439; start_column=5; end_line=439; end_column=69; @@ -2382,7 +2389,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2012) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2012) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2390,7 +2397,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0539")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2398,7 +2405,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=447; start_column=5; end_line=447; end_column=69; @@ -2410,7 +2417,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2013) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2013) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2418,7 +2425,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0615")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2426,7 +2433,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=455; start_column=5; end_line=455; end_column=69; @@ -2438,7 +2445,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2014) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2014) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2446,7 +2453,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.069")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2454,7 +2461,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=463; start_column=5; end_line=463; end_column=69; @@ -2466,7 +2473,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2015) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2015) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2474,7 +2481,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0766")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2482,7 +2489,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=471; start_column=5; end_line=471; end_column=69; @@ -2494,7 +2501,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2016) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2016) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2502,7 +2509,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0842")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2510,7 +2517,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=479; start_column=5; end_line=479; end_column=69; @@ -2522,7 +2529,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2017) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2017) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2530,7 +2537,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0918")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2538,7 +2545,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=487; start_column=5; end_line=487; end_column=69; @@ -2550,7 +2557,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2018) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2018) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2558,7 +2565,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1089")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2566,7 +2573,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=495; start_column=5; end_line=495; end_column=69; @@ -2578,7 +2585,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2019) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2019) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2586,7 +2593,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1259")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=116; start_column=11; @@ -2594,7 +2601,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=503; start_column=5; end_line=503; end_column=69; @@ -2606,7 +2613,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (date_of_numbers (2020) (1) (1))) && (date_courante_ <=@ (date_of_numbers (2020) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2614,15 +2621,15 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.143")) else (money_of_cents_string "0")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=186; start_column=14; end_line=186; end_column=59; law_headings=["Article 7"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! @@ -2643,7 +2650,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=110; start_column=11; end_line=110; end_column=31; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=162; start_column=14; end_line=162; end_column=34; law_headings=["Article R521-3"; @@ -2652,7 +2659,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> decimal_of_integer (array_length enfants_a_charge_droit_ouvert_prestation_familiale_))) @@ -2670,7 +2677,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=109; start_column=11; end_line=109; end_column=31; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=142; start_column=14; end_line=142; end_column=34; law_headings=["Article R521-3"; @@ -2679,7 +2686,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> Array.fold_left (fun (acc_: decimal) (enfant_: _) -> acc_ +& @@ -2713,14 +2720,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=105; start_column=11; end_line=105; end_column=46; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; end_line=105; end_column=46; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2728,7 +2735,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2736,7 +2743,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=251; start_column=5; end_line=252; end_column=53; @@ -2753,7 +2760,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2761,7 +2768,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.145")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2769,7 +2776,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=260; start_column=5; end_line=261; end_column=53; @@ -2786,7 +2793,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2794,7 +2801,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1393")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2802,7 +2809,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=269; start_column=5; end_line=270; end_column=53; @@ -2819,7 +2826,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2827,7 +2834,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1335")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2835,7 +2842,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=278; start_column=5; end_line=279; end_column=53; @@ -2852,7 +2859,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2860,7 +2867,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1278")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2868,7 +2875,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=287; start_column=5; end_line=288; end_column=53; @@ -2885,7 +2892,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2893,7 +2900,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.122")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2901,7 +2908,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=296; start_column=5; end_line=297; end_column=53; @@ -2918,7 +2925,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2926,7 +2933,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1163")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2934,7 +2941,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=305; start_column=5; end_line=306; end_column=53; @@ -2951,7 +2958,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2959,7 +2966,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.1105")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -2967,7 +2974,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=314; start_column=5; end_line=315; end_column=53; @@ -2984,7 +2991,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -2992,7 +2999,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0976")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -3000,7 +3007,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=323; start_column=5; end_line=324; end_column=53; @@ -3017,7 +3024,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3025,7 +3032,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0847")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -3033,7 +3040,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=332; start_column=5; end_line=333; end_column=53; @@ -3050,7 +3057,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3058,7 +3065,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.0717")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -3066,7 +3073,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=341; start_column=5; end_line=341; end_column=49; @@ -3076,16 +3083,16 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((residence_ = (Collectivite.Mayotte ())) && avait_enfant_a_charge_avant_1er_janvier_2012_))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! (integer_of_string "0")) then (money_of_cents_string "5728") else (money_of_cents_string "0")))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=167; start_column=14; end_line=167; end_column=49; @@ -3093,14 +3100,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} (residence_ = (Collectivite.Mayotte ())))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! (integer_of_string "0")) then (bmaf_dot_montant_ *$ (decimal_of_string "0.0588")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=105; start_column=11; @@ -3108,7 +3115,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=364; start_column=5; end_line=365; end_column=71; @@ -3122,9 +3129,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) = (integer_of_string "1"))))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.0588")))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=361; start_column=29; end_line=361; end_column=64; law_headings=["Article D755-5"; @@ -3133,7 +3140,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> money_of_cents_string "0")) + (fun (_: unit) -> money_of_cents_string "0")) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3148,14 +3155,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=103; start_column=11; end_line=103; end_column=28; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=103; start_column=11; end_line=103; end_column=28; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=103; start_column=11; @@ -3163,7 +3170,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=103; start_column=11; @@ -3171,7 +3178,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=103; start_column=11; @@ -3180,7 +3187,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Champs d'applications"; "Prologue"]} ( [||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> + (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=159; start_column=6; end_line=159; end_column=71; @@ -3192,8 +3200,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >=! (integer_of_string "1"))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=409; start_column=5; end_line=410; end_column=72; @@ -3208,10 +3216,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >=! (integer_of_string "1"))))) - (fun (_: _) -> true))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=101; start_column=5; end_line=101; end_column=70; @@ -3223,13 +3231,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Code de la sécurité sociale"]} ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) - >=! (integer_of_string "2")))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + >=! (integer_of_string "2")))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=103; start_column=11; end_line=103; end_column=28; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3246,14 +3254,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=125; start_column=11; end_line=125; end_column=34; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=125; start_column=11; end_line=125; end_column=34; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=125; start_column=11; @@ -3261,7 +3269,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=315; start_column=5; end_line=318; end_column=21; @@ -3291,8 +3299,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "âge_minimum_alinéa_1_l521_3"; "input"] (embed_enfant) param_)))))))) <=@ date_courante_)))) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; start_line=300; start_column=5; end_line=302; end_column=21; @@ -3331,14 +3339,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "âge_minimum_alinéa_1_l521_3"; "input"] (embed_enfant) param_)))))))) <=@ - date_courante_)))) (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + date_courante_)))) (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=125; start_column=11; end_line=125; end_column=34; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} true)) - (fun (_: _) -> false)) + (fun (_: unit) -> false)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3361,14 +3369,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=134; start_column=11; end_line=134; end_column=31; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=134; start_column=11; end_line=134; end_column=31; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=134; start_column=11; @@ -3376,7 +3384,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=165; start_column=5; end_line=166; end_column=68; @@ -3392,13 +3400,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (plafond__i_d521_3_ +$ (param_ *$ (decimal_of_string "12."))))))) - (fun (_: _) -> + (fun (_: unit) -> ((plafond__i_d521_3_ +$ (param_ *$ (decimal_of_string "12."))) -$ ressources_menage_) *$ ((decimal_of_string "1.") /& (decimal_of_string "12.")))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=134; start_column=11; @@ -3406,7 +3414,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=174; start_column=5; end_line=175; end_column=68; @@ -3422,14 +3430,15 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (plafond__i_i_d521_3_ +$ (param_ *$ (decimal_of_string "12."))))))) - (fun (_: _) -> + (fun (_: unit) -> ((plafond__i_i_d521_3_ +$ (param_ *$ (decimal_of_string "12."))) -$ ressources_menage_) *$ ((decimal_of_string "1.") /& (decimal_of_string "12."))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=181; start_column=14; end_line=181; end_column=34; @@ -3439,7 +3448,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> money_of_cents_string "0")) + (fun (_: unit) -> money_of_cents_string "0")) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3461,7 +3470,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=121; start_column=11; end_line=121; end_column=47; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=121; start_column=11; @@ -3469,7 +3478,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=220; start_column=5; end_line=220; end_column=43; @@ -3480,9 +3489,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} (ressources_menage_ <=$ plafond__i_d521_3_))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.20234"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=121; start_column=11; @@ -3490,7 +3499,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=234; start_column=5; end_line=235; end_column=46; @@ -3502,9 +3511,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Code de la sécurité sociale"]} ((ressources_menage_ >$ plafond__i_d521_3_) && (ressources_menage_ <=$ plafond__i_i_d521_3_)))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.10117"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=121; start_column=11; @@ -3512,7 +3521,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=248; start_column=5; end_line=248; end_column=43; @@ -3523,9 +3532,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} (ressources_menage_ >$ plafond__i_i_d521_3_))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.05059")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3541,7 +3550,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=107; start_column=11; end_line=107; end_column=56; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=107; start_column=11; @@ -3549,7 +3558,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=43; start_column=14; end_line=43; end_column=59; @@ -3560,7 +3569,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} (ressources_menage_ <=$ plafond__i_d521_3_))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3571,7 +3580,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t enfants_a_charge_droit_ouvert_prestation_familiale_) -! (integer_of_string "2")))) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=107; start_column=11; @@ -3579,7 +3588,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=84; start_column=14; end_line=84; end_column=59; @@ -3591,7 +3600,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Code de la sécurité sociale"]} ((ressources_menage_ >$ plafond__i_d521_3_) && (ressources_menage_ <=$ plafond__i_i_d521_3_)))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3602,7 +3611,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t enfants_a_charge_droit_ouvert_prestation_familiale_) -! (integer_of_string "2")))) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=107; start_column=11; @@ -3610,7 +3619,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=122; start_column=14; end_line=122; end_column=59; @@ -3621,7 +3630,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} (ressources_menage_ >$ plafond__i_i_d521_3_))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3631,8 +3640,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) -! (integer_of_string "2")))) else - (money_of_cents_string "0")))|]) (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError)) + (money_of_cents_string "0")))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3648,14 +3657,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=106; start_column=11; end_line=106; end_column=47; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; end_line=106; end_column=47; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3663,7 +3672,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3671,7 +3680,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=350; start_column=5; end_line=350; end_column=69; @@ -3685,7 +3694,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2011) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3693,7 +3702,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.232")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3701,7 +3710,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=358; start_column=5; end_line=358; end_column=69; @@ -3715,7 +3724,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2012) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3723,7 +3732,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2379")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3731,7 +3740,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=366; start_column=5; end_line=366; end_column=69; @@ -3745,7 +3754,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2013) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3753,7 +3762,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2437")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3761,7 +3770,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=374; start_column=5; end_line=374; end_column=69; @@ -3775,7 +3784,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2014) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3783,7 +3792,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2496")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3791,7 +3800,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=382; start_column=5; end_line=382; end_column=69; @@ -3805,7 +3814,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2015) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3813,7 +3822,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2555")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3821,7 +3830,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=390; start_column=5; end_line=390; end_column=69; @@ -3835,7 +3844,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2016) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3843,7 +3852,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2613")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3851,7 +3860,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=398; start_column=5; end_line=398; end_column=69; @@ -3865,7 +3874,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2017) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3873,7 +3882,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2672")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3881,7 +3890,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=406; start_column=5; end_line=406; end_column=69; @@ -3895,7 +3904,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2018) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3903,7 +3912,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2804")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3911,7 +3920,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=414; start_column=5; end_line=414; end_column=69; @@ -3925,7 +3934,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2019) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3933,7 +3942,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.2936")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3941,7 +3950,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=422; start_column=5; end_line=422; end_column=69; @@ -3955,7 +3964,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t && (date_courante_ <=@ (date_of_numbers (2020) (12) (31))))))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) @@ -3963,9 +3972,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (bmaf_dot_montant_ *$ (decimal_of_string "0.3068")) else (money_of_cents_string "0")))|]) - (fun (_: _) -> false) - (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=177; start_column=14; end_line=177; end_column=50; @@ -3973,20 +3982,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} (residence_ = (Collectivite.Mayotte ())))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! (integer_of_string "1")) then (bmaf_dot_montant_ *$ (decimal_of_string "0.32")) else - (money_of_cents_string "0")))|]) (fun (_: _) -> true) - (fun (_: _) -> + (money_of_cents_string "0")))|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; end_line=106; end_column=47; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -3994,7 +4004,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=38; start_column=14; end_line=38; end_column=50; @@ -4005,14 +4015,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} (ressources_menage_ <=$ plafond__i_d521_3_))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! (integer_of_string "1")) then (bmaf_dot_montant_ *$ (decimal_of_string "0.32")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -4020,7 +4030,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=79; start_column=14; end_line=79; end_column=50; @@ -4032,14 +4042,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Code de la sécurité sociale"]} ((ressources_menage_ >$ plafond__i_d521_3_) && (ressources_menage_ <=$ plafond__i_i_d521_3_)))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! (integer_of_string "1")) then (bmaf_dot_montant_ *$ (decimal_of_string "0.16")) else (money_of_cents_string "0"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=106; start_column=11; @@ -4047,7 +4057,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=117; start_column=14; end_line=117; end_column=50; @@ -4058,14 +4068,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} (ressources_menage_ >$ plafond__i_i_d521_3_))) - (fun (_: _) -> + (fun (_: unit) -> if ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) >! (integer_of_string "1")) then (bmaf_dot_montant_ *$ (decimal_of_string "0.08")) else (money_of_cents_string "0")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4081,7 +4091,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=108; start_column=11; end_line=108; end_column=38; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=128; start_column=14; end_line=128; end_column=41; law_headings=["Article R521-3"; @@ -4090,7 +4100,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if (nombre_total_enfants_ = (decimal_of_string "0.")) then (decimal_of_string "0.") else (nombre_moyen_enfants_ /& nombre_total_enfants_))) @@ -4111,7 +4121,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=126; start_column=11; end_line=126; end_column=47; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=126; start_column=11; @@ -4119,7 +4129,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=60; start_column=5; end_line=60; end_column=38; @@ -4144,9 +4154,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.16"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=126; start_column=11; @@ -4154,7 +4164,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=101; start_column=5; end_line=101; end_column=38; @@ -4180,9 +4190,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.08"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=126; start_column=11; @@ -4190,7 +4200,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=138; start_column=5; end_line=138; end_column=38; @@ -4215,9 +4225,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.04"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=126; start_column=11; @@ -4225,7 +4235,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=27; start_column=5; end_line=27; end_column=44; @@ -4244,8 +4254,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) - (fun (_: _) -> money_of_cents_string "0"))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError)) + (fun (_: unit) -> money_of_cents_string "0"))|]) + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4266,7 +4276,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=122; start_column=11; end_line=122; end_column=36; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=199; start_column=14; end_line=199; end_column=39; law_headings=["Article D521-2"; @@ -4275,7 +4285,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> montant_verse_forfaitaire_par_enfant_ *$ (decimal_of_integer (Array.fold_left @@ -4311,14 +4321,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=104; start_column=11; end_line=104; end_column=31; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=104; start_column=11; end_line=104; end_column=31; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=104; start_column=11; @@ -4326,7 +4336,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=355; start_column=5; end_line=356; end_column=69; @@ -4341,8 +4351,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((array_length enfants_a_charge_droit_ouvert_prestation_familiale_) = (integer_of_string "1"))))) - (fun (_: _) -> montant_initial_base_premier_enfant_)); - (fun (_: _) -> + (fun (_: unit) -> + montant_initial_base_premier_enfant_)); + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=104; start_column=11; @@ -4350,7 +4361,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/decrets_divers.catala_fr"; start_line=151; start_column=24; end_line=151; end_column=44; @@ -4358,14 +4369,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} (residence_ = (Collectivite.Mayotte ())))) - (fun (_: _) -> + (fun (_: unit) -> ((montant_initial_base_premier_enfant_ +$ montant_initial_base_deuxieme_enfant_) +$ montant_initial_base_troisieme_enfant_mayotte_) +$ montant_initial_base_quatrieme_enfant_et_plus_mayotte_))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=18; start_column=14; end_line=18; end_column=34; law_headings=["Article D521-1"; @@ -4374,7 +4385,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> montant_initial_base_deuxieme_enfant_ +$ montant_initial_base_troisieme_enfant_et_plus_)) with @@ -4393,14 +4404,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=127; start_column=11; end_line=127; end_column=37; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=127; start_column=11; end_line=127; end_column=37; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=127; start_column=11; @@ -4408,7 +4419,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=378; start_column=5; end_line=382; end_column=57; @@ -4445,10 +4456,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t +@ (duration_of_numbers (16) (0) (0))) >@ date_courante_))))))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.0369"))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=127; start_column=11; @@ -4456,7 +4467,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=388; start_column=5; end_line=391; end_column=58; @@ -4489,11 +4500,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t +@ (duration_of_numbers (16) (0) (0))) <=@ date_courante_)))))) - (fun (_: _) -> + (fun (_: unit) -> bmaf_dot_montant_ *$ (decimal_of_string "0.0567")))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) + (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=22; start_column=14; end_line=22; end_column=40; @@ -4503,7 +4515,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> (log_end_call + (fun (_: unit) -> (log_end_call ["AllocationsFamiliales"; "montant_initial_métropole_majoration"] ((log_variable_definition @@ -4538,14 +4550,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=136; start_column=11; end_line=136; end_column=52; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=136; start_column=11; end_line=136; end_column=52; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=136; start_column=11; @@ -4553,7 +4565,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=267; start_column=5; end_line=269; end_column=42; @@ -4568,14 +4580,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (plafond__i_d521_3_ +$ (montant_verse_forfaitaire_ *$ (decimal_of_string "12."))))))) - (fun (_: _) -> + (fun (_: unit) -> ((plafond__i_d521_3_ +$ (montant_verse_forfaitaire_ *$ (decimal_of_string "12."))) -$ ressources_menage_) *$ ((decimal_of_string "1.") /& (decimal_of_string "12.")))); - (fun (_: _) -> + (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=136; start_column=11; @@ -4583,7 +4595,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=277; start_column=5; end_line=279; end_column=41; @@ -4598,15 +4610,15 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t (plafond__i_i_d521_3_ +$ (montant_verse_forfaitaire_ *$ (decimal_of_string "12."))))))) - (fun (_: _) -> + (fun (_: unit) -> ((plafond__i_i_d521_3_ +$ (montant_verse_forfaitaire_ *$ (decimal_of_string "12."))) -$ ressources_menage_) *$ ((decimal_of_string "1.") /& (decimal_of_string "12."))))|]) - (fun (_: _) -> false) (fun (_: _) -> raise EmptyError))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=285; start_column=14; end_line=285; end_column=55; law_headings=["Article D521-2"; @@ -4615,7 +4627,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> money_of_cents_string "0")) + (fun (_: unit) -> money_of_cents_string "0")) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4631,7 +4643,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=111; start_column=11; end_line=111; end_column=43; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=125; start_column=14; end_line=125; end_column=46; law_headings=["Article R521-3"; @@ -4640,7 +4652,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> montant_initial_base_ *$ rapport_enfants_total_moyen_)) + (fun (_: unit) -> + montant_initial_base_ *$ rapport_enfants_total_moyen_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4659,7 +4672,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ( [||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; start_line=188; start_column=5; end_line=188; end_column=43; @@ -4669,7 +4682,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> ((log_end_call ["AllocationsFamiliales"; "montant_initial_majoration"] ((log_variable_definition @@ -4712,11 +4725,11 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=112; start_column=11; end_line=112; end_column=29; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=36; start_column=14; end_line=36; end_column=32; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if droit_ouvert_base_ then montant_avec_garde_alternee_base_ else (money_of_cents_string "0"))) with @@ -4733,11 +4746,11 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=129; start_column=11; end_line=129; end_column=35; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=38; start_column=14; end_line=38; end_column=38; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if droit_ouvert_base_ then (Array.fold_left (fun (acc_: money) (enfant_: _) -> @@ -4771,7 +4784,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=133; start_column=11; end_line=133; end_column=58; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=189; start_column=14; end_line=189; end_column=61; law_headings=["Article D521-1"; @@ -4780,7 +4793,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> montant_verse_base_ +$ montant_verse_majoration_)) + (fun (_: unit) -> montant_verse_base_ +$ montant_verse_majoration_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4796,7 +4809,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=135; start_column=11; end_line=135; end_column=59; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=183; start_column=14; end_line=183; end_column=62; law_headings=["Article D521-1"; @@ -4805,7 +4818,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if droit_ouvert_complement_ then ((log_end_call ["AllocationsFamiliales"; "complément_dégressif"] @@ -4832,11 +4845,11 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=100; start_column=10; end_line=100; end_column=23; law_headings=["Allocations familiales"; "Champs d'applications"; "Prologue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=44; start_column=14; end_line=44; end_column=27; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: _) -> + (fun (_: unit) -> if droit_ouvert_base_ then ((((montant_verse_base_ +$ montant_verse_majoration_) +$ montant_verse_forfaitaire_) +$ @@ -4894,12 +4907,12 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=75; start_column=11; end_line=75; end_column=27; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=116; start_column=14; end_line=116; end_column=30; law_headings=["Article L131-1"; "Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> + (fun (_: unit) -> Array.map (fun (enfant_: _) -> {Enfant.identifiant = (enfant_.EnfantEntree.d_identifiant); @@ -4938,32 +4951,31 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter (embed_bool) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=91; start_column=5; end_line=91; end_column=75; law_headings=["Interface du programme"; "Épilogue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=91; start_column=5; end_line=91; end_column=75; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=92; start_column=18; end_line=92; end_column=67; law_headings=["Interface du programme"; "Épilogue"]} i_personne_charge_effective_permanente_est_parent_)) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=91; start_column=5; end_line=91; end_column=75; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> false)))) + (fun (_: unit) -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=85; start_column=10; end_line=85; end_column=57; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=91; start_column=5; end_line=91; end_column=75; + law_headings=["Interface du programme"; "Épilogue"]})) in let allocations_familiales_dot_personne_charge_effective_permanente_remplit_titre__i_: bool = try ((log_variable_definition ["InterfaceAllocationsFamiliales"; @@ -4971,89 +4983,85 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter (embed_bool) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=95; start_column=5; end_line=95; end_column=80; law_headings=["Interface du programme"; "Épilogue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=95; start_column=5; end_line=95; end_column=80; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=96; start_column=18; end_line=96; end_column=72; law_headings=["Interface du programme"; "Épilogue"]} i_personne_charge_effective_permanente_remplit_titre__i_)) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=95; start_column=5; end_line=95; end_column=80; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> false)))) + (fun (_: unit) -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=86; start_column=10; end_line=86; end_column=62; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=95; start_column=5; end_line=95; end_column=80; + law_headings=["Interface du programme"; "Épilogue"]})) in let allocations_familiales_dot_ressources_menage_: money = try ((log_variable_definition ["InterfaceAllocationsFamiliales"; "allocations_familiales.ressources_ménage"] (embed_money) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=87; start_column=14; end_line=87; end_column=54; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=87; start_column=14; end_line=87; end_column=54; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> i_ressources_menage_)))) + (fun (_: unit) -> i_ressources_menage_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=87; start_column=10; end_line=87; end_column=27; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=87; start_column=14; end_line=87; end_column=54; + law_headings=["Interface du programme"; "Épilogue"]})) in let allocations_familiales_dot_residence_: Collectivite.t = try ((log_variable_definition ["InterfaceAllocationsFamiliales"; "allocations_familiales.résidence"] (embed_collectivite) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=88; start_column=14; end_line=88; end_column=46; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=88; start_column=14; end_line=88; end_column=46; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> i_residence_)))) + (fun (_: unit) -> i_residence_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=88; start_column=10; end_line=88; end_column=19; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=88; start_column=14; end_line=88; end_column=46; + law_headings=["Interface du programme"; "Épilogue"]})) in let allocations_familiales_dot_date_courante_: date = try ((log_variable_definition ["InterfaceAllocationsFamiliales"; "allocations_familiales.date_courante"] (embed_date) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=85; start_column=14; end_line=85; end_column=50; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=85; start_column=14; end_line=85; end_column=50; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> i_date_courante_)))) + (fun (_: unit) -> i_date_courante_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=91; start_column=10; end_line=91; end_column=23; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=85; start_column=14; end_line=85; end_column=50; + law_headings=["Interface du programme"; "Épilogue"]})) in let allocations_familiales_dot_enfants_a_charge_: Enfant.t array = try ((log_variable_definition ["InterfaceAllocationsFamiliales"; @@ -5061,19 +5069,18 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter (embed_array (embed_enfant)) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=86; start_column=14; end_line=86; end_column=53; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=86; start_column=14; end_line=86; end_column=53; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> enfants_a_charge_)))) + (fun (_: unit) -> enfants_a_charge_)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=94; start_column=10; end_line=94; end_column=26; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=86; start_column=14; end_line=86; end_column=53; + law_headings=["Interface du programme"; "Épilogue"]})) in let allocations_familiales_dot_avait_enfant_a_charge_avant_1er_janvier_2012_: bool = try ((log_variable_definition ["InterfaceAllocationsFamiliales"; @@ -5081,32 +5088,31 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter (embed_bool) (handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=99; start_column=5; end_line=99; end_column=72; law_headings=["Interface du programme"; "Épilogue"]} - ([|(fun (_: _) -> + ([|(fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=99; start_column=5; end_line=99; end_column=72; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=100; start_column=18; end_line=100; end_column=64; law_headings=["Interface du programme"; "Épilogue"]} i_avait_enfant_a_charge_avant_1er_janvier_2012_)) - (fun (_: _) -> true))|]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> true))|]) + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; - start_line=76; start_column=3; end_line=76; end_column=25; + start_line=99; start_column=5; end_line=99; end_column=72; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> false)))) + (fun (_: unit) -> false)))) with EmptyError -> (raise (NoValueProvided - {filename = "examples/allocations_familiales/prologue.catala_fr"; - start_line=115; start_column=10; end_line=115; end_column=54; - law_headings=["Allocations familiales"; "Champs d'applications"; - "Prologue"]})) in + {filename = "examples/allocations_familiales/epilogue.catala_fr"; + start_line=99; start_column=5; end_line=99; end_column=72; + law_headings=["Interface du programme"; "Épilogue"]})) in let result_: AllocationsFamilialesOut.t = (log_end_call ["InterfaceAllocationsFamiliales"; "allocations_familiales"; "AllocationsFamiliales"] ((log_begin_call @@ -5134,11 +5140,11 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=79; start_column=10; end_line=79; end_column=25; law_headings=["Interface du programme"; "Épilogue"]} ([||]) - (fun (_: _) -> (log_decision_taken + (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; start_line=89; start_column=14; end_line=89; end_column=29; law_headings=["Interface du programme"; "Épilogue"]} true)) - (fun (_: _) -> allocations_familiales_dot_montant_verse_)) + (fun (_: unit) -> allocations_familiales_dot_montant_verse_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/epilogue.catala_fr"; diff --git a/french_law/python/src/allocations_familiales.py b/french_law/python/src/allocations_familiales.py index 1de84198..f6654d29 100644 --- a/french_law/python/src/allocations_familiales.py +++ b/french_law/python/src/allocations_familiales.py @@ -545,11 +545,11 @@ def smic(smic_in:SmicIn): date_courante = smic_in.date_courante_in residence = smic_in.residence_in try: - def temp_brut_horaire(_:Any): + def temp_brut_horaire(_:Unit): raise EmptyError - def temp_brut_horaire_1(_:Any): + def temp_brut_horaire_1(_:Unit): return False - def temp_brut_horaire_2(_:Any): + def temp_brut_horaire_2(_:Unit): if ((date_courante >= date_of_numbers(2022,5,1)) and ((date_courante <= date_of_numbers(2022,12,31)) and (residence == Collectivite(Collectivite_Code.Mayotte, @@ -557,7 +557,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("819") else: raise EmptyError - def temp_brut_horaire_3(_:Any): + def temp_brut_horaire_3(_:Unit): if ((date_courante >= date_of_numbers(2022,5,1)) and ((date_courante <= date_of_numbers(2022,12,31)) and ((residence == Collectivite(Collectivite_Code.Metropole, @@ -576,7 +576,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("1085") else: raise EmptyError - def temp_brut_horaire_4(_:Any): + def temp_brut_horaire_4(_:Unit): if ((date_courante >= date_of_numbers(2022,1,1)) and ((date_courante <= date_of_numbers(2022,4,30)) and (residence == Collectivite(Collectivite_Code.Mayotte, @@ -584,7 +584,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("798") else: raise EmptyError - def temp_brut_horaire_5(_:Any): + def temp_brut_horaire_5(_:Unit): if ((date_courante >= date_of_numbers(2022,1,1)) and ((date_courante <= date_of_numbers(2022,4,30)) and ((residence == Collectivite(Collectivite_Code.Metropole, @@ -603,7 +603,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("1057") else: raise EmptyError - def temp_brut_horaire_6(_:Any): + def temp_brut_horaire_6(_:Unit): if ((date_courante >= date_of_numbers(2021,1,1)) and ((date_courante <= date_of_numbers(2021,12,31)) and (residence == Collectivite(Collectivite_Code.Mayotte, @@ -611,7 +611,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("774") else: raise EmptyError - def temp_brut_horaire_7(_:Any): + def temp_brut_horaire_7(_:Unit): if ((date_courante >= date_of_numbers(2021,1,1)) and ((date_courante <= date_of_numbers(2021,12,31)) and ((residence == Collectivite(Collectivite_Code.Metropole, @@ -630,7 +630,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("1025") else: raise EmptyError - def temp_brut_horaire_8(_:Any): + def temp_brut_horaire_8(_:Unit): if ((date_courante >= date_of_numbers(2020,1,1)) and ((date_courante <= date_of_numbers(2020,12,31)) and (residence == Collectivite(Collectivite_Code.Mayotte, @@ -638,7 +638,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("766") else: raise EmptyError - def temp_brut_horaire_9(_:Any): + def temp_brut_horaire_9(_:Unit): if ((date_courante >= date_of_numbers(2020,1,1)) and ((date_courante <= date_of_numbers(2020,12,31)) and ((residence == Collectivite(Collectivite_Code.Metropole, @@ -657,7 +657,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("1015") else: raise EmptyError - def temp_brut_horaire_10(_:Any): + def temp_brut_horaire_10(_:Unit): if ((date_courante >= date_of_numbers(2019,1,1)) and ((date_courante <= date_of_numbers(2019,12,31)) and (residence == Collectivite(Collectivite_Code.Mayotte, @@ -665,7 +665,7 @@ def smic(smic_in:SmicIn): return money_of_cents_string("757") else: raise EmptyError - def temp_brut_horaire_11(_:Any): + def temp_brut_horaire_11(_:Unit): if ((date_courante >= date_of_numbers(2019,1,1)) and ((date_courante <= date_of_numbers(2019,12,31)) and ((residence == Collectivite(Collectivite_Code.Metropole, @@ -713,32 +713,32 @@ def smic(smic_in:SmicIn): def base_mensuelle_allocations_familiales(base_mensuelle_allocations_familiales_in:BaseMensuelleAllocationsFamilialesIn): date_courante_1 = base_mensuelle_allocations_familiales_in.date_courante_in try: - def temp_montant(_:Any): + def temp_montant(_:Unit): raise EmptyError - def temp_montant_1(_:Any): + def temp_montant_1(_:Unit): return False - def temp_montant_2(_:Any): + def temp_montant_2(_:Unit): if ((date_courante_1 >= date_of_numbers(2022,4,1)) and (date_courante_1 < date_of_numbers(2023,4,1))): return money_of_cents_string("42228") else: raise EmptyError - def temp_montant_3(_:Any): + def temp_montant_3(_:Unit): if ((date_courante_1 >= date_of_numbers(2021,4,1)) and (date_courante_1 < date_of_numbers(2022,4,1))): return money_of_cents_string("41481") else: raise EmptyError - def temp_montant_4(_:Any): + def temp_montant_4(_:Unit): if ((date_courante_1 >= date_of_numbers(2020,4,1)) and (date_courante_1 < date_of_numbers(2021,4,1))): return money_of_cents_string("41440") else: raise EmptyError - def temp_montant_5(_:Any): + def temp_montant_5(_:Unit): if ((date_courante_1 >= date_of_numbers(2019,4,1)) and (date_courante_1 < date_of_numbers(2020,4,1))): @@ -999,11 +999,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): try: def temp_prise_en_compte(param_2:Enfant): try: - def temp_prise_en_compte_1(_:Any): + def temp_prise_en_compte_1(_:Unit): raise EmptyError - def temp_prise_en_compte_2(_:Any): + def temp_prise_en_compte_2(_:Unit): return False - def temp_prise_en_compte_3(_:Any): + def temp_prise_en_compte_3(_:Unit): try: try: match_arg_6 = param_2.prise_en_charge @@ -1071,7 +1071,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): Unit()) else: raise EmptyError - def temp_prise_en_compte_7(_:Any): + def temp_prise_en_compte_7(_:Unit): match_arg_9 = param_2.prise_en_charge if match_arg_9.code == PriseEnCharge_Code.GardeAlterneePartageAllocations: _ = match_arg_9.value @@ -1092,7 +1092,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return PriseEnCompte(PriseEnCompte_Code.Zero, Unit()) else: raise EmptyError - def temp_prise_en_compte_9(_:Any): + def temp_prise_en_compte_9(_:Unit): match_arg_10 = param_2.prise_en_charge if match_arg_10.code == PriseEnCharge_Code.GardeAlterneePartageAllocations: _ = match_arg_10.value @@ -1145,11 +1145,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): try: def temp_versement(param_3:Enfant): try: - def temp_versement_1(_:Any): + def temp_versement_1(_:Unit): raise EmptyError - def temp_versement_2(_:Any): + def temp_versement_2(_:Unit): return False - def temp_versement_3(_:Any): + def temp_versement_3(_:Unit): try: try: try: @@ -1240,7 +1240,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): Unit()) else: raise EmptyError - def temp_versement_8(_:Any): + def temp_versement_8(_:Unit): match_arg_15 = param_3.prise_en_charge if match_arg_15.code == PriseEnCharge_Code.GardeAlterneePartageAllocations: _ = match_arg_15.value @@ -1445,11 +1445,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): est_enfant_le_plus_age = temp_est_enfant_le_plus_age try: try: - def temp_plafond__i_i_d521_3(_:Any): + def temp_plafond__i_i_d521_3(_:Unit): raise EmptyError - def temp_plafond__i_i_d521_3_1(_:Any): + def temp_plafond__i_i_d521_3_1(_:Unit): return False - def temp_plafond__i_i_d521_3_2(_:Any): + def temp_plafond__i_i_d521_3_2(_:Unit): if ((date_courante_3 >= date_of_numbers(2021,1,1)) and (date_courante_3 <= date_of_numbers(2021,12,31))): @@ -1458,7 +1458,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_integer(list_length(enfants_a_charge_droit_ouvert_prestation_familiale)))) else: raise EmptyError - def temp_plafond__i_i_d521_3_3(_:Any): + def temp_plafond__i_i_d521_3_3(_:Unit): if ((date_courante_3 >= date_of_numbers(2020,1,1)) and (date_courante_3 <= date_of_numbers(2020,12,31))): @@ -1467,7 +1467,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_integer(list_length(enfants_a_charge_droit_ouvert_prestation_familiale)))) else: raise EmptyError - def temp_plafond__i_i_d521_3_4(_:Any): + def temp_plafond__i_i_d521_3_4(_:Unit): if ((date_courante_3 >= date_of_numbers(2019,1,1)) and (date_courante_3 <= date_of_numbers(2019,12,31))): @@ -1476,7 +1476,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_integer(list_length(enfants_a_charge_droit_ouvert_prestation_familiale)))) else: raise EmptyError - def temp_plafond__i_i_d521_3_5(_:Any): + def temp_plafond__i_i_d521_3_5(_:Unit): if ((date_courante_3 >= date_of_numbers(2018,1,1)) and (date_courante_3 <= date_of_numbers(2018,12,31))): @@ -1512,11 +1512,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): plafond__i_i_d521_3 = temp_plafond__i_i_d521_3_6 try: try: - def temp_plafond__i_d521_3(_:Any): + def temp_plafond__i_d521_3(_:Unit): raise EmptyError - def temp_plafond__i_d521_3_1(_:Any): + def temp_plafond__i_d521_3_1(_:Unit): return False - def temp_plafond__i_d521_3_2(_:Any): + def temp_plafond__i_d521_3_2(_:Unit): if ((date_courante_3 >= date_of_numbers(2021,1,1)) and (date_courante_3 <= date_of_numbers(2021,12,31))): @@ -1525,7 +1525,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_integer(list_length(enfants_a_charge_droit_ouvert_prestation_familiale)))) else: raise EmptyError - def temp_plafond__i_d521_3_3(_:Any): + def temp_plafond__i_d521_3_3(_:Unit): if ((date_courante_3 >= date_of_numbers(2020,1,1)) and (date_courante_3 <= date_of_numbers(2020,12,31))): @@ -1534,7 +1534,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_integer(list_length(enfants_a_charge_droit_ouvert_prestation_familiale)))) else: raise EmptyError - def temp_plafond__i_d521_3_4(_:Any): + def temp_plafond__i_d521_3_4(_:Unit): if ((date_courante_3 >= date_of_numbers(2019,1,1)) and (date_courante_3 <= date_of_numbers(2019,12,31))): @@ -1543,7 +1543,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_integer(list_length(enfants_a_charge_droit_ouvert_prestation_familiale)))) else: raise EmptyError - def temp_plafond__i_d521_3_5(_:Any): + def temp_plafond__i_d521_3_5(_:Unit): if ((date_courante_3 >= date_of_numbers(2018,1,1)) and (date_courante_3 <= date_of_numbers(2018,12,31))): @@ -1664,11 +1664,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): montant_initial_base_quatrieme_enfant_et_plus_mayotte = temp_montant_initial_base_quatrieme_enfant_et_plus_mayotte try: try: - def temp_montant_initial_base_troisieme_enfant_mayotte(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte(_:Unit): raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_1(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_1(_:Unit): return False - def temp_montant_initial_base_troisieme_enfant_mayotte_2(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_2(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2020,1,1)) and (date_courante_3 <= @@ -1681,7 +1681,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_3(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_3(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2019,1,1)) and (date_courante_3 <= @@ -1694,7 +1694,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_4(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_4(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2018,1,1)) and (date_courante_3 <= @@ -1707,7 +1707,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_5(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_5(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2017,1,1)) and (date_courante_3 <= @@ -1720,7 +1720,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_6(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_6(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2016,1,1)) and (date_courante_3 <= @@ -1733,7 +1733,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_7(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_7(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2015,1,1)) and (date_courante_3 <= @@ -1746,7 +1746,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_8(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_8(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2014,1,1)) and (date_courante_3 <= @@ -1759,7 +1759,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_9(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_9(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2013,1,1)) and (date_courante_3 <= @@ -1772,7 +1772,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_10(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_10(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2012,1,1)) and (date_courante_3 <= @@ -1785,7 +1785,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_mayotte_11(_:Any): + def temp_montant_initial_base_troisieme_enfant_mayotte_11(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2011,1,1)) and (date_courante_3 <= @@ -1868,24 +1868,24 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): "Prologue"])) nombre_moyen_enfants = temp_nombre_moyen_enfants_2 try: - def temp_montant_initial_base_premier_enfant(_:Any): + def temp_montant_initial_base_premier_enfant(_:Unit): return money_of_cents_string("0") - def temp_montant_initial_base_premier_enfant_1(_:Any): + def temp_montant_initial_base_premier_enfant_1(_:Unit): return True - def temp_montant_initial_base_premier_enfant_2(_:Any): + def temp_montant_initial_base_premier_enfant_2(_:Unit): if (prestations_familiales_dot_regime_outre_mer_l751_1 and (list_length(enfants_a_charge_droit_ouvert_prestation_familiale) == integer_of_string("1"))): return (bmaf_dot_montant * decimal_of_string("0.0588")) else: raise EmptyError - def temp_montant_initial_base_premier_enfant_3(_:Any): + def temp_montant_initial_base_premier_enfant_3(_:Unit): try: - def temp_montant_initial_base_premier_enfant_4(_:Any): + def temp_montant_initial_base_premier_enfant_4(_:Unit): raise EmptyError - def temp_montant_initial_base_premier_enfant_5(_:Any): + def temp_montant_initial_base_premier_enfant_5(_:Unit): return False - def temp_montant_initial_base_premier_enfant_6(_:Any): + def temp_montant_initial_base_premier_enfant_6(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and avait_enfant_a_charge_avant_1er_janvier_2012): @@ -1896,7 +1896,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_7(_:Any): + def temp_montant_initial_base_premier_enfant_7(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2020,1,1)) and @@ -1910,7 +1910,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_8(_:Any): + def temp_montant_initial_base_premier_enfant_8(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2019,1,1)) and @@ -1924,7 +1924,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_9(_:Any): + def temp_montant_initial_base_premier_enfant_9(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2018,1,1)) and @@ -1938,7 +1938,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_10(_:Any): + def temp_montant_initial_base_premier_enfant_10(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2017,1,1)) and @@ -1952,7 +1952,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_11(_:Any): + def temp_montant_initial_base_premier_enfant_11(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2016,1,1)) and @@ -1966,7 +1966,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_12(_:Any): + def temp_montant_initial_base_premier_enfant_12(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2015,1,1)) and @@ -1980,7 +1980,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_13(_:Any): + def temp_montant_initial_base_premier_enfant_13(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2014,1,1)) and @@ -1994,7 +1994,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_14(_:Any): + def temp_montant_initial_base_premier_enfant_14(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2013,1,1)) and @@ -2008,7 +2008,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_15(_:Any): + def temp_montant_initial_base_premier_enfant_15(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2012,1,1)) and @@ -2022,7 +2022,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_premier_enfant_16(_:Any): + def temp_montant_initial_base_premier_enfant_16(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2011,1,1)) and @@ -2165,11 +2165,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): def temp_complement_degressif(param_8:Money): try: try: - def temp_complement_degressif_1(_:Any): + def temp_complement_degressif_1(_:Unit): raise EmptyError - def temp_complement_degressif_2(_:Any): + def temp_complement_degressif_2(_:Unit): return False - def temp_complement_degressif_3(_:Any): + def temp_complement_degressif_3(_:Unit): if ((ressources_menage > plafond__i_i_d521_3) and (ressources_menage <= (plafond__i_i_d521_3 + (param_8 * @@ -2181,7 +2181,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_string("12."))) else: raise EmptyError - def temp_complement_degressif_4(_:Any): + def temp_complement_degressif_4(_:Unit): if ((ressources_menage > plafond__i_d521_3) and (ressources_menage <= (plafond__i_d521_3 + (param_8 * @@ -2223,24 +2223,24 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): "Prologue"])) complement_degressif = temp_complement_degressif try: - def temp_montant_verse_forfaitaire_par_enfant(_:Any): + def temp_montant_verse_forfaitaire_par_enfant(_:Unit): raise EmptyError - def temp_montant_verse_forfaitaire_par_enfant_1(_:Any): + def temp_montant_verse_forfaitaire_par_enfant_1(_:Unit): return False - def temp_montant_verse_forfaitaire_par_enfant_2(_:Any): + def temp_montant_verse_forfaitaire_par_enfant_2(_:Unit): if (ressources_menage > plafond__i_i_d521_3): return (bmaf_dot_montant * decimal_of_string("0.05059")) else: raise EmptyError - def temp_montant_verse_forfaitaire_par_enfant_3(_:Any): + def temp_montant_verse_forfaitaire_par_enfant_3(_:Unit): if ((ressources_menage > plafond__i_d521_3) and (ressources_menage <= plafond__i_i_d521_3)): return (bmaf_dot_montant * decimal_of_string("0.10117")) else: raise EmptyError - def temp_montant_verse_forfaitaire_par_enfant_4(_:Any): + def temp_montant_verse_forfaitaire_par_enfant_4(_:Unit): if (ressources_menage <= plafond__i_d521_3): return (bmaf_dot_montant * decimal_of_string("0.20234")) @@ -2265,11 +2265,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): "Prologue"])) montant_verse_forfaitaire_par_enfant = temp_montant_verse_forfaitaire_par_enfant_5 try: - def temp_montant_initial_base_troisieme_enfant_et_plus(_:Any): + def temp_montant_initial_base_troisieme_enfant_et_plus(_:Unit): raise EmptyError - def temp_montant_initial_base_troisieme_enfant_et_plus_1(_:Any): + def temp_montant_initial_base_troisieme_enfant_et_plus_1(_:Unit): return False - def temp_montant_initial_base_troisieme_enfant_et_plus_2(_:Any): + def temp_montant_initial_base_troisieme_enfant_et_plus_2(_:Unit): if (ressources_menage > plafond__i_i_d521_3): if (list_length(enfants_a_charge_droit_ouvert_prestation_familiale) > @@ -2282,7 +2282,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_et_plus_3(_:Any): + def temp_montant_initial_base_troisieme_enfant_et_plus_3(_:Unit): if ((ressources_menage > plafond__i_d521_3) and (ressources_menage <= plafond__i_i_d521_3)): @@ -2295,7 +2295,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_troisieme_enfant_et_plus_4(_:Any): + def temp_montant_initial_base_troisieme_enfant_et_plus_4(_:Unit): if (ressources_menage <= plafond__i_d521_3): if (list_length(enfants_a_charge_droit_ouvert_prestation_familiale) > @@ -2328,11 +2328,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): try: try: try: - def temp_montant_initial_base_deuxieme_enfant(_:Any): + def temp_montant_initial_base_deuxieme_enfant(_:Unit): raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_1(_:Any): + def temp_montant_initial_base_deuxieme_enfant_1(_:Unit): return False - def temp_montant_initial_base_deuxieme_enfant_2(_:Any): + def temp_montant_initial_base_deuxieme_enfant_2(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2020,1,1)) and @@ -2346,7 +2346,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_3(_:Any): + def temp_montant_initial_base_deuxieme_enfant_3(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2019,1,1)) and @@ -2360,7 +2360,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_4(_:Any): + def temp_montant_initial_base_deuxieme_enfant_4(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2018,1,1)) and @@ -2374,7 +2374,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_5(_:Any): + def temp_montant_initial_base_deuxieme_enfant_5(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2017,1,1)) and @@ -2388,7 +2388,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_6(_:Any): + def temp_montant_initial_base_deuxieme_enfant_6(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2016,1,1)) and @@ -2402,7 +2402,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_7(_:Any): + def temp_montant_initial_base_deuxieme_enfant_7(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2015,1,1)) and @@ -2416,7 +2416,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_8(_:Any): + def temp_montant_initial_base_deuxieme_enfant_8(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2014,1,1)) and @@ -2430,7 +2430,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_9(_:Any): + def temp_montant_initial_base_deuxieme_enfant_9(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2013,1,1)) and @@ -2444,7 +2444,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_10(_:Any): + def temp_montant_initial_base_deuxieme_enfant_10(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2012,1,1)) and @@ -2458,7 +2458,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_11(_:Any): + def temp_montant_initial_base_deuxieme_enfant_11(_:Unit): if ((residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())) and ((date_courante_3 >= date_of_numbers(2011,1,1)) and @@ -2503,11 +2503,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): temp_montant_initial_base_deuxieme_enfant_12 = dead_value raise EmptyError except EmptyError: - def temp_montant_initial_base_deuxieme_enfant_13(_:Any): + def temp_montant_initial_base_deuxieme_enfant_13(_:Unit): raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_14(_:Any): + def temp_montant_initial_base_deuxieme_enfant_14(_:Unit): return False - def temp_montant_initial_base_deuxieme_enfant_15(_:Any): + def temp_montant_initial_base_deuxieme_enfant_15(_:Unit): if (ressources_menage > plafond__i_i_d521_3): if (list_length(enfants_a_charge_droit_ouvert_prestation_familiale) > @@ -2517,7 +2517,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_16(_:Any): + def temp_montant_initial_base_deuxieme_enfant_16(_:Unit): if ((ressources_menage > plafond__i_d521_3) and (ressources_menage <= plafond__i_i_d521_3)): @@ -2528,7 +2528,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_base_deuxieme_enfant_17(_:Any): + def temp_montant_initial_base_deuxieme_enfant_17(_:Unit): if (ressources_menage <= plafond__i_d521_3): if (list_length(enfants_a_charge_droit_ouvert_prestation_familiale) > @@ -2576,29 +2576,29 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): try: def temp_montant_initial_metropole_majoration(param_9:Enfant): try: - def temp_montant_initial_metropole_majoration_1(_:Any): + def temp_montant_initial_metropole_majoration_1(_:Unit): raise EmptyError - def temp_montant_initial_metropole_majoration_2(_:Any): + def temp_montant_initial_metropole_majoration_2(_:Unit): return False - def temp_montant_initial_metropole_majoration_3(_:Any): + def temp_montant_initial_metropole_majoration_3(_:Unit): if not droit_ouvert_majoration(param_9): return money_of_cents_string("0") else: raise EmptyError - def temp_montant_initial_metropole_majoration_4(_:Any): + def temp_montant_initial_metropole_majoration_4(_:Unit): if ((ressources_menage > plafond__i_i_d521_3) and droit_ouvert_majoration(param_9)): return (bmaf_dot_montant * decimal_of_string("0.04")) else: raise EmptyError - def temp_montant_initial_metropole_majoration_5(_:Any): + def temp_montant_initial_metropole_majoration_5(_:Unit): if (((ressources_menage > plafond__i_d521_3) and (ressources_menage <= plafond__i_i_d521_3)) and droit_ouvert_majoration(param_9)): return (bmaf_dot_montant * decimal_of_string("0.08")) else: raise EmptyError - def temp_montant_initial_metropole_majoration_6(_:Any): + def temp_montant_initial_metropole_majoration_6(_:Unit): if ((ressources_menage <= plafond__i_d521_3) and droit_ouvert_majoration(param_9)): return (bmaf_dot_montant * decimal_of_string("0.16")) @@ -2654,11 +2654,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): montant_verse_forfaitaire = temp_montant_verse_forfaitaire_1 try: try: - def temp_montant_initial_base(_:Any): + def temp_montant_initial_base(_:Unit): raise EmptyError - def temp_montant_initial_base_1(_:Any): + def temp_montant_initial_base_1(_:Unit): return False - def temp_montant_initial_base_2(_:Any): + def temp_montant_initial_base_2(_:Unit): if (residence_2 == Collectivite(Collectivite_Code.Mayotte, Unit())): return (((montant_initial_base_premier_enfant + @@ -2667,7 +2667,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): montant_initial_base_quatrieme_enfant_et_plus_mayotte) else: raise EmptyError - def temp_montant_initial_base_3(_:Any): + def temp_montant_initial_base_3(_:Unit): if (prestations_familiales_dot_regime_outre_mer_l751_1 and (list_length(enfants_a_charge_droit_ouvert_prestation_familiale) == integer_of_string("1"))): @@ -2700,11 +2700,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): def temp_montant_initial_majoration(param_10:Enfant): try: try: - def temp_montant_initial_majoration_1(_:Any): + def temp_montant_initial_majoration_1(_:Unit): raise EmptyError - def temp_montant_initial_majoration_2(_:Any): + def temp_montant_initial_majoration_2(_:Unit): return False - def temp_montant_initial_majoration_3(_:Any): + def temp_montant_initial_majoration_3(_:Unit): if (droit_ouvert_majoration(param_10) and (prestations_familiales_dot_regime_outre_mer_l751_1 and ((list_length(enfants_a_charge_droit_ouvert_prestation_familiale) == @@ -2716,7 +2716,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): decimal_of_string("0.0567")) else: raise EmptyError - def temp_montant_initial_majoration_4(_:Any): + def temp_montant_initial_majoration_4(_:Unit): if (droit_ouvert_majoration(param_10) and (prestations_familiales_dot_regime_outre_mer_l751_1 and ((list_length(enfants_a_charge_droit_ouvert_prestation_familiale) == @@ -2762,11 +2762,11 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): montant_initial_majoration = temp_montant_initial_majoration try: try: - def temp_montant_verse_complement_pour_forfaitaire(_:Any): + def temp_montant_verse_complement_pour_forfaitaire(_:Unit): raise EmptyError - def temp_montant_verse_complement_pour_forfaitaire_1(_:Any): + def temp_montant_verse_complement_pour_forfaitaire_1(_:Unit): return False - def temp_montant_verse_complement_pour_forfaitaire_2(_:Any): + def temp_montant_verse_complement_pour_forfaitaire_2(_:Unit): if ((ressources_menage > plafond__i_i_d521_3) and (ressources_menage <= (plafond__i_i_d521_3 + (montant_verse_forfaitaire * @@ -2777,7 +2777,7 @@ def allocations_familiales(allocations_familiales_in:AllocationsFamilialesIn): (decimal_of_string("1.") / decimal_of_string("12."))) else: raise EmptyError - def temp_montant_verse_complement_pour_forfaitaire_3(_:Any): + def temp_montant_verse_complement_pour_forfaitaire_3(_:Unit): if ((ressources_menage > plafond__i_d521_3) and (ressources_menage <= (plafond__i_d521_3 + (montant_verse_forfaitaire * diff --git a/tests/test_scope/good/191_fix_record_name_confusion.catala_en b/tests/test_scope/good/191_fix_record_name_confusion.catala_en index 9ae903a2..ad2d1b76 100644 --- a/tests/test_scope/good/191_fix_record_name_confusion.catala_en +++ b/tests/test_scope/good/191_fix_record_name_confusion.catala_en @@ -48,14 +48,14 @@ let scope_a (scope_a_in: ScopeAIn.t) : ScopeAOut.t = (handle_default {filename = "tests/test_scope/good/191_fix_record_name_confusion.catala_en"; start_line=5; start_column=18; end_line=5; end_column=19; - law_headings=["Article"]} ([|(fun (_: _) -> a_ ())|]) - (fun (_: _) -> true) - (fun (_: _) -> + law_headings=["Article"]} ([|(fun (_: unit) -> a_ ())|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "tests/test_scope/good/191_fix_record_name_confusion.catala_en"; start_line=5; start_column=18; end_line=5; end_column=19; - law_headings=["Article"]} ([||]) (fun (_: _) -> true) - (fun (_: _) -> true))) + law_headings=["Article"]} ([||]) (fun (_: unit) -> true) + (fun (_: unit) -> true))) with EmptyError -> (raise (NoValueProvided {filename = "tests/test_scope/good/191_fix_record_name_confusion.catala_en"; @@ -73,14 +73,14 @@ let scope_b (scope_b_in: ScopeBIn.t) : ScopeBOut.t = (handle_default {filename = "tests/test_scope/good/191_fix_record_name_confusion.catala_en"; start_line=8; start_column=11; end_line=8; end_column=12; - law_headings=["Article"]} ([|(fun (_: _) -> a_ ())|]) - (fun (_: _) -> true) - (fun (_: _) -> + law_headings=["Article"]} ([|(fun (_: unit) -> a_ ())|]) + (fun (_: unit) -> true) + (fun (_: unit) -> handle_default {filename = "tests/test_scope/good/191_fix_record_name_confusion.catala_en"; start_line=8; start_column=11; end_line=8; end_column=12; - law_headings=["Article"]} ([||]) (fun (_: _) -> true) - (fun (_: _) -> scope_a_dot_a_))) + law_headings=["Article"]} ([||]) (fun (_: unit) -> true) + (fun (_: unit) -> scope_a_dot_a_))) with EmptyError -> (raise (NoValueProvided {filename = "tests/test_scope/good/191_fix_record_name_confusion.catala_en"; diff --git a/tests/test_scope/good/simple.catala_en b/tests/test_scope/good/simple.catala_en index e37dc90d..513a2bcc 100644 --- a/tests/test_scope/good/simple.catala_en +++ b/tests/test_scope/good/simple.catala_en @@ -14,7 +14,7 @@ let Foo = λ (Foo_in_27: Foo_in{}) → let bar_28 : integer = try - handle_default_0 [] (λ (__29: any) → true) (λ (__30: any) → 0) - with EmptyError -> raise NoValueProvided in + handle_default_0 [] (λ (__29: unit) → true) + (λ (__30: unit) → 0) with EmptyError -> raise NoValueProvided in Foo_out {"bar_out"= bar_28} ``` From 0bb9cce3410762067ed6e043212fd6cc8e9c89d0 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 12 Sep 2022 17:23:44 +0200 Subject: [PATCH 14/52] Simplify a few mark operations --- compiler/dcalc/interpreter.ml | 5 ++- compiler/lcalc/ast.ml | 4 +-- compiler/lcalc/compile_without_exceptions.ml | 37 +++++++++----------- compiler/scopelang/scope_to_dcalc.ml | 9 +---- 4 files changed, 21 insertions(+), 34 deletions(-) diff --git a/compiler/dcalc/interpreter.ml b/compiler/dcalc/interpreter.ml index e68086c6..241b4858 100644 --- a/compiler/dcalc/interpreter.ml +++ b/compiler/dcalc/interpreter.ml @@ -491,8 +491,7 @@ let interpret_program : (fun (_, ty) -> match Marked.unmark ty with | TArrow ((TLit TUnit, _), ty_in) -> - Expr.empty_thunked_term - (Expr.map_mark (fun pos -> pos) (fun _ -> ty_in) mark_e) + Expr.empty_thunked_term (Expr.with_ty mark_e ty_in) | _ -> Errors.raise_spanned_error (Marked.get_mark ty) "This scope needs input arguments to be executed. But the Catala \ @@ -512,7 +511,7 @@ let interpret_program : | a :: _ -> Expr.pos a | [] -> Pos.no_pos in - Expr.map_mark (fun _ -> pos) (fun _ -> targs) mark_e ); + Expr.with_ty mark_e ~pos targs ); ] ), Expr.map_mark (fun pos -> pos) diff --git a/compiler/lcalc/ast.ml b/compiler/lcalc/ast.ml index b79774d0..cfd7ba57 100644 --- a/compiler/lcalc/ast.ml +++ b/compiler/lcalc/ast.ml @@ -39,9 +39,7 @@ let make_none m = Bindlib.box @@ mark @@ EInj - ( Marked.mark - (Expr.map_mark (fun pos -> pos) (fun _ -> tunit) m) - (ELit LUnit), + ( Marked.mark (Expr.with_ty m tunit) (ELit LUnit), 0, option_enum, [TLit TUnit, Pos.no_pos; TAny, Pos.no_pos] ) diff --git a/compiler/lcalc/compile_without_exceptions.ml b/compiler/lcalc/compile_without_exceptions.ml index d878ee7a..1e43a1fe 100644 --- a/compiler/lcalc/compile_without_exceptions.ml +++ b/compiler/lcalc/compile_without_exceptions.ml @@ -43,11 +43,10 @@ module A = Ast open Shared_ast type 'm hoists = ('m A.expr, 'm D.expr) Var.Map.t -(** Hoists definition. It represent bindings between [A.Var.t] and - [D.naked_expr]. *) +(** Hoists definition. It represent bindings between [A.Var.t] and [D.expr]. *) type 'm info = { - naked_expr : 'm A.expr Bindlib.box; + expr : 'm A.expr Bindlib.box; var : 'm A.expr Var.t; is_pure : bool; } @@ -104,7 +103,7 @@ let add_var (is_pure : bool) (ctx : 'm ctx) : 'm ctx = let new_var = Var.make (Bindlib.name_of var) in - let naked_expr = Expr.make_var (new_var, mark) in + let expr = Expr.make_var (new_var, mark) in (* Cli.debug_print @@ Format.asprintf "D.%a |-> A.%a" Print.var var Print.var new_var; *) @@ -112,7 +111,7 @@ let add_var ctx with vars = Var.Map.update var - (fun _ -> Some { naked_expr; var = new_var; is_pure }) + (fun _ -> Some { expr; var = new_var; is_pure }) ctx.vars; } @@ -174,7 +173,7 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : (* Cli.debug_print @@ Format.asprintf "Found an unpure variable %a, created a variable %a to replace it" Print.var v Print.var v'; *) Expr.make_var (v', mark), Var.Map.singleton v' e - else (find ~info:"should never happen" v ctx).naked_expr, Var.Map.empty + else (find ~info:"should never happen" v ctx).expr, Var.Map.empty | EApp ((EVar v, p), [(ELit LUnit, _)]) -> if not (find ~info:"search for a variable" v ctx).is_pure then let v' = Var.make (Bindlib.name_of v) in @@ -309,7 +308,7 @@ and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : match hoist with (* Here we have to handle only the cases appearing in hoists, as defined the [translate_and_hoist] function. *) - | EVar v -> (find ~info:"should never happen" v ctx).naked_expr + | EVar v -> (find ~info:"should never happen" v ctx).expr | EDefault (excep, just, cons) -> let excep' = List.map (translate_expr ctx) excep in let just' = translate_expr ctx just in @@ -376,12 +375,12 @@ let rec translate_scope_let (ctx : 'm ctx) (lets : 'm D.expr scope_body_expr) : } -> (* special case : the subscope variable is thunked (context i/o). We remove this thunking. *) - let _, naked_expr = Bindlib.unmbind binder in + let _, expr = Bindlib.unmbind binder in let var_is_pure = true in let var, next = Bindlib.unbind next in (* Cli.debug_print @@ Format.asprintf "unbinding %a" Print.var var; *) - let vmark = Expr.map_mark (fun _ -> pos) (fun _ -> typ) emark in + let vmark = Expr.with_ty emark ~pos typ in let ctx' = add_var vmark var var_is_pure ctx in let new_var = (find ~info:"variable that was just created" var ctx').var in let new_next = translate_scope_let ctx' next in @@ -395,13 +394,13 @@ let rec translate_scope_let (ctx : 'm ctx) (lets : 'm D.expr scope_body_expr) : scope_let_next = new_next; scope_let_pos = pos; }) - (translate_expr ctx ~append_esome:false naked_expr) + (translate_expr ctx ~append_esome:false expr) (Bindlib.bind_var new_var new_next) | ScopeLet { scope_let_kind = SubScopeVarDefinition; scope_let_typ = typ; - scope_let_expr = (ErrorOnEmpty _, emark) as naked_expr; + scope_let_expr = (ErrorOnEmpty _, emark) as expr; scope_let_next = next; scope_let_pos = pos; } -> @@ -409,7 +408,7 @@ let rec translate_scope_let (ctx : 'm ctx) (lets : 'm D.expr scope_body_expr) : let var_is_pure = true in let var, next = Bindlib.unbind next in (* Cli.debug_print @@ Format.asprintf "unbinding %a" Print.var var; *) - let vmark = Expr.map_mark (fun _ -> pos) (fun _ -> typ) emark in + let vmark = Expr.with_ty emark ~pos typ in let ctx' = add_var vmark var var_is_pure ctx in let new_var = (find ~info:"variable that was just created" var ctx').var in Bindlib.box_apply2 @@ -422,25 +421,25 @@ let rec translate_scope_let (ctx : 'm ctx) (lets : 'm D.expr scope_body_expr) : scope_let_next = new_next; scope_let_pos = pos; }) - (translate_expr ctx ~append_esome:false naked_expr) + (translate_expr ctx ~append_esome:false expr) (Bindlib.bind_var new_var (translate_scope_let ctx' next)) | ScopeLet { scope_let_kind = SubScopeVarDefinition; scope_let_pos = pos; - scope_let_expr = naked_expr; + scope_let_expr = expr; _; } -> Errors.raise_spanned_error pos "Internal Error: found an SubScopeVarDefinition that does not satisfy \ the invariants when translating Dcalc to Lcalc without exceptions: \ @[%a@]" - (Expr.format ctx.decl_ctx) naked_expr + (Expr.format ctx.decl_ctx) expr | ScopeLet { scope_let_kind = kind; scope_let_typ = typ; - scope_let_expr = naked_expr; + scope_let_expr = expr; scope_let_next = next; scope_let_pos = pos; } -> @@ -460,9 +459,7 @@ let rec translate_scope_let (ctx : 'm ctx) (lets : 'm D.expr scope_body_expr) : in let var, next = Bindlib.unbind next in (* Cli.debug_print @@ Format.asprintf "unbinding %a" Print.var var; *) - let vmark = - Expr.map_mark (fun _ -> pos) (fun _ -> typ) (Marked.get_mark naked_expr) - in + let vmark = Expr.with_ty (Marked.get_mark expr) ~pos typ in let ctx' = add_var vmark var var_is_pure ctx in let new_var = (find ~info:"variable that was just created" var ctx').var in Bindlib.box_apply2 @@ -475,7 +472,7 @@ let rec translate_scope_let (ctx : 'm ctx) (lets : 'm D.expr scope_body_expr) : scope_let_next = new_next; scope_let_pos = pos; }) - (translate_expr ctx ~append_esome:false naked_expr) + (translate_expr ctx ~append_esome:false expr) (Bindlib.bind_var new_var (translate_scope_let ctx' next)) let translate_scope_body diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 493ea26c..e2440bfe 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -73,14 +73,7 @@ let merge_defaults let m = Marked.get_mark (Bindlib.unbox caller) in let pos = Expr.mark_pos m in Expr.make_app caller - [ - Bindlib.box - ( ELit LUnit, - Expr.map_mark - (fun _ -> pos) - (fun _ -> Marked.mark pos (TLit TUnit)) - m ); - ] + [Bindlib.box (ELit LUnit, Expr.with_ty m (Marked.mark pos (TLit TUnit)))] pos in let body = From b37a6c37031a46a96e0ac649411b8f3f007ec4a5 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 13 Sep 2022 15:20:13 +0200 Subject: [PATCH 15/52] Generalise the typer This moves dcalc/typing.ml to shared_ast, and generalises the input type, but without yet implementing the extra cases (these are all `assert false`): it's just a first step. --- compiler/driver.ml | 2 +- compiler/shared_ast/definitions.ml | 2 +- compiler/shared_ast/shared_ast.ml | 1 + compiler/{dcalc => shared_ast}/typing.ml | 174 +++++++++++----------- compiler/{dcalc => shared_ast}/typing.mli | 13 +- 5 files changed, 101 insertions(+), 91 deletions(-) rename compiler/{dcalc => shared_ast}/typing.ml (85%) rename compiler/{dcalc => shared_ast}/typing.mli (78%) diff --git a/compiler/driver.ml b/compiler/driver.ml index a8edcc36..ee41a9e6 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -219,7 +219,7 @@ let driver source_file (options : Cli.options) : int = | ( `Interpret | `Typecheck | `OCaml | `Python | `Scalc | `Lcalc | `Proof | `Plugin _ ) as backend -> ( Cli.debug_print "Typechecking..."; - let prgm = Dcalc.Typing.infer_types_program prgm in + let prgm = Shared_ast.Typing.infer_types_program prgm in (* Cli.debug_print (Format.asprintf "Typechecking results :@\n%a" (Print.typ prgm.decl_ctx) typ); *) match backend with diff --git a/compiler/shared_ast/definitions.ml b/compiler/shared_ast/definitions.ml index 8d1e3d4e..4f31dbff 100644 --- a/compiler/shared_ast/definitions.ml +++ b/compiler/shared_ast/definitions.ml @@ -264,7 +264,7 @@ type typed = { pos : Pos.t; ty : typ } type _ mark = Untyped : untyped -> untyped mark | Typed : typed -> typed mark (** Useful for errors and printing, for example *) -type any_expr = AnyExpr : (_ any, _ mark) gexpr -> any_expr +type any_expr = AnyExpr : (_, _ mark) gexpr -> any_expr (** {2 Higher-level program structure} *) diff --git a/compiler/shared_ast/shared_ast.ml b/compiler/shared_ast/shared_ast.ml index 5d858f08..1a170742 100644 --- a/compiler/shared_ast/shared_ast.ml +++ b/compiler/shared_ast/shared_ast.ml @@ -20,3 +20,4 @@ module Expr = Expr module Scope = Scope module Program = Program module Print = Print +module Typing = Typing diff --git a/compiler/dcalc/typing.ml b/compiler/shared_ast/typing.ml similarity index 85% rename from compiler/dcalc/typing.ml rename to compiler/shared_ast/typing.ml index 140ae8ad..304b6c84 100644 --- a/compiler/dcalc/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -18,7 +18,7 @@ inference using the classical W algorithm with union-find unification. *) open Utils -module A = Shared_ast +module A = Definitions module Any = Utils.Uid.Make @@ -33,8 +33,8 @@ module Any = () type unionfind_typ = naked_typ Marked.pos UnionFind.elem -(** We do not reuse {!type: Dcalc.Ast.naked_typ} because we have to include a - new [TAny] variant. Indeed, error terms can have any type and this has to be +(** We do not reuse {!type: Shared_ast.typ} because we have to include a new + [TAny] variant. Indeed, error terms can have any type and this has to be captured by the type sytem. *) and naked_typ = @@ -90,7 +90,7 @@ let rec format_typ in let naked_typ = UnionFind.get (UnionFind.find naked_typ) in match Marked.unmark naked_typ with - | TLit l -> Format.fprintf fmt "%a" A.Print.tlit l + | TLit l -> Format.fprintf fmt "%a" Print.tlit l | TTuple ts -> Format.fprintf fmt "@[(%a)]" (Format.pp_print_list @@ -195,6 +195,17 @@ let handle_type_error ctx e t1 t2 = (Cli.format_with_style [ANSITerminal.blue; ANSITerminal.Bold]) "-->" t2_s () +let lit_type (type a) (lit : a A.glit) : naked_typ = + match lit with + | LBool _ -> TLit TBool + | LInt _ -> TLit TInt + | LRat _ -> TLit TRat + | LMoney _ -> TLit TMoney + | LDate _ -> TLit TDate + | LDuration _ -> TLit TDuration + | LUnit -> TLit TUnit + | LEmptyError -> TAny (Any.fresh ()) + (** Operators have a single type, instead of being polymorphic with constraints. This allows us to have a simpler type system, while we argue the syntactic burden of operator annotations helps the programmer visualize the type flow @@ -265,9 +276,9 @@ let op_type (op : A.operator Marked.pos) : unionfind_typ = (** {1 Double-directed typing} *) -type 'e env = ('e, unionfind_typ) A.Var.Map.t +type 'e env = ('e, unionfind_typ) Var.Map.t -let add_pos e ty = Marked.mark (A.Expr.pos e) ty +let add_pos e ty = Marked.mark (Expr.pos e) ty let ty (_, { uf; _ }) = uf let ( let+ ) x f = Bindlib.box_apply f x let ( and+ ) x1 x2 = Bindlib.box_pair x1 x2 @@ -293,41 +304,40 @@ let bmap2 (f : 'a -> 'b -> 'c Bindlib.box) (es : 'a list) (xs : 'b list) : let box_ty e = Bindlib.unbox (Bindlib.box_apply ty e) (** Infers the most permissive type from an expression *) -let rec typecheck_expr_bottom_up - (ctx : A.decl_ctx) - (env : 'm Ast.expr env) - (e : 'm Ast.expr) : (A.dcalc, mark) A.gexpr Bindlib.box = +let rec typecheck_expr_bottom_up : + type a. + A.decl_ctx -> + (a, 'm A.mark) A.gexpr env -> + (a, 'm A.mark) A.gexpr -> + (a, mark) A.gexpr A.box = + fun ctx env e -> (* Cli.debug_format "Looking for type of %a" (Expr.format ~debug:true ctx) e; *) - let pos_e = A.Expr.pos e in - let mark (e : (A.dcalc, mark) A.naked_gexpr) uf = - Marked.mark { uf; pos = pos_e } e - in + let pos_e = Expr.pos e in + let mark e uf = Marked.mark { uf; pos = pos_e } e in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in let mark_with_uf e1 ?pos ty = mark e1 (unionfind_make ?pos ty) in match Marked.unmark e with + | A.ELocation _ -> assert false + | A.EStruct _ -> assert false + | A.EStructAccess _ -> assert false + | A.EEnumInj _ -> assert false + | A.EMatchS _ -> assert false + | A.ERaise _ -> assert false + | A.ECatch _ -> assert false | A.EVar v -> begin - match A.Var.Map.find_opt v env with + match Var.Map.find_opt v env with | Some t -> - let+ v' = Bindlib.box_var (A.Var.translate v) in + let+ v' = Bindlib.box_var (Var.translate v) in mark v' t | None -> - Errors.raise_spanned_error (A.Expr.pos e) + Errors.raise_spanned_error (Expr.pos e) "Variable %s not found in the current context." (Bindlib.name_of v) end - | A.ELit (LBool _) as e1 -> Bindlib.box @@ mark_with_uf e1 (TLit TBool) - | A.ELit (LInt _) as e1 -> Bindlib.box @@ mark_with_uf e1 (TLit TInt) - | A.ELit (LRat _) as e1 -> Bindlib.box @@ mark_with_uf e1 (TLit TRat) - | A.ELit (LMoney _) as e1 -> Bindlib.box @@ mark_with_uf e1 (TLit TMoney) - | A.ELit (LDate _) as e1 -> Bindlib.box @@ mark_with_uf e1 (TLit TDate) - | A.ELit (LDuration _) as e1 -> - Bindlib.box @@ mark_with_uf e1 (TLit TDuration) - | A.ELit LUnit as e1 -> Bindlib.box @@ mark_with_uf e1 (TLit TUnit) - | A.ELit LEmptyError as e1 -> - Bindlib.box @@ mark_with_uf e1 (TAny (Any.fresh ())) + | A.ELit lit as e1 -> Bindlib.box @@ mark_with_uf e1 (lit_type lit) | A.ETuple (es, None) -> let+ es = bmap (typecheck_expr_bottom_up ctx env) es in - mark_with_uf (ETuple (es, None)) (TTuple (List.map ty es)) + mark_with_uf (A.ETuple (es, None)) (TTuple (List.map ty es)) | A.ETuple (es, Some s_name) -> let tys = List.map @@ -335,13 +345,13 @@ let rec typecheck_expr_bottom_up (A.StructMap.find s_name ctx.A.ctx_structs) in let+ es = bmap2 (typecheck_expr_top_down ctx env) tys es in - mark_with_uf (ETuple (es, Some s_name)) (TStruct s_name) + mark_with_uf (A.ETuple (es, Some s_name)) (TStruct s_name) | A.ETupleAccess (e1, n, s, typs) -> begin let utyps = List.map ast_to_typ typs in let tuple_ty = match s with None -> TTuple utyps | Some s -> TStruct s in let+ e1 = typecheck_expr_top_down ctx env (unionfind_make tuple_ty) e1 in match List.nth_opt utyps n with - | Some t' -> mark (ETupleAccess (e1, n, s, typs)) t' + | Some t' -> mark (A.ETupleAccess (e1, n, s, typs)) t' | None -> Errors.raise_spanned_error (Marked.get_mark e1).pos "Expression should have a tuple type with at least %d elements but \ @@ -354,7 +364,7 @@ let rec typecheck_expr_bottom_up match List.nth_opt ts' n with | Some ts_n -> ts_n | None -> - Errors.raise_spanned_error (A.Expr.pos e) + Errors.raise_spanned_error (Expr.pos e) "Expression should have a sum type with at least %d cases but only \ has %d" n (List.length ts') @@ -376,19 +386,19 @@ let rec typecheck_expr_bottom_up es') es enum_cases in - mark (EMatch (e1', es', e_name)) t_ret + mark (A.EMatch (e1', es', e_name)) t_ret | A.EAbs (binder, taus) -> if Bindlib.mbinder_arity binder <> List.length taus then - Errors.raise_spanned_error (A.Expr.pos e) + Errors.raise_spanned_error (Expr.pos e) "function has %d variables but was supplied %d types" (Bindlib.mbinder_arity binder) (List.length taus) else let xs, body = Bindlib.unmbind binder in - let xs' = Array.map A.Var.translate xs in + let xs' = Array.map Var.translate xs in let xstaus = List.mapi (fun i tau -> xs.(i), ast_to_typ tau) taus in let env = - List.fold_left (fun env (x, tau) -> A.Var.Map.add x tau env) env xstaus + List.fold_left (fun env (x, tau) -> Var.Map.add x tau env) env xstaus in let body' = typecheck_expr_bottom_up ctx env body in let t_func = @@ -397,7 +407,7 @@ let rec typecheck_expr_bottom_up xstaus (box_ty body') in let+ binder' = Bindlib.bind_mvar xs' body' in - mark (EAbs (binder', taus)) t_func + mark (A.EAbs (binder', taus)) t_func | A.EApp (e1, args) -> let args' = bmap (typecheck_expr_bottom_up ctx env) args in let t_ret = unionfind_make (TAny (Any.fresh ())) in @@ -409,7 +419,7 @@ let rec typecheck_expr_bottom_up in let+ e1' = typecheck_expr_bottom_up ctx env e1 and+ args' in unify ctx e (ty e1') t_func; - mark (EApp (e1', args')) t_ret + mark (A.EApp (e1', args')) t_ret | A.EOp op as e1 -> Bindlib.box @@ mark e1 (op_type (Marked.mark pos_e op)) | A.EDefault (excepts, just, cons) -> let just' = @@ -456,46 +466,42 @@ let rec typecheck_expr_bottom_up mark_with_uf (A.EArray es') (TArray cell_type) (** Checks whether the expression can be typed with the provided type *) -and typecheck_expr_top_down - (ctx : A.decl_ctx) - (env : 'm Ast.expr env) - (tau : unionfind_typ) - (e : 'm Ast.expr) : (A.dcalc, mark) A.gexpr Bindlib.box = +and typecheck_expr_top_down : + type a. + A.decl_ctx -> + (a, 'm A.mark) A.gexpr env -> + unionfind_typ -> + (a, 'm A.mark) A.gexpr -> + (a, mark) A.gexpr Bindlib.box = + fun ctx env tau e -> (* Cli.debug_format "Propagating type %a for naked_expr %a" (format_typ ctx) tau (Expr.format ctx) e; *) - let pos_e = A.Expr.pos e in + let pos_e = Expr.pos e in let mark e = Marked.mark { uf = tau; pos = pos_e } e in - let unify_and_mark (e' : (A.dcalc, mark) A.naked_gexpr) tau' = + let unify_and_mark (e' : (a, mark) A.naked_gexpr) tau' = unify ctx e tau' tau; Marked.mark { uf = tau; pos = pos_e } e' in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in match Marked.unmark e with + | A.ELocation _ -> assert false + | A.EStruct _ -> assert false + | A.EStructAccess _ -> assert false + | A.EEnumInj _ -> assert false + | A.EMatchS _ -> assert false + | A.ERaise _ -> assert false + | A.ECatch _ -> assert false | A.EVar v -> begin - match A.Var.Map.find_opt v env with + match Var.Map.find_opt v env with | Some tau' -> - let+ v' = Bindlib.box_var (A.Var.translate v) in + let+ v' = Bindlib.box_var (Var.translate v) in unify_and_mark v' tau' | None -> Errors.raise_spanned_error pos_e "Variable %s not found in the current context" (Bindlib.name_of v) end - | A.ELit (LBool _) as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TBool)) - | A.ELit (LInt _) as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TInt)) - | A.ELit (LRat _) as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TRat)) - | A.ELit (LMoney _) as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TMoney)) - | A.ELit (LDate _) as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TDate)) - | A.ELit (LDuration _) as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TDuration)) - | A.ELit LUnit as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TLit TUnit)) - | A.ELit LEmptyError as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (TAny (Any.fresh ()))) + | A.ELit lit as e1 -> + Bindlib.box @@ unify_and_mark e1 (unionfind_make (lit_type lit)) | A.ETuple (es, None) -> let+ es' = bmap (typecheck_expr_bottom_up ctx env) es in unify_and_mark @@ -518,7 +524,7 @@ and typecheck_expr_top_down match List.nth_opt typs' n with | Some t1n -> unify_and_mark (A.ETupleAccess (e1', n, s, typs)) t1n | None -> - Errors.raise_spanned_error (A.Expr.pos e1) + Errors.raise_spanned_error (Expr.pos e1) "Expression should have a tuple type with at least %d elements but \ only has %d" n (List.length typs) @@ -529,7 +535,7 @@ and typecheck_expr_top_down match List.nth_opt ts' n with | Some ts_n -> ts_n | None -> - Errors.raise_spanned_error (A.Expr.pos e) + Errors.raise_spanned_error (Expr.pos e) "Expression should have a sum type with at least %d cases but only \ has %d" n (List.length ts) @@ -556,19 +562,19 @@ and typecheck_expr_top_down unify_and_mark (EMatch (e1', es', e_name)) t_ret | A.EAbs (binder, t_args) -> if Bindlib.mbinder_arity binder <> List.length t_args then - Errors.raise_spanned_error (A.Expr.pos e) + Errors.raise_spanned_error (Expr.pos e) "function has %d variables but was supplied %d types" (Bindlib.mbinder_arity binder) (List.length t_args) else let xs, body = Bindlib.unmbind binder in - let xs' = Array.map A.Var.translate xs in + let xs' = Array.map Var.translate xs in let xstaus = List.map2 (fun x t_arg -> x, ast_to_typ t_arg) (Array.to_list xs) t_args in let env = List.fold_left - (fun env (x, t_arg) -> A.Var.Map.add x t_arg env) + (fun env (x, t_arg) -> Var.Map.add x t_arg env) env xstaus in let body' = typecheck_expr_bottom_up ctx env body in @@ -643,21 +649,21 @@ let wrap ctx f e = let get_ty_mark { uf; pos } = A.Typed { ty = typ_to_ast uf; pos } (* Infer the type of an expression *) -let infer_types (ctx : A.decl_ctx) (e : 'm Ast.expr) : - A.typed Ast.expr Bindlib.box = - A.Expr.map_marks ~f:get_ty_mark - @@ wrap ctx (typecheck_expr_bottom_up ctx A.Var.Map.empty) e +let infer_types (type a) (ctx : A.decl_ctx) (e : (a, 'm) A.gexpr) : + (a, A.typed A.mark) A.gexpr A.box = + Expr.map_marks ~f:get_ty_mark + @@ wrap ctx (typecheck_expr_bottom_up ctx Var.Map.empty) e -let infer_type (type m) ctx (e : m Ast.expr) = +let infer_type (type a m) ctx (e : (a, m A.mark) A.gexpr) = match Marked.get_mark e with | A.Typed { ty; _ } -> ty - | A.Untyped _ -> A.Expr.ty (Bindlib.unbox (infer_types ctx e)) + | A.Untyped _ -> Expr.ty (Bindlib.unbox (infer_types ctx e)) (** Typechecks an expression given an expected type *) -let check_type (ctx : A.decl_ctx) (e : 'm Ast.expr) (tau : A.typ) = +let check_type (type a) (ctx : A.decl_ctx) (e : (a, 'm) A.gexpr) (tau : A.typ) = (* todo: consider using the already inferred type if ['m] = [typed] *) ignore - @@ wrap ctx (typecheck_expr_top_down ctx A.Var.Map.empty (ast_to_typ tau)) e + @@ wrap ctx (typecheck_expr_top_down ctx Var.Map.empty (ast_to_typ tau)) e let infer_types_program prg = let ctx = prg.A.decl_ctx in @@ -686,7 +692,7 @@ let infer_types_program prg = let rec process_scope_body_expr env = function | A.Result e -> let e' = wrap ctx (typecheck_expr_top_down ctx env ty_out) e in - let e' = A.Expr.map_marks ~f:get_ty_mark e' in + let e' = Expr.map_marks ~f:get_ty_mark e' in Bindlib.box_apply (fun e -> A.Result e) e' | A.ScopeLet { @@ -704,9 +710,9 @@ let infer_types_program prg = [unify] parameters, which keeps location of the type as defined instead of as inferred. *) let var, next = Bindlib.unbind scope_let_next in - let env = A.Var.Map.add var ty_e env in + let env = Var.Map.add var ty_e env in let next = process_scope_body_expr env next in - let scope_let_next = Bindlib.bind_var (A.Var.translate var) next in + let scope_let_next = Bindlib.bind_var (Var.translate var) next in Bindlib.box_apply2 (fun scope_let_expr scope_let_next -> A.ScopeLet @@ -717,20 +723,20 @@ let infer_types_program prg = scope_let_next; scope_let_pos; }) - (A.Expr.map_marks ~f:get_ty_mark e) + (Expr.map_marks ~f:get_ty_mark e) scope_let_next in let scope_body_expr = let var, e = Bindlib.unbind body in - let env = A.Var.Map.add var ty_in env in + let env = Var.Map.add var ty_in env in let e' = process_scope_body_expr env e in - Bindlib.bind_var (A.Var.translate var) e' + Bindlib.bind_var (Var.translate var) e' in let scope_next = let scope_var, next = Bindlib.unbind scope_next in - let env = A.Var.Map.add scope_var ty_scope env in + let env = Var.Map.add scope_var ty_scope env in let next' = process_scopes env next in - Bindlib.bind_var (A.Var.translate scope_var) next' + Bindlib.bind_var (Var.translate scope_var) next' in Bindlib.box_apply2 (fun scope_body_expr scope_next -> @@ -747,5 +753,5 @@ let infer_types_program prg = }) scope_body_expr scope_next in - let scopes = Bindlib.unbox (process_scopes A.Var.Map.empty prg.scopes) in + let scopes = Bindlib.unbox (process_scopes Var.Map.empty prg.scopes) in { A.decl_ctx = ctx; scopes } diff --git a/compiler/dcalc/typing.mli b/compiler/shared_ast/typing.mli similarity index 78% rename from compiler/dcalc/typing.mli rename to compiler/shared_ast/typing.mli index 401ecce4..feb77127 100644 --- a/compiler/dcalc/typing.mli +++ b/compiler/shared_ast/typing.mli @@ -17,15 +17,18 @@ (** Typing for the default calculus. Because of the error terms, we perform type inference using the classical W algorithm with union-find unification. *) -open Shared_ast +open Definitions -val infer_types : decl_ctx -> untyped Ast.expr -> typed Ast.expr Bindlib.box +val infer_types : + decl_ctx -> ('a, untyped mark) gexpr -> ('a, typed mark) gexpr box (** Infers types everywhere on the given expression, and adds (or replaces) type annotations on each node *) -val infer_type : decl_ctx -> 'm Ast.expr -> typ +val infer_type : decl_ctx -> ('a, 'm mark) gexpr -> typ (** Gets the outer type of the given expression, using either the existing annotations or inference *) -val check_type : decl_ctx -> 'm Ast.expr -> typ -> unit -val infer_types_program : untyped Ast.program -> typed Ast.program +val check_type : decl_ctx -> ('a, 'm mark) gexpr -> typ -> unit + +val infer_types_program : + ('a, untyped mark) gexpr program -> ('a, typed mark) gexpr program From af9f497ffba7acd7a4538c154e8e7effe6220414 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Wed, 14 Sep 2022 15:36:24 +0200 Subject: [PATCH 16/52] Implement typing of desugared/scopelang and lcalc terms Note that this is incomplete in the case of desugared/scopelang because we only have typing for expressions yet, and the scope/program structure is different. The code allows passing an environment of types for scope/subscope variables in order to resolve `ELocation` terms, but that's unused until we implement scopelang typing at the scope level. --- compiler/desugared/ast.ml | 7 +- compiler/desugared/ast.mli | 7 +- compiler/desugared/dependency.ml | 2 +- compiler/desugared/desugared_to_scope.ml | 10 +- compiler/driver.ml | 3 +- compiler/scopelang/ast.ml | 8 - compiler/scopelang/ast.mli | 4 - compiler/scopelang/dependency.ml | 10 +- compiler/scopelang/scope_to_dcalc.ml | 26 +-- compiler/shared_ast/definitions.ml | 8 + compiler/shared_ast/typing.ml | 191 +++++++++++++++++++---- compiler/surface/desugaring.ml | 27 ++-- compiler/surface/name_resolution.ml | 38 ++--- compiler/surface/name_resolution.mli | 5 +- 14 files changed, 230 insertions(+), 116 deletions(-) diff --git a/compiler/desugared/ast.ml b/compiler/desugared/ast.ml index 44f1f077..d5a1c8a7 100644 --- a/compiler/desugared/ast.ml +++ b/compiler/desugared/ast.ml @@ -199,17 +199,14 @@ type var_or_states = WholeVar | States of StateName.t list type scope = { scope_vars : var_or_states ScopeVarMap.t; - scope_sub_scopes : ScopeName.t Scopelang.Ast.SubScopeMap.t; + scope_sub_scopes : ScopeName.t SubScopeMap.t; scope_uid : ScopeName.t; scope_defs : scope_def ScopeDefMap.t; scope_assertions : assertion list; scope_meta_assertions : meta_assertion list; } -type program = { - program_scopes : scope Scopelang.Ast.ScopeMap.t; - program_ctx : decl_ctx; -} +type program = { program_scopes : scope ScopeMap.t; program_ctx : decl_ctx } let rec locations_used (e : expr) : LocationSet.t = match Marked.unmark e with diff --git a/compiler/desugared/ast.mli b/compiler/desugared/ast.mli index 91a84fc0..77558ecc 100644 --- a/compiler/desugared/ast.mli +++ b/compiler/desugared/ast.mli @@ -99,17 +99,14 @@ type var_or_states = WholeVar | States of StateName.t list type scope = { scope_vars : var_or_states ScopeVarMap.t; - scope_sub_scopes : ScopeName.t Scopelang.Ast.SubScopeMap.t; + scope_sub_scopes : ScopeName.t SubScopeMap.t; scope_uid : ScopeName.t; scope_defs : scope_def ScopeDefMap.t; scope_assertions : assertion list; scope_meta_assertions : meta_assertion list; } -type program = { - program_scopes : scope Scopelang.Ast.ScopeMap.t; - program_ctx : decl_ctx; -} +type program = { program_scopes : scope ScopeMap.t; program_ctx : decl_ctx } (** {1 Helpers} *) diff --git a/compiler/desugared/dependency.ml b/compiler/desugared/dependency.ml index 7c49cee9..521ddb4d 100644 --- a/compiler/desugared/dependency.ml +++ b/compiler/desugared/dependency.ml @@ -155,7 +155,7 @@ let build_scope_dependencies (scope : Ast.scope) : ScopeDependencies.t = scope.scope_vars g in let g = - Scopelang.Ast.SubScopeMap.fold + SubScopeMap.fold (fun (v : SubScopeName.t) _ g -> ScopeDependencies.add_vertex g (Vertex.SubScope v)) scope.scope_sub_scopes g diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index 61da32da..f11ecc43 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -475,8 +475,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = (* Before calling the sub_scope, we need to include all the re-definitions of subscope parameters*) let sub_scope = - Scopelang.Ast.SubScopeMap.find sub_scope_index - scope.scope_sub_scopes + SubScopeMap.find sub_scope_index scope.scope_sub_scopes in let sub_scope_vars_redefs_candidates = Ast.ScopeDefMap.filter @@ -547,8 +546,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = ~is_subscope_var:true in let subscop_real_name = - Scopelang.Ast.SubScopeMap.find sub_scope_index - scope.scope_sub_scopes + SubScopeMap.find sub_scope_index scope.scope_sub_scopes in let var_pos = Ast.ScopeDef.get_position def_key in Scopelang.Ast.Definition @@ -640,7 +638,7 @@ let translate_program (pgrm : Ast.program) : Scopelang.Ast.program = Scopelang. This involves creating a new Scopelang scope variable for every state of a Desugared variable. *) let ctx = - Scopelang.Ast.ScopeMap.fold + ScopeMap.fold (fun _scope scope_decl ctx -> ScopeVarMap.fold (fun scope_var (states : Ast.var_or_states) ctx -> @@ -679,6 +677,6 @@ let translate_program (pgrm : Ast.program) : Scopelang.Ast.program = in { Scopelang.Ast.program_scopes = - Scopelang.Ast.ScopeMap.map (translate_scope ctx) pgrm.program_scopes; + ScopeMap.map (translate_scope ctx) pgrm.program_scopes; Scopelang.Ast.program_ctx = pgrm.program_ctx; } diff --git a/compiler/driver.ml b/compiler/driver.ml index ee41a9e6..69873195 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -171,8 +171,7 @@ let driver source_file (options : Cli.options) : int = if Option.is_some options.ex_scope then Format.fprintf fmt "%a\n" (Scopelang.Print.scope prgm.program_ctx ~debug:options.debug) - ( scope_uid, - Scopelang.Ast.ScopeMap.find scope_uid prgm.program_scopes ) + (scope_uid, Shared_ast.ScopeMap.find scope_uid prgm.program_scopes) else Format.fprintf fmt "%a\n" (Scopelang.Print.program ~debug:options.debug) diff --git a/compiler/scopelang/ast.ml b/compiler/scopelang/ast.ml index b92cca8a..eb5cd774 100644 --- a/compiler/scopelang/ast.ml +++ b/compiler/scopelang/ast.ml @@ -16,14 +16,6 @@ open Utils open Shared_ast -module ScopeMap : Map.S with type key = ScopeName.t = Map.Make (ScopeName) - -module SubScopeNameSet : Set.S with type elt = SubScopeName.t = - Set.Make (SubScopeName) - -module SubScopeMap : Map.S with type key = SubScopeName.t = - Map.Make (SubScopeName) - module StructFieldMapLift = Bindlib.Lift (StructFieldMap) module EnumConstructorMapLift = Bindlib.Lift (EnumConstructorMap) diff --git a/compiler/scopelang/ast.mli b/compiler/scopelang/ast.mli index e22975f8..28179afd 100644 --- a/compiler/scopelang/ast.mli +++ b/compiler/scopelang/ast.mli @@ -21,10 +21,6 @@ open Shared_ast (** {1 Identifiers} *) -module ScopeMap : Map.S with type key = ScopeName.t -module SubScopeNameSet : Set.S with type elt = SubScopeName.t -module SubScopeMap : Map.S with type key = SubScopeName.t - module StructFieldMapLift : sig val lift_box : 'a Bindlib.box StructFieldMap.t -> 'a StructFieldMap.t Bindlib.box diff --git a/compiler/scopelang/dependency.ml b/compiler/scopelang/dependency.ml index 4551ac2e..90ed3085 100644 --- a/compiler/scopelang/dependency.ml +++ b/compiler/scopelang/dependency.ml @@ -48,11 +48,11 @@ module SSCC = Graph.Components.Make (SDependencies) let build_program_dep_graph (prgm : Ast.program) : SDependencies.t = let g = SDependencies.empty in let g = - Ast.ScopeMap.fold + ScopeMap.fold (fun v _ g -> SDependencies.add_vertex g v) prgm.program_scopes g in - Ast.ScopeMap.fold + ScopeMap.fold (fun scope_name scope g -> let subscopes = List.fold_left @@ -68,12 +68,12 @@ let build_program_dep_graph (prgm : Ast.program) : SDependencies.t = forbidden since Catala does not provide recursion" ScopeName.format_t scope.Ast.scope_decl_name else - Ast.ScopeMap.add subscope + ScopeMap.add subscope (Marked.get_mark (SubScopeName.get_info subindex)) acc) - Ast.ScopeMap.empty scope.Ast.scope_decl_rules + ScopeMap.empty scope.Ast.scope_decl_rules in - Ast.ScopeMap.fold + ScopeMap.fold (fun subscope pos g -> let edge = SDependencies.E.create subscope pos scope_name in SDependencies.add_edge_e g edge) diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index e2440bfe..b263b62b 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -33,7 +33,7 @@ type scope_sig_ctx = { scope_sig_output_struct : StructName.t; (** Scope output *) } -type scope_sigs_ctx = scope_sig_ctx Ast.ScopeMap.t +type scope_sigs_ctx = scope_sig_ctx ScopeMap.t type ctx = { structs : struct_ctx; @@ -44,7 +44,7 @@ type ctx = { (untyped Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t; subscope_vars : (untyped Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t - Ast.SubScopeMap.t; + SubScopeMap.t; local_vars : (Ast.expr, untyped Dcalc.Ast.expr Var.t) Var.Map.t; } @@ -59,7 +59,7 @@ let empty_ctx scope_name; scopes_parameters = scopes_ctx; scope_vars = ScopeVarMap.empty; - subscope_vars = Ast.SubScopeMap.empty; + subscope_vars = SubScopeMap.empty; local_vars = Var.Map.empty; } @@ -262,7 +262,7 @@ let rec translate_expr (ctx : ctx) (e : Ast.expr) : retrieve_in_and_out_typ_or_any var ctx.scope_vars | ELocation (SubScopeVar (_, sname, var)) -> ctx.subscope_vars - |> Ast.SubScopeMap.find (Marked.unmark sname) + |> SubScopeMap.find (Marked.unmark sname) |> retrieve_in_and_out_typ_or_any var | _ -> TAny, TAny in @@ -321,7 +321,7 @@ let rec translate_expr (ctx : ctx) (e : Ast.expr) : try let v, _, _ = ScopeVarMap.find (Marked.unmark a) - (Ast.SubScopeMap.find (Marked.unmark s) ctx.subscope_vars) + (SubScopeMap.find (Marked.unmark s) ctx.subscope_vars) in Bindlib.box_var v with Not_found -> @@ -454,7 +454,7 @@ let translate_rule { ctx with subscope_vars = - Ast.SubScopeMap.update (Marked.unmark subs_index) + SubScopeMap.update (Marked.unmark subs_index) (fun map -> match map with | Some map -> @@ -469,7 +469,7 @@ let translate_rule ctx.subscope_vars; } ) | Call (subname, subindex) -> - let subscope_sig = Ast.ScopeMap.find subname ctx.scopes_parameters in + let subscope_sig = ScopeMap.find subname ctx.scopes_parameters in let all_subscope_vars = subscope_sig.scope_sig_local_vars in let all_subscope_input_vars = List.filter @@ -488,7 +488,7 @@ let translate_rule let called_scope_input_struct = subscope_sig.scope_sig_input_struct in let called_scope_return_struct = subscope_sig.scope_sig_output_struct in let subscope_vars_defined = - try Ast.SubScopeMap.find subindex ctx.subscope_vars + try SubScopeMap.find subindex ctx.subscope_vars with Not_found -> ScopeVarMap.empty in let subscope_var_not_yet_defined subvar = @@ -601,7 +601,7 @@ let translate_rule { ctx with subscope_vars = - Ast.SubScopeMap.add subindex + SubScopeMap.add subindex (List.fold_left (fun acc (var_ctx, dvar) -> ScopeVarMap.add var_ctx.scope_var_name @@ -676,7 +676,7 @@ let translate_scope_decl (sigma : Ast.scope_decl) : untyped Dcalc.Ast.expr scope_body Bindlib.box * struct_ctx = let sigma_info = ScopeName.get_info sigma.scope_decl_name in - let scope_sig = Ast.ScopeMap.find sigma.scope_decl_name sctx in + let scope_sig = ScopeMap.find sigma.scope_decl_name sctx in let scope_variables = scope_sig.scope_sig_local_vars in let ctx = (* the context must be initialized for fresh variables for all only-input @@ -811,7 +811,7 @@ let translate_program (prgm : Ast.program) : let scope_ordering = Dependency.get_scope_ordering scope_dependencies in let decl_ctx = prgm.program_ctx in let sctx : scope_sigs_ctx = - Ast.ScopeMap.mapi + ScopeMap.mapi (fun scope_name scope -> let scope_dvar = Var.make @@ -854,12 +854,12 @@ let translate_program (prgm : Ast.program) : let (scopes, decl_ctx) : untyped Dcalc.Ast.expr scopes Bindlib.box * _ = List.fold_right (fun scope_name (scopes, decl_ctx) -> - let scope = Ast.ScopeMap.find scope_name prgm.program_scopes in + let scope = ScopeMap.find scope_name prgm.program_scopes in let scope_body, scope_out_struct = translate_scope_decl decl_ctx.ctx_structs decl_ctx.ctx_enums sctx scope_name scope in - let dvar = (Ast.ScopeMap.find scope_name sctx).scope_sig_scope_var in + let dvar = (ScopeMap.find scope_name sctx).scope_sig_scope_var in let decl_ctx = { decl_ctx with diff --git a/compiler/shared_ast/definitions.ml b/compiler/shared_ast/definitions.ml index 4f31dbff..50900bd5 100644 --- a/compiler/shared_ast/definitions.ml +++ b/compiler/shared_ast/definitions.ml @@ -26,6 +26,8 @@ module Runtime = Runtime_ocaml.Runtime module ScopeName : Uid.Id with type info = Uid.MarkedString.info = Uid.Make (Uid.MarkedString) () +module ScopeMap : Map.S with type key = ScopeName.t = Map.Make (ScopeName) + module StructName : Uid.Id with type info = Uid.MarkedString.info = Uid.Make (Uid.MarkedString) () @@ -53,6 +55,12 @@ module ScopeVarMap : Map.S with type key = ScopeVar.t = Map.Make (ScopeVar) module SubScopeName : Uid.Id with type info = Uid.MarkedString.info = Uid.Make (Uid.MarkedString) () +module SubScopeNameSet : Set.S with type elt = SubScopeName.t = + Set.Make (SubScopeName) + +module SubScopeMap : Map.S with type key = SubScopeName.t = + Map.Make (SubScopeName) + module StructFieldMap : Map.S with type key = StructFieldName.t = Map.Make (StructFieldName) diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 304b6c84..22962b4b 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -276,7 +276,18 @@ let op_type (op : A.operator Marked.pos) : unionfind_typ = (** {1 Double-directed typing} *) -type 'e env = ('e, unionfind_typ) Var.Map.t +type 'e env = { + vars : ('e, unionfind_typ) Var.Map.t; + scope_vars : A.typ A.ScopeVarMap.t; + subscope_vars : A.typ A.ScopeVarMap.t A.SubScopeMap.t; +} + +let empty_env = + { + vars = Var.Map.empty; + scope_vars = A.ScopeVarMap.empty; + subscope_vars = A.SubScopeMap.empty; + } let add_pos e ty = Marked.mark (Expr.pos e) ty let ty (_, { uf; _ }) = uf @@ -318,15 +329,72 @@ let rec typecheck_expr_bottom_up : let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in let mark_with_uf e1 ?pos ty = mark e1 (unionfind_make ?pos ty) in match Marked.unmark e with - | A.ELocation _ -> assert false - | A.EStruct _ -> assert false - | A.EStructAccess _ -> assert false - | A.EEnumInj _ -> assert false - | A.EMatchS _ -> assert false - | A.ERaise _ -> assert false - | A.ECatch _ -> assert false + | A.ELocation loc as e1 -> + let ty = + match loc with + | DesugaredScopeVar (v, _) | ScopelangScopeVar v -> + A.ScopeVarMap.find (Marked.unmark v) env.scope_vars + | SubScopeVar (_s_name, ss_name, v) -> + A.ScopeVarMap.find (Marked.unmark v) + (A.SubScopeMap.find (Marked.unmark ss_name) env.subscope_vars) + in + Bindlib.box (mark e1 (ast_to_typ ty)) + | A.EStruct (s_name, fmap) -> + let+ fmap' = + (* This assumes that the fields in fmap and the struct type are already + ensured to be the same *) + List.fold_left + (fun fmap' (f_name, f_ty) -> + let f_e = A.StructFieldMap.find f_name fmap in + let+ fmap' + and+ f_e' = typecheck_expr_top_down ctx env (ast_to_typ f_ty) f_e in + A.StructFieldMap.add f_name f_e' fmap') + (Bindlib.box A.StructFieldMap.empty) + (A.StructMap.find s_name ctx.A.ctx_structs) + in + mark_with_uf (A.EStruct (s_name, fmap')) (TStruct s_name) + | A.EStructAccess (e_struct, f_name, s_name) -> + let f_ty = + ast_to_typ (List.assoc f_name (A.StructMap.find s_name ctx.A.ctx_structs)) + in + let+ e_struct' = + typecheck_expr_top_down ctx env (unionfind_make (TStruct s_name)) e_struct + in + mark (A.EStructAccess (e_struct', f_name, s_name)) f_ty + | A.EEnumInj (e_enum, c_name, e_name) -> + let c_ty = + ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums)) + in + let+ e_enum' = + typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e_enum + in + mark (A.EEnumInj (e_enum', c_name, e_name)) c_ty + | A.EMatchS (e1, e_name, cases) -> + let cases_ty = A.EnumMap.find e_name ctx.A.ctx_enums in + let t_ret = unionfind_make ~pos:e1 (TAny (Any.fresh ())) in + let+ e1' = + typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e1 + and+ cases' = + A.EnumConstructorMap.fold + (fun c_name e cases' -> + let c_ty = List.assoc c_name cases_ty in + let e_ty = unionfind_make ~pos:e (TArrow (ast_to_typ c_ty, t_ret)) in + let+ cases' and+ e' = typecheck_expr_top_down ctx env e_ty e in + A.EnumConstructorMap.add c_name e' cases') + cases + (Bindlib.box A.EnumConstructorMap.empty) + in + mark (A.EMatchS (e1', e_name, cases')) t_ret + | A.ERaise ex -> + Bindlib.box (mark_with_uf (A.ERaise ex) (TAny (Any.fresh ()))) + | A.ECatch (e1, ex, e2) -> + let+ e1' = typecheck_expr_bottom_up ctx env e1 + and+ e2' = typecheck_expr_bottom_up ctx env e2 in + let e_ty = ty e1' in + unify ctx e e_ty (ty e2'); + mark (A.ECatch (e1', ex, e2')) e_ty | A.EVar v -> begin - match Var.Map.find_opt v env with + match Var.Map.find_opt v env.vars with | Some t -> let+ v' = Bindlib.box_var (Var.translate v) in mark v' t @@ -398,7 +466,13 @@ let rec typecheck_expr_bottom_up : let xs' = Array.map Var.translate xs in let xstaus = List.mapi (fun i tau -> xs.(i), ast_to_typ tau) taus in let env = - List.fold_left (fun env (x, tau) -> Var.Map.add x tau env) env xstaus + { + env with + vars = + List.fold_left + (fun env (x, tau) -> Var.Map.add x tau env) + env.vars xstaus; + } in let body' = typecheck_expr_bottom_up ctx env body in let t_func = @@ -484,15 +558,73 @@ and typecheck_expr_top_down : in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in match Marked.unmark e with - | A.ELocation _ -> assert false - | A.EStruct _ -> assert false - | A.EStructAccess _ -> assert false - | A.EEnumInj _ -> assert false - | A.EMatchS _ -> assert false - | A.ERaise _ -> assert false - | A.ECatch _ -> assert false + | A.ELocation loc as e1 -> + let ty = + match loc with + | DesugaredScopeVar (v, _) | ScopelangScopeVar v -> + A.ScopeVarMap.find (Marked.unmark v) env.scope_vars + | SubScopeVar (_s_name, ss_name, v) -> + A.ScopeVarMap.find (Marked.unmark v) + (A.SubScopeMap.find (Marked.unmark ss_name) env.subscope_vars) + in + Bindlib.box (unify_and_mark e1 (ast_to_typ ty)) + | A.EStruct (s_name, fmap) -> + let+ fmap' = + (* This assumes that the fields in fmap and the struct type are already + ensured to be the same *) + List.fold_left + (fun fmap' (f_name, f_ty) -> + let f_e = A.StructFieldMap.find f_name fmap in + let+ fmap' + and+ f_e' = typecheck_expr_top_down ctx env (ast_to_typ f_ty) f_e in + A.StructFieldMap.add f_name f_e' fmap') + (Bindlib.box A.StructFieldMap.empty) + (A.StructMap.find s_name ctx.A.ctx_structs) + in + unify_and_mark (A.EStruct (s_name, fmap')) (unionfind_make (TStruct s_name)) + | A.EStructAccess (e_struct, f_name, s_name) -> + let f_ty = + ast_to_typ (List.assoc f_name (A.StructMap.find s_name ctx.A.ctx_structs)) + in + let+ e_struct' = + typecheck_expr_top_down ctx env (unionfind_make (TStruct s_name)) e_struct + in + unify_and_mark (A.EStructAccess (e_struct', f_name, s_name)) f_ty + | A.EEnumInj (e_enum, c_name, e_name) -> + let c_ty = + ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums)) + in + let+ e_enum' = + typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e_enum + in + unify_and_mark (A.EEnumInj (e_enum', c_name, e_name)) c_ty + | A.EMatchS (e1, e_name, cases) -> + let cases_ty = A.EnumMap.find e_name ctx.A.ctx_enums in + let t_ret = unionfind_make ~pos:e1 (TAny (Any.fresh ())) in + let+ e1' = + typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e1 + and+ cases' = + A.EnumConstructorMap.fold + (fun c_name e cases' -> + let c_ty = List.assoc c_name cases_ty in + let e_ty = unionfind_make ~pos:e (TArrow (ast_to_typ c_ty, t_ret)) in + let+ cases' and+ e' = typecheck_expr_top_down ctx env e_ty e in + A.EnumConstructorMap.add c_name e' cases') + cases + (Bindlib.box A.EnumConstructorMap.empty) + in + unify_and_mark (A.EMatchS (e1', e_name, cases')) t_ret + | A.ERaise ex -> + Bindlib.box + (unify_and_mark (A.ERaise ex) (unionfind_make (TAny (Any.fresh ())))) + | A.ECatch (e1, ex, e2) -> + let+ e1' = typecheck_expr_bottom_up ctx env e1 + and+ e2' = typecheck_expr_bottom_up ctx env e2 in + let e_ty = ty e1' in + unify ctx e e_ty (ty e2'); + unify_and_mark (A.ECatch (e1', ex, e2')) e_ty | A.EVar v -> begin - match Var.Map.find_opt v env with + match Var.Map.find_opt v env.vars with | Some tau' -> let+ v' = Bindlib.box_var (Var.translate v) in unify_and_mark v' tau' @@ -573,9 +705,13 @@ and typecheck_expr_top_down : List.map2 (fun x t_arg -> x, ast_to_typ t_arg) (Array.to_list xs) t_args in let env = - List.fold_left - (fun env (x, t_arg) -> Var.Map.add x t_arg env) - env xstaus + { + env with + vars = + List.fold_left + (fun env (x, t_arg) -> Var.Map.add x t_arg env) + env.vars xstaus; + } in let body' = typecheck_expr_bottom_up ctx env body in let t_func = @@ -652,7 +788,7 @@ let get_ty_mark { uf; pos } = A.Typed { ty = typ_to_ast uf; pos } let infer_types (type a) (ctx : A.decl_ctx) (e : (a, 'm) A.gexpr) : (a, A.typed A.mark) A.gexpr A.box = Expr.map_marks ~f:get_ty_mark - @@ wrap ctx (typecheck_expr_bottom_up ctx Var.Map.empty) e + @@ wrap ctx (typecheck_expr_bottom_up ctx empty_env) e let infer_type (type a m) ctx (e : (a, m A.mark) A.gexpr) = match Marked.get_mark e with @@ -662,8 +798,7 @@ let infer_type (type a m) ctx (e : (a, m A.mark) A.gexpr) = (** Typechecks an expression given an expected type *) let check_type (type a) (ctx : A.decl_ctx) (e : (a, 'm) A.gexpr) (tau : A.typ) = (* todo: consider using the already inferred type if ['m] = [typed] *) - ignore - @@ wrap ctx (typecheck_expr_top_down ctx Var.Map.empty (ast_to_typ tau)) e + ignore @@ wrap ctx (typecheck_expr_top_down ctx empty_env (ast_to_typ tau)) e let infer_types_program prg = let ctx = prg.A.decl_ctx in @@ -710,7 +845,7 @@ let infer_types_program prg = [unify] parameters, which keeps location of the type as defined instead of as inferred. *) let var, next = Bindlib.unbind scope_let_next in - let env = Var.Map.add var ty_e env in + let env = { env with vars = Var.Map.add var ty_e env.vars } in let next = process_scope_body_expr env next in let scope_let_next = Bindlib.bind_var (Var.translate var) next in Bindlib.box_apply2 @@ -728,13 +863,13 @@ let infer_types_program prg = in let scope_body_expr = let var, e = Bindlib.unbind body in - let env = Var.Map.add var ty_in env in + let env = { env with vars = Var.Map.add var ty_in env.vars } in let e' = process_scope_body_expr env e in Bindlib.bind_var (Var.translate var) e' in let scope_next = let scope_var, next = Bindlib.unbind scope_next in - let env = Var.Map.add scope_var ty_scope env in + let env = { env with vars = Var.Map.add scope_var ty_scope env.vars } in let next' = process_scopes env next in Bindlib.bind_var (Var.translate scope_var) next' in @@ -753,5 +888,5 @@ let infer_types_program prg = }) scope_body_expr scope_next in - let scopes = Bindlib.unbox (process_scopes Var.Map.empty prg.scopes) in + let scopes = Bindlib.unbox (process_scopes empty_env prg.scopes) in { A.decl_ctx = ctx; scopes } diff --git a/compiler/surface/desugaring.ml b/compiler/surface/desugaring.ml index 489ecd2d..b7b89bc3 100644 --- a/compiler/surface/desugaring.ml +++ b/compiler/surface/desugaring.ml @@ -125,7 +125,7 @@ let rec translate_expr (inside_definition_of : Desugared.Ast.ScopeDef.t Marked.pos option) (ctxt : Name_resolution.context) (expr : Ast.expression Marked.pos) : Desugared.Ast.expr Bindlib.box = - let scope_ctxt = Scopelang.Ast.ScopeMap.find scope ctxt.scopes in + let scope_ctxt = ScopeMap.find scope ctxt.scopes in let rec_helper = translate_expr scope inside_definition_of ctxt in let pos = Marked.get_mark expr in let emark = Untyped { pos } in @@ -284,7 +284,7 @@ let rec translate_expr Name_resolution.get_subscope_uid scope ctxt (Marked.same_mark_as y e) in let subscope_real_uid : ScopeName.t = - Scopelang.Ast.SubScopeMap.find subscope_uid scope_ctxt.sub_scopes + SubScopeMap.find subscope_uid scope_ctxt.sub_scopes in let subscope_var_uid = Name_resolution.get_var_uid subscope_real_uid ctxt x @@ -993,9 +993,9 @@ let process_def (prgm : Desugared.Ast.program) (def : Ast.definition) : Desugared.Ast.program = let scope : Desugared.Ast.scope = - Scopelang.Ast.ScopeMap.find scope_uid prgm.program_scopes + ScopeMap.find scope_uid prgm.program_scopes in - let scope_ctxt = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in + let scope_ctxt = ScopeMap.find scope_uid ctxt.scopes in let def_key = Name_resolution.get_def_key (Marked.unmark def.definition_name) @@ -1070,8 +1070,7 @@ let process_def in { prgm with - program_scopes = - Scopelang.Ast.ScopeMap.add scope_uid scope_updated prgm.program_scopes; + program_scopes = ScopeMap.add scope_uid scope_updated prgm.program_scopes; } (** Translates a {!type: Surface.Ast.rule} from the surface language *) @@ -1092,7 +1091,7 @@ let process_assert (prgm : Desugared.Ast.program) (ass : Ast.assertion) : Desugared.Ast.program = let scope : Desugared.Ast.scope = - Scopelang.Ast.ScopeMap.find scope_uid prgm.program_scopes + ScopeMap.find scope_uid prgm.program_scopes in let ass = translate_expr scope_uid None ctxt @@ -1121,8 +1120,7 @@ let process_assert in { prgm with - program_scopes = - Scopelang.Ast.ScopeMap.add scope_uid new_scope prgm.program_scopes; + program_scopes = ScopeMap.add scope_uid new_scope prgm.program_scopes; } (** Translates a surface definition, rule or assertion *) @@ -1147,7 +1145,7 @@ let check_unlabeled_exception (scope : ScopeName.t) (ctxt : Name_resolution.context) (item : Ast.scope_use_item Marked.pos) : unit = - let scope_ctxt = Scopelang.Ast.ScopeMap.find scope ctxt.scopes in + let scope_ctxt = ScopeMap.find scope ctxt.scopes in match Marked.unmark item with | Ast.Rule _ | Ast.Definition _ -> ( let def_key, exception_to = @@ -1197,7 +1195,7 @@ let process_scope_use let scope_uid = Desugared.Ast.IdentMap.find name ctxt.scope_idmap in (* Make sure the scope exists *) let prgm = - match Scopelang.Ast.ScopeMap.find_opt scope_uid prgm.program_scopes with + match ScopeMap.find_opt scope_uid prgm.program_scopes with | Some _ -> prgm | None -> assert false (* should not happen *) @@ -1234,7 +1232,7 @@ let desugar_program (ctxt : Name_resolution.context) (prgm : Ast.program) : EnumMap.map EnumConstructorMap.bindings ctxt.Name_resolution.enums; }; Desugared.Ast.program_scopes = - Scopelang.Ast.ScopeMap.mapi + ScopeMap.mapi (fun s_uid s_context -> { Desugared.Ast.scope_vars = @@ -1320,7 +1318,7 @@ let desugar_program (ctxt : Name_resolution.context) (prgm : Ast.program) : Desugared.Ast.ScopeDefMap.empty in let scope_and_subscope_vars_defs = - Scopelang.Ast.SubScopeMap.fold + SubScopeMap.fold (fun subscope_name subscope_uid acc -> Desugared.Ast.IdentMap.fold (fun _ v acc -> @@ -1344,8 +1342,7 @@ let desugar_program (ctxt : Name_resolution.context) (prgm : Ast.program) : attribute_to_io v_sig.var_sig_io; } acc) - (Scopelang.Ast.ScopeMap.find subscope_uid - ctxt.Name_resolution.scopes) + (ScopeMap.find subscope_uid ctxt.Name_resolution.scopes) .Name_resolution.var_idmap acc) s_context.sub_scopes scope_vars_defs in diff --git a/compiler/surface/name_resolution.ml b/compiler/surface/name_resolution.ml index b73acc34..e51a29ed 100644 --- a/compiler/surface/name_resolution.ml +++ b/compiler/surface/name_resolution.ml @@ -40,7 +40,7 @@ type scope_context = { (** What is the default rule to refer to for unnamed exceptions, if any *) sub_scopes_idmap : SubScopeName.t Desugared.Ast.IdentMap.t; (** Sub-scopes variables *) - sub_scopes : ScopeName.t Scopelang.Ast.SubScopeMap.t; + sub_scopes : ScopeName.t SubScopeMap.t; (** To what scope sub-scopes refer to? *) } (** Inside a scope, we distinguish between the variables and the subscopes. *) @@ -75,8 +75,7 @@ type context = { constructor_idmap : EnumConstructor.t EnumMap.t Desugared.Ast.IdentMap.t; (** The names of the enum constructors. Constructor names can be shared between different enums *) - scopes : scope_context Scopelang.Ast.ScopeMap.t; - (** For each scope, its context *) + scopes : scope_context ScopeMap.t; (** For each scope, its context *) structs : struct_context StructMap.t; (** For each struct, its context *) enums : enum_context EnumMap.t; (** For each enum, its context *) var_typs : var_sig ScopeVarMap.t; @@ -114,7 +113,7 @@ let get_var_uid (scope_uid : ScopeName.t) (ctxt : context) ((x, pos) : ident Marked.pos) : ScopeVar.t = - let scope = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in + let scope = ScopeMap.find scope_uid ctxt.scopes in match Desugared.Ast.IdentMap.find_opt x scope.var_idmap with | None -> raise_unknown_identifier @@ -127,7 +126,7 @@ let get_subscope_uid (scope_uid : ScopeName.t) (ctxt : context) ((y, pos) : ident Marked.pos) : SubScopeName.t = - let scope = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in + let scope = ScopeMap.find scope_uid ctxt.scopes in match Desugared.Ast.IdentMap.find_opt y scope.sub_scopes_idmap with | None -> raise_unknown_identifier "for a subscope of this scope" (y, pos) | Some sub_uid -> sub_uid @@ -136,13 +135,13 @@ let get_subscope_uid subscopes of [scope_uid]. *) let is_subscope_uid (scope_uid : ScopeName.t) (ctxt : context) (y : ident) : bool = - let scope = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in + let scope = ScopeMap.find scope_uid ctxt.scopes in Desugared.Ast.IdentMap.mem y scope.sub_scopes_idmap (** Checks if the var_uid belongs to the scope scope_uid *) let belongs_to (ctxt : context) (uid : ScopeVar.t) (scope_uid : ScopeName.t) : bool = - let scope = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in + let scope = ScopeMap.find scope_uid ctxt.scopes in Desugared.Ast.IdentMap.exists (fun _ var_uid -> ScopeVar.compare uid var_uid = 0) scope.var_idmap @@ -173,7 +172,7 @@ let process_subscope_decl (decl : Ast.scope_decl_context_scope) : context = let name, name_pos = decl.scope_decl_context_scope_name in let subscope, s_pos = decl.scope_decl_context_scope_sub_scope in - let scope_ctxt = Scopelang.Ast.ScopeMap.find scope ctxt.scopes in + let scope_ctxt = ScopeMap.find scope ctxt.scopes in match Desugared.Ast.IdentMap.find_opt subscope scope_ctxt.sub_scopes_idmap with @@ -200,14 +199,11 @@ let process_subscope_decl Desugared.Ast.IdentMap.add name sub_scope_uid scope_ctxt.sub_scopes_idmap; sub_scopes = - Scopelang.Ast.SubScopeMap.add sub_scope_uid original_subscope_uid + SubScopeMap.add sub_scope_uid original_subscope_uid scope_ctxt.sub_scopes; } in - { - ctxt with - scopes = Scopelang.Ast.ScopeMap.add scope scope_ctxt ctxt.scopes; - } + { ctxt with scopes = ScopeMap.add scope scope_ctxt ctxt.scopes } let is_type_cond ((typ, _) : Ast.typ) = match typ with @@ -264,7 +260,7 @@ let process_data_decl let data_typ = process_type ctxt decl.scope_decl_context_item_typ in let is_cond = is_type_cond decl.scope_decl_context_item_typ in let name, pos = decl.scope_decl_context_item_name in - let scope_ctxt = Scopelang.Ast.ScopeMap.find scope ctxt.scopes in + let scope_ctxt = ScopeMap.find scope ctxt.scopes in match Desugared.Ast.IdentMap.find_opt name scope_ctxt.var_idmap with | Some use -> Errors.raise_multispanned_error @@ -295,7 +291,7 @@ let process_data_decl in { ctxt with - scopes = Scopelang.Ast.ScopeMap.add scope scope_ctxt ctxt.scopes; + scopes = ScopeMap.add scope scope_ctxt ctxt.scopes; var_typs = ScopeVarMap.add uid { @@ -454,12 +450,12 @@ let process_name_item (ctxt : context) (item : Ast.code_item Marked.pos) : ctxt with scope_idmap = Desugared.Ast.IdentMap.add name scope_uid ctxt.scope_idmap; scopes = - Scopelang.Ast.ScopeMap.add scope_uid + ScopeMap.add scope_uid { var_idmap = Desugared.Ast.IdentMap.empty; scope_defs_contexts = Desugared.Ast.ScopeDefMap.empty; sub_scopes_idmap = Desugared.Ast.IdentMap.empty; - sub_scopes = Scopelang.Ast.SubScopeMap.empty; + sub_scopes = SubScopeMap.empty; } ctxt.scopes; }) @@ -531,7 +527,7 @@ let get_def_key (scope_uid : ScopeName.t) (ctxt : context) (pos : Pos.t) : Desugared.Ast.ScopeDef.t = - let scope_ctxt = Scopelang.Ast.ScopeMap.find scope_uid ctxt.scopes in + let scope_ctxt = ScopeMap.find scope_uid ctxt.scopes in match name with | [x] -> let x_uid = get_var_uid scope_uid ctxt x in @@ -569,7 +565,7 @@ let get_def_key | [y; x] -> let subscope_uid : SubScopeName.t = get_subscope_uid scope_uid ctxt y in let subscope_real_uid : ScopeName.t = - Scopelang.Ast.SubScopeMap.find subscope_uid scope_ctxt.sub_scopes + SubScopeMap.find subscope_uid scope_ctxt.sub_scopes in let x_uid = get_var_uid subscope_real_uid ctxt x in Desugared.Ast.ScopeDef.SubScopeVar (subscope_uid, x_uid, pos) @@ -587,7 +583,7 @@ let process_definition { ctxt with scopes = - Scopelang.Ast.ScopeMap.update s_name + ScopeMap.update s_name (fun (s_ctxt : scope_context option) -> let def_key = get_def_key @@ -727,7 +723,7 @@ let form_context (prgm : Ast.program) : context = { local_var_idmap = Desugared.Ast.IdentMap.empty; scope_idmap = Desugared.Ast.IdentMap.empty; - scopes = Scopelang.Ast.ScopeMap.empty; + scopes = ScopeMap.empty; var_typs = ScopeVarMap.empty; structs = StructMap.empty; struct_idmap = Desugared.Ast.IdentMap.empty; diff --git a/compiler/surface/name_resolution.mli b/compiler/surface/name_resolution.mli index 0479f5a7..12df096e 100644 --- a/compiler/surface/name_resolution.mli +++ b/compiler/surface/name_resolution.mli @@ -40,7 +40,7 @@ type scope_context = { (** What is the default rule to refer to for unnamed exceptions, if any *) sub_scopes_idmap : SubScopeName.t Desugared.Ast.IdentMap.t; (** Sub-scopes variables *) - sub_scopes : ScopeName.t Scopelang.Ast.SubScopeMap.t; + sub_scopes : ScopeName.t SubScopeMap.t; (** To what scope sub-scopes refer to? *) } (** Inside a scope, we distinguish between the variables and the subscopes. *) @@ -75,8 +75,7 @@ type context = { constructor_idmap : EnumConstructor.t EnumMap.t Desugared.Ast.IdentMap.t; (** The names of the enum constructors. Constructor names can be shared between different enums *) - scopes : scope_context Scopelang.Ast.ScopeMap.t; - (** For each scope, its context *) + scopes : scope_context ScopeMap.t; (** For each scope, its context *) structs : struct_context StructMap.t; (** For each struct, its context *) enums : enum_context EnumMap.t; (** For each enum, its context *) var_typs : var_sig ScopeVarMap.t; From a8816eb9e43ec3eb4360a6f3cb62822b4936487c Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Thu, 15 Sep 2022 17:32:20 +0200 Subject: [PATCH 17/52] Fix parser message that didn't make sense to me I had the message appear after a `integer_to_decimal` not followed by `of`, but might it happen in other cases ? --- compiler/surface/parser.messages | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/surface/parser.messages b/compiler/surface/parser.messages index 8b69e699..7f95743c 100644 --- a/compiler/surface/parser.messages +++ b/compiler/surface/parser.messages @@ -1741,7 +1741,7 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE YEAR ## small_expression ## -expected an enum constructor to test if the expression on the left +expected the function application operator From 0ad51b7aec71b81afa7f20a6af9c531c4be0cd5f Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Wed, 14 Sep 2022 17:56:27 +0200 Subject: [PATCH 18/52] Unify outermost types first in Typing.top_down It doesn't actually change the error output much, but is more sound, and allowed to fix a few quirks in the code. --- compiler/shared_ast/typing.ml | 205 +++++++++++++++++----------------- 1 file changed, 103 insertions(+), 102 deletions(-) diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 22962b4b..68968471 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -552,9 +552,9 @@ and typecheck_expr_top_down : tau (Expr.format ctx) e; *) let pos_e = Expr.pos e in let mark e = Marked.mark { uf = tau; pos = pos_e } e in - let unify_and_mark (e' : (a, mark) A.naked_gexpr) tau' = + let unify_and_mark tau' f_e = unify ctx e tau' tau; - Marked.mark { uf = tau; pos = pos_e } e' + Bindlib.box_apply (Marked.mark { uf = tau; pos = pos_e }) (f_e ()) in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in match Marked.unmark e with @@ -567,8 +567,10 @@ and typecheck_expr_top_down : A.ScopeVarMap.find (Marked.unmark v) (A.SubScopeMap.find (Marked.unmark ss_name) env.subscope_vars) in - Bindlib.box (unify_and_mark e1 (ast_to_typ ty)) + unify_and_mark (ast_to_typ ty) (fun () -> Bindlib.box e1) | A.EStruct (s_name, fmap) -> + unify_and_mark (unionfind_make (TStruct s_name)) + @@ fun () -> let+ fmap' = (* This assumes that the fields in fmap and the struct type are already ensured to be the same *) @@ -581,26 +583,29 @@ and typecheck_expr_top_down : (Bindlib.box A.StructFieldMap.empty) (A.StructMap.find s_name ctx.A.ctx_structs) in - unify_and_mark (A.EStruct (s_name, fmap')) (unionfind_make (TStruct s_name)) + A.EStruct (s_name, fmap') | A.EStructAccess (e_struct, f_name, s_name) -> - let f_ty = - ast_to_typ (List.assoc f_name (A.StructMap.find s_name ctx.A.ctx_structs)) - in + unify_and_mark + (ast_to_typ + (List.assoc f_name (A.StructMap.find s_name ctx.A.ctx_structs))) + @@ fun () -> let+ e_struct' = typecheck_expr_top_down ctx env (unionfind_make (TStruct s_name)) e_struct in - unify_and_mark (A.EStructAccess (e_struct', f_name, s_name)) f_ty + A.EStructAccess (e_struct', f_name, s_name) | A.EEnumInj (e_enum, c_name, e_name) -> - let c_ty = - ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums)) - in + unify_and_mark + (ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums))) + @@ fun () -> let+ e_enum' = typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e_enum in - unify_and_mark (A.EEnumInj (e_enum', c_name, e_name)) c_ty + A.EEnumInj (e_enum', c_name, e_name) | A.EMatchS (e1, e_name, cases) -> let cases_ty = A.EnumMap.find e_name ctx.A.ctx_enums in let t_ret = unionfind_make ~pos:e1 (TAny (Any.fresh ())) in + unify_and_mark t_ret + @@ fun () -> let+ e1' = typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e1 and+ cases' = @@ -613,85 +618,81 @@ and typecheck_expr_top_down : cases (Bindlib.box A.EnumConstructorMap.empty) in - unify_and_mark (A.EMatchS (e1', e_name, cases')) t_ret - | A.ERaise ex -> - Bindlib.box - (unify_and_mark (A.ERaise ex) (unionfind_make (TAny (Any.fresh ())))) + A.EMatchS (e1', e_name, cases') + | A.ERaise _ as e1 -> Bindlib.box (mark e1) | A.ECatch (e1, ex, e2) -> - let+ e1' = typecheck_expr_bottom_up ctx env e1 - and+ e2' = typecheck_expr_bottom_up ctx env e2 in - let e_ty = ty e1' in - unify ctx e e_ty (ty e2'); - unify_and_mark (A.ECatch (e1', ex, e2')) e_ty - | A.EVar v -> begin - match Var.Map.find_opt v env.vars with - | Some tau' -> - let+ v' = Bindlib.box_var (Var.translate v) in - unify_and_mark v' tau' - | None -> - Errors.raise_spanned_error pos_e - "Variable %s not found in the current context" (Bindlib.name_of v) - end + let+ e1' = typecheck_expr_top_down ctx env tau e1 + and+ e2' = typecheck_expr_top_down ctx env tau e2 in + mark (A.ECatch (e1', ex, e2')) + | A.EVar v -> + let tau' = + try Var.Map.find v env.vars + with Not_found -> + Errors.raise_spanned_error pos_e + "Variable %s not found in the current context" (Bindlib.name_of v) + in + unify_and_mark tau' @@ fun () -> Bindlib.box_var (Var.translate v) | A.ELit lit as e1 -> - Bindlib.box @@ unify_and_mark e1 (unionfind_make (lit_type lit)) + unify_and_mark (unionfind_make (lit_type lit)) + @@ fun () -> Bindlib.box @@ e1 | A.ETuple (es, None) -> - let+ es' = bmap (typecheck_expr_bottom_up ctx env) es in - unify_and_mark - (A.ETuple (es', None)) - (unionfind_make (TTuple (List.map ty es'))) + let tys = List.map (fun _ -> unionfind_make (TAny (Any.fresh ()))) es in + unify_and_mark (unionfind_make (TTuple tys)) + @@ fun () -> + let+ es' = bmap2 (typecheck_expr_top_down ctx env) tys es in + A.ETuple (es', None) | A.ETuple (es, Some s_name) -> let tys = List.map (fun (_, ty) -> ast_to_typ ty) (A.StructMap.find s_name ctx.A.ctx_structs) in + unify_and_mark (unionfind_make (TStruct s_name)) + @@ fun () -> let+ es' = bmap2 (typecheck_expr_top_down ctx env) tys es in - unify_and_mark - (A.ETuple (es', Some s_name)) - (unionfind_make (TStruct s_name)) - | A.ETupleAccess (e1, n, s, typs) -> begin + A.ETuple (es', Some s_name) + | A.ETupleAccess (e1, n, s, typs) -> let typs' = List.map ast_to_typ typs in let tuple_ty = match s with None -> TTuple typs' | Some s -> TStruct s in + let t1n = + try List.nth typs' n + with Not_found -> + Errors.raise_spanned_error (Expr.pos e1) + "Expression should have a tuple type with at least %d elements but \ + only has %d" + n (List.length typs) + in + unify_and_mark t1n + @@ fun () -> let+ e1' = typecheck_expr_top_down ctx env (unionfind_make tuple_ty) e1 in - match List.nth_opt typs' n with - | Some t1n -> unify_and_mark (A.ETupleAccess (e1', n, s, typs)) t1n - | None -> - Errors.raise_spanned_error (Expr.pos e1) - "Expression should have a tuple type with at least %d elements but \ - only has %d" - n (List.length typs) - end + A.ETupleAccess (e1', n, s, typs) | A.EInj (e1, n, e_name, ts) -> let ts' = List.map ast_to_typ ts in let ts_n = - match List.nth_opt ts' n with - | Some ts_n -> ts_n - | None -> + try List.nth ts' n + with Not_found -> Errors.raise_spanned_error (Expr.pos e) "Expression should have a sum type with at least %d cases but only \ has %d" n (List.length ts) in + unify_and_mark (unionfind_make (TEnum e_name)) + @@ fun () -> let+ e1' = typecheck_expr_top_down ctx env ts_n e1 in - unify_and_mark (A.EInj (e1', n, e_name, ts)) (unionfind_make (TEnum e_name)) + A.EInj (e1', n, e_name, ts) | A.EMatch (e1, es, e_name) -> - let enum_cases = - List.map (fun e' -> unionfind_make ~pos:e' (TAny (Any.fresh ()))) es - in - let e1' = + let+ es' = + bmap2 + (fun es' (_, c_ty) -> + typecheck_expr_top_down ctx env + (unionfind_make ~pos:es' (TArrow (ast_to_typ c_ty, tau))) + es') + es + (A.EnumMap.find e_name ctx.ctx_enums) + and+ e1' = typecheck_expr_top_down ctx env (unionfind_make ~pos:e1 (TEnum e_name)) e1 in - let t_ret = unionfind_make ~pos:e (TAny (Any.fresh ())) in - let+ e1' - and+ es' = - bmap2 - (fun es' enum_t -> - typecheck_expr_top_down ctx env - (unionfind_make ~pos:es' (TArrow (enum_t, t_ret))) - es') - es enum_cases - in - unify_and_mark (EMatch (e1', es', e_name)) t_ret + mark (A.EMatch (e1', es', e_name)) | A.EAbs (binder, t_args) -> if Bindlib.mbinder_arity binder <> List.length t_args then Errors.raise_spanned_error (Expr.pos e) @@ -699,76 +700,76 @@ and typecheck_expr_top_down : (Bindlib.mbinder_arity binder) (List.length t_args) else + let tau_args = List.map ast_to_typ t_args in + let t_ret = unionfind_make (TAny (Any.fresh ())) in + let t_func = + List.fold_right + (fun t_arg acc -> unionfind_make (TArrow (t_arg, acc))) + tau_args t_ret + in + unify_and_mark t_func + @@ fun () -> let xs, body = Bindlib.unmbind binder in let xs' = Array.map Var.translate xs in - let xstaus = - List.map2 (fun x t_arg -> x, ast_to_typ t_arg) (Array.to_list xs) t_args - in let env = { env with vars = - List.fold_left - (fun env (x, t_arg) -> Var.Map.add x t_arg env) - env.vars xstaus; + List.fold_left2 + (fun env x tau_arg -> Var.Map.add x tau_arg env) + env.vars (Array.to_list xs) tau_args; } in - let body' = typecheck_expr_bottom_up ctx env body in - let t_func = - List.fold_right - (fun (_, t_arg) acc -> unionfind_make (TArrow (t_arg, acc))) - xstaus (box_ty body') - in + let body' = typecheck_expr_top_down ctx env t_ret body in let+ binder' = Bindlib.bind_mvar xs' body' in - unify_and_mark (EAbs (binder', t_args)) t_func + A.EAbs (binder', t_args) | A.EApp (e1, args) -> - let+ args' = bmap (typecheck_expr_bottom_up ctx env) args - and+ e1' = typecheck_expr_bottom_up ctx env e1 in + let t_args = + List.map (fun _ -> unionfind_make (TAny (Any.fresh ()))) args + in let t_func = List.fold_right - (fun arg acc -> unionfind_make (TArrow (ty arg, acc))) - args' tau + (fun t_arg acc -> unionfind_make (TArrow (t_arg, acc))) + t_args tau in - unify ctx e (ty e1') t_func; - unify_and_mark (EApp (e1', args')) tau + let+ e1' = typecheck_expr_top_down ctx env t_func e1 + and+ args' = bmap2 (typecheck_expr_top_down ctx env) t_args args in + mark (A.EApp (e1', args')) | A.EOp op as e1 -> - let op_typ = op_type (add_pos e op) in - Bindlib.box (unify_and_mark e1 op_typ) + unify_and_mark (op_type (add_pos e op)) @@ fun () -> Bindlib.box e1 | A.EDefault (excepts, just, cons) -> - let+ just' = + let+ cons' = typecheck_expr_top_down ctx env tau cons + and+ just' = typecheck_expr_top_down ctx env (unionfind_make ~pos:just (TLit TBool)) just - and+ cons' = typecheck_expr_top_down ctx env tau cons and+ excepts' = bmap (typecheck_expr_top_down ctx env tau) excepts in mark (A.EDefault (excepts', just', cons')) | A.EIfThenElse (cond, et, ef) -> - let+ cond' = + let+ et' = typecheck_expr_top_down ctx env tau et + and+ ef' = typecheck_expr_top_down ctx env tau ef + and+ cond' = typecheck_expr_top_down ctx env (unionfind_make ~pos:cond (TLit TBool)) cond - and+ et' = typecheck_expr_top_down ctx env tau et - and+ ef' = typecheck_expr_top_down ctx env tau ef in + in mark (A.EIfThenElse (cond', et', ef')) | A.EAssert e1 -> + unify_and_mark (unionfind_make ~pos:e1 (TLit TUnit)) + @@ fun () -> let+ e1' = typecheck_expr_top_down ctx env (unionfind_make ~pos:e1 (TLit TBool)) e1 in - unify_and_mark (EAssert e1') (unionfind_make ~pos:e1 (TLit TUnit)) + A.EAssert e1' | A.ErrorOnEmpty e1 -> let+ e1' = typecheck_expr_top_down ctx env tau e1 in mark (A.ErrorOnEmpty e1') | A.EArray es -> let cell_type = unionfind_make (TAny (Any.fresh ())) in - let+ es' = - bmap - (fun e1 -> - let e1' = typecheck_expr_bottom_up ctx env e1 in - unify ctx e cell_type (box_ty e1'); - e1') - es - in - unify_and_mark (A.EArray es') (unionfind_make (TArray cell_type)) + unify_and_mark (unionfind_make (TArray cell_type)) + @@ fun () -> + let+ es' = bmap (typecheck_expr_top_down ctx env cell_type) es in + A.EArray es' let wrap ctx f e = try From 5a553149fffc51760580e7ab899604e24e72505b Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 23 Sep 2022 17:30:54 +0200 Subject: [PATCH 19/52] Makefile: ensure compiler is up-to-date when running tests --- Makefile | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index e7fa2ee5..e845a61a 100644 --- a/Makefile +++ b/Makefile @@ -53,6 +53,9 @@ build_dev: parser-messages $(BUILD_SYSTEM_DIR)/clerk.exe \ $(CATALA_LEGIFRANCE_DIR)/catala_legifrance.exe +# Just the base compiler as needed to run the tests +compiler: parser-messages + dune build $(COMPILER_DIR)/catala.exe $(COMPILER_DIR)/plugins/ $(BUILD_SYSTEM_DIR)/clerk.exe #> build : Builds the Catala compiler build: parser-messages format build_dev @@ -305,11 +308,11 @@ CLERK=$(CLERK_BIN) --exe $(CATALA_BIN) \ .FORCE: -test_suite: .FORCE - $(MAKE) -C tests pass_all_tests +test_suite: .FORCE compiler + @$(MAKE) -C tests pass_all_tests -test_examples: .FORCE - $(MAKE) -C examples pass_all_tests +test_examples: .FORCE compiler + @$(MAKE) -C examples pass_all_tests #> tests : Run interpreter tests tests: test_suite test_examples From 51f79af13e9a308d6c5ef7a414ff065e6c39195f Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 23 Sep 2022 17:43:48 +0200 Subject: [PATCH 20/52] Generalise the types to allow scopelang ASTs to be typed --- compiler/desugared/desugared_to_scope.ml | 20 +++++----- compiler/desugared/desugared_to_scope.mli | 2 +- compiler/scopelang/ast.ml | 26 ++++++------- compiler/scopelang/ast.mli | 20 +++++----- compiler/scopelang/dependency.ml | 2 +- compiler/scopelang/dependency.mli | 2 +- compiler/scopelang/print.ml | 2 +- compiler/scopelang/print.mli | 4 +- compiler/scopelang/scope_to_dcalc.ml | 47 +++++++++++++---------- compiler/scopelang/scope_to_dcalc.mli | 2 +- 10 files changed, 63 insertions(+), 64 deletions(-) diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index f11ecc43..c21d561b 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -27,18 +27,18 @@ type target_scope_vars = type ctx = { scope_var_mapping : target_scope_vars ScopeVarMap.t; - var_mapping : (Ast.expr, Scopelang.Ast.expr Var.t) Var.Map.t; + var_mapping : (Ast.expr, untyped Scopelang.Ast.expr Var.t) Var.Map.t; } let tag_with_log_entry - (e : Scopelang.Ast.expr) + (e : untyped Scopelang.Ast.expr) (l : log_entry) - (markings : Utils.Uid.MarkedString.info list) : Scopelang.Ast.expr = + (markings : Utils.Uid.MarkedString.info list) : untyped Scopelang.Ast.expr = ( EApp ((EOp (Unop (Log (l, markings))), Marked.get_mark e), [e]), Marked.get_mark e ) let rec translate_expr (ctx : ctx) (e : Ast.expr) : - Scopelang.Ast.expr Bindlib.box = + untyped Scopelang.Ast.expr Bindlib.box = let m = Marked.get_mark e in match Marked.unmark e with | ELocation (SubScopeVar (s_name, ss_name, s_var)) -> @@ -186,7 +186,7 @@ let rec rule_tree_to_expr (ctx : ctx) (def_pos : Pos.t) (is_func : Ast.expr Var.t option) - (tree : rule_tree) : Scopelang.Ast.expr Bindlib.box = + (tree : rule_tree) : untyped Scopelang.Ast.expr Bindlib.box = let emark = Untyped { pos = def_pos } in let exceptions, base_rules = match tree with Leaf r -> [], r | Node (exceptions, r) -> exceptions, r @@ -236,7 +236,7 @@ let rec rule_tree_to_expr base_rules in let translate_and_unbox_list (list : Ast.expr Bindlib.box list) : - Scopelang.Ast.expr Bindlib.box list = + untyped Scopelang.Ast.expr Bindlib.box list = List.map (fun e -> (* There are two levels of boxing here, the outermost is introduced by @@ -283,7 +283,7 @@ let rec rule_tree_to_expr that the result returned by the function is not empty *) let default = Bindlib.box_apply - (fun (default : Scopelang.Ast.expr) -> ErrorOnEmpty default, emark) + (fun (default : untyped Scopelang.Ast.expr) -> ErrorOnEmpty default, emark) default in Expr.make_abs @@ -303,7 +303,7 @@ let translate_def (typ : typ) (io : Scopelang.Ast.io) ~(is_cond : bool) - ~(is_subscope_var : bool) : Scopelang.Ast.expr = + ~(is_subscope_var : bool) : untyped Scopelang.Ast.expr = (* Here, we have to transform this list of rules into a default tree. *) let is_def_func = match Marked.unmark typ with TArrow (_, _) -> true | _ -> false @@ -411,7 +411,7 @@ let translate_def [Ast.empty_rule (Marked.get_mark typ) is_def_func_param_typ] ))) (** Translates a scope *) -let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = +let translate_scope (ctx : ctx) (scope : Ast.scope) : untyped Scopelang.Ast.scope_decl = let scope_dependencies = Dependency.build_scope_dependencies scope in Dependency.check_for_cycle scope scope_dependencies; let scope_ordering = @@ -633,7 +633,7 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : Scopelang.Ast.scope_decl = (** {1 API} *) -let translate_program (pgrm : Ast.program) : Scopelang.Ast.program = +let translate_program (pgrm : Ast.program) : untyped Scopelang.Ast.program = (* First we give mappings to all the locations between Desugared and Scopelang. This involves creating a new Scopelang scope variable for every state of a Desugared variable. *) diff --git a/compiler/desugared/desugared_to_scope.mli b/compiler/desugared/desugared_to_scope.mli index 7b8d2c12..b5314e7c 100644 --- a/compiler/desugared/desugared_to_scope.mli +++ b/compiler/desugared/desugared_to_scope.mli @@ -16,4 +16,4 @@ (** Translation from {!module: Desugared.Ast} to {!module: Scopelang.Ast} *) -val translate_program : Ast.program -> Scopelang.Ast.program +val translate_program : Ast.program -> Shared_ast.untyped Scopelang.Ast.program diff --git a/compiler/scopelang/ast.ml b/compiler/scopelang/ast.ml index eb5cd774..5dbcdb14 100644 --- a/compiler/scopelang/ast.ml +++ b/compiler/scopelang/ast.ml @@ -28,15 +28,9 @@ Set.Make (struct let compare = Expr.compare_location end) -type expr = (scopelang, untyped mark) gexpr +type 'm expr = (scopelang, 'm mark) gexpr -module ExprMap = Map.Make (struct - type t = expr - - let compare = Expr.compare -end) - -let rec locations_used (e : expr) : LocationSet.t = +let rec locations_used (e : 'm expr) : LocationSet.t = match Marked.unmark e with | ELocation l -> LocationSet.singleton (l, Expr.pos e) | EVar _ | ELit _ | EOp _ -> LocationSet.empty @@ -74,18 +68,20 @@ let rec locations_used (e : expr) : LocationSet.t = type io_input = NoInput | OnlyInput | Reentrant type io = { io_output : bool Marked.pos; io_input : io_input Marked.pos } -type rule = - | Definition of location Marked.pos * typ * io * expr - | Assertion of expr +type 'm rule = + | Definition of location Marked.pos * typ * io * 'm expr + | Assertion of 'm expr | Call of ScopeName.t * SubScopeName.t -type scope_decl = { +type 'm scope_decl = { scope_decl_name : ScopeName.t; scope_sig : (typ * io) ScopeVarMap.t; - scope_decl_rules : rule list; + scope_decl_rules : 'm rule list; } -type program = { - program_scopes : scope_decl ScopeMap.t; +type 'm program = { + program_scopes : 'm scope_decl ScopeMap.t; program_ctx : decl_ctx; } + +(* let type_program: untyped *) diff --git a/compiler/scopelang/ast.mli b/compiler/scopelang/ast.mli index 28179afd..dfd8795e 100644 --- a/compiler/scopelang/ast.mli +++ b/compiler/scopelang/ast.mli @@ -37,11 +37,9 @@ module LocationSet : Set.S with type elt = location Marked.pos (** {1 Abstract syntax tree} *) -type expr = (scopelang, untyped mark) gexpr +type 'm expr = (scopelang, 'm mark) gexpr -module ExprMap : Map.S with type key = expr - -val locations_used : expr -> LocationSet.t +val locations_used : 'm expr -> LocationSet.t (** This type characterizes the three levels of visibility for a given scope variable with regards to the scope's input and possible redefinitions inside @@ -64,18 +62,18 @@ type io = { } (** Characterization of the input/output status of a scope variable. *) -type rule = - | Definition of location Marked.pos * typ * io * expr - | Assertion of expr +type 'm rule = + | Definition of location Marked.pos * typ * io * 'm expr + | Assertion of 'm expr | Call of ScopeName.t * SubScopeName.t -type scope_decl = { +type 'm scope_decl = { scope_decl_name : ScopeName.t; scope_sig : (typ * io) ScopeVarMap.t; - scope_decl_rules : rule list; + scope_decl_rules : 'm rule list; } -type program = { - program_scopes : scope_decl ScopeMap.t; +type 'm program = { + program_scopes : 'm scope_decl ScopeMap.t; program_ctx : decl_ctx; } diff --git a/compiler/scopelang/dependency.ml b/compiler/scopelang/dependency.ml index 90ed3085..e8d210d7 100644 --- a/compiler/scopelang/dependency.ml +++ b/compiler/scopelang/dependency.ml @@ -45,7 +45,7 @@ module STopologicalTraversal = Graph.Topological.Make (SDependencies) module SSCC = Graph.Components.Make (SDependencies) (** Tarjan's stongly connected components algorithm, provided by OCamlGraph *) -let build_program_dep_graph (prgm : Ast.program) : SDependencies.t = +let build_program_dep_graph (prgm : 'm Ast.program) : SDependencies.t = let g = SDependencies.empty in let g = ScopeMap.fold diff --git a/compiler/scopelang/dependency.mli b/compiler/scopelang/dependency.mli index 3e8f7d39..5ccf1790 100644 --- a/compiler/scopelang/dependency.mli +++ b/compiler/scopelang/dependency.mli @@ -27,7 +27,7 @@ open Shared_ast module SDependencies : Graph.Sig.P with type V.t = ScopeName.t and type E.label = Pos.t -val build_program_dep_graph : Ast.program -> SDependencies.t +val build_program_dep_graph : 'm Ast.program -> SDependencies.t val check_for_cycle_in_scope : SDependencies.t -> unit val get_scope_ordering : SDependencies.t -> ScopeName.t list diff --git a/compiler/scopelang/print.ml b/compiler/scopelang/print.ml index 2d791364..a2d88d09 100644 --- a/compiler/scopelang/print.ml +++ b/compiler/scopelang/print.ml @@ -98,7 +98,7 @@ let scope ?(debug = false) ctx fmt (name, decl) = SubScopeName.format_t subscope_name Print.punctuation "]")) decl.scope_decl_rules -let program ?(debug : bool = false) (fmt : Format.formatter) (p : program) : +let program ?(debug : bool = false) (fmt : Format.formatter) (p : 'm program) : unit = let ctx = p.program_ctx in let pp_sep fmt () = diff --git a/compiler/scopelang/print.mli b/compiler/scopelang/print.mli index 77fbd320..4ec2f4fe 100644 --- a/compiler/scopelang/print.mli +++ b/compiler/scopelang/print.mli @@ -18,11 +18,11 @@ val scope : ?debug:bool (** [true] for debug printing *) -> Shared_ast.decl_ctx -> Format.formatter -> - Shared_ast.ScopeName.t * Ast.scope_decl -> + Shared_ast.ScopeName.t * 'm Ast.scope_decl -> unit val program : ?debug:bool (** [true] for debug printing *) -> Format.formatter -> - Ast.program -> + 'm Ast.program -> unit diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index b263b62b..b6c3cb64 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -35,7 +35,7 @@ type scope_sig_ctx = { type scope_sigs_ctx = scope_sig_ctx ScopeMap.t -type ctx = { +type 'm ctx = { structs : struct_ctx; enums : enum_ctx; scope_name : ScopeName.t; @@ -45,7 +45,7 @@ type ctx = { subscope_vars : (untyped Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t SubScopeMap.t; - local_vars : (Ast.expr, untyped Dcalc.Ast.expr Var.t) Var.Map.t; + local_vars : ('m Ast.expr, untyped Dcalc.Ast.expr Var.t) Var.Map.t; } let empty_ctx @@ -104,16 +104,21 @@ let tag_with_log_entry NOTE: the choice of the exception that will be triggered and show in the trace is arbitrary (but deterministic). *) -let collapse_similar_outcomes (excepts : Ast.expr list) : Ast.expr list = +let collapse_similar_outcomes (type m) (excepts : m Ast.expr list) : m Ast.expr list = + let module ExprMap = Map.Make (struct + type t = m Ast.expr + let compare = Expr.compare + end) + in let cons_map = List.fold_left (fun map -> function | (EDefault ([], _, cons), _) as e -> - Ast.ExprMap.update cons + ExprMap.update cons (fun prev -> Some (e :: Option.value ~default:[] prev)) map | _ -> map) - Ast.ExprMap.empty excepts + ExprMap.empty excepts in let _, excepts = List.fold_right @@ -127,16 +132,16 @@ let collapse_similar_outcomes (excepts : Ast.expr list) : Ast.expr list = [EDefault (acc, just, cons), pos] | _ -> assert false) [] - (Ast.ExprMap.find cons cons_map) + (ExprMap.find cons cons_map) in - Ast.ExprMap.add cons [] cons_map, collapsed_exc @ excepts + ExprMap.add cons [] cons_map, collapsed_exc @ excepts | e -> cons_map, e :: excepts) excepts (cons_map, []) in excepts -let rec translate_expr (ctx : ctx) (e : Ast.expr) : - untyped Dcalc.Ast.expr Bindlib.box = +let rec translate_expr (ctx : 'm ctx) (e : 'm Ast.expr) : + 'm Dcalc.Ast.expr Bindlib.box = Bindlib.box_apply (fun x -> Marked.same_mark_as x e) @@ match Marked.unmark e with @@ -355,12 +360,12 @@ let rec translate_expr (ctx : ctx) (e : Ast.expr) : continuation yielding a [Dcalc.scope_body_expr] by giving it what should come later in the chain of let-bindings. *) let translate_rule - (ctx : ctx) - (rule : Ast.rule) + (ctx : 'm ctx) + (rule : 'm Ast.rule) ((sigma_name, pos_sigma) : Utils.Uid.MarkedString.info) : - (untyped Dcalc.Ast.expr scope_body_expr Bindlib.box -> - untyped Dcalc.Ast.expr scope_body_expr Bindlib.box) - * ctx = + ('m Dcalc.Ast.expr scope_body_expr Bindlib.box -> + 'm Dcalc.Ast.expr scope_body_expr Bindlib.box) + * 'm ctx = match rule with | Definition ((ScopelangScopeVar a, var_def_pos), tau, a_io, e) -> let a_name = ScopeVar.get_info (Marked.unmark a) in @@ -633,11 +638,11 @@ let translate_rule ctx ) let translate_rules - (ctx : ctx) - (rules : Ast.rule list) + (ctx : 'm ctx) + (rules : 'm Ast.rule list) ((sigma_name, pos_sigma) : Utils.Uid.MarkedString.info) (sigma_return_struct_name : StructName.t) : - untyped Dcalc.Ast.expr scope_body_expr Bindlib.box * ctx = + 'm Dcalc.Ast.expr scope_body_expr Bindlib.box * 'm ctx = let scope_lets, new_ctx = List.fold_left (fun (scope_lets, ctx) rule -> @@ -673,8 +678,8 @@ let translate_scope_decl (enum_ctx : enum_ctx) (sctx : scope_sigs_ctx) (scope_name : ScopeName.t) - (sigma : Ast.scope_decl) : - untyped Dcalc.Ast.expr scope_body Bindlib.box * struct_ctx = + (sigma : 'm Ast.scope_decl) : + 'm Dcalc.Ast.expr scope_body Bindlib.box * struct_ctx = let sigma_info = ScopeName.get_info sigma.scope_decl_name in let scope_sig = ScopeMap.find sigma.scope_decl_name sctx in let scope_variables = scope_sig.scope_sig_local_vars in @@ -800,8 +805,8 @@ let translate_scope_decl (input_destructurings rules_with_return_expr)), new_struct_ctx ) -let translate_program (prgm : Ast.program) : - untyped Dcalc.Ast.program * Dependency.TVertex.t list = +let translate_program (prgm : 'm Ast.program) : + 'm Dcalc.Ast.program * Dependency.TVertex.t list = let scope_dependencies = Dependency.build_program_dep_graph prgm in Dependency.check_for_cycle_in_scope scope_dependencies; let types_ordering = diff --git a/compiler/scopelang/scope_to_dcalc.mli b/compiler/scopelang/scope_to_dcalc.mli index 40ad6f43..a42cb5bf 100644 --- a/compiler/scopelang/scope_to_dcalc.mli +++ b/compiler/scopelang/scope_to_dcalc.mli @@ -17,7 +17,7 @@ (** Scope language to default calculus translator *) val translate_program : - Ast.program -> + Shared_ast.untyped Ast.program -> Shared_ast.untyped Dcalc.Ast.program * Dependency.TVertex.t list (** Usage [translate_program p] returns a tuple [(new_program, types_list)] where [new_program] is the map of translated scopes. Finally, [types_list] From 05f4bb3537423546ca4015ac115e829cdf8ee6c3 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 12:12:39 +0200 Subject: [PATCH 21/52] Typing: simplify interface, split code in smaller functions --- compiler/driver.ml | 2 +- compiler/shared_ast/typing.ml | 195 +++++++++++++++------------------ compiler/shared_ast/typing.mli | 22 ++-- 3 files changed, 103 insertions(+), 116 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index 69873195..41260fb4 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -218,7 +218,7 @@ let driver source_file (options : Cli.options) : int = | ( `Interpret | `Typecheck | `OCaml | `Python | `Scalc | `Lcalc | `Proof | `Plugin _ ) as backend -> ( Cli.debug_print "Typechecking..."; - let prgm = Shared_ast.Typing.infer_types_program prgm in + let prgm = Shared_ast.Typing.program prgm in (* Cli.debug_print (Format.asprintf "Typechecking results :@\n%a" (Print.typ prgm.decl_ctx) typ); *) match backend with diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 68968471..9478b44f 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -786,108 +786,95 @@ let wrap ctx f e = let get_ty_mark { uf; pos } = A.Typed { ty = typ_to_ast uf; pos } (* Infer the type of an expression *) -let infer_types (type a) (ctx : A.decl_ctx) (e : (a, 'm) A.gexpr) : - (a, A.typed A.mark) A.gexpr A.box = - Expr.map_marks ~f:get_ty_mark - @@ wrap ctx (typecheck_expr_bottom_up ctx empty_env) e - -let infer_type (type a m) ctx (e : (a, m A.mark) A.gexpr) = - match Marked.get_mark e with - | A.Typed { ty; _ } -> ty - | A.Untyped _ -> Expr.ty (Bindlib.unbox (infer_types ctx e)) - -(** Typechecks an expression given an expected type *) -let check_type (type a) (ctx : A.decl_ctx) (e : (a, 'm) A.gexpr) (tau : A.typ) = - (* todo: consider using the already inferred type if ['m] = [typed] *) - ignore @@ wrap ctx (typecheck_expr_top_down ctx empty_env (ast_to_typ tau)) e - -let infer_types_program prg = - let ctx = prg.A.decl_ctx in - let rec process_scopes env = function - | A.Nil -> Bindlib.box A.Nil - | A.ScopeDef - { - scope_next; - scope_name; - scope_body = - { - scope_body_input_struct = s_in; - scope_body_output_struct = s_out; - scope_body_expr = body; - }; - } -> - let scope_pos = Marked.get_mark (A.ScopeName.get_info scope_name) in - let struct_ty struct_name = - UnionFind.make (Marked.mark scope_pos (TStruct struct_name)) - in - let ty_in = struct_ty s_in in - let ty_out = struct_ty s_out in - let ty_scope = - UnionFind.make (Marked.mark scope_pos (TArrow (ty_in, ty_out))) - in - let rec process_scope_body_expr env = function - | A.Result e -> - let e' = wrap ctx (typecheck_expr_top_down ctx env ty_out) e in - let e' = Expr.map_marks ~f:get_ty_mark e' in - Bindlib.box_apply (fun e -> A.Result e) e' - | A.ScopeLet - { - scope_let_kind; - scope_let_typ; - scope_let_expr = e0; - scope_let_next; - scope_let_pos; - } -> - let ty_e = ast_to_typ scope_let_typ in - let e = wrap ctx (typecheck_expr_bottom_up ctx env) e0 in - wrap ctx (fun t -> Bindlib.box (unify ctx e0 (ty e) t)) ty_e; - (* We could use [typecheck_expr_top_down] rather than this manual - unification, but we get better messages with this order of the - [unify] parameters, which keeps location of the type as defined - instead of as inferred. *) - let var, next = Bindlib.unbind scope_let_next in - let env = { env with vars = Var.Map.add var ty_e env.vars } in - let next = process_scope_body_expr env next in - let scope_let_next = Bindlib.bind_var (Var.translate var) next in - Bindlib.box_apply2 - (fun scope_let_expr scope_let_next -> - A.ScopeLet - { - scope_let_kind; - scope_let_typ; - scope_let_expr; - scope_let_next; - scope_let_pos; - }) - (Expr.map_marks ~f:get_ty_mark e) - scope_let_next - in - let scope_body_expr = - let var, e = Bindlib.unbind body in - let env = { env with vars = Var.Map.add var ty_in env.vars } in - let e' = process_scope_body_expr env e in - Bindlib.bind_var (Var.translate var) e' - in - let scope_next = - let scope_var, next = Bindlib.unbind scope_next in - let env = { env with vars = Var.Map.add scope_var ty_scope env.vars } in - let next' = process_scopes env next in - Bindlib.bind_var (Var.translate scope_var) next' - in - Bindlib.box_apply2 - (fun scope_body_expr scope_next -> - A.ScopeDef - { - scope_next; - scope_name; - scope_body = - { - scope_body_input_struct = s_in; - scope_body_output_struct = s_out; - scope_body_expr; - }; - }) - scope_body_expr scope_next +let expr + (type a) + (ctx : A.decl_ctx) + ?(env = empty_env) + ?(typ : A.typ option) + (e : (a, 'm) A.gexpr) : (a, A.typed A.mark) A.gexpr A.box = + let fty = + match typ with + | None -> typecheck_expr_bottom_up ctx env + | Some typ -> typecheck_expr_top_down ctx env (ast_to_typ typ) in - let scopes = Bindlib.unbox (process_scopes empty_env prg.scopes) in - { A.decl_ctx = ctx; scopes } + Expr.map_marks ~f:get_ty_mark (wrap ctx fty e) + +let rec scope_body_expr ctx env ty_out body_expr = + match body_expr with + | A.Result e -> + let e' = wrap ctx (typecheck_expr_top_down ctx env ty_out) e in + let e' = Expr.map_marks ~f:get_ty_mark e' in + Bindlib.box_apply (fun e -> A.Result e) e' + | A.ScopeLet + { + scope_let_kind; + scope_let_typ; + scope_let_expr = e0; + scope_let_next; + scope_let_pos; + } -> + let ty_e = ast_to_typ scope_let_typ in + let e = wrap ctx (typecheck_expr_bottom_up ctx env) e0 in + wrap ctx (fun t -> Bindlib.box (unify ctx e0 (ty e) t)) ty_e; + (* We could use [typecheck_expr_top_down] rather than this manual + unification, but we get better messages with this order of the [unify] + parameters, which keeps location of the type as defined instead of as + inferred. *) + let var, next = Bindlib.unbind scope_let_next in + let env = { env with vars = Var.Map.add var ty_e env.vars } in + let next = scope_body_expr ctx env ty_out next in + let scope_let_next = Bindlib.bind_var (Var.translate var) next in + Bindlib.box_apply2 + (fun scope_let_expr scope_let_next -> + A.ScopeLet + { + scope_let_kind; + scope_let_typ; + scope_let_expr; + scope_let_next; + scope_let_pos; + }) + (Expr.map_marks ~f:get_ty_mark e) + scope_let_next + +let scope_body ctx env body = + let get_pos struct_name = + Marked.get_mark (A.StructName.get_info struct_name) + in + let struct_ty struct_name = + UnionFind.make (Marked.mark (get_pos struct_name) (TStruct struct_name)) + in + let ty_in = struct_ty body.A.scope_body_input_struct in + let ty_out = struct_ty body.A.scope_body_output_struct in + let var, e = Bindlib.unbind body.A.scope_body_expr in + let env = { env with vars = Var.Map.add var ty_in env.vars } in + let e' = scope_body_expr ctx env ty_out e in + ( Bindlib.bind_var (Var.translate var) e', + UnionFind.make + (Marked.mark + (get_pos body.A.scope_body_output_struct) + (TArrow (ty_in, ty_out))) ) + +let rec scopes ctx env = function + | A.Nil -> Bindlib.box A.Nil + | A.ScopeDef def -> + let body_e, ty_scope = scope_body ctx env def.scope_body in + let scope_next = + let scope_var, next = Bindlib.unbind def.scope_next in + let env = { env with vars = Var.Map.add scope_var ty_scope env.vars } in + let next' = scopes ctx env next in + Bindlib.bind_var (Var.translate scope_var) next' + in + Bindlib.box_apply2 + (fun scope_body_expr scope_next -> + A.ScopeDef + { + def with + scope_body = { def.scope_body with scope_body_expr }; + scope_next; + }) + body_e scope_next + +let program prg = + let scopes = Bindlib.unbox (scopes prg.A.decl_ctx empty_env prg.A.scopes) in + { prg with scopes } diff --git a/compiler/shared_ast/typing.mli b/compiler/shared_ast/typing.mli index feb77127..582dca58 100644 --- a/compiler/shared_ast/typing.mli +++ b/compiler/shared_ast/typing.mli @@ -19,16 +19,16 @@ open Definitions -val infer_types : - decl_ctx -> ('a, untyped mark) gexpr -> ('a, typed mark) gexpr box -(** Infers types everywhere on the given expression, and adds (or replaces) type - annotations on each node *) +type 'e env -val infer_type : decl_ctx -> ('a, 'm mark) gexpr -> typ -(** Gets the outer type of the given expression, using either the existing - annotations or inference *) +val expr : + decl_ctx -> + ?env:'e env -> + ?typ:typ -> + (('a, 'm mark) gexpr as 'e) -> + ('a, typed mark) gexpr box +(** Infers and marks the types for the given expression. If [typ] is provided, + it is assumed to be the outer type and used for inference top-down. *) -val check_type : decl_ctx -> ('a, 'm mark) gexpr -> typ -> unit - -val infer_types_program : - ('a, untyped mark) gexpr program -> ('a, typed mark) gexpr program +val program : ('a, untyped mark) gexpr program -> ('a, typed mark) gexpr program +(** Typing on whole programs *) From 9f7a0f6078493880b21f36a3ef20c978a5c13bfb Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 16:05:57 +0200 Subject: [PATCH 22/52] Fix naming error in interface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hmm I used too much `sed` and overlooked this one (patch looks big because of reformatting, but it's mostly just `naked_expr`→`expr`) --- compiler/desugared/desugared_to_scope.ml | 6 ++- compiler/scopelang/print.ml | 11 ++-- compiler/scopelang/scope_to_dcalc.ml | 11 ++-- compiler/shared_ast/expr.ml | 2 +- compiler/shared_ast/print.ml | 68 ++++++++++++------------ compiler/shared_ast/print.mli | 2 +- compiler/shared_ast/typing.ml | 2 +- 7 files changed, 51 insertions(+), 51 deletions(-) diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index c21d561b..5e2efa7a 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -283,7 +283,8 @@ let rec rule_tree_to_expr that the result returned by the function is not empty *) let default = Bindlib.box_apply - (fun (default : untyped Scopelang.Ast.expr) -> ErrorOnEmpty default, emark) + (fun (default : untyped Scopelang.Ast.expr) -> + ErrorOnEmpty default, emark) default in Expr.make_abs @@ -411,7 +412,8 @@ let translate_def [Ast.empty_rule (Marked.get_mark typ) is_def_func_param_typ] ))) (** Translates a scope *) -let translate_scope (ctx : ctx) (scope : Ast.scope) : untyped Scopelang.Ast.scope_decl = +let translate_scope (ctx : ctx) (scope : Ast.scope) : + untyped Scopelang.Ast.scope_decl = let scope_dependencies = Dependency.build_scope_dependencies scope in Dependency.check_for_cycle scope scope_dependencies; let scope_ordering = diff --git a/compiler/scopelang/print.ml b/compiler/scopelang/print.ml index a2d88d09..4fe751a4 100644 --- a/compiler/scopelang/print.ml +++ b/compiler/scopelang/print.ml @@ -74,7 +74,7 @@ let scope ?(debug = false) ctx fmt (name, decl) = (Print.typ ctx) typ Print.punctuation "=" (fun fmt e -> match Marked.unmark loc with - | SubScopeVar _ -> Print.naked_expr ctx fmt e + | SubScopeVar _ -> Print.expr ctx fmt e | ScopelangScopeVar v -> ( match Marked.unmark @@ -83,15 +83,12 @@ let scope ?(debug = false) ctx fmt (name, decl) = with | Reentrant -> Format.fprintf fmt "%a@ %a" Print.operator - "reentrant or by default" - (Print.naked_expr ~debug ctx) - e - | _ -> Format.fprintf fmt "%a" (Print.naked_expr ~debug ctx) e)) + "reentrant or by default" (Print.expr ~debug ctx) e + | _ -> Format.fprintf fmt "%a" (Print.expr ~debug ctx) e)) e | Assertion e -> Format.fprintf fmt "%a %a" Print.keyword "assert" - (Print.naked_expr ~debug ctx) - e + (Print.expr ~debug ctx) e | Call (scope_name, subscope_name) -> Format.fprintf fmt "%a %a%a%a%a" Print.keyword "call" ScopeName.format_t scope_name Print.punctuation "[" diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index b6c3cb64..25637d77 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -104,12 +104,13 @@ let tag_with_log_entry NOTE: the choice of the exception that will be triggered and show in the trace is arbitrary (but deterministic). *) -let collapse_similar_outcomes (type m) (excepts : m Ast.expr list) : m Ast.expr list = +let collapse_similar_outcomes (type m) (excepts : m Ast.expr list) : + m Ast.expr list = let module ExprMap = Map.Make (struct - type t = m Ast.expr - let compare = Expr.compare - end) - in + type t = m Ast.expr + + let compare = Expr.compare + end) in let cons_map = List.fold_left (fun map -> function diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index 29925141..e96e7c51 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -663,7 +663,7 @@ let remove_logging_calls e = in f () e -let format ?debug decl_ctx ppf e = Print.naked_expr ?debug decl_ctx ppf e +let format ?debug decl_ctx ppf e = Print.expr ?debug decl_ctx ppf e let rec size : type a. (a, 't) gexpr -> int = fun e -> diff --git a/compiler/shared_ast/print.ml b/compiler/shared_ast/print.ml index 22714edd..e69812ae 100644 --- a/compiler/shared_ast/print.ml +++ b/compiler/shared_ast/print.ml @@ -112,7 +112,8 @@ let rec typ (ctx : decl_ctx) (fmt : Format.formatter) (ty : typ) : unit = | TArrow (t1, t2) -> Format.fprintf fmt "@[%a %a@ %a@]" typ_with_parens t1 operator "→" typ t2 - | TArray t1 -> Format.fprintf fmt "@[%a@ %a@]" base_type "array" typ t1 + | TArray t1 -> + Format.fprintf fmt "@[%a@ %a@]" base_type "collection" typ t1 | TAny -> base_type fmt "any" let lit (type a) (fmt : Format.formatter) (l : a glit) : unit = @@ -211,19 +212,19 @@ let var fmt v = let needs_parens (type a) (e : (a, _) gexpr) : bool = match Marked.unmark e with EAbs _ | ETuple (_, Some _) -> true | _ -> false -let rec naked_expr : +let rec expr : 'a. ?debug:bool -> decl_ctx -> Format.formatter -> ('a, 't) gexpr -> unit = fun (type a) ?(debug : bool = false) (ctx : decl_ctx) (fmt : Format.formatter) (e : (a, 't) gexpr) -> - let naked_expr e = naked_expr ~debug ctx e in + let expr e = expr ~debug ctx e in let with_parens fmt e = if needs_parens e then ( punctuation fmt "("; - naked_expr fmt e; + expr fmt e; punctuation fmt ")") - else naked_expr fmt e + else expr fmt e in match Marked.unmark e with | EVar v -> Format.fprintf fmt "%a" var v @@ -231,7 +232,7 @@ let rec naked_expr : Format.fprintf fmt "@[%a%a%a@]" punctuation "(" (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt ",@ ") - (fun fmt e -> Format.fprintf fmt "%a" naked_expr e)) + (fun fmt e -> Format.fprintf fmt "%a" expr e)) es punctuation ")" | ETuple (es, Some s) -> Format.fprintf fmt "@[%a@ @[%a%a%a@]@]" StructName.format_t s @@ -241,35 +242,35 @@ let rec naked_expr : (fun fmt (e, struct_field) -> Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" StructFieldName.format_t struct_field punctuation "\"" punctuation - "=" naked_expr e)) + "=" expr e)) (List.combine es (List.map fst (StructMap.find s ctx.ctx_structs))) punctuation "}" | EArray es -> Format.fprintf fmt "@[%a%a%a@]" punctuation "[" (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt ";@ ") - (fun fmt e -> Format.fprintf fmt "%a" naked_expr e)) + (fun fmt e -> Format.fprintf fmt "%a" expr e)) es punctuation "]" | ETupleAccess (e1, n, s, _ts) -> ( match s with - | None -> Format.fprintf fmt "%a%a%d" naked_expr e1 punctuation "." n + | None -> Format.fprintf fmt "%a%a%d" expr e1 punctuation "." n | Some s -> - Format.fprintf fmt "%a%a%a%a%a" naked_expr e1 operator "." punctuation - "\"" StructFieldName.format_t + Format.fprintf fmt "%a%a%a%a%a" expr e1 operator "." punctuation "\"" + StructFieldName.format_t (fst (List.nth (StructMap.find s ctx.ctx_structs) n)) punctuation "\"") | EInj (e, n, en, _ts) -> Format.fprintf fmt "@[%a@ %a@]" enum_constructor (fst (List.nth (EnumMap.find en ctx.ctx_enums) n)) - naked_expr e + expr e | EMatch (e, es, e_name) -> Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" - naked_expr e keyword "with" + expr e keyword "with" (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") (fun fmt (e, c) -> Format.fprintf fmt "@[%a %a%a@ %a@]" punctuation "|" - enum_constructor c punctuation ":" naked_expr e)) + enum_constructor c punctuation ":" expr e)) (List.combine es (List.map fst (EnumMap.find e_name ctx.ctx_enums))) | ELit l -> lit fmt l | EApp ((EAbs (binder, taus), _), args) -> @@ -282,8 +283,8 @@ let rec naked_expr : (fun fmt (x, tau, arg) -> Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@ %a@]@\n" keyword "let" var x punctuation ":" (typ ctx) tau punctuation "=" - naked_expr arg keyword "in")) - xs_tau_arg naked_expr body + expr arg keyword "in")) + xs_tau_arg expr body | EAbs (binder, taus) -> let xs, body = Bindlib.unmbind binder in let xs_tau = List.mapi (fun i tau -> xs.(i), tau) taus in @@ -293,45 +294,44 @@ let rec naked_expr : (fun fmt (x, tau) -> Format.fprintf fmt "%a%a%a %a%a" punctuation "(" var x punctuation ":" (typ ctx) tau punctuation ")")) - xs_tau punctuation "→" naked_expr body + xs_tau punctuation "→" expr body | EApp ((EOp (Binop ((Map | Filter) as op)), _), [arg1; arg2]) -> Format.fprintf fmt "@[%a@ %a@ %a@]" binop op with_parens arg1 with_parens arg2 | EApp ((EOp (Binop op), _), [arg1; arg2]) -> Format.fprintf fmt "@[%a@ %a@ %a@]" with_parens arg1 binop op with_parens arg2 - | EApp ((EOp (Unop (Log _)), _), [arg1]) when not debug -> - naked_expr fmt arg1 + | EApp ((EOp (Unop (Log _)), _), [arg1]) when not debug -> expr fmt arg1 | EApp ((EOp (Unop op), _), [arg1]) -> Format.fprintf fmt "@[%a@ %a@]" unop op with_parens arg1 | EApp (f, args) -> - Format.fprintf fmt "@[%a@ %a@]" naked_expr f + Format.fprintf fmt "@[%a@ %a@]" expr f (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ ") with_parens) args | EIfThenElse (e1, e2, e3) -> - Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@]" keyword "if" - naked_expr e1 keyword "then" naked_expr e2 keyword "else" naked_expr e3 + Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@]" keyword "if" expr e1 + keyword "then" expr e2 keyword "else" expr e3 | EOp (Ternop op) -> Format.fprintf fmt "%a" ternop op | EOp (Binop op) -> Format.fprintf fmt "%a" binop op | EOp (Unop op) -> Format.fprintf fmt "%a" unop op | EDefault (exceptions, just, cons) -> if List.length exceptions = 0 then - Format.fprintf fmt "@[%a%a@ %a@ %a%a@]" punctuation "⟨" naked_expr - just punctuation "⊢" naked_expr cons punctuation "⟩" + Format.fprintf fmt "@[%a%a@ %a@ %a%a@]" punctuation "⟨" expr just + punctuation "⊢" expr cons punctuation "⟩" else Format.fprintf fmt "@[%a%a@ %a@ %a@ %a@ %a%a@]" punctuation "⟨" (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ",") - naked_expr) - exceptions punctuation "|" naked_expr just punctuation "⊢" naked_expr - cons punctuation "⟩" + expr) + exceptions punctuation "|" expr just punctuation "⊢" expr cons + punctuation "⟩" | ErrorOnEmpty e' -> Format.fprintf fmt "%a@ %a" operator "error_empty" with_parens e' | EAssert e' -> Format.fprintf fmt "@[%a@ %a%a%a@]" keyword "assert" punctuation "(" - naked_expr e' punctuation ")" + expr e' punctuation ")" | ECatch (e1, exn, e2) -> Format.fprintf fmt "@[%a@ %a@ %a@ %a ->@ %a@]" keyword "try" with_parens e1 keyword "with" except exn with_parens e2 @@ -346,20 +346,20 @@ let rec naked_expr : (fun fmt (field_name, field_expr) -> Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" StructFieldName.format_t field_name punctuation "\"" punctuation - "=" naked_expr field_expr)) + "=" expr field_expr)) (StructFieldMap.bindings fields) punctuation "}" | EStructAccess (e1, field, _) -> - Format.fprintf fmt "%a%a%a%a%a" naked_expr e1 punctuation "." punctuation - "\"" StructFieldName.format_t field punctuation "\"" + Format.fprintf fmt "%a%a%a%a%a" expr e1 punctuation "." punctuation "\"" + StructFieldName.format_t field punctuation "\"" | EEnumInj (e1, cons, _) -> - Format.fprintf fmt "%a@ %a" EnumConstructor.format_t cons naked_expr e1 + Format.fprintf fmt "%a@ %a" EnumConstructor.format_t cons expr e1 | EMatchS (e1, _, cases) -> Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" - naked_expr e1 keyword "with" + expr e1 keyword "with" (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") (fun fmt (cons_name, case_expr) -> Format.fprintf fmt "@[%a %a@ %a@ %a@]" punctuation "|" - enum_constructor cons_name punctuation "→" naked_expr case_expr)) + enum_constructor cons_name punctuation "→" expr case_expr)) (EnumConstructorMap.bindings cases) diff --git a/compiler/shared_ast/print.mli b/compiler/shared_ast/print.mli index e0cc7f51..5fbd47cb 100644 --- a/compiler/shared_ast/print.mli +++ b/compiler/shared_ast/print.mli @@ -43,7 +43,7 @@ val unop : Format.formatter -> unop -> unit val except : Format.formatter -> except -> unit val var : Format.formatter -> 'e Var.t -> unit -val naked_expr : +val expr : ?debug:bool (** [true] for debug printing *) -> decl_ctx -> Format.formatter -> diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 9478b44f..87fb97e4 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -108,7 +108,7 @@ let rec format_typ match Marked.unmark (UnionFind.get (UnionFind.find t1)) with | TAny _ -> Format.pp_print_string fmt "collection" | _ -> Format.fprintf fmt "@[collection@ %a@]" format_typ t1) - | TAny d -> Format.pp_print_string fmt "" + | TAny _ -> Format.pp_print_string fmt "" exception Type_error of A.any_expr * unionfind_typ * unionfind_typ From 2955ef3235cab0b18b8beea066b04a927bf5c6a1 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 16:32:02 +0200 Subject: [PATCH 23/52] Implement typing at the scopelang level --- compiler/scopelang/ast.ml | 35 ++++++++++- compiler/scopelang/ast.mli | 2 + compiler/shared_ast/typing.ml | 109 +++++++++++++++++++-------------- compiler/shared_ast/typing.mli | 14 ++++- 4 files changed, 109 insertions(+), 51 deletions(-) diff --git a/compiler/scopelang/ast.ml b/compiler/scopelang/ast.ml index 5dbcdb14..22489c8a 100644 --- a/compiler/scopelang/ast.ml +++ b/compiler/scopelang/ast.ml @@ -84,4 +84,37 @@ type 'm program = { program_ctx : decl_ctx; } -(* let type_program: untyped *) +let type_rule decl_ctx env = function + | Definition (loc, typ, io, expr) -> + let expr' = Typing.expr decl_ctx ~env ~typ expr in + Definition (loc, typ, io, Bindlib.unbox expr') + | Assertion expr -> + let expr' = Typing.expr decl_ctx ~env expr in + Assertion (Bindlib.unbox expr') + | Call (sc_name, ssc_name) -> Call (sc_name, ssc_name) + +let type_program (prg : 'm program) : typed program = + let typing_env = + ScopeMap.fold + (fun scope_name scope_decl -> + Typing.Env.add_scope scope_name + (ScopeVarMap.map fst scope_decl.scope_sig)) + prg.program_scopes Typing.Env.empty + in + let program_scopes = + ScopeMap.map + (fun scope_decl -> + let typing_env = + ScopeVarMap.fold + (fun svar (typ, _) env -> Typing.Env.add_scope_var svar typ env) + scope_decl.scope_sig typing_env + in + let scope_decl_rules = + List.map + (type_rule prg.program_ctx typing_env) + scope_decl.scope_decl_rules + in + { scope_decl with scope_decl_rules }) + prg.program_scopes + in + { prg with program_scopes } diff --git a/compiler/scopelang/ast.mli b/compiler/scopelang/ast.mli index dfd8795e..61db7f70 100644 --- a/compiler/scopelang/ast.mli +++ b/compiler/scopelang/ast.mli @@ -77,3 +77,5 @@ type 'm program = { program_scopes : 'm scope_decl ScopeMap.t; program_ctx : decl_ctx; } + +val type_program : 'm program -> typed program diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 87fb97e4..75057aa4 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -276,19 +276,37 @@ let op_type (op : A.operator Marked.pos) : unionfind_typ = (** {1 Double-directed typing} *) -type 'e env = { - vars : ('e, unionfind_typ) Var.Map.t; - scope_vars : A.typ A.ScopeVarMap.t; - subscope_vars : A.typ A.ScopeVarMap.t A.SubScopeMap.t; -} - -let empty_env = - { - vars = Var.Map.empty; - scope_vars = A.ScopeVarMap.empty; - subscope_vars = A.SubScopeMap.empty; +module Env = struct + type 'e t = { + vars : ('e, unionfind_typ) Var.Map.t; + scope_vars : A.typ A.ScopeVarMap.t; + scopes : A.typ A.ScopeVarMap.t A.ScopeMap.t; } + let empty = + { + vars = Var.Map.empty; + scope_vars = A.ScopeVarMap.empty; + scopes = A.ScopeMap.empty; + } + + let get t v = Var.Map.find_opt v t.vars + let get_scope_var t sv = A.ScopeVarMap.find_opt sv t.scope_vars + + let get_subscope_var t scope var = + Option.bind (A.ScopeMap.find_opt scope t.scopes) (fun vmap -> + A.ScopeVarMap.find_opt var vmap) + + let add v tau t = { t with vars = Var.Map.add v tau t.vars } + let add_var v typ t = add v (ast_to_typ typ) t + + let add_scope_var v typ t = + { t with scope_vars = A.ScopeVarMap.add v typ t.scope_vars } + + let add_scope scope_name vmap t = + { t with scopes = A.ScopeMap.add scope_name vmap t.scopes } +end + let add_pos e ty = Marked.mark (Expr.pos e) ty let ty (_, { uf; _ }) = uf let ( let+ ) x f = Bindlib.box_apply f x @@ -318,7 +336,7 @@ let box_ty e = Bindlib.unbox (Bindlib.box_apply ty e) let rec typecheck_expr_bottom_up : type a. A.decl_ctx -> - (a, 'm A.mark) A.gexpr env -> + (a, 'm A.mark) A.gexpr Env.t -> (a, 'm A.mark) A.gexpr -> (a, mark) A.gexpr A.box = fun ctx env e -> @@ -329,16 +347,19 @@ let rec typecheck_expr_bottom_up : let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in let mark_with_uf e1 ?pos ty = mark e1 (unionfind_make ?pos ty) in match Marked.unmark e with - | A.ELocation loc as e1 -> + | A.ELocation loc as e1 -> ( let ty = match loc with | DesugaredScopeVar (v, _) | ScopelangScopeVar v -> - A.ScopeVarMap.find (Marked.unmark v) env.scope_vars - | SubScopeVar (_s_name, ss_name, v) -> - A.ScopeVarMap.find (Marked.unmark v) - (A.SubScopeMap.find (Marked.unmark ss_name) env.subscope_vars) + Env.get_scope_var env (Marked.unmark v) + | SubScopeVar (scope_name, _, v) -> + Env.get_subscope_var env scope_name (Marked.unmark v) in - Bindlib.box (mark e1 (ast_to_typ ty)) + match ty with + | Some ty -> Bindlib.box (mark e1 (ast_to_typ ty)) + | None -> + Errors.raise_spanned_error pos_e "Reference to %a not found" + (Expr.format ctx) e) | A.EStruct (s_name, fmap) -> let+ fmap' = (* This assumes that the fields in fmap and the struct type are already @@ -394,7 +415,7 @@ let rec typecheck_expr_bottom_up : unify ctx e e_ty (ty e2'); mark (A.ECatch (e1', ex, e2')) e_ty | A.EVar v -> begin - match Var.Map.find_opt v env.vars with + match Env.get env v with | Some t -> let+ v' = Bindlib.box_var (Var.translate v) in mark v' t @@ -466,13 +487,7 @@ let rec typecheck_expr_bottom_up : let xs' = Array.map Var.translate xs in let xstaus = List.mapi (fun i tau -> xs.(i), ast_to_typ tau) taus in let env = - { - env with - vars = - List.fold_left - (fun env (x, tau) -> Var.Map.add x tau env) - env.vars xstaus; - } + List.fold_left (fun env (x, tau) -> Env.add x tau env) env xstaus in let body' = typecheck_expr_bottom_up ctx env body in let t_func = @@ -543,7 +558,7 @@ let rec typecheck_expr_bottom_up : and typecheck_expr_top_down : type a. A.decl_ctx -> - (a, 'm A.mark) A.gexpr env -> + (a, 'm A.mark) A.gexpr Env.t -> unionfind_typ -> (a, 'm A.mark) A.gexpr -> (a, mark) A.gexpr Bindlib.box = @@ -558,16 +573,19 @@ and typecheck_expr_top_down : in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in match Marked.unmark e with - | A.ELocation loc as e1 -> + | A.ELocation loc as e1 -> ( let ty = match loc with | DesugaredScopeVar (v, _) | ScopelangScopeVar v -> - A.ScopeVarMap.find (Marked.unmark v) env.scope_vars - | SubScopeVar (_s_name, ss_name, v) -> - A.ScopeVarMap.find (Marked.unmark v) - (A.SubScopeMap.find (Marked.unmark ss_name) env.subscope_vars) + Env.get_scope_var env (Marked.unmark v) + | SubScopeVar (scope, _, v) -> + Env.get_subscope_var env scope (Marked.unmark v) in - unify_and_mark (ast_to_typ ty) (fun () -> Bindlib.box e1) + match ty with + | Some ty -> unify_and_mark (ast_to_typ ty) (fun () -> Bindlib.box e1) + | None -> + Errors.raise_spanned_error pos_e "Reference to %a not found" + (Expr.format ctx) e) | A.EStruct (s_name, fmap) -> unify_and_mark (unionfind_make (TStruct s_name)) @@ fun () -> @@ -626,8 +644,9 @@ and typecheck_expr_top_down : mark (A.ECatch (e1', ex, e2')) | A.EVar v -> let tau' = - try Var.Map.find v env.vars - with Not_found -> + match Env.get env v with + | Some t -> t + | None -> Errors.raise_spanned_error pos_e "Variable %s not found in the current context" (Bindlib.name_of v) in @@ -712,13 +731,9 @@ and typecheck_expr_top_down : let xs, body = Bindlib.unmbind binder in let xs' = Array.map Var.translate xs in let env = - { - env with - vars = - List.fold_left2 - (fun env x tau_arg -> Var.Map.add x tau_arg env) - env.vars (Array.to_list xs) tau_args; - } + List.fold_left2 + (fun env x tau_arg -> Env.add x tau_arg env) + env (Array.to_list xs) tau_args in let body' = typecheck_expr_top_down ctx env t_ret body in let+ binder' = Bindlib.bind_mvar xs' body' in @@ -789,7 +804,7 @@ let get_ty_mark { uf; pos } = A.Typed { ty = typ_to_ast uf; pos } let expr (type a) (ctx : A.decl_ctx) - ?(env = empty_env) + ?(env = Env.empty) ?(typ : A.typ option) (e : (a, 'm) A.gexpr) : (a, A.typed A.mark) A.gexpr A.box = let fty = @@ -821,7 +836,7 @@ let rec scope_body_expr ctx env ty_out body_expr = parameters, which keeps location of the type as defined instead of as inferred. *) let var, next = Bindlib.unbind scope_let_next in - let env = { env with vars = Var.Map.add var ty_e env.vars } in + let env = Env.add var ty_e env in let next = scope_body_expr ctx env ty_out next in let scope_let_next = Bindlib.bind_var (Var.translate var) next in Bindlib.box_apply2 @@ -847,7 +862,7 @@ let scope_body ctx env body = let ty_in = struct_ty body.A.scope_body_input_struct in let ty_out = struct_ty body.A.scope_body_output_struct in let var, e = Bindlib.unbind body.A.scope_body_expr in - let env = { env with vars = Var.Map.add var ty_in env.vars } in + let env = Env.add var ty_in env in let e' = scope_body_expr ctx env ty_out e in ( Bindlib.bind_var (Var.translate var) e', UnionFind.make @@ -861,7 +876,7 @@ let rec scopes ctx env = function let body_e, ty_scope = scope_body ctx env def.scope_body in let scope_next = let scope_var, next = Bindlib.unbind def.scope_next in - let env = { env with vars = Var.Map.add scope_var ty_scope env.vars } in + let env = Env.add scope_var ty_scope env in let next' = scopes ctx env next in Bindlib.bind_var (Var.translate scope_var) next' in @@ -876,5 +891,5 @@ let rec scopes ctx env = function body_e scope_next let program prg = - let scopes = Bindlib.unbox (scopes prg.A.decl_ctx empty_env prg.A.scopes) in + let scopes = Bindlib.unbox (scopes prg.A.decl_ctx Env.empty prg.A.scopes) in { prg with scopes } diff --git a/compiler/shared_ast/typing.mli b/compiler/shared_ast/typing.mli index 582dca58..9eb708da 100644 --- a/compiler/shared_ast/typing.mli +++ b/compiler/shared_ast/typing.mli @@ -19,11 +19,18 @@ open Definitions -type 'e env +module Env : sig + type 'e t + + val empty : 'e t + val add_var : 'e Var.t -> typ -> 'e t -> 'e t + val add_scope_var : ScopeVar.t -> typ -> 'e t -> 'e t + val add_scope : ScopeName.t -> typ ScopeVarMap.t -> 'e t -> 'e t +end val expr : decl_ctx -> - ?env:'e env -> + ?env:'e Env.t -> ?typ:typ -> (('a, 'm mark) gexpr as 'e) -> ('a, typed mark) gexpr box @@ -31,4 +38,5 @@ val expr : it is assumed to be the outer type and used for inference top-down. *) val program : ('a, untyped mark) gexpr program -> ('a, typed mark) gexpr program -(** Typing on whole programs *) +(** Typing on whole programs (as defined in Shared_ast.program, i.e. for the + later dcalc/lcalc stages *) From a291c202b98dc49230c48a23873c60b0470b71b3 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 10:41:22 +0200 Subject: [PATCH 24/52] Tests: use patdiff rather than colordiff if available --- build_system/clerk_driver.ml | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/build_system/clerk_driver.ml b/build_system/clerk_driver.ml index b95ef533..378ff1bc 100644 --- a/build_system/clerk_driver.ml +++ b/build_system/clerk_driver.ml @@ -314,21 +314,26 @@ let search_for_expected_outputs (file : string) : expected_output_descr list = test_declarations) [@ocamlformat "disable"] +let pipe_diff_cmd = + let open Nj.Expr in + let has_patdiff = Sys.command "type patdiff >/dev/null 2>&1" = 0 in + if has_patdiff then + [Lit "| patdiff -alt-new new-result"; Var "tested_file"; Lit "/dev/stdin"] + else [Lit "| colordiff -u -b"; Var "tested_file"; Lit "-"] + let inline_test_rule catala_exe catala_opts = let open Nj.Expr in Nj.Rule.make "inline_tests" ~command: (Seq - [ - Lit Sys.argv.(0); - Lit "runtest"; - Lit ("--exe=" ^ catala_exe); - Lit ("--catala-opts=" ^ catala_opts); - Var "tested_file"; - Lit "| colordiff -u -b"; - Var "tested_file"; - Lit "-"; - ]) + ([ + Lit Sys.argv.(0); + Lit "runtest"; + Lit ("--exe=" ^ catala_exe); + Lit ("--catala-opts=" ^ catala_opts); + Var "tested_file"; + ] + @ pipe_diff_cmd)) ~description:(Seq [Lit "INLINE TESTS of file"; Var "tested_file"]) let inline_reset_rule catala_exe catala_opts = From 6701b0760d918797fd4f265ceb9bbcbe12474d83 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 12:22:54 +0200 Subject: [PATCH 25/52] Clerk inline tests: tiny improvements - pass Catala options correctly in "clerk run-test" - filter "OCAMLRUNPARAM" out of the environment (avoids backtraces getting included in test outputs) I use the following function in Emacs to live-update a test output: ```elisp (defun clerk-test-update () (interactive nil) (let ((pos (point))) (delete-region (point-min) (point-max)) (call-process "dune" nil t t "exec" "--display=quiet" "--no-print-directory" "--no-build" "clerk" "--" "runtest" "-e" "dune" "-c" "exec catala --no-build --" (buffer-file-name)) (goto-char pos))) ``` --- build_system/clerk_driver.ml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/build_system/clerk_driver.ml b/build_system/clerk_driver.ml index 378ff1bc..318f2613 100644 --- a/build_system/clerk_driver.ml +++ b/build_system/clerk_driver.ml @@ -593,7 +593,11 @@ let add_root_test_build (** Directly runs the test (not using ninja, this will be called by ninja rules through the "clerk runtest" command) *) -let run_inline_tests ~(reset : bool) (file : string) (catala_exe : string) = +let run_inline_tests + ~(reset : bool) + (file : string) + (catala_exe : string) + (catala_opts : string list) = match scan_for_inline_tests file with | None -> Cli.warning_print "No inline tests found in %s" file | Some file_tests -> @@ -605,10 +609,20 @@ let run_inline_tests ~(reset : bool) (file : string) (catala_exe : string) = let ic = Unix.in_channel_of_descr cmd_out_rd in let cmd = Array.of_list - ((catala_exe :: test.params) @ [file; "--unstyled"; "--output=-"]) + ((catala_exe :: catala_opts) + @ test.params + @ [file; "--unstyled"; "--output=-"]) + in + let env = + Unix.environment () + |> Array.to_seq + |> Seq.filter (fun s -> + not (String.starts_with ~prefix:"OCAMLRUNPARAM=" s)) + |> Array.of_seq in let pid = - Unix.create_process catala_exe cmd Unix.stdin cmd_out_wr cmd_out_wr + Unix.create_process_env catala_exe cmd env Unix.stdin cmd_out_wr + cmd_out_wr in Unix.close cmd_out_wr; let rec process_cmd_out () = @@ -914,7 +928,8 @@ let driver | "runtest" -> ( match files_or_folders with | [f] -> - run_inline_tests ~reset:reset_test_outputs f catala_exe; + run_inline_tests ~reset:reset_test_outputs f catala_exe + (List.filter (( <> ) "") (String.split_on_char ' ' catala_opts)); 0 | _ -> Cli.error_print "Please specify a single catala file to test"; From 3b4b070aaa16296e86b09925758d4df9edba2520 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 18:19:39 +0200 Subject: [PATCH 26/52] Fix typing --- compiler/scopelang/ast.ml | 3 ++- compiler/scopelang/scope_to_dcalc.ml | 2 +- compiler/shared_ast/typing.ml | 13 ++++++------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/compiler/scopelang/ast.ml b/compiler/scopelang/ast.ml index 22489c8a..f88fee10 100644 --- a/compiler/scopelang/ast.ml +++ b/compiler/scopelang/ast.ml @@ -89,7 +89,8 @@ let type_rule decl_ctx env = function let expr' = Typing.expr decl_ctx ~env ~typ expr in Definition (loc, typ, io, Bindlib.unbox expr') | Assertion expr -> - let expr' = Typing.expr decl_ctx ~env expr in + let typ = Marked.mark (Expr.pos expr) (TLit TBool) in + let expr' = Typing.expr decl_ctx ~env ~typ expr in Assertion (Bindlib.unbox expr') | Call (sc_name, ssc_name) -> Call (sc_name, ssc_name) diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 25637d77..36f82c7b 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -222,7 +222,7 @@ let rec translate_expr (ctx : 'm ctx) (e : 'm Ast.expr) : in if EnumConstructorMap.cardinal remaining_e_cases > 0 then Errors.raise_spanned_error (Expr.pos e) - "Patter matching is incomplete for enum %a: missing cases %a" + "Pattern matching is incomplete for enum %a: missing cases %a" EnumName.format_t enum_name (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt ", ") diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 75057aa4..9149fa1c 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -386,10 +386,8 @@ let rec typecheck_expr_bottom_up : let c_ty = ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums)) in - let+ e_enum' = - typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e_enum - in - mark (A.EEnumInj (e_enum', c_name, e_name)) c_ty + let+ e_enum' = typecheck_expr_top_down ctx env c_ty e_enum in + mark (A.EEnumInj (e_enum', c_name, e_name)) (unionfind_make (TEnum e_name)) | A.EMatchS (e1, e_name, cases) -> let cases_ty = A.EnumMap.find e_name ctx.A.ctx_enums in let t_ret = unionfind_make ~pos:e1 (TAny (Any.fresh ())) in @@ -612,11 +610,12 @@ and typecheck_expr_top_down : in A.EStructAccess (e_struct', f_name, s_name) | A.EEnumInj (e_enum, c_name, e_name) -> - unify_and_mark - (ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums))) + unify_and_mark (unionfind_make (TEnum e_name)) @@ fun () -> let+ e_enum' = - typecheck_expr_top_down ctx env (unionfind_make (TEnum e_name)) e_enum + typecheck_expr_top_down ctx env + (ast_to_typ (List.assoc c_name (A.EnumMap.find e_name ctx.A.ctx_enums))) + e_enum in A.EEnumInj (e_enum', c_name, e_name) | A.EMatchS (e1, e_name, cases) -> From 4d8bc20fcdba7dd67fe860e5a8b0a1f30dc16d74 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 26 Sep 2022 18:19:53 +0200 Subject: [PATCH 27/52] Test new typing --- compiler/driver.ml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index 41260fb4..4117bbc8 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -176,8 +176,15 @@ let driver source_file (options : Cli.options) : int = Format.fprintf fmt "%a\n" (Scopelang.Print.program ~debug:options.debug) prgm - | ( `Interpret | `Typecheck | `OCaml | `Python | `Scalc | `Lcalc | `Dcalc - | `Proof | `Plugin _ ) as backend -> ( + | `Typecheck -> + Cli.debug_print "Typechecking..."; + let _prgm = Scopelang.Ast.type_program prgm in + (* That's it! *) + Cli.result_print "Typechecking successful!" + | ( `Interpret (* `Typecheck | *) + | `OCaml | `Python | `Scalc | `Lcalc | `Dcalc | `Proof | `Plugin _ ) as + backend -> ( + let _prgm = Scopelang.Ast.type_program prgm in Cli.debug_print "Translating to default calculus..."; let prgm, type_ordering = Scopelang.Scope_to_dcalc.translate_program prgm From 12d28333066c91e1b13aecdd68437ee8c8623d43 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 12:31:35 +0200 Subject: [PATCH 28/52] Fix cyclic type test Make it type so that it's actually the cycle error that is raised (now that expression typing is done earlier) --- tests/test_struct/bad/nested.catala_en | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/test_struct/bad/nested.catala_en b/tests/test_struct/bad/nested.catala_en index 47727474..fdcec2e6 100644 --- a/tests/test_struct/bad/nested.catala_en +++ b/tests/test_struct/bad/nested.catala_en @@ -1,23 +1,24 @@ ## Article ```catala -declaration structure S: - data x content S +declaration enumeration E: + -- Empty + -- Rec content E declaration scope A: - context y content S + context y content E scope A: - definition y equals S { -- x: 1 } + definition y equals E.Empty ``` ```catala-test-inline $ catala Interpret -s A -[ERROR] The type S is defined using itself, which is forbidden since Catala does not provide recursive types +[ERROR] The type E is defined using itself, which is forbidden since Catala does not provide recursive types - --> tests/test_struct/bad/nested.catala_en + --> /home/lg/inria/catala/tests/test_struct/bad/nested.catala_en | -5 | data x content S +6 | -- Rec content E | ^ + Article #return code 255# From 76d1c1cc938a879e1f2e1f4c31737f5a1af97e3e Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 16:27:26 +0200 Subject: [PATCH 29/52] Dcalc.Optimization should reasonably preserve types since it only does reductions while preserving marks. The patch is mostly a renaming from `pos` to `mark` --- compiler/dcalc/optimizations.ml | 55 ++++++++++++++++---------------- compiler/dcalc/optimizations.mli | 2 +- 2 files changed, 28 insertions(+), 29 deletions(-) diff --git a/compiler/dcalc/optimizations.ml b/compiler/dcalc/optimizations.ml index fa49f3a8..a51933e9 100644 --- a/compiler/dcalc/optimizations.ml +++ b/compiler/dcalc/optimizations.ml @@ -25,7 +25,7 @@ type partial_evaluation_ctx = { let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : 'm expr Bindlib.box = - let pos = Marked.get_mark e in + let mark = Marked.get_mark e in let rec_helper = partial_evaluation ctx in match Marked.unmark e with | EApp @@ -35,9 +35,9 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : (* reduction of logical not *) (Bindlib.box_apply (fun e1 -> match e1 with - | ELit (LBool false), _ -> ELit (LBool true), pos - | ELit (LBool true), _ -> ELit (LBool false), pos - | _ -> EApp (op, [e1]), pos)) + | ELit (LBool false), _ -> ELit (LBool true), mark + | ELit (LBool true), _ -> ELit (LBool false), mark + | _ -> EApp (op, [e1]), mark)) (rec_helper e1) | EApp ( (( EOp (Binop Or), _ @@ -49,8 +49,8 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | (ELit (LBool false), _), new_e | new_e, (ELit (LBool false), _) -> new_e | (ELit (LBool true), _), _ | _, (ELit (LBool true), _) -> - ELit (LBool true), pos - | _ -> EApp (op, [e1; e2]), pos)) + ELit (LBool true), mark + | _ -> EApp (op, [e1; e2]), mark)) (rec_helper e1) (rec_helper e2) | EApp ( (( EOp (Binop And), _ @@ -62,21 +62,21 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | (ELit (LBool true), _), new_e | new_e, (ELit (LBool true), _) -> new_e | (ELit (LBool false), _), _ | _, (ELit (LBool false), _) -> - ELit (LBool false), pos - | _ -> EApp (op, [e1; e2]), pos)) + ELit (LBool false), mark + | _ -> EApp (op, [e1; e2]), mark)) (rec_helper e1) (rec_helper e2) - | EVar x -> Bindlib.box_apply (fun x -> x, pos) (Bindlib.box_var x) + | EVar x -> Bindlib.box_apply (fun x -> x, mark) (Bindlib.box_var x) | ETuple (args, s_name) -> Bindlib.box_apply - (fun args -> ETuple (args, s_name), pos) + (fun args -> ETuple (args, s_name), mark) (List.map rec_helper args |> Bindlib.box_list) | ETupleAccess (arg, i, s_name, typs) -> Bindlib.box_apply - (fun arg -> ETupleAccess (arg, i, s_name, typs), pos) + (fun arg -> ETupleAccess (arg, i, s_name, typs), mark) (rec_helper arg) | EInj (arg, i, e_name, typs) -> Bindlib.box_apply - (fun arg -> EInj (arg, i, e_name, typs), pos) + (fun arg -> EInj (arg, i, e_name, typs), mark) (rec_helper arg) | EMatch (arg, arms, e_name) -> Bindlib.box_apply2 @@ -85,20 +85,20 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | (EInj (e1, i, e_name', _ts), _), _ when EnumName.compare e_name e_name' = 0 -> (* iota reduction *) - EApp (List.nth arms i, [e1]), pos - | _ -> EMatch (arg, arms, e_name), pos) + EApp (List.nth arms i, [e1]), mark + | _ -> EMatch (arg, arms, e_name), mark) (rec_helper arg) (List.map rec_helper arms |> Bindlib.box_list) | EArray args -> Bindlib.box_apply - (fun args -> EArray args, pos) + (fun args -> EArray args, mark) (List.map rec_helper args |> Bindlib.box_list) - | ELit l -> Bindlib.box (ELit l, pos) + | ELit l -> Bindlib.box (ELit l, mark) | EAbs (binder, typs) -> let vars, body = Bindlib.unmbind binder in let new_body = rec_helper body in let new_binder = Bindlib.bind_mvar vars new_body in - Bindlib.box_apply (fun binder -> EAbs (binder, typs), pos) new_binder + Bindlib.box_apply (fun binder -> EAbs (binder, typs), mark) new_binder | EApp (f, args) -> Bindlib.box_apply2 (fun f args -> @@ -106,11 +106,11 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | EAbs (binder, _ts) -> (* beta reduction *) Bindlib.msubst binder (List.map fst args |> Array.of_list) - | _ -> EApp (f, args), pos) + | _ -> EApp (f, args), mark) (rec_helper f) (List.map rec_helper args |> Bindlib.box_list) - | EAssert e1 -> Bindlib.box_apply (fun e1 -> EAssert e1, pos) (rec_helper e1) - | EOp op -> Bindlib.box (EOp op, pos) + | EAssert e1 -> Bindlib.box_apply (fun e1 -> EAssert e1, mark) (rec_helper e1) + | EOp op -> Bindlib.box (EOp op, mark) | EDefault (exceptions, just, cons) -> Bindlib.box_apply3 (fun exceptions just cons -> @@ -135,7 +135,7 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : feed the expression to the interpreter that will print the beautiful right error message *) Interpreter.evaluate_expr ctx.decl_ctx - (EDefault (exceptions, just, cons), pos) + (EDefault (exceptions, just, cons), mark) | [except], _, _ when Expr.is_value except -> (* if there is only one exception and it is a non-empty value it is always chosen *) @@ -151,15 +151,15 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | EApp ((EOp (Unop (Log _)), _), [(ELit (LBool false), _)]) ), _ ), _ ) -> - ELit LEmptyError, pos + ELit LEmptyError, mark | [], just, cons when not !Cli.avoid_exceptions_flag -> (* without exceptions, a default is just an [if then else] raising an error in the else case. This exception is only valid in the context of compilation_with_exceptions, so we desactivate with a global flag to know if we will be compiling using exceptions or the option monad. *) - EIfThenElse (just, cons, (ELit LEmptyError, pos)), pos - | exceptions, just, cons -> EDefault (exceptions, just, cons), pos) + EIfThenElse (just, cons, (ELit LEmptyError, mark)), mark + | exceptions, just, cons -> EDefault (exceptions, just, cons), mark) (List.map rec_helper exceptions |> Bindlib.box_list) (rec_helper just) (rec_helper cons) | EIfThenElse (e1, e2, e3) -> @@ -179,10 +179,10 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | EApp ((EOp (Unop (Log _)), _), [(ELit (LBool false), _)]) ) ) -> e1 | _ when Expr.equal e2 e3 -> e2 - | _ -> EIfThenElse (e1, e2, e3), pos) + | _ -> EIfThenElse (e1, e2, e3), mark) (rec_helper e1) (rec_helper e2) (rec_helper e3) | ErrorOnEmpty e1 -> - Bindlib.box_apply (fun e1 -> ErrorOnEmpty e1, pos) (rec_helper e1) + Bindlib.box_apply (fun e1 -> ErrorOnEmpty e1, mark) (rec_helper e1) let optimize_expr (decl_ctx : decl_ctx) (e : 'm expr) = partial_evaluation { var_values = Var.Map.empty; decl_ctx } e @@ -248,9 +248,8 @@ let program_map (fun new_scopes -> { p with scopes = new_scopes }) (scopes_map t ctx p.scopes) -let optimize_program (p : 'm program) : untyped program = +let optimize_program (p : 'm program) : 'm program = Bindlib.unbox (program_map partial_evaluation { var_values = Var.Map.empty; decl_ctx = p.decl_ctx } p) - |> Program.untype diff --git a/compiler/dcalc/optimizations.mli b/compiler/dcalc/optimizations.mli index 6c8cdd0e..ce1be264 100644 --- a/compiler/dcalc/optimizations.mli +++ b/compiler/dcalc/optimizations.mli @@ -21,4 +21,4 @@ open Shared_ast open Ast val optimize_expr : decl_ctx -> 'm expr -> 'm expr Bindlib.box -val optimize_program : 'm program -> untyped program +val optimize_program : 'm program -> 'm program From ff76d0498f3f54ec8f4d7d739f9413ad0ee8812d Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 18:23:10 +0200 Subject: [PATCH 30/52] Make the typer use (and check) already existing annotations, if any --- compiler/shared_ast/typing.ml | 30 +++++++++++++++++++++++------- compiler/shared_ast/typing.mli | 16 +++++++++++++--- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 9149fa1c..6e651491 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -334,16 +334,25 @@ let box_ty e = Bindlib.unbox (Bindlib.box_apply ty e) (** Infers the most permissive type from an expression *) let rec typecheck_expr_bottom_up : - type a. + type a m. A.decl_ctx -> - (a, 'm A.mark) A.gexpr Env.t -> - (a, 'm A.mark) A.gexpr -> + (a, m A.mark) A.gexpr Env.t -> + (a, m A.mark) A.gexpr -> (a, mark) A.gexpr A.box = fun ctx env e -> (* Cli.debug_format "Looking for type of %a" (Expr.format ~debug:true ctx) e; *) let pos_e = Expr.pos e in - let mark e uf = Marked.mark { uf; pos = pos_e } e in + let mark e1 uf = + let () = + (* If the expression already has a type annotation, validate it before + rewrite *) + match Marked.get_mark e with + | A.Untyped _ | A.Typed { A.ty = A.TAny, _; _ } -> () + | A.Typed { A.ty; _ } -> unify ctx e uf (ast_to_typ ty) + in + Marked.mark { uf; pos = pos_e } e1 + in let unionfind_make ?(pos = e) t = UnionFind.make (add_pos pos t) in let mark_with_uf e1 ?pos ty = mark e1 (unionfind_make ?pos ty) in match Marked.unmark e with @@ -554,16 +563,23 @@ let rec typecheck_expr_bottom_up : (** Checks whether the expression can be typed with the provided type *) and typecheck_expr_top_down : - type a. + type a m. A.decl_ctx -> - (a, 'm A.mark) A.gexpr Env.t -> + (a, m A.mark) A.gexpr Env.t -> unionfind_typ -> - (a, 'm A.mark) A.gexpr -> + (a, m A.mark) A.gexpr -> (a, mark) A.gexpr Bindlib.box = fun ctx env tau e -> (* Cli.debug_format "Propagating type %a for naked_expr %a" (format_typ ctx) tau (Expr.format ctx) e; *) let pos_e = Expr.pos e in + let () = + (* If there already is a type annotation on the given expr, ensure it + matches *) + match Marked.get_mark e with + | A.Untyped _ | A.Typed { A.ty = A.TAny, _; _ } -> () + | A.Typed { A.ty; _ } -> unify ctx e tau (ast_to_typ ty) + in let mark e = Marked.mark { uf = tau; pos = pos_e } e in let unify_and_mark tau' f_e = unify ctx e tau' tau; diff --git a/compiler/shared_ast/typing.mli b/compiler/shared_ast/typing.mli index 9eb708da..d1ac76c9 100644 --- a/compiler/shared_ast/typing.mli +++ b/compiler/shared_ast/typing.mli @@ -35,8 +35,18 @@ val expr : (('a, 'm mark) gexpr as 'e) -> ('a, typed mark) gexpr box (** Infers and marks the types for the given expression. If [typ] is provided, - it is assumed to be the outer type and used for inference top-down. *) + it is assumed to be the outer type and used for inference top-down. -val program : ('a, untyped mark) gexpr program -> ('a, typed mark) gexpr program + If the input expression already has type annotations, the full inference is + still done, but with unification with the existing annotations at every + step. This can be used for double-checking after AST transformations and + filling the gaps ([TAny]) if any. Use [Expr.untype] first if this is not + what you want. *) + +val program : ('a, 'm mark) gexpr program -> ('a, typed mark) gexpr program (** Typing on whole programs (as defined in Shared_ast.program, i.e. for the - later dcalc/lcalc stages *) + later dcalc/lcalc stages. + + Any existing type annotations are checked for unification. Use + [Program.untype] to remove them beforehand if this is not the desired + behaviour. *) From 0dbc4c8c35420646358e81c4f0f543f26b463fe7 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 18:45:22 +0200 Subject: [PATCH 31/52] Separate type ordering from scopelang->dcalc transformation it's now done explicitely from the driver, which allows to do it before typing and is more consistent; the information was already forwarded to the later compilation stages separately from the program AST anyway. --- compiler/driver.ml | 19 ++++++++++++------- compiler/scopelang/scope_to_dcalc.ml | 8 ++------ compiler/scopelang/scope_to_dcalc.mli | 6 +----- 3 files changed, 15 insertions(+), 18 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index 4117bbc8..9e9a1852 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -178,17 +178,22 @@ let driver source_file (options : Cli.options) : int = prgm | `Typecheck -> Cli.debug_print "Typechecking..."; + let _type_ordering = + Scopelang.Dependency.check_type_cycles prgm.program_ctx.ctx_structs + prgm.program_ctx.ctx_enums + in let _prgm = Scopelang.Ast.type_program prgm in (* That's it! *) Cli.result_print "Typechecking successful!" - | ( `Interpret (* `Typecheck | *) - | `OCaml | `Python | `Scalc | `Lcalc | `Dcalc | `Proof | `Plugin _ ) as - backend -> ( - let _prgm = Scopelang.Ast.type_program prgm in - Cli.debug_print "Translating to default calculus..."; - let prgm, type_ordering = - Scopelang.Scope_to_dcalc.translate_program prgm + | ( `Interpret | `OCaml | `Python | `Scalc | `Lcalc | `Dcalc | `Proof + | `Plugin _ ) as backend -> ( + let type_ordering = + Scopelang.Dependency.check_type_cycles prgm.program_ctx.ctx_structs + prgm.program_ctx.ctx_enums in + let prgm = Scopelang.Ast.type_program prgm in + Cli.debug_print "Translating to default calculus..."; + let prgm = Scopelang.Scope_to_dcalc.translate_program prgm in let prgm = if options.optimize then begin Cli.debug_print "Optimizing default calculus..."; diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 36f82c7b..7d19d193 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -807,13 +807,9 @@ let translate_scope_decl new_struct_ctx ) let translate_program (prgm : 'm Ast.program) : - 'm Dcalc.Ast.program * Dependency.TVertex.t list = + 'm Dcalc.Ast.program = let scope_dependencies = Dependency.build_program_dep_graph prgm in Dependency.check_for_cycle_in_scope scope_dependencies; - let types_ordering = - Dependency.check_type_cycles prgm.program_ctx.ctx_structs - prgm.program_ctx.ctx_enums - in let scope_ordering = Dependency.get_scope_ordering scope_dependencies in let decl_ctx = prgm.program_ctx in let sctx : scope_sigs_ctx = @@ -886,4 +882,4 @@ let translate_program (prgm : 'm Ast.program) : scope_ordering (Bindlib.box Nil, decl_ctx) in - { scopes = Bindlib.unbox scopes; decl_ctx }, types_ordering + { scopes = Bindlib.unbox scopes; decl_ctx } diff --git a/compiler/scopelang/scope_to_dcalc.mli b/compiler/scopelang/scope_to_dcalc.mli index a42cb5bf..644dded6 100644 --- a/compiler/scopelang/scope_to_dcalc.mli +++ b/compiler/scopelang/scope_to_dcalc.mli @@ -18,8 +18,4 @@ val translate_program : Shared_ast.untyped Ast.program -> - Shared_ast.untyped Dcalc.Ast.program * Dependency.TVertex.t list -(** Usage [translate_program p] returns a tuple [(new_program, types_list)] - where [new_program] is the map of translated scopes. Finally, [types_list] - is a list of all types (structs and enums) used in the program, correctly - ordered with respect to inter-types dependency. *) + Shared_ast.untyped Dcalc.Ast.program From fd3219a34e03722cede6acc4653bd8f4dd3f1fbb Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 27 Sep 2022 18:51:22 +0200 Subject: [PATCH 32/52] Catala driver: re-run the typer after dcalc compilation --- compiler/driver.ml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index 9e9a1852..74aef934 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -191,7 +191,7 @@ let driver source_file (options : Cli.options) : int = Scopelang.Dependency.check_type_cycles prgm.program_ctx.ctx_structs prgm.program_ctx.ctx_enums in - let prgm = Scopelang.Ast.type_program prgm in + let _prgm = Scopelang.Ast.type_program prgm in Cli.debug_print "Translating to default calculus..."; let prgm = Scopelang.Scope_to_dcalc.translate_program prgm in let prgm = @@ -227,10 +227,10 @@ let driver source_file (options : Cli.options) : int = Format.fprintf fmt "%a\n" (Shared_ast.Expr.format prgm.decl_ctx) prgrm_dcalc_expr - | ( `Interpret | `Typecheck | `OCaml | `Python | `Scalc | `Lcalc - | `Proof | `Plugin _ ) as backend -> ( - Cli.debug_print "Typechecking..."; - let prgm = Shared_ast.Typing.program prgm in + | (`Interpret | `OCaml | `Python | `Scalc | `Lcalc | `Proof | `Plugin _) + as backend -> ( + Cli.debug_print "Typechecking again..."; + let prgm = Shared_ast.Typing.program prgm in (* Cli.debug_print (Format.asprintf "Typechecking results :@\n%a" (Print.typ prgm.decl_ctx) typ); *) match backend with From 0de73c4b9b5c1166dccf81d11de50af575d58a00 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Wed, 28 Sep 2022 11:16:44 +0200 Subject: [PATCH 33/52] Clerk: define strings used as variables just once --- build_system/clerk_driver.ml | 84 +++++++++++++++++++++++------------- 1 file changed, 53 insertions(+), 31 deletions(-) diff --git a/build_system/clerk_driver.ml b/build_system/clerk_driver.ml index 318f2613..b6ab7efd 100644 --- a/build_system/clerk_driver.ml +++ b/build_system/clerk_driver.ml @@ -314,27 +314,50 @@ let search_for_expected_outputs (file : string) : expected_output_descr list = test_declarations) [@ocamlformat "disable"] +(** Var references used in the Clerk file *) +module Var = struct + let tested_file = Nj.Expr.Var "tested_file" + let catala_cmd = Nj.Expr.Var "catala_cmd" + let expected_output = Nj.Expr.Var "expected_output" + let test_file_or_folder = Nj.Expr.Var "test_file_or_folder" + + let name = function + | Nj.Expr.Var n -> n + | _ -> invalid_arg "Clerk_driver.Var.name" +end + let pipe_diff_cmd = let open Nj.Expr in let has_patdiff = Sys.command "type patdiff >/dev/null 2>&1" = 0 in if has_patdiff then - [Lit "| patdiff -alt-new new-result"; Var "tested_file"; Lit "/dev/stdin"] - else [Lit "| colordiff -u -b"; Var "tested_file"; Lit "-"] + Seq + [ + Lit "|"; + Lit "patdiff"; + Seq [Lit "-alt-new"; Lit "current-output"]; + Var.tested_file; + Lit "/dev/stdin"; + ] + else Seq [Lit "| colordiff -u -b"; Var.tested_file; Lit "-"] let inline_test_rule catala_exe catala_opts = let open Nj.Expr in Nj.Rule.make "inline_tests" ~command: (Seq - ([ - Lit Sys.argv.(0); - Lit "runtest"; - Lit ("--exe=" ^ catala_exe); - Lit ("--catala-opts=" ^ catala_opts); - Var "tested_file"; - ] - @ pipe_diff_cmd)) - ~description:(Seq [Lit "INLINE TESTS of file"; Var "tested_file"]) + [ + Lit Sys.argv.(0); + Lit "runtest"; + Seq [Lit "--exe"; Lit catala_exe]; + Seq + [ + Lit "--catala-opts"; + Lit ("\"" ^ String.escaped catala_opts ^ "\""); + ]; + Var.tested_file; + pipe_diff_cmd; + ]) + ~description:(Seq [Lit "INLINE TESTS of file"; Var.tested_file]) let inline_reset_rule catala_exe catala_opts = let open Nj.Expr in @@ -347,9 +370,9 @@ let inline_reset_rule catala_exe catala_opts = Lit ("--exe=" ^ catala_exe); Lit ("--catala-opts=" ^ catala_opts); Lit "--reset"; - Var "tested_file"; + Var.tested_file; ]) - ~description:(Seq [Lit "RESET INLINE TESTS of file"; Var "tested_file"]) + ~description:(Seq [Lit "RESET INLINE TESTS of file"; Var.tested_file]) let add_reset_rules_aux ~(redirect : string) @@ -359,12 +382,12 @@ let add_reset_rules_aux let reset_common_cmd_exprs = Nj.Expr. [ - Var "catala_cmd"; - Var "tested_file"; + Var.catala_cmd; + Var.tested_file; Lit "--unstyled"; Lit "--output=-"; Lit redirect; - Var "expected_output"; + Var.expected_output; Lit "2>&1"; Lit "|| true"; ] @@ -378,9 +401,9 @@ let add_reset_rules_aux [ Lit "RESET"; Lit "file"; - Var "tested_file"; + Var.tested_file; Lit "with the"; - Var "catala_cmd"; + Var.catala_cmd; Lit "command"; ]) in @@ -397,12 +420,12 @@ let add_test_rules_aux Seq (Lit catala_exe_opts :: [ - Var "catala_cmd"; - Var "tested_file"; + Var.catala_cmd; + Var.tested_file; Lit "--unstyled"; Lit "--output=-"; Lit "2>&1 | colordiff -u -b"; - Var "expected_output"; + Var.expected_output; Lit "-"; ])) ~description: @@ -410,9 +433,9 @@ let add_test_rules_aux Seq [ Lit "TEST on file"; - Var "tested_file"; + Var.tested_file; Lit "with the"; - Var "catala_cmd"; + Var.catala_cmd; Lit "command"; ]) in @@ -440,8 +463,7 @@ let ninja_start (catala_exe : string) (catala_opts : string) : ninja = Nj.Rule.make "run_and_display_final_message" ~command:Nj.Expr.(Seq [Lit ":"]) ~description: - Nj.Expr.( - Seq [Lit "All tests"; Var "test_file_or_folder"; Lit "passed!"]) + Nj.Expr.(Seq [Lit "All tests"; Var.test_file_or_folder; Lit "passed!"]) in { rules = @@ -462,7 +484,7 @@ let collect_inline_ninja_builds if not (has_inline_tests tested_file) then None else let ninja = - let vars = ["tested_file", Nj.Expr.Lit tested_file] in + let vars = [Var.(name tested_file), Nj.Expr.Lit tested_file] in let rule_to_call = if reset_test_outputs then "inline_tests_reset" else "inline_tests" in @@ -518,9 +540,9 @@ let collect_all_ninja_build in let vars = [ - "catala_cmd", Nj.Expr.Lit expected_output.cmd; - "tested_file", Nj.Expr.Lit tested_file; - "expected_output", Nj.Expr.Lit expected_output_file; + Var.(name catala_cmd), Nj.Expr.Lit expected_output.cmd; + Var.(name tested_file), Nj.Expr.Lit tested_file; + Var.(name expected_output), Nj.Expr.Lit expected_output_file; ] and rule_to_call = if reset_test_outputs then "reset_rule" else "test_rule" @@ -585,7 +607,7 @@ let add_root_test_build ~inputs:[Nj.Expr.Lit all_test_builds] ~vars: [ - ( "test_file_or_folder", + ( Var.(name test_file_or_folder), Nj.Expr.Lit ("in [ " ^ file_names_str ^ " ]") ); ]) ninja.builds; @@ -761,7 +783,7 @@ let collect_in_folder ~inputs:[Nj.Expr.Lit test_file_names] ~vars: [ - ( "test_file_or_folder", + ( Var.(name test_file_or_folder), Nj.Expr.Lit ("in folder '" ^ folder ^ "'") ); ]) ninja.builds; From e17baac8401e785ef41f98b4b8ac4b8a4096e58e Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 30 Sep 2022 16:37:43 +0200 Subject: [PATCH 34/52] Printer: add debug version that doesn't require a context very handy sometimes... --- compiler/scopelang/print.ml | 31 +-- compiler/shared_ast/print.ml | 369 ++++++++++++++++++---------------- compiler/shared_ast/print.mli | 12 +- 3 files changed, 228 insertions(+), 184 deletions(-) diff --git a/compiler/scopelang/print.ml b/compiler/scopelang/print.ml index 4fe751a4..f9ca28bc 100644 --- a/compiler/scopelang/print.ml +++ b/compiler/scopelang/print.ml @@ -21,7 +21,8 @@ open Ast let struc ctx (fmt : Format.formatter) - ((name, fields) : StructName.t * (StructFieldName.t * typ) list) : unit = + (name : StructName.t) + (fields : (StructFieldName.t * typ) list) : unit = Format.fprintf fmt "%a %a %a %a@\n@[ %a@]@\n%a" Print.keyword "type" StructName.format_t name Print.punctuation "=" Print.punctuation "{" (Format.pp_print_list @@ -34,7 +35,8 @@ let struc let enum ctx (fmt : Format.formatter) - ((name, cases) : EnumName.t * (EnumConstructor.t * typ) list) : unit = + (name : EnumName.t) + (cases : (EnumConstructor.t * typ) list) : unit = Format.fprintf fmt "%a %a %a @\n@[ %a@]" Print.keyword "type" EnumName.format_t name Print.punctuation "=" (Format.pp_print_list @@ -102,14 +104,17 @@ let program ?(debug : bool = false) (fmt : Format.formatter) (p : 'm program) : Format.pp_print_cut fmt (); Format.pp_print_cut fmt () in - Format.fprintf fmt "@[%a%a%a%a%a@]" - (Format.pp_print_list ~pp_sep (struc ctx)) - (StructMap.bindings ctx.ctx_structs) - (if StructMap.is_empty ctx.ctx_structs then fun _ _ -> () else pp_sep) - () - (Format.pp_print_list ~pp_sep (enum ctx)) - (EnumMap.bindings ctx.ctx_enums) - (if EnumMap.is_empty ctx.ctx_enums then fun _ _ -> () else pp_sep) - () - (Format.pp_print_list ~pp_sep (scope ~debug ctx)) - (ScopeMap.bindings p.program_scopes) + Format.pp_open_vbox fmt 0; + StructMap.iter + (fun n s -> + struc ctx fmt n s; + pp_sep fmt ()) + ctx.ctx_structs; + EnumMap.iter + (fun n e -> + enum ctx fmt n e; + pp_sep fmt ()) + ctx.ctx_enums; + Format.pp_print_list ~pp_sep (scope ~debug ctx) fmt + (ScopeMap.bindings p.program_scopes); + Format.pp_close_box fmt () diff --git a/compiler/shared_ast/print.ml b/compiler/shared_ast/print.ml index e69812ae..43d0e0f1 100644 --- a/compiler/shared_ast/print.ml +++ b/compiler/shared_ast/print.ml @@ -74,7 +74,7 @@ let enum_constructor (fmt : Format.formatter) (c : EnumConstructor.t) : unit = (Utils.Cli.format_with_style [ANSITerminal.magenta]) (Format.asprintf "%a" EnumConstructor.format_t c) -let rec typ (ctx : decl_ctx) (fmt : Format.formatter) (ty : typ) : unit = +let rec typ (ctx : decl_ctx option) (fmt : Format.formatter) (ty : typ) : unit = let typ = typ ctx in let typ_with_parens (fmt : Format.formatter) (t : typ) = if typ_needs_parens t then Format.fprintf fmt "(%a)" typ t @@ -88,26 +88,33 @@ let rec typ (ctx : decl_ctx) (fmt : Format.formatter) (ty : typ) : unit = ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ %a@ " operator "*") (fun fmt t -> Format.fprintf fmt "%a" typ t)) ts - | TStruct s -> - Format.fprintf fmt "@[%a%a%a%a@]" StructName.format_t s punctuation - "{" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ";") - (fun fmt (field, mty) -> - Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" - StructFieldName.format_t field punctuation "\"" punctuation ":" typ - mty)) - (StructMap.find s ctx.ctx_structs) - punctuation "}" - | TEnum e -> - Format.fprintf fmt "@[%a%a%a%a@]" EnumName.format_t e punctuation "[" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ %a@ " punctuation "|") - (fun fmt (case, mty) -> - Format.fprintf fmt "%a%a@ %a" enum_constructor case punctuation ":" - typ mty)) - (EnumMap.find e ctx.ctx_enums) - punctuation "]" + | TStruct s -> ( + match ctx with + | None -> Format.fprintf fmt "@[%a@]" StructName.format_t s + | Some ctx -> + Format.fprintf fmt "@[%a%a%a%a@]" StructName.format_t s punctuation + "{" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ";") + (fun fmt (field, mty) -> + Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" + StructFieldName.format_t field punctuation "\"" punctuation ":" + typ mty)) + (StructMap.find s ctx.ctx_structs) + punctuation "}") + | TEnum e -> ( + match ctx with + | None -> Format.fprintf fmt "@[%a@]" EnumName.format_t e + | Some ctx -> + Format.fprintf fmt "@[%a%a%a%a@]" EnumName.format_t e punctuation + "[" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ %a@ " punctuation "|") + (fun fmt (case, mty) -> + Format.fprintf fmt "%a%a@ %a" enum_constructor case punctuation ":" + typ mty)) + (EnumMap.find e ctx.ctx_enums) + punctuation "]") | TOption t -> Format.fprintf fmt "@[%a@ %a@]" base_type "option" typ t | TArrow (t1, t2) -> Format.fprintf fmt "@[%a %a@ %a@]" typ_with_parens t1 operator "→" @@ -213,153 +220,175 @@ let needs_parens (type a) (e : (a, _) gexpr) : bool = match Marked.unmark e with EAbs _ | ETuple (_, Some _) -> true | _ -> false let rec expr : - 'a. - ?debug:bool -> decl_ctx -> Format.formatter -> ('a, 't) gexpr -> unit + type a. + ?debug:bool -> decl_ctx option -> Format.formatter -> (a, 't) gexpr -> unit = - fun (type a) ?(debug : bool = false) (ctx : decl_ctx) (fmt : Format.formatter) - (e : (a, 't) gexpr) -> - let expr e = expr ~debug ctx e in - let with_parens fmt e = - if needs_parens e then ( - punctuation fmt "("; - expr fmt e; - punctuation fmt ")") - else expr fmt e - in - match Marked.unmark e with - | EVar v -> Format.fprintf fmt "%a" var v - | ETuple (es, None) -> - Format.fprintf fmt "@[%a%a%a@]" punctuation "(" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt ",@ ") - (fun fmt e -> Format.fprintf fmt "%a" expr e)) - es punctuation ")" - | ETuple (es, Some s) -> - Format.fprintf fmt "@[%a@ @[%a%a%a@]@]" StructName.format_t s - punctuation "{" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ";") - (fun fmt (e, struct_field) -> - Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" - StructFieldName.format_t struct_field punctuation "\"" punctuation - "=" expr e)) - (List.combine es (List.map fst (StructMap.find s ctx.ctx_structs))) - punctuation "}" - | EArray es -> - Format.fprintf fmt "@[%a%a%a@]" punctuation "[" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt ";@ ") - (fun fmt e -> Format.fprintf fmt "%a" expr e)) - es punctuation "]" - | ETupleAccess (e1, n, s, _ts) -> ( - match s with - | None -> Format.fprintf fmt "%a%a%d" expr e1 punctuation "." n - | Some s -> - Format.fprintf fmt "%a%a%a%a%a" expr e1 operator "." punctuation "\"" - StructFieldName.format_t - (fst (List.nth (StructMap.find s ctx.ctx_structs) n)) - punctuation "\"") - | EInj (e, n, en, _ts) -> - Format.fprintf fmt "@[%a@ %a@]" enum_constructor - (fst (List.nth (EnumMap.find en ctx.ctx_enums) n)) - expr e - | EMatch (e, es, e_name) -> - Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" - expr e keyword "with" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") - (fun fmt (e, c) -> - Format.fprintf fmt "@[%a %a%a@ %a@]" punctuation "|" - enum_constructor c punctuation ":" expr e)) - (List.combine es (List.map fst (EnumMap.find e_name ctx.ctx_enums))) - | ELit l -> lit fmt l - | EApp ((EAbs (binder, taus), _), args) -> - let xs, body = Bindlib.unmbind binder in - let xs_tau = List.mapi (fun i tau -> xs.(i), tau) taus in - let xs_tau_arg = List.map2 (fun (x, tau) arg -> x, tau, arg) xs_tau args in - Format.fprintf fmt "%a%a" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "") - (fun fmt (x, tau, arg) -> - Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@ %a@]@\n" - keyword "let" var x punctuation ":" (typ ctx) tau punctuation "=" - expr arg keyword "in")) - xs_tau_arg expr body - | EAbs (binder, taus) -> - let xs, body = Bindlib.unmbind binder in - let xs_tau = List.mapi (fun i tau -> xs.(i), tau) taus in - Format.fprintf fmt "@[%a @[%a@] %a@ %a@]" punctuation "λ" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ ") - (fun fmt (x, tau) -> - Format.fprintf fmt "%a%a%a %a%a" punctuation "(" var x punctuation - ":" (typ ctx) tau punctuation ")")) - xs_tau punctuation "→" expr body - | EApp ((EOp (Binop ((Map | Filter) as op)), _), [arg1; arg2]) -> - Format.fprintf fmt "@[%a@ %a@ %a@]" binop op with_parens arg1 - with_parens arg2 - | EApp ((EOp (Binop op), _), [arg1; arg2]) -> - Format.fprintf fmt "@[%a@ %a@ %a@]" with_parens arg1 binop op - with_parens arg2 - | EApp ((EOp (Unop (Log _)), _), [arg1]) when not debug -> expr fmt arg1 - | EApp ((EOp (Unop op), _), [arg1]) -> - Format.fprintf fmt "@[%a@ %a@]" unop op with_parens arg1 - | EApp (f, args) -> - Format.fprintf fmt "@[%a@ %a@]" expr f - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ ") - with_parens) - args - | EIfThenElse (e1, e2, e3) -> - Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@]" keyword "if" expr e1 - keyword "then" expr e2 keyword "else" expr e3 - | EOp (Ternop op) -> Format.fprintf fmt "%a" ternop op - | EOp (Binop op) -> Format.fprintf fmt "%a" binop op - | EOp (Unop op) -> Format.fprintf fmt "%a" unop op - | EDefault (exceptions, just, cons) -> - if List.length exceptions = 0 then - Format.fprintf fmt "@[%a%a@ %a@ %a%a@]" punctuation "⟨" expr just - punctuation "⊢" expr cons punctuation "⟩" - else - Format.fprintf fmt "@[%a%a@ %a@ %a@ %a@ %a%a@]" punctuation "⟨" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ",") - expr) - exceptions punctuation "|" expr just punctuation "⊢" expr cons - punctuation "⟩" - | ErrorOnEmpty e' -> - Format.fprintf fmt "%a@ %a" operator "error_empty" with_parens e' - | EAssert e' -> - Format.fprintf fmt "@[%a@ %a%a%a@]" keyword "assert" punctuation "(" - expr e' punctuation ")" - | ECatch (e1, exn, e2) -> - Format.fprintf fmt "@[%a@ %a@ %a@ %a ->@ %a@]" keyword "try" - with_parens e1 keyword "with" except exn with_parens e2 - | ERaise exn -> - Format.fprintf fmt "@[%a@ %a@]" keyword "raise" except exn - | ELocation loc -> location fmt loc - | EStruct (name, fields) -> - Format.fprintf fmt " @[%a@ %a@ %a@ %a@]" StructName.format_t name - punctuation "{" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ";") - (fun fmt (field_name, field_expr) -> - Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" - StructFieldName.format_t field_name punctuation "\"" punctuation - "=" expr field_expr)) - (StructFieldMap.bindings fields) - punctuation "}" - | EStructAccess (e1, field, _) -> - Format.fprintf fmt "%a%a%a%a%a" expr e1 punctuation "." punctuation "\"" - StructFieldName.format_t field punctuation "\"" - | EEnumInj (e1, cons, _) -> - Format.fprintf fmt "%a@ %a" EnumConstructor.format_t cons expr e1 - | EMatchS (e1, _, cases) -> - Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" - expr e1 keyword "with" - (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") - (fun fmt (cons_name, case_expr) -> - Format.fprintf fmt "@[%a %a@ %a@ %a@]" punctuation "|" - enum_constructor cons_name punctuation "→" expr case_expr)) - (EnumConstructorMap.bindings cases) + fun ?(debug = false) ctx fmt e -> + let expr e = expr ~debug ctx e in + let with_parens fmt e = + if needs_parens e then ( + punctuation fmt "("; + expr fmt e; + punctuation fmt ")") + else expr fmt e + in + match Marked.unmark e with + | EVar v -> Format.fprintf fmt "%a" var v + | ETuple (es, None) -> + Format.fprintf fmt "@[%a%a%a@]" punctuation "(" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt ",@ ") + (fun fmt e -> Format.fprintf fmt "%a" expr e)) + es punctuation ")" + | ETuple (es, Some s) -> ( + match ctx with + | None -> expr fmt (Marked.same_mark_as (ETuple (es, None)) e) + | Some ctx -> + Format.fprintf fmt "@[%a@ @[%a%a%a@]@]" StructName.format_t + s punctuation "{" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ";") + (fun fmt (e, struct_field) -> + Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" + StructFieldName.format_t struct_field punctuation "\"" + punctuation "=" expr e)) + (List.combine es (List.map fst (StructMap.find s ctx.ctx_structs))) + punctuation "}") + | EArray es -> + Format.fprintf fmt "@[%a%a%a@]" punctuation "[" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt ";@ ") + (fun fmt e -> Format.fprintf fmt "%a" expr e)) + es punctuation "]" + | ETupleAccess (e1, n, s, _ts) -> ( + match s, ctx with + | None, _ | _, None -> Format.fprintf fmt "%a%a%d" expr e1 punctuation "." n + | Some s, Some ctx -> + Format.fprintf fmt "%a%a%a%a%a" expr e1 operator "." punctuation "\"" + StructFieldName.format_t + (fst (List.nth (StructMap.find s ctx.ctx_structs) n)) + punctuation "\"") + | EInj (e, n, en, _ts) -> ( + match ctx with + | None -> + Format.fprintf fmt "@[%a[%d]@ %a@]" EnumName.format_t en n expr e + | Some ctx -> + Format.fprintf fmt "@[%a@ %a@]" enum_constructor + (fst (List.nth (EnumMap.find en ctx.ctx_enums) n)) + expr e) + | EMatch (e, es, e_name) -> ( + match ctx with + | None -> + Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" + expr e keyword "with" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") + (fun fmt (e, i) -> + Format.fprintf fmt "@[%a %a[%d]%a@ %a@]" punctuation "|" + EnumName.format_t e_name i punctuation ":" expr e)) + (List.mapi (fun i e -> e, i) es) + | Some ctx -> + Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" + expr e keyword "with" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") + (fun fmt (e, c) -> + Format.fprintf fmt "@[%a %a%a@ %a@]" punctuation "|" + enum_constructor c punctuation ":" expr e)) + (List.combine es (List.map fst (EnumMap.find e_name ctx.ctx_enums)))) + | ELit l -> lit fmt l + | EApp ((EAbs (binder, taus), _), args) -> + let xs, body = Bindlib.unmbind binder in + let xs_tau = List.mapi (fun i tau -> xs.(i), tau) taus in + let xs_tau_arg = List.map2 (fun (x, tau) arg -> x, tau, arg) xs_tau args in + Format.fprintf fmt "%a%a" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "") + (fun fmt (x, tau, arg) -> + Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@ %a@]@\n" keyword + "let" var x punctuation ":" (typ ctx) tau punctuation "=" expr arg + keyword "in")) + xs_tau_arg expr body + | EAbs (binder, taus) -> + let xs, body = Bindlib.unmbind binder in + let xs_tau = List.mapi (fun i tau -> xs.(i), tau) taus in + Format.fprintf fmt "@[%a @[%a@] %a@ %a@]" punctuation "λ" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ ") + (fun fmt (x, tau) -> + Format.fprintf fmt "%a%a%a %a%a" punctuation "(" var x punctuation + ":" (typ ctx) tau punctuation ")")) + xs_tau punctuation "→" expr body + | EApp ((EOp (Binop ((Map | Filter) as op)), _), [arg1; arg2]) -> + Format.fprintf fmt "@[%a@ %a@ %a@]" binop op with_parens arg1 + with_parens arg2 + | EApp ((EOp (Binop op), _), [arg1; arg2]) -> + Format.fprintf fmt "@[%a@ %a@ %a@]" with_parens arg1 binop op + with_parens arg2 + | EApp ((EOp (Unop (Log _)), _), [arg1]) when not debug -> expr fmt arg1 + | EApp ((EOp (Unop op), _), [arg1]) -> + Format.fprintf fmt "@[%a@ %a@]" unop op with_parens arg1 + | EApp (f, args) -> + Format.fprintf fmt "@[%a@ %a@]" expr f + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ ") + with_parens) + args + | EIfThenElse (e1, e2, e3) -> + Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@]" keyword "if" expr e1 + keyword "then" expr e2 keyword "else" expr e3 + | EOp (Ternop op) -> Format.fprintf fmt "%a" ternop op + | EOp (Binop op) -> Format.fprintf fmt "%a" binop op + | EOp (Unop op) -> Format.fprintf fmt "%a" unop op + | EDefault (exceptions, just, cons) -> + if List.length exceptions = 0 then + Format.fprintf fmt "@[%a%a@ %a@ %a%a@]" punctuation "⟨" expr just + punctuation "⊢" expr cons punctuation "⟩" + else + Format.fprintf fmt "@[%a%a@ %a@ %a@ %a@ %a%a@]" punctuation "⟨" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ",") + expr) + exceptions punctuation "|" expr just punctuation "⊢" expr cons + punctuation "⟩" + | ErrorOnEmpty e' -> + Format.fprintf fmt "%a@ %a" operator "error_empty" with_parens e' + | EAssert e' -> + Format.fprintf fmt "@[%a@ %a%a%a@]" keyword "assert" punctuation "(" + expr e' punctuation ")" + | ECatch (e1, exn, e2) -> + Format.fprintf fmt "@[%a@ %a@ %a@ %a ->@ %a@]" keyword "try" + with_parens e1 keyword "with" except exn with_parens e2 + | ERaise exn -> + Format.fprintf fmt "@[%a@ %a@]" keyword "raise" except exn + | ELocation loc -> location fmt loc + | EStruct (name, fields) -> + Format.fprintf fmt " @[%a@ %a@ %a@ %a@]" StructName.format_t name + punctuation "{" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "%a@ " punctuation ";") + (fun fmt (field_name, field_expr) -> + Format.fprintf fmt "%a%a%a%a@ %a" punctuation "\"" + StructFieldName.format_t field_name punctuation "\"" punctuation + "=" expr field_expr)) + (StructFieldMap.bindings fields) + punctuation "}" + | EStructAccess (e1, field, _) -> + Format.fprintf fmt "%a%a%a%a%a" expr e1 punctuation "." punctuation "\"" + StructFieldName.format_t field punctuation "\"" + | EEnumInj (e1, cons, _) -> + Format.fprintf fmt "%a@ %a" EnumConstructor.format_t cons expr e1 + | EMatchS (e1, _, cases) -> + Format.fprintf fmt "@[%a@ @[%a@]@ %a@ %a@]" keyword "match" + expr e1 keyword "with" + (Format.pp_print_list + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@\n") + (fun fmt (cons_name, case_expr) -> + Format.fprintf fmt "@[%a %a@ %a@ %a@]" punctuation "|" + enum_constructor cons_name punctuation "→" expr case_expr)) + (EnumConstructorMap.bindings cases) + +let typ_debug = typ None +let typ ctx = typ (Some ctx) +let expr_debug ?debug = expr ?debug None +let expr ?debug ctx = expr ?debug (Some ctx) diff --git a/compiler/shared_ast/print.mli b/compiler/shared_ast/print.mli index 5fbd47cb..f4dbd8f0 100644 --- a/compiler/shared_ast/print.mli +++ b/compiler/shared_ast/print.mli @@ -47,5 +47,15 @@ val expr : ?debug:bool (** [true] for debug printing *) -> decl_ctx -> Format.formatter -> - ('a, 't) gexpr -> + ('a, 'm mark) gexpr -> unit + +(** {1 Debugging versions that don't require a context} *) + +val expr_debug : + ?debug:bool (** [true] for debug printing *) -> + Format.formatter -> + ('a, 'm mark) gexpr -> + unit + +val typ_debug : Format.formatter -> typ -> unit From 742c4acb3e05762fa3dd330558ef88ed1e741a9e Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Wed, 28 Sep 2022 12:28:48 +0200 Subject: [PATCH 35/52] Expr.make_app: fix assertion to allow for TAny values --- compiler/shared_ast/expr.ml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index e96e7c51..0880abf6 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -242,6 +242,10 @@ let rec equal_typ ty1 ty2 = and equal_typ_list tys1 tys2 = try List.for_all2 equal_typ tys1 tys2 with Invalid_argument _ -> false +(* Note: not a real unification check! Only superficially allows [TAny] *) +let unifiable ty1 ty2 = + (Marked.unmark ty1 = TAny || Marked.unmark ty2 = TAny) || equal_typ ty1 ty2 + let rec compare_typ ty1 ty2 = match Marked.unmark ty1, Marked.unmark ty2 with | TLit l1, TLit l2 -> compare_tlit l1 l2 @@ -728,7 +732,7 @@ let make_app e u pos = (fun tf tx -> match Marked.unmark tf with | TArrow (tx', tr) -> - assert (Marked.unmark tx' = TAny || equal_typ tx.ty tx'); + assert (unifiable tx.ty tx'); (* wrong arg type *) tr | TAny -> tf From 9349fb918dee85ddd0b120d2e3b4931e08c653ce Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 30 Sep 2022 16:38:35 +0200 Subject: [PATCH 36/52] Scope: fix getting external body mark --- compiler/shared_ast/scope.ml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/compiler/shared_ast/scope.ml b/compiler/shared_ast/scope.ml index 93e22875..4f91c909 100644 --- a/compiler/shared_ast/scope.ml +++ b/compiler/shared_ast/scope.ml @@ -92,9 +92,15 @@ let map_exprs ~f ~varf scopes = new_body_expr new_next) ~init:(Bindlib.box Nil) scopes +let rec get_body_expr_mark = function + | Result e -> Marked.get_mark e + | ScopeLet sl -> + let _, e = Bindlib.unbind sl.scope_let_next in + get_body_expr_mark e + let get_body_mark scope_body = - match snd (Bindlib.unbind scope_body.scope_body_expr) with - | Result e | ScopeLet { scope_let_expr = e; _ } -> Marked.get_mark e + let _, e = Bindlib.unbind scope_body.scope_body_expr in + get_body_expr_mark e let rec unfold_body_expr (ctx : decl_ctx) (scope_let : 'e scope_body_expr) : 'e box = From 41315dc650332658025f019f1897a5a1d97395c8 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 30 Sep 2022 16:40:10 +0200 Subject: [PATCH 37/52] Scopelang: add toplevel mark for convenience it allows to discriminate typed and non-typed ASTs --- compiler/desugared/desugared_to_scope.ml | 2 ++ compiler/scopelang/ast.ml | 9 ++++++++- compiler/scopelang/ast.mli | 1 + 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index 5e2efa7a..2c7de55c 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -627,10 +627,12 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : acc states) scope.scope_vars ScopeVarMap.empty in + let pos = Marked.get_mark (ScopeName.get_info scope.scope_uid) in { Scopelang.Ast.scope_decl_name = scope.scope_uid; Scopelang.Ast.scope_decl_rules; Scopelang.Ast.scope_sig; + Scopelang.Ast.scope_mark = Untyped { pos }; } (** {1 API} *) diff --git a/compiler/scopelang/ast.ml b/compiler/scopelang/ast.ml index f88fee10..47d8a71f 100644 --- a/compiler/scopelang/ast.ml +++ b/compiler/scopelang/ast.ml @@ -77,6 +77,7 @@ type 'm scope_decl = { scope_decl_name : ScopeName.t; scope_sig : (typ * io) ScopeVarMap.t; scope_decl_rules : 'm rule list; + scope_mark : 'm mark; } type 'm program = { @@ -115,7 +116,13 @@ let type_program (prg : 'm program) : typed program = (type_rule prg.program_ctx typing_env) scope_decl.scope_decl_rules in - { scope_decl with scope_decl_rules }) + let scope_mark = + let pos = + Marked.get_mark (ScopeName.get_info scope_decl.scope_decl_name) + in + Typed { pos; ty = Marked.mark pos TAny } + in + { scope_decl with scope_decl_rules; scope_mark }) prg.program_scopes in { prg with program_scopes } diff --git a/compiler/scopelang/ast.mli b/compiler/scopelang/ast.mli index 61db7f70..695189f2 100644 --- a/compiler/scopelang/ast.mli +++ b/compiler/scopelang/ast.mli @@ -71,6 +71,7 @@ type 'm scope_decl = { scope_decl_name : ScopeName.t; scope_sig : (typ * io) ScopeVarMap.t; scope_decl_rules : 'm rule list; + scope_mark : 'm mark; } type 'm program = { From 749810625ff71937c1e011e3eba17427c54d3a34 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Wed, 28 Sep 2022 12:27:47 +0200 Subject: [PATCH 38/52] Activate double typing --- compiler/driver.ml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index 74aef934..0cb1ad2f 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -191,7 +191,7 @@ let driver source_file (options : Cli.options) : int = Scopelang.Dependency.check_type_cycles prgm.program_ctx.ctx_structs prgm.program_ctx.ctx_enums in - let _prgm = Scopelang.Ast.type_program prgm in + let prgm = Scopelang.Ast.type_program prgm in Cli.debug_print "Translating to default calculus..."; let prgm = Scopelang.Scope_to_dcalc.translate_program prgm in let prgm = @@ -229,8 +229,17 @@ let driver source_file (options : Cli.options) : int = prgrm_dcalc_expr | (`Interpret | `OCaml | `Python | `Scalc | `Lcalc | `Proof | `Plugin _) as backend -> ( - Cli.debug_print "Typechecking again..."; - let prgm = Shared_ast.Typing.program prgm in + Cli.debug_print "Typechecking again..."; + let prgm = + try Shared_ast.Typing.program prgm + with Errors.StructuredError (msg, details) -> + let msg = + "Typing error occured during re-typing on the 'default \ + calculus'. This is a bug in the Catala compiler.\n" + ^ msg + in + raise (Errors.StructuredError (msg, details)) + in (* Cli.debug_print (Format.asprintf "Typechecking results :@\n%a" (Print.typ prgm.decl_ctx) typ); *) match backend with From 0fdefacf7c958a662dfe1cdf135e0c55bad74b10 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 30 Sep 2022 16:52:35 +0200 Subject: [PATCH 39/52] Add marks to scopelang `Call` --- compiler/desugared/desugared_to_scope.ml | 12 ++++++++- compiler/scopelang/ast.ml | 6 +++-- compiler/scopelang/ast.mli | 2 +- compiler/scopelang/dependency.ml | 2 +- compiler/scopelang/print.ml | 2 +- compiler/scopelang/scope_to_dcalc.ml | 31 +++++++++++------------- compiler/scopelang/scope_to_dcalc.mli | 4 +-- compiler/shared_ast/expr.ml | 3 +++ compiler/shared_ast/expr.mli | 1 + 9 files changed, 37 insertions(+), 26 deletions(-) diff --git a/compiler/desugared/desugared_to_scope.ml b/compiler/desugared/desugared_to_scope.ml index 2c7de55c..655a878a 100644 --- a/compiler/desugared/desugared_to_scope.ml +++ b/compiler/desugared/desugared_to_scope.ml @@ -575,7 +575,17 @@ let translate_scope (ctx : ctx) (scope : Ast.scope) : List.map snd (Ast.ScopeDefMap.bindings sub_scope_vars_redefs) in sub_scope_vars_redefs - @ [Scopelang.Ast.Call (sub_scope, sub_scope_index)]) + @ [ + Scopelang.Ast.Call + ( sub_scope, + sub_scope_index, + Untyped + { + pos = + Marked.get_mark + (SubScopeName.get_info sub_scope_index); + } ); + ]) scope_ordering) in (* Then, after having computed all the scopes variables, we add the diff --git a/compiler/scopelang/ast.ml b/compiler/scopelang/ast.ml index 47d8a71f..74625c25 100644 --- a/compiler/scopelang/ast.ml +++ b/compiler/scopelang/ast.ml @@ -71,7 +71,7 @@ type io = { io_output : bool Marked.pos; io_input : io_input Marked.pos } type 'm rule = | Definition of location Marked.pos * typ * io * 'm expr | Assertion of 'm expr - | Call of ScopeName.t * SubScopeName.t + | Call of ScopeName.t * SubScopeName.t * 'm mark type 'm scope_decl = { scope_decl_name : ScopeName.t; @@ -93,7 +93,9 @@ let type_rule decl_ctx env = function let typ = Marked.mark (Expr.pos expr) (TLit TBool) in let expr' = Typing.expr decl_ctx ~env ~typ expr in Assertion (Bindlib.unbox expr') - | Call (sc_name, ssc_name) -> Call (sc_name, ssc_name) + | Call (sc_name, ssc_name, m) -> + let pos = Expr.mark_pos m in + Call (sc_name, ssc_name, Typed { pos; ty = Marked.mark pos TAny }) let type_program (prg : 'm program) : typed program = let typing_env = diff --git a/compiler/scopelang/ast.mli b/compiler/scopelang/ast.mli index 695189f2..b2b622e5 100644 --- a/compiler/scopelang/ast.mli +++ b/compiler/scopelang/ast.mli @@ -65,7 +65,7 @@ type io = { type 'm rule = | Definition of location Marked.pos * typ * io * 'm expr | Assertion of 'm expr - | Call of ScopeName.t * SubScopeName.t + | Call of ScopeName.t * SubScopeName.t * 'm mark type 'm scope_decl = { scope_decl_name : ScopeName.t; diff --git a/compiler/scopelang/dependency.ml b/compiler/scopelang/dependency.ml index e8d210d7..c788c95f 100644 --- a/compiler/scopelang/dependency.ml +++ b/compiler/scopelang/dependency.ml @@ -59,7 +59,7 @@ let build_program_dep_graph (prgm : 'm Ast.program) : SDependencies.t = (fun acc r -> match r with | Ast.Definition _ | Ast.Assertion _ -> acc - | Ast.Call (subscope, subindex) -> + | Ast.Call (subscope, subindex, _) -> if subscope = scope_name then Errors.raise_spanned_error (Marked.get_mark diff --git a/compiler/scopelang/print.ml b/compiler/scopelang/print.ml index f9ca28bc..b7dbd121 100644 --- a/compiler/scopelang/print.ml +++ b/compiler/scopelang/print.ml @@ -91,7 +91,7 @@ let scope ?(debug = false) ctx fmt (name, decl) = | Assertion e -> Format.fprintf fmt "%a %a" Print.keyword "assert" (Print.expr ~debug ctx) e - | Call (scope_name, subscope_name) -> + | Call (scope_name, subscope_name, _) -> Format.fprintf fmt "%a %a%a%a%a" Print.keyword "call" ScopeName.format_t scope_name Print.punctuation "[" SubScopeName.format_t subscope_name Print.punctuation "]")) diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 7d19d193..2f549d74 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -23,35 +23,33 @@ type scope_var_ctx = { scope_var_io : Ast.io; } -type scope_sig_ctx = { +type 'm scope_sig_ctx = { scope_sig_local_vars : scope_var_ctx list; (** List of scope variables *) - scope_sig_scope_var : untyped Dcalc.Ast.expr Var.t; + scope_sig_scope_var : 'm Dcalc.Ast.expr Var.t; (** Var representing the scope *) - scope_sig_input_var : untyped Dcalc.Ast.expr Var.t; + scope_sig_input_var : 'm Dcalc.Ast.expr Var.t; (** Var representing the scope input inside the scope func *) scope_sig_input_struct : StructName.t; (** Scope input *) scope_sig_output_struct : StructName.t; (** Scope output *) } -type scope_sigs_ctx = scope_sig_ctx ScopeMap.t +type 'm scope_sigs_ctx = 'm scope_sig_ctx ScopeMap.t type 'm ctx = { structs : struct_ctx; enums : enum_ctx; scope_name : ScopeName.t; - scopes_parameters : scope_sigs_ctx; - scope_vars : - (untyped Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t; + scopes_parameters : 'm scope_sigs_ctx; + scope_vars : ('m Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t; subscope_vars : - (untyped Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t - SubScopeMap.t; - local_vars : ('m Ast.expr, untyped Dcalc.Ast.expr Var.t) Var.Map.t; + ('m Dcalc.Ast.expr Var.t * naked_typ * Ast.io) ScopeVarMap.t SubScopeMap.t; + local_vars : ('m Ast.expr, 'm Dcalc.Ast.expr Var.t) Var.Map.t; } let empty_ctx (struct_ctx : struct_ctx) (enum_ctx : enum_ctx) - (scopes_ctx : scope_sigs_ctx) + (scopes_ctx : 'm scope_sigs_ctx) (scope_name : ScopeName.t) = { structs = struct_ctx; @@ -474,7 +472,7 @@ let translate_rule (a_var, Marked.unmark tau, a_io))) ctx.subscope_vars; } ) - | Call (subname, subindex) -> + | Call (subname, subindex, m) -> let subscope_sig = ScopeMap.find subname ctx.scopes_parameters in let all_subscope_vars = subscope_sig.scope_sig_local_vars in let all_subscope_input_vars = @@ -677,7 +675,7 @@ let translate_rules let translate_scope_decl (struct_ctx : struct_ctx) (enum_ctx : enum_ctx) - (sctx : scope_sigs_ctx) + (sctx : 'm scope_sigs_ctx) (scope_name : ScopeName.t) (sigma : 'm Ast.scope_decl) : 'm Dcalc.Ast.expr scope_body Bindlib.box * struct_ctx = @@ -806,13 +804,12 @@ let translate_scope_decl (input_destructurings rules_with_return_expr)), new_struct_ctx ) -let translate_program (prgm : 'm Ast.program) : - 'm Dcalc.Ast.program = +let translate_program (prgm : 'm Ast.program) : 'm Dcalc.Ast.program = let scope_dependencies = Dependency.build_program_dep_graph prgm in Dependency.check_for_cycle_in_scope scope_dependencies; let scope_ordering = Dependency.get_scope_ordering scope_dependencies in let decl_ctx = prgm.program_ctx in - let sctx : scope_sigs_ctx = + let sctx : 'm scope_sigs_ctx = ScopeMap.mapi (fun scope_name scope -> let scope_dvar = @@ -853,7 +850,7 @@ let translate_program (prgm : 'm Ast.program) : in (* the resulting expression is the list of definitions of all the scopes, ending with the top-level scope. *) - let (scopes, decl_ctx) : untyped Dcalc.Ast.expr scopes Bindlib.box * _ = + let (scopes, decl_ctx) : 'm Dcalc.Ast.expr scopes Bindlib.box * _ = List.fold_right (fun scope_name (scopes, decl_ctx) -> let scope = ScopeMap.find scope_name prgm.program_scopes in diff --git a/compiler/scopelang/scope_to_dcalc.mli b/compiler/scopelang/scope_to_dcalc.mli index 644dded6..af8eb11a 100644 --- a/compiler/scopelang/scope_to_dcalc.mli +++ b/compiler/scopelang/scope_to_dcalc.mli @@ -16,6 +16,4 @@ (** Scope language to default calculus translator *) -val translate_program : - Shared_ast.untyped Ast.program -> - Shared_ast.untyped Dcalc.Ast.program +val translate_program : 'm Ast.program -> 'm Dcalc.Ast.program diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index 0880abf6..7012deee 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -138,6 +138,9 @@ let fold_marks ty = ty_f (List.map (function Typed m -> m) ms); } +let with_pos (type m) (pos : Pos.t) (m : m mark) : m mark = + map_mark (fun _ -> pos) (fun ty -> ty) m + let map_ty (type m) (ty_f : typ -> typ) (m : m mark) : m mark = map_mark (fun pos -> pos) ty_f m diff --git a/compiler/shared_ast/expr.mli b/compiler/shared_ast/expr.mli index ac2c19b2..1889e103 100644 --- a/compiler/shared_ast/expr.mli +++ b/compiler/shared_ast/expr.mli @@ -103,6 +103,7 @@ val eraise : except -> 't -> (lcalc, 't) gexpr box val no_mark : 'm mark -> 'm mark val mark_pos : 'm mark -> Pos.t +val with_pos : Pos.t -> 'm mark -> 'm mark val with_ty : 'm mark -> ?pos:Pos.t -> typ -> 'm mark (** Adds the given type information only on typed marks *) From 5bb694c7b8d4088254c575a74d2847c179552e3d Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Fri, 30 Sep 2022 18:30:06 +0200 Subject: [PATCH 40/52] scope_to_dcalc: fix propagating wrong types fill with TAny when building non-trivial things instead (in particular the toplevel scope structure) --- compiler/scopelang/scope_to_dcalc.ml | 61 +++++++++++++++++++--------- 1 file changed, 41 insertions(+), 20 deletions(-) diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 2f549d74..9588fb64 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -61,8 +61,21 @@ let empty_ctx local_vars = Var.Map.empty; } -let pos_mark (pos : Pos.t) : untyped mark = Untyped { pos } -let pos_mark_as e = pos_mark (Marked.get_mark e) +let mark_tany m pos = + Expr.with_ty m (Marked.mark pos TAny) ~pos + +(* Expression argument is used as a type witness, its type and positions aren't + used *) +let pos_mark_mk (type a m) (e : (a, m mark) gexpr): + (Pos.t -> m mark) * + ((_, Pos.t) Marked.t -> m mark) = + let pos_mark pos = + Expr.map_mark (fun _ -> pos) (fun _ -> TAny, pos) (Marked.get_mark e) + in + let pos_mark_as e = + pos_mark (Marked.get_mark e) + in + pos_mark, pos_mark_as let merge_defaults (caller : 'a Dcalc.Ast.expr Bindlib.box) @@ -78,21 +91,25 @@ let merge_defaults Bindlib.box_apply2 (fun caller callee -> let m = Marked.get_mark callee in - EDefault ([caller], (ELit (LBool true), m), callee), m) + let ltrue = + Marked.mark (Expr.with_ty m (Marked.mark (Expr.mark_pos m) (TLit TBool))) + (ELit (LBool true)) + in + Marked.mark m (EDefault ([caller], ltrue, callee))) caller callee in body let tag_with_log_entry - (e : untyped Dcalc.Ast.expr Bindlib.box) + (e : 'm Dcalc.Ast.expr Bindlib.box) (l : log_entry) (markings : Utils.Uid.MarkedString.info list) : - untyped Dcalc.Ast.expr Bindlib.box = + 'm Dcalc.Ast.expr Bindlib.box = Bindlib.box_apply (fun e -> - Marked.same_mark_as - (EApp (Marked.same_mark_as (EOp (Unop (Log (l, markings)))) e, [e])) - e) + let m = mark_tany (Marked.get_mark e) (Expr.pos e) in + Marked.mark m + (EApp (Marked.mark m (EOp (Unop (Log (l, markings)))), [e]))) e (* In a list of exceptions, it is normally an error if more than a single one @@ -367,6 +384,7 @@ let translate_rule * 'm ctx = match rule with | Definition ((ScopelangScopeVar a, var_def_pos), tau, a_io, e) -> + let pos_mark, pos_mark_as = pos_mark_mk e in let a_name = ScopeVar.get_info (Marked.unmark a) in let a_var = Var.make (Marked.unmark a_name) in let new_e = translate_expr ctx e in @@ -412,6 +430,7 @@ let translate_rule tau, a_io, e ) -> + let _pos_mark, pos_mark_as = pos_mark_mk e in let a_name = Marked.map_under_mark (fun str -> @@ -507,19 +526,19 @@ let translate_rule should have been defined (even an empty definition, if they're not defined by any rule in the source code) by the translation from desugared to the scope language. *) - Bindlib.box (Expr.empty_thunked_term (Untyped { pos = pos_call })) + Bindlib.box (Expr.empty_thunked_term m) else let a_var, _, _ = ScopeVarMap.find subvar.scope_var_name subscope_vars_defined in - Expr.make_var (a_var, pos_mark pos_call)) + Expr.make_var (a_var, mark_tany m pos_call)) all_subscope_input_vars in let subscope_struct_arg = Bindlib.box_apply (fun subscope_args -> ( ETuple (subscope_args, Some called_scope_input_struct), - pos_mark pos_call )) + mark_tany m pos_call )) (Bindlib.box_list subscope_args) in let all_subscope_output_vars_dcalc = @@ -537,7 +556,7 @@ let translate_rule let subscope_func = tag_with_log_entry (Expr.make_var - (scope_dcalc_var, pos_mark_as (SubScopeName.get_info subindex))) + (scope_dcalc_var, mark_tany m pos_call)) BeginCall [ sigma_name, pos_sigma; @@ -548,7 +567,7 @@ let translate_rule let call_expr = tag_with_log_entry (Bindlib.box_apply2 - (fun e u -> EApp (e, [u]), pos_mark Pos.no_pos) + (fun e u -> EApp (e, [u]), mark_tany m pos_call) subscope_func subscope_struct_arg) EndCall [ @@ -593,10 +612,10 @@ let translate_rule (fun (var_ctx, _) -> var_ctx.scope_var_typ, pos_sigma) all_subscope_output_vars_dcalc ), - pos_mark pos_sigma ); + mark_tany m pos_sigma ); }) (Bindlib.bind_var v next) - (Expr.make_var (result_tuple_var, pos_mark pos_sigma)), + (Expr.make_var (result_tuple_var, mark_tany m pos_sigma)), i - 1 )) all_subscope_output_vars_dcalc (next, List.length all_subscope_output_vars_dcalc - 1) @@ -640,6 +659,7 @@ let translate_rules (ctx : 'm ctx) (rules : 'm Ast.rule list) ((sigma_name, pos_sigma) : Utils.Uid.MarkedString.info) + (mark: 'm mark) (sigma_return_struct_name : StructName.t) : 'm Dcalc.Ast.expr scope_body_expr Bindlib.box * 'm ctx = let scope_lets, new_ctx = @@ -661,11 +681,12 @@ let translate_rules let return_exp = Bindlib.box_apply (fun args -> - ETuple (args, Some sigma_return_struct_name), pos_mark pos_sigma) + ETuple (args, Some sigma_return_struct_name), + mark_tany mark pos_sigma) (Bindlib.box_list (List.map (fun (_, (dcalc_var, _, _)) -> - Expr.make_var (dcalc_var, pos_mark pos_sigma)) + Expr.make_var (dcalc_var, mark_tany mark pos_sigma)) scope_output_variables)) in ( scope_lets @@ -709,7 +730,7 @@ let translate_scope_decl let scope_return_struct_name = scope_sig.scope_sig_output_struct in let pos_sigma = Marked.get_mark sigma_info in let rules_with_return_expr, ctx = - translate_rules ctx sigma.scope_decl_rules sigma_info + translate_rules ctx sigma.scope_decl_rules sigma_info sigma.scope_mark scope_return_struct_name in let scope_variables = @@ -763,10 +784,10 @@ let translate_scope_decl List.map (fun (var_ctx, _) -> input_var_typ var_ctx) scope_input_variables ), - pos_mark pos_sigma ); + mark_tany sigma.scope_mark pos_sigma ); }) (Bindlib.bind_var v next) - (Expr.make_var (scope_input_var, pos_mark pos_sigma)), + (Expr.make_var (scope_input_var, mark_tany sigma.scope_mark pos_sigma)), i - 1 )) scope_input_variables (next, List.length scope_input_variables - 1)) From 5da55f16051876477dc490e6c72f915688086883 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Mon, 3 Oct 2022 17:07:06 +0200 Subject: [PATCH 41/52] Fix some remaining invalid type annots --- compiler/dcalc/interpreter.ml | 30 +++++----------------------- compiler/scopelang/scope_to_dcalc.ml | 13 +++++++----- compiler/shared_ast/expr.ml | 25 ++++++++++++++++++----- compiler/shared_ast/expr.mli | 9 ++++++++- 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/compiler/dcalc/interpreter.ml b/compiler/dcalc/interpreter.ml index 241b4858..a7d5e9a5 100644 --- a/compiler/dcalc/interpreter.ml +++ b/compiler/dcalc/interpreter.ml @@ -479,7 +479,7 @@ let interpret_program : fun (ctx : decl_ctx) (e : 'm Ast.expr) : (Uid.MarkedString.info * 'm Ast.expr) list -> match evaluate_expr ctx e with - | EAbs (_, [((TStruct s_in, _) as targs)]), mark_e -> begin + | EAbs (_, [((TStruct s_in, _) as _targs)]), mark_e as e -> begin (* At this point, the interpreter seeks to execute the scope but does not have a way to retrieve input values from the command line. [taus] contain the types of the scope arguments. For [context] arguments, we can provide @@ -502,31 +502,11 @@ let interpret_program : taus in let to_interpret = - ( EApp - ( e, - [ - ( ETuple (application_term, Some s_in), - let pos = - match application_term with - | a :: _ -> Expr.pos a - | [] -> Pos.no_pos - in - Expr.with_ty mark_e ~pos targs ); - ] ), - Expr.map_mark - (fun pos -> pos) - (fun ty -> - match application_term, ty with - | [], t_out -> t_out - | _ :: _, (TArrow (_, t_out), _) -> t_out - | _ :: _, (_, bad_pos) -> - Errors.raise_spanned_error bad_pos - "@[(bug) Result of interpretation doesn't have the \ - expected type:@ @[%a@]@]" - (Print.typ ctx) ty) - mark_e ) + Expr.make_app (Bindlib.box e) + [ Expr.make_tuple application_term (Some s_in) mark_e ] + (Expr.pos e) in - match Marked.unmark (evaluate_expr ctx to_interpret) with + match Marked.unmark (evaluate_expr ctx (Bindlib.unbox to_interpret)) with | ETuple (args, Some s_out) -> let s_out_fields = List.map diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 9588fb64..0a769ffa 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -526,7 +526,7 @@ let translate_rule should have been defined (even an empty definition, if they're not defined by any rule in the source code) by the translation from desugared to the scope language. *) - Bindlib.box (Expr.empty_thunked_term m) + Expr.empty_thunked_term m else let a_var, _, _ = ScopeVarMap.find subvar.scope_var_name subscope_vars_defined @@ -635,20 +635,23 @@ let translate_rule } ) | Assertion e -> let new_e = translate_expr ctx e in + let scope_let_pos = Expr.pos e in + let scope_let_typ = TLit TUnit, scope_let_pos in ( (fun next -> Bindlib.box_apply2 (fun next new_e -> ScopeLet { scope_let_next = next; - scope_let_pos = Expr.pos e; - scope_let_typ = TLit TUnit, Expr.pos e; + scope_let_pos; + scope_let_typ; scope_let_expr = (* To ensure that we throw an error if the value is not defined, we add an check "ErrorOnEmpty" here. *) - Marked.same_mark_as + Marked.mark + (Expr.map_ty (fun _ -> scope_let_typ) (Marked.get_mark e)) (EAssert (Marked.same_mark_as (ErrorOnEmpty new_e) e)) - new_e; + ; scope_let_kind = Assertion; }) (Bindlib.bind_var (Var.make "_") next) diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index 7012deee..f1d83f1c 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -753,11 +753,10 @@ let make_app e u pos = let empty_thunked_term mark = let silent = Var.make "_" in let pos = mark_pos mark in - Bindlib.unbox - (make_abs [| silent |] - (Bindlib.box (ELit LEmptyError, mark)) - [TLit TUnit, pos] - pos) + make_abs [| silent |] + (Bindlib.box (ELit LEmptyError, mark)) + [TLit TUnit, pos] + pos let make_let_in x tau e1 e2 mpos = make_app (make_abs [| x |] e2 [tau] mpos) [e1] (pos (Bindlib.unbox e2)) @@ -781,3 +780,19 @@ let make_default exceptions just cons mark = EDefault (exceptions, just, cons), mark | [except], Some false, _ -> except | exceptions, _, cons -> EDefault (exceptions, just, cons), mark + +let make_tuple el structname m0 = + match el with + | [] -> + etuple [] structname + (with_ty m0 (match structname with + | Some n -> TStruct n, mark_pos m0 + | None -> TTuple [], mark_pos m0)) + | el -> + let m = + fold_marks + (fun posl -> List.hd posl) + (fun ml -> TTuple (List.map (fun t -> t.ty) ml), (List.hd ml).pos) + (List.map (fun e -> Marked.get_mark (Bindlib.unbox e)) el) + in + etuple el structname m diff --git a/compiler/shared_ast/expr.mli b/compiler/shared_ast/expr.mli index 1889e103..e0aeaf2a 100644 --- a/compiler/shared_ast/expr.mli +++ b/compiler/shared_ast/expr.mli @@ -188,7 +188,7 @@ val make_app : ('a, 'm mark) gexpr box val empty_thunked_term : - 'm mark -> ([< dcalc | desugared | scopelang ], 'm mark) gexpr + 'm mark -> ([< dcalc | desugared | scopelang ], 'm mark) gexpr box val make_let_in : ('a, 'm mark) gexpr Var.t -> @@ -225,6 +225,13 @@ val make_default : exceptions, is collapsed into [] - [], when [ex] is a single exception, is rewritten as [ex] *) +(** Builds a tuple; the mark argument is only used as witness and for position when building 0-uples *) +val make_tuple: + ([< dcalc | lcalc] as 'a, 'm mark) gexpr box list -> + StructName.t option -> + 'm mark -> + ('a, 'm mark) gexpr box + (** {2 Transformations} *) val remove_logging_calls : ('a any, 't) gexpr -> ('a, 't) gexpr box From 609cc5cc9aadff9c0d9aa07853871d34bd055bb6 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 11:27:31 +0200 Subject: [PATCH 42/52] Tests: add info on manually running a single test --- tests/README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/README.md b/tests/README.md index b0ef0f90..60154668 100644 --- a/tests/README.md +++ b/tests/README.md @@ -49,3 +49,11 @@ for instance), you can mass-reset the expected outputs with `make test_suite CLERK_OPTS=--reset`. `git diff` will then allow to check all the changes at once. **Caution**: It's your responsability to check all the changes before committing them. + +## Tips + +* Running a single test-file just to check changes when tweaking either the compiler or the test file itself, but without updating or diffing with the reference can be useful when debugging. The following command outputs the result to `stdout` and can be used from within text editors: + + clerk runtest test-file.catala_en + # Or, to use the current build artefacts, wrap with `dune exec`: + dune exec --display=quiet --no-build -- clerk runtest -e dune -c "exec --display=quiet --no-build -- catala" test-file.catala_en From 920b3679dfbe306ca2b4cc4a33d152db3a042c5c Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 11:28:36 +0200 Subject: [PATCH 43/52] Some more fixes for remaining invalid typing --- compiler/driver.ml | 3 --- compiler/shared_ast/expr.ml | 30 ++++++++++++++++++++++-------- compiler/shared_ast/scope.ml | 5 ++++- compiler/shared_ast/typing.ml | 4 ++-- 4 files changed, 28 insertions(+), 14 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index 0cb1ad2f..c04a4f76 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -243,9 +243,6 @@ let driver source_file (options : Cli.options) : int = (* Cli.debug_print (Format.asprintf "Typechecking results :@\n%a" (Print.typ prgm.decl_ctx) typ); *) match backend with - | `Typecheck -> - (* That's it! *) - Cli.result_print "Typechecking successful!" | `Proof -> let vcs = Verification.Conditions.generate_verification_conditions prgm diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index f1d83f1c..9df14b44 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -245,9 +245,24 @@ let rec equal_typ ty1 ty2 = and equal_typ_list tys1 tys2 = try List.for_all2 equal_typ tys1 tys2 with Invalid_argument _ -> false -(* Note: not a real unification check! Only superficially allows [TAny] *) -let unifiable ty1 ty2 = - (Marked.unmark ty1 = TAny || Marked.unmark ty2 = TAny) || equal_typ ty1 ty2 +(* Similar to [equal_typ], but allows TAny holes *) +let rec unifiable ty1 ty2 = + match Marked.unmark ty1, Marked.unmark ty2 with + | TAny, _ | _, TAny -> true + | TLit l1, TLit l2 -> equal_tlit l1 l2 + | TTuple tys1, TTuple tys2 -> unifiable_list tys1 tys2 + | TStruct n1, TStruct n2 -> StructName.equal n1 n2 + | TEnum n1, TEnum n2 -> EnumName.equal n1 n2 + | TOption t1, TOption t2 -> unifiable t1 t2 + | TArrow (t1, t1'), TArrow (t2, t2') -> unifiable t1 t2 && unifiable t1' t2' + | TArray t1, TArray t2 -> unifiable t1 t2 + | ( ( TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ + | TArray _ ), + _ ) -> + false + +and unifiable_list tys1 tys2 = + try List.for_all2 unifiable tys1 tys2 with Invalid_argument _ -> false let rec compare_typ ty1 ty2 = match Marked.unmark ty1, Marked.unmark ty2 with @@ -739,11 +754,10 @@ let make_app e u pos = (* wrong arg type *) tr | TAny -> tf - | _ -> Marked.same_mark_as TAny tf - (* TODO: enable this assert and debug cases where we propagate wrong types! - * Format.kasprintf failwith "Attempt to construct application of 'function' of type %a" - * (fun ppf t -> Print.typ {ctx_enums = EnumMap.empty; ctx_structs = StructMap.empty} ppf t) tf - * (\* apply of non-arrow type *\) *)) + | _ -> + Format.eprintf "Attempt to construct application of non-arrow type %a:@\n%a" + Print.typ_debug tf (Print.expr_debug ~debug:false) e; + assert false) fty.ty argtys) (List.map Marked.get_mark (e :: u)) in diff --git a/compiler/shared_ast/scope.ml b/compiler/shared_ast/scope.ml index 4f91c909..96051d6e 100644 --- a/compiler/shared_ast/scope.ml +++ b/compiler/shared_ast/scope.ml @@ -92,11 +92,14 @@ let map_exprs ~f ~varf scopes = new_body_expr new_next) ~init:(Bindlib.box Nil) scopes +(* TODO: compute the expected body expr arrow type manually instead of [TAny] for double-checking types ? *) let rec get_body_expr_mark = function - | Result e -> Marked.get_mark e | ScopeLet sl -> let _, e = Bindlib.unbind sl.scope_let_next in get_body_expr_mark e + | Result e -> + let m = Marked.get_mark e in + (Expr.with_ty m (Utils.Marked.mark (Expr.mark_pos m) TAny)) let get_body_mark scope_body = let _, e = Bindlib.unbind scope_body.scope_body_expr in diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index 6e651491..596fb6a7 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -545,7 +545,7 @@ let rec typecheck_expr_bottom_up : let+ e1' = typecheck_expr_top_down ctx env (unionfind_make ~pos:e1 (TLit TBool)) e1 in - mark_with_uf (A.EAssert e1') ~pos:e1 (TLit TUnit) + mark_with_uf (A.EAssert e1') (TLit TUnit) | A.ErrorOnEmpty e1 -> let+ e1' = typecheck_expr_bottom_up ctx env e1 in mark (A.ErrorOnEmpty e1') (ty e1') @@ -785,7 +785,7 @@ and typecheck_expr_top_down : in mark (A.EIfThenElse (cond', et', ef')) | A.EAssert e1 -> - unify_and_mark (unionfind_make ~pos:e1 (TLit TUnit)) + unify_and_mark (unionfind_make (TLit TUnit)) @@ fun () -> let+ e1' = typecheck_expr_top_down ctx env (unionfind_make ~pos:e1 (TLit TBool)) e1 From ea114bada2b6102e91a1b093fca3635fa993eb56 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 14:21:04 +0200 Subject: [PATCH 44/52] Fix one more typing mismatch --- compiler/lcalc/compile_with_exceptions.ml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/compiler/lcalc/compile_with_exceptions.ml b/compiler/lcalc/compile_with_exceptions.ml index a0fd1fe6..f44cc97c 100644 --- a/compiler/lcalc/compile_with_exceptions.ml +++ b/compiler/lcalc/compile_with_exceptions.ml @@ -38,15 +38,17 @@ let rec translate_default let exceptions = List.map (fun except -> thunk_expr (translate_expr ctx except)) exceptions in + let pos = Expr.mark_pos mark_default in let exceptions = Expr.make_app - (Expr.make_var (Var.translate A.handle_default, mark_default)) + (Expr.make_var (Var.translate A.handle_default, + (Expr.with_ty mark_default (Utils.Marked.mark pos TAny)))) [ Expr.earray exceptions mark_default; thunk_expr (translate_expr ctx just); thunk_expr (translate_expr ctx cons); ] - (Expr.mark_pos mark_default) + pos in exceptions From 14f1ebfd0ad65bdd3408bb6ba9c254df97a59ad9 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 14:25:15 +0200 Subject: [PATCH 45/52] Reformat --- compiler/dcalc/interpreter.ml | 4 +-- compiler/lcalc/compile_with_exceptions.ml | 5 ++-- compiler/scopelang/scope_to_dcalc.ml | 32 +++++++++-------------- compiler/shared_ast/expr.ml | 18 ++++++++----- compiler/shared_ast/expr.mli | 7 ++--- compiler/shared_ast/scope.ml | 5 ++-- 6 files changed, 36 insertions(+), 35 deletions(-) diff --git a/compiler/dcalc/interpreter.ml b/compiler/dcalc/interpreter.ml index a7d5e9a5..17167c8f 100644 --- a/compiler/dcalc/interpreter.ml +++ b/compiler/dcalc/interpreter.ml @@ -479,7 +479,7 @@ let interpret_program : fun (ctx : decl_ctx) (e : 'm Ast.expr) : (Uid.MarkedString.info * 'm Ast.expr) list -> match evaluate_expr ctx e with - | EAbs (_, [((TStruct s_in, _) as _targs)]), mark_e as e -> begin + | (EAbs (_, [((TStruct s_in, _) as _targs)]), mark_e) as e -> begin (* At this point, the interpreter seeks to execute the scope but does not have a way to retrieve input values from the command line. [taus] contain the types of the scope arguments. For [context] arguments, we can provide @@ -503,7 +503,7 @@ let interpret_program : in let to_interpret = Expr.make_app (Bindlib.box e) - [ Expr.make_tuple application_term (Some s_in) mark_e ] + [Expr.make_tuple application_term (Some s_in) mark_e] (Expr.pos e) in match Marked.unmark (evaluate_expr ctx (Bindlib.unbox to_interpret)) with diff --git a/compiler/lcalc/compile_with_exceptions.ml b/compiler/lcalc/compile_with_exceptions.ml index f44cc97c..33ae49ca 100644 --- a/compiler/lcalc/compile_with_exceptions.ml +++ b/compiler/lcalc/compile_with_exceptions.ml @@ -41,8 +41,9 @@ let rec translate_default let pos = Expr.mark_pos mark_default in let exceptions = Expr.make_app - (Expr.make_var (Var.translate A.handle_default, - (Expr.with_ty mark_default (Utils.Marked.mark pos TAny)))) + (Expr.make_var + ( Var.translate A.handle_default, + Expr.with_ty mark_default (Utils.Marked.mark pos TAny) )) [ Expr.earray exceptions mark_default; thunk_expr (translate_expr ctx just); diff --git a/compiler/scopelang/scope_to_dcalc.ml b/compiler/scopelang/scope_to_dcalc.ml index 0a769ffa..7f880360 100644 --- a/compiler/scopelang/scope_to_dcalc.ml +++ b/compiler/scopelang/scope_to_dcalc.ml @@ -61,20 +61,16 @@ let empty_ctx local_vars = Var.Map.empty; } -let mark_tany m pos = - Expr.with_ty m (Marked.mark pos TAny) ~pos +let mark_tany m pos = Expr.with_ty m (Marked.mark pos TAny) ~pos (* Expression argument is used as a type witness, its type and positions aren't used *) -let pos_mark_mk (type a m) (e : (a, m mark) gexpr): - (Pos.t -> m mark) * - ((_, Pos.t) Marked.t -> m mark) = +let pos_mark_mk (type a m) (e : (a, m mark) gexpr) : + (Pos.t -> m mark) * ((_, Pos.t) Marked.t -> m mark) = let pos_mark pos = Expr.map_mark (fun _ -> pos) (fun _ -> TAny, pos) (Marked.get_mark e) in - let pos_mark_as e = - pos_mark (Marked.get_mark e) - in + let pos_mark_as e = pos_mark (Marked.get_mark e) in pos_mark, pos_mark_as let merge_defaults @@ -92,7 +88,8 @@ let merge_defaults (fun caller callee -> let m = Marked.get_mark callee in let ltrue = - Marked.mark (Expr.with_ty m (Marked.mark (Expr.mark_pos m) (TLit TBool))) + Marked.mark + (Expr.with_ty m (Marked.mark (Expr.mark_pos m) (TLit TBool))) (ELit (LBool true)) in Marked.mark m (EDefault ([caller], ltrue, callee))) @@ -108,8 +105,7 @@ let tag_with_log_entry Bindlib.box_apply (fun e -> let m = mark_tany (Marked.get_mark e) (Expr.pos e) in - Marked.mark m - (EApp (Marked.mark m (EOp (Unop (Log (l, markings)))), [e]))) + Marked.mark m (EApp (Marked.mark m (EOp (Unop (Log (l, markings)))), [e]))) e (* In a list of exceptions, it is normally an error if more than a single one @@ -555,8 +551,7 @@ let translate_rule in let subscope_func = tag_with_log_entry - (Expr.make_var - (scope_dcalc_var, mark_tany m pos_call)) + (Expr.make_var (scope_dcalc_var, mark_tany m pos_call)) BeginCall [ sigma_name, pos_sigma; @@ -650,8 +645,7 @@ let translate_rule defined, we add an check "ErrorOnEmpty" here. *) Marked.mark (Expr.map_ty (fun _ -> scope_let_typ) (Marked.get_mark e)) - (EAssert (Marked.same_mark_as (ErrorOnEmpty new_e) e)) - ; + (EAssert (Marked.same_mark_as (ErrorOnEmpty new_e) e)); scope_let_kind = Assertion; }) (Bindlib.bind_var (Var.make "_") next) @@ -662,7 +656,7 @@ let translate_rules (ctx : 'm ctx) (rules : 'm Ast.rule list) ((sigma_name, pos_sigma) : Utils.Uid.MarkedString.info) - (mark: 'm mark) + (mark : 'm mark) (sigma_return_struct_name : StructName.t) : 'm Dcalc.Ast.expr scope_body_expr Bindlib.box * 'm ctx = let scope_lets, new_ctx = @@ -684,8 +678,7 @@ let translate_rules let return_exp = Bindlib.box_apply (fun args -> - ETuple (args, Some sigma_return_struct_name), - mark_tany mark pos_sigma) + ETuple (args, Some sigma_return_struct_name), mark_tany mark pos_sigma) (Bindlib.box_list (List.map (fun (_, (dcalc_var, _, _)) -> @@ -790,7 +783,8 @@ let translate_scope_decl mark_tany sigma.scope_mark pos_sigma ); }) (Bindlib.bind_var v next) - (Expr.make_var (scope_input_var, mark_tany sigma.scope_mark pos_sigma)), + (Expr.make_var + (scope_input_var, mark_tany sigma.scope_mark pos_sigma)), i - 1 )) scope_input_variables (next, List.length scope_input_variables - 1)) diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index 9df14b44..c180529f 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -256,8 +256,7 @@ let rec unifiable ty1 ty2 = | TOption t1, TOption t2 -> unifiable t1 t2 | TArrow (t1, t1'), TArrow (t2, t2') -> unifiable t1 t2 && unifiable t1' t2' | TArray t1, TArray t2 -> unifiable t1 t2 - | ( ( TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ - | TArray _ ), + | ( (TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ | TArray _), _ ) -> false @@ -755,8 +754,12 @@ let make_app e u pos = tr | TAny -> tf | _ -> - Format.eprintf "Attempt to construct application of non-arrow type %a:@\n%a" - Print.typ_debug tf (Print.expr_debug ~debug:false) e; + Format.eprintf + "Attempt to construct application of non-arrow type %a:@\n\ + %a" + Print.typ_debug tf + (Print.expr_debug ~debug:false) + e; assert false) fty.ty argtys) (List.map Marked.get_mark (e :: u)) @@ -799,9 +802,10 @@ let make_tuple el structname m0 = match el with | [] -> etuple [] structname - (with_ty m0 (match structname with - | Some n -> TStruct n, mark_pos m0 - | None -> TTuple [], mark_pos m0)) + (with_ty m0 + (match structname with + | Some n -> TStruct n, mark_pos m0 + | None -> TTuple [], mark_pos m0)) | el -> let m = fold_marks diff --git a/compiler/shared_ast/expr.mli b/compiler/shared_ast/expr.mli index e0aeaf2a..1d6e28d2 100644 --- a/compiler/shared_ast/expr.mli +++ b/compiler/shared_ast/expr.mli @@ -225,12 +225,13 @@ val make_default : exceptions, is collapsed into [] - [], when [ex] is a single exception, is rewritten as [ex] *) -(** Builds a tuple; the mark argument is only used as witness and for position when building 0-uples *) -val make_tuple: - ([< dcalc | lcalc] as 'a, 'm mark) gexpr box list -> +val make_tuple : + (([< dcalc | lcalc ] as 'a), 'm mark) gexpr box list -> StructName.t option -> 'm mark -> ('a, 'm mark) gexpr box +(** Builds a tuple; the mark argument is only used as witness and for position + when building 0-uples *) (** {2 Transformations} *) diff --git a/compiler/shared_ast/scope.ml b/compiler/shared_ast/scope.ml index 96051d6e..703f792d 100644 --- a/compiler/shared_ast/scope.ml +++ b/compiler/shared_ast/scope.ml @@ -92,14 +92,15 @@ let map_exprs ~f ~varf scopes = new_body_expr new_next) ~init:(Bindlib.box Nil) scopes -(* TODO: compute the expected body expr arrow type manually instead of [TAny] for double-checking types ? *) +(* TODO: compute the expected body expr arrow type manually instead of [TAny] + for double-checking types ? *) let rec get_body_expr_mark = function | ScopeLet sl -> let _, e = Bindlib.unbind sl.scope_let_next in get_body_expr_mark e | Result e -> let m = Marked.get_mark e in - (Expr.with_ty m (Utils.Marked.mark (Expr.mark_pos m) TAny)) + Expr.with_ty m (Utils.Marked.mark (Expr.mark_pos m) TAny) let get_body_mark scope_body = let _, e = Bindlib.unbind scope_body.scope_body_expr in From 1b3a1f7219b1890717a2cadf2e6f115ef98c6327 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 14:45:03 +0200 Subject: [PATCH 46/52] Update test results These are just variable renumberings, and type error message changes but still pointing to the same information; the latter are slightly better in general, pointing to actual expressions rather than scope declarations. --- tests/test_array/bad/fold_error.catala_en | 4 ++-- .../test_bool/bad/test_xor_with_int.catala_en | 6 ++--- tests/test_bool/good/test_bool.catala_en | 22 ++++++++--------- tests/test_enum/bad/quick_pattern_2.catala_en | 2 +- tests/test_enum/bad/quick_pattern_3.catala_en | 2 +- tests/test_enum/bad/quick_pattern_4.catala_en | 2 +- tests/test_io/good/all_io.catala_en | 24 +++++++++---------- .../good/condition_only_input.catala_en | 10 ++++---- tests/test_io/good/subscope.catala_en | 14 +++++------ tests/test_money/bad/no_mingle.catala_en | 18 +++++++------- tests/test_scope/good/simple.catala_en | 10 ++++---- tests/test_struct/bad/nested.catala_en | 2 +- tests/test_typing/bad/err2.catala_en | 14 +++++------ tests/test_typing/bad/err3.catala_en | 16 ++++++------- tests/test_typing/bad/err4.catala_en | 10 ++++---- tests/test_typing/bad/err5.catala_en | 14 +++++------ tests/test_typing/bad/err6.catala_en | 2 +- 17 files changed, 86 insertions(+), 86 deletions(-) diff --git a/tests/test_array/bad/fold_error.catala_en b/tests/test_array/bad/fold_error.catala_en index 20370e77..59cade71 100644 --- a/tests/test_array/bad/fold_error.catala_en +++ b/tests/test_array/bad/fold_error.catala_en @@ -20,7 +20,7 @@ Error coming from typechecking the following expression: --> tests/test_array/bad/fold_error.catala_en | 10 | definition list_high_count equals number for m in list of (m >=$ $7) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | ^ + Article Type integer coming from expression: @@ -34,7 +34,7 @@ Type money coming from expression: --> tests/test_array/bad/fold_error.catala_en | 10 | definition list_high_count equals number for m in list of (m >=$ $7) - | ^^ + | ^^^ + Article #return code 255# ``` diff --git a/tests/test_bool/bad/test_xor_with_int.catala_en b/tests/test_bool/bad/test_xor_with_int.catala_en index 3529f8d8..94b526e3 100644 --- a/tests/test_bool/bad/test_xor_with_int.catala_en +++ b/tests/test_bool/bad/test_xor_with_int.catala_en @@ -18,7 +18,7 @@ Error coming from typechecking the following expression: --> tests/test_bool/bad/test_xor_with_int.catala_en | 8 | definition test_var equals 10 xor 20 - | ^^^^^^^^^ + | ^^^ + 'xor' should be a boolean operator Type bool coming from expression: @@ -31,8 +31,8 @@ Type bool coming from expression: Type integer coming from expression: --> tests/test_bool/bad/test_xor_with_int.catala_en | -8 | definition test_var equals 10 xor 20 - | ^^ +5 | context test_var content integer + | ^^^^^^^ + 'xor' should be a boolean operator #return code 255# ``` diff --git a/tests/test_bool/good/test_bool.catala_en b/tests/test_bool/good/test_bool.catala_en index f948f44c..b8647872 100644 --- a/tests/test_bool/good/test_bool.catala_en +++ b/tests/test_bool/good/test_bool.catala_en @@ -13,21 +13,21 @@ scope TestBool: ```catala-test-inline $ catala Dcalc -let TestBool_14 : +let TestBool_22 : TestBool_in{"foo_in": unit → bool; "bar_in": unit → integer} → TestBool_out{"foo_out": bool; "bar_out": integer} = - λ (TestBool_in_15: TestBool_in{"foo_in": unit → bool; "bar_in": + λ (TestBool_in_23: TestBool_in{"foo_in": unit → bool; "bar_in": unit → integer}) → - let foo_16 : unit → bool = TestBool_in_15."foo_in" in - let bar_17 : unit → integer = TestBool_in_15."bar_in" in - let bar_18 : integer = error_empty - ⟨bar_17 () | true ⊢ ⟨true ⊢ 1⟩⟩ in - let foo_19 : bool = error_empty - ⟨foo_16 () | true ⊢ - ⟨⟨bar_18 >= 0 ⊢ true⟩, ⟨bar_18 < 0 ⊢ false⟩ | false ⊢ + let foo_24 : unit → bool = TestBool_in_23."foo_in" in + let bar_25 : unit → integer = TestBool_in_23."bar_in" in + let bar_26 : integer = error_empty + ⟨bar_25 () | true ⊢ ⟨true ⊢ 1⟩⟩ in + let foo_27 : bool = error_empty + ⟨foo_24 () | true ⊢ + ⟨⟨bar_26 >= 0 ⊢ true⟩, ⟨bar_26 < 0 ⊢ false⟩ | false ⊢ ∅ ⟩⟩ in - TestBool_out {"foo_out"= foo_19; "bar_out"= bar_18} in -TestBool_14 + TestBool_out {"foo_out"= foo_27; "bar_out"= bar_26} in +TestBool_22 ``` ```catala-test-inline diff --git a/tests/test_enum/bad/quick_pattern_2.catala_en b/tests/test_enum/bad/quick_pattern_2.catala_en index ba529add..942448f7 100644 --- a/tests/test_enum/bad/quick_pattern_2.catala_en +++ b/tests/test_enum/bad/quick_pattern_2.catala_en @@ -52,7 +52,7 @@ Type F coming from expression: --> tests/test_enum/bad/quick_pattern_2.catala_en | 28 | definition y equals x with pattern Case3 - | ^ + | ^^^^^^^^^^^^^^^^^^^^ + Article #return code 255# ``` diff --git a/tests/test_enum/bad/quick_pattern_3.catala_en b/tests/test_enum/bad/quick_pattern_3.catala_en index 3c75ad90..50cbe589 100644 --- a/tests/test_enum/bad/quick_pattern_3.catala_en +++ b/tests/test_enum/bad/quick_pattern_3.catala_en @@ -42,7 +42,7 @@ Type F coming from expression: --> tests/test_enum/bad/quick_pattern_3.catala_en | 18 | definition y equals x with pattern Case3 - | ^ + | ^^^^^^^^^^^^^^^^^^^^ + Article #return code 255# ``` diff --git a/tests/test_enum/bad/quick_pattern_4.catala_en b/tests/test_enum/bad/quick_pattern_4.catala_en index 3e2f1130..582d1aa6 100644 --- a/tests/test_enum/bad/quick_pattern_4.catala_en +++ b/tests/test_enum/bad/quick_pattern_4.catala_en @@ -41,7 +41,7 @@ Type F coming from expression: --> tests/test_enum/bad/quick_pattern_4.catala_en | 17 | definition y equals x with pattern Case3 - | ^ + | ^^^^^^^^^^^^^^^^^^^^ + Test #return code 255# ``` diff --git a/tests/test_io/good/all_io.catala_en b/tests/test_io/good/all_io.catala_en index accee831..80bd0a77 100644 --- a/tests/test_io/good/all_io.catala_en +++ b/tests/test_io/good/all_io.catala_en @@ -20,19 +20,19 @@ scope A: ```catala-test-inline $ catala Dcalc -s A let A = - λ (A_in_21: A_in{"c_in": integer; "d_in": integer; "e_in": + λ (A_in_29: A_in{"c_in": integer; "d_in": integer; "e_in": unit → integer; "f_in": unit → integer}) → - let c_22 : integer = A_in_21."c_in" in - let d_23 : integer = A_in_21."d_in" in - let e_24 : unit → integer = A_in_21."e_in" in - let f_25 : unit → integer = A_in_21."f_in" in - let a_26 : integer = error_empty ⟨true ⊢ 0⟩ in - let b_27 : integer = error_empty ⟨true ⊢ a_26 + 1⟩ in - let e_28 : integer = error_empty - ⟨e_24 () | true ⊢ ⟨true ⊢ b_27 + c_22 + d_23 + 1⟩⟩ in - let f_29 : integer = error_empty - ⟨f_25 () | true ⊢ ⟨true ⊢ e_28 + 1⟩⟩ in - A_out {"b_out"= b_27; "d_out"= d_23; "f_out"= f_29} + let c_30 : integer = A_in_29."c_in" in + let d_31 : integer = A_in_29."d_in" in + let e_32 : unit → integer = A_in_29."e_in" in + let f_33 : unit → integer = A_in_29."f_in" in + let a_34 : integer = error_empty ⟨true ⊢ 0⟩ in + let b_35 : integer = error_empty ⟨true ⊢ a_34 + 1⟩ in + let e_36 : integer = error_empty + ⟨e_32 () | true ⊢ ⟨true ⊢ b_35 + c_30 + d_31 + 1⟩⟩ in + let f_37 : integer = error_empty + ⟨f_33 () | true ⊢ ⟨true ⊢ e_36 + 1⟩⟩ in + A_out {"b_out"= b_35; "d_out"= d_31; "f_out"= f_37} ``` ```catala-test-inline diff --git a/tests/test_io/good/condition_only_input.catala_en b/tests/test_io/good/condition_only_input.catala_en index de11dd47..01f77415 100644 --- a/tests/test_io/good/condition_only_input.catala_en +++ b/tests/test_io/good/condition_only_input.catala_en @@ -17,11 +17,11 @@ scope B: ```catala-test-inline $ catala Dcalc -s B let B = - λ (B_in_21: B_in{}) → - let a.x_22 : bool = error_empty ⟨true ⊢ false⟩ in - let result_23 : A_out{"y_out": integer} = A_13 (A_in {"x_in"= a.x_22}) in - let a.y_24 : integer = result_23."y_out" in - let __25 : unit = assert (error_empty a.y_24 = 1) in + λ (B_in_25: B_in{}) → + let a.x_26 : bool = error_empty ⟨true ⊢ false⟩ in + let result_27 : A_out{"y_out": integer} = A_13 (A_in {"x_in"= a.x_26}) in + let a.y_28 : integer = result_27."y_out" in + let __29 : unit = assert (error_empty a.y_28 = 1) in B_out {} ``` diff --git a/tests/test_io/good/subscope.catala_en b/tests/test_io/good/subscope.catala_en index e963bcb0..c414e855 100644 --- a/tests/test_io/good/subscope.catala_en +++ b/tests/test_io/good/subscope.catala_en @@ -23,13 +23,13 @@ scope B: ```catala-test-inline $ catala Dcalc -s B let B = - λ (B_in_27: B_in{}) → - let a.a_28 : unit → integer = λ (__29: unit) → ∅ in - let a.b_30 : integer = error_empty ⟨true ⊢ 2⟩ in - let result_31 : A_out{"c_out": integer} = - A_17 (A_in {"a_in"= a.a_28; "b_in"= a.b_30}) in - let a.c_32 : integer = result_31."c_out" in - let __33 : unit = assert (error_empty a.c_32 = 1) in + λ (B_in_32: B_in{}) → + let a.a_33 : unit → integer = λ (__34: unit) → ∅ in + let a.b_35 : integer = error_empty ⟨true ⊢ 2⟩ in + let result_36 : A_out{"c_out": integer} = + A_17 (A_in {"a_in"= a.a_33; "b_in"= a.b_35}) in + let a.c_37 : integer = result_36."c_out" in + let __38 : unit = assert (error_empty a.c_37 = 1) in B_out {} ``` diff --git a/tests/test_money/bad/no_mingle.catala_en b/tests/test_money/bad/no_mingle.catala_en index 268b49fb..6ca446c7 100644 --- a/tests/test_money/bad/no_mingle.catala_en +++ b/tests/test_money/bad/no_mingle.catala_en @@ -15,21 +15,14 @@ scope A: ```catala-test-inline $ catala Interpret -s A [ERROR] Error during typechecking, incompatible types: ---> decimal --> money +--> decimal Error coming from typechecking the following expression: --> tests/test_money/bad/no_mingle.catala_en | 12 | definition z equals (x *$ y) - | ^^^^^^ - + Article - -Type decimal coming from expression: - --> tests/test_money/bad/no_mingle.catala_en - | -12 | definition z equals (x *$ y) - | ^^ + | ^ + Article Type money coming from expression: @@ -38,5 +31,12 @@ Type money coming from expression: 6 | context y content money | ^^^^^ + Article + +Type decimal coming from expression: + --> tests/test_money/bad/no_mingle.catala_en + | +12 | definition z equals (x *$ y) + | ^^ + + Article #return code 255# ``` diff --git a/tests/test_scope/good/simple.catala_en b/tests/test_scope/good/simple.catala_en index 513a2bcc..b14529cc 100644 --- a/tests/test_scope/good/simple.catala_en +++ b/tests/test_scope/good/simple.catala_en @@ -11,10 +11,10 @@ scope Foo: ```catala-test-inline $ catala Lcalc -s Foo let Foo = - λ (Foo_in_27: Foo_in{}) → - let bar_28 : integer = + λ (Foo_in_28: Foo_in{}) → + let bar_29 : integer = try - handle_default_0 [] (λ (__29: unit) → true) - (λ (__30: unit) → 0) with EmptyError -> raise NoValueProvided in - Foo_out {"bar_out"= bar_28} + handle_default_0 [] (λ (__30: unit) → true) + (λ (__31: unit) → 0) with EmptyError -> raise NoValueProvided in + Foo_out {"bar_out"= bar_29} ``` diff --git a/tests/test_struct/bad/nested.catala_en b/tests/test_struct/bad/nested.catala_en index fdcec2e6..b9a923fe 100644 --- a/tests/test_struct/bad/nested.catala_en +++ b/tests/test_struct/bad/nested.catala_en @@ -16,7 +16,7 @@ scope A: $ catala Interpret -s A [ERROR] The type E is defined using itself, which is forbidden since Catala does not provide recursive types - --> /home/lg/inria/catala/tests/test_struct/bad/nested.catala_en + --> tests/test_struct/bad/nested.catala_en | 6 | -- Rec content E | ^ diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index 143be4fe..fb57648e 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -13,28 +13,28 @@ scope S: ```catala-test-inline $ catala Typecheck [ERROR] Error during typechecking, incompatible types: ---> collection +--> integer --> decimal Error coming from typechecking the following expression: --> tests/test_typing/bad/err2.catala_en | 10 | definition a equals number of (z ++ 1.1) / 2 - | ^^^^^^^^ + | ^ + -Type collection coming from expression: +Type integer coming from expression: --> tests/test_typing/bad/err2.catala_en | 10 | definition a equals number of (z ++ 1.1) / 2 - | ^^ + | ^ + Type decimal coming from expression: - --> tests/test_typing/bad/err2.catala_en + --> tests/test_typing/bad/common.catala_en | -10 | definition a equals number of (z ++ 1.1) / 2 - | ^^^ +15 | output a content decimal + | ^^^^^^^ + #return code 255# ``` diff --git a/tests/test_typing/bad/err3.catala_en b/tests/test_typing/bad/err3.catala_en index c0920aa9..aadc663a 100644 --- a/tests/test_typing/bad/err3.catala_en +++ b/tests/test_typing/bad/err3.catala_en @@ -17,17 +17,17 @@ $ catala Typecheck --> decimal Error coming from typechecking the following expression: - --> tests/test_typing/bad/common.catala_en + --> tests/test_typing/bad/err3.catala_en | -15 | output a content decimal - | ^ +10 | definition a equals number of (z ++ z) / 2 + | ^ + Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 - | ^^^^^^ + | ^ + Type decimal coming from expression: @@ -48,17 +48,17 @@ $ catala ocaml --> decimal Error coming from typechecking the following expression: - --> tests/test_typing/bad/common.catala_en + --> tests/test_typing/bad/err3.catala_en | -15 | output a content decimal - | ^ +10 | definition a equals number of (z ++ z) / 2 + | ^ + Type integer coming from expression: --> tests/test_typing/bad/err3.catala_en | 10 | definition a equals number of (z ++ z) / 2 - | ^^^^^^ + | ^ + Type decimal coming from expression: diff --git a/tests/test_typing/bad/err4.catala_en b/tests/test_typing/bad/err4.catala_en index 38cd6807..264ff4f5 100644 --- a/tests/test_typing/bad/err4.catala_en +++ b/tests/test_typing/bad/err4.catala_en @@ -15,11 +15,11 @@ $ catala ocaml --> Structure Error coming from typechecking the following expression: - --> tests/test_typing/bad/common.catala_en - | -14 | output z content collection Structure - | ^ - + + --> tests/test_typing/bad/err4.catala_en + | +5 | definition z equals [ Int content x ] + | ^^^^^^^^^^^^^ + + Type Enum coming from expression: --> tests/test_typing/bad/err4.catala_en diff --git a/tests/test_typing/bad/err5.catala_en b/tests/test_typing/bad/err5.catala_en index 02663f45..87d75eef 100644 --- a/tests/test_typing/bad/err5.catala_en +++ b/tests/test_typing/bad/err5.catala_en @@ -19,8 +19,8 @@ $ catala Typecheck Error coming from typechecking the following expression: --> tests/test_typing/bad/err5.catala_en | -7 | Structure { -- i: 4 -- e: y }; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +8 | 1040 + | ^^^^ + Type integer coming from expression: @@ -31,10 +31,10 @@ Type integer coming from expression: + Type Structure coming from expression: - --> tests/test_typing/bad/err5.catala_en - | -7 | Structure { -- i: 4 -- e: y }; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - + + --> tests/test_typing/bad/common.catala_en + | +14 | output z content collection Structure + | ^^^^^^^^^ + + #return code 255# ``` diff --git a/tests/test_typing/bad/err6.catala_en b/tests/test_typing/bad/err6.catala_en index f14974d2..01176d3c 100644 --- a/tests/test_typing/bad/err6.catala_en +++ b/tests/test_typing/bad/err6.catala_en @@ -36,7 +36,7 @@ Error coming from typechecking the following expression: --> tests/test_typing/bad/err6.catala_en | 20 | definition sub.x equals 44. - | ^^^^^ + | ^^^ + Type decimal coming from expression: From 6c0c2f073dc077c3e8293aa1f24ffb5c1796462c Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 14:47:38 +0200 Subject: [PATCH 47/52] Update test on i/o variable check This is no longer detected by pure type-checking, as the check is done during compilation to scope-lang, which now takes place afterwards. --- tests/test_io/bad/using_non_output.catala_en | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_io/bad/using_non_output.catala_en b/tests/test_io/bad/using_non_output.catala_en index 956ab1b7..ff8f0853 100644 --- a/tests/test_io/bad/using_non_output.catala_en +++ b/tests/test_io/bad/using_non_output.catala_en @@ -14,7 +14,7 @@ scope B: assertion a.a = 0 ``` ```catala-test-inline -$ catala Typecheck +$ catala Dcalc [ERROR] The variable a.a cannot be used here, as it is not part subscope a's results. Maybe you forgot to qualify it as an output? Incriminated variable usage: From 6e0a3ee5ed1ee0157109083b3793e1e56d80a1e1 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 4 Oct 2022 14:54:18 +0200 Subject: [PATCH 48/52] Update list of reformatting commits --- .git-blame-ignore-revs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs index c3712e7d..a0733876 100644 --- a/.git-blame-ignore-revs +++ b/.git-blame-ignore-revs @@ -1,6 +1,12 @@ # Reformatting commits to be skipped when running 'git blame' # Use `git config --global blame.ignoreRevsFile .git-blame-ignore-revs` to use it # Add new reformatting commits at the top + +14f1ebfd0ad65bdd3408bb6ba9c254df97a59ad9 +fee64d6f6f4b13da7a63fae92b78d69fc4122cc1 +bd17857e904fa7381c05461674d49594f770b87b +06dbab74d2e392229833d6f7d5ca7abe629e7bd6 + ba620fca280338139e015e316894a7cf49c450d5 7485c7f2ce726f59f1ec66ddfe1d3f7d640201d8 From 6c8a9f830ce17167a6ff740fefb84b7925376dc6 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Wed, 5 Oct 2022 11:46:18 +0200 Subject: [PATCH 49/52] Compute the Dcalc stage when running `catala Typecheck` it has some important resolution/sanity checks --- compiler/driver.ml | 15 +++++---------- tests/test_io/bad/using_non_output.catala_en | 2 +- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/compiler/driver.ml b/compiler/driver.ml index c04a4f76..43f119b1 100644 --- a/compiler/driver.ml +++ b/compiler/driver.ml @@ -176,17 +176,9 @@ let driver source_file (options : Cli.options) : int = Format.fprintf fmt "%a\n" (Scopelang.Print.program ~debug:options.debug) prgm - | `Typecheck -> + | ( `Interpret | `Typecheck | `OCaml | `Python | `Scalc | `Lcalc | `Dcalc + | `Proof | `Plugin _ ) as backend -> ( Cli.debug_print "Typechecking..."; - let _type_ordering = - Scopelang.Dependency.check_type_cycles prgm.program_ctx.ctx_structs - prgm.program_ctx.ctx_enums - in - let _prgm = Scopelang.Ast.type_program prgm in - (* That's it! *) - Cli.result_print "Typechecking successful!" - | ( `Interpret | `OCaml | `Python | `Scalc | `Lcalc | `Dcalc | `Proof - | `Plugin _ ) as backend -> ( let type_ordering = Scopelang.Dependency.check_type_cycles prgm.program_ctx.ctx_structs prgm.program_ctx.ctx_enums @@ -202,6 +194,9 @@ let driver source_file (options : Cli.options) : int = else prgm in match backend with + | `Typecheck -> + (* That's it! *) + Cli.result_print "Typechecking successful!" | `Dcalc -> let _output_file, with_output = get_output_format () in with_output diff --git a/tests/test_io/bad/using_non_output.catala_en b/tests/test_io/bad/using_non_output.catala_en index ff8f0853..c6afed2d 100644 --- a/tests/test_io/bad/using_non_output.catala_en +++ b/tests/test_io/bad/using_non_output.catala_en @@ -14,7 +14,7 @@ scope B: assertion a.a = 0 ``` ```catala-test-inline -$ catala Dcalc +$ catala Typecheck [ERROR] The variable a.a cannot be used here, as it is not part subscope a's results. Maybe you forgot to qualify it as an output? Incriminated variable usage: From 5dcebad76df9d54d1bd988fe388b5a34c629ef5d Mon Sep 17 00:00:00 2001 From: Catala nix updated Date: Mon, 10 Oct 2022 00:32:21 +0000 Subject: [PATCH 50/52] update lock files --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index c46f316c..d3b6bd9f 100644 --- a/flake.lock +++ b/flake.lock @@ -17,11 +17,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1664687381, - "narHash": "sha256-9czSuDzS+OGGwq2kC4KXBLXWfYaup+oLB+AA1Md25U4=", + "lastModified": 1665259268, + "narHash": "sha256-ONFhHBLv5nZKhwV/F2GOH16197PbvpyWhoO0AOyktkU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "59d2991d4256cdca1c0cda45d876c80a0fe45c31", + "rev": "c5924154f000e6306030300592f4282949b2db6c", "type": "github" }, "original": { From 5fc31816219772825cd42381aaea4c7d8c8c7436 Mon Sep 17 00:00:00 2001 From: Louis Gesbert Date: Tue, 11 Oct 2022 16:46:23 +0200 Subject: [PATCH 51/52] Aides logement: fix typo --- .../aides_logement/code_construction_reglementaire.catala_fr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/aides_logement/code_construction_reglementaire.catala_fr b/examples/aides_logement/code_construction_reglementaire.catala_fr index fe0dda41..52e7e62d 100644 --- a/examples/aides_logement/code_construction_reglementaire.catala_fr +++ b/examples/aides_logement/code_construction_reglementaire.catala_fr @@ -409,7 +409,7 @@ champ d'application RessourcesAidesPersonnelleLogement: définition abattement_r_822_7 égal à si demandeur_exerce_activité_rémunérée et conjoint_exerce_activité_rémunérée et - (ressources_conjoint +€ ressources_conjoint) >=€ + (ressources_demandeur +€ ressources_conjoint) >=€ base_mensuelle_allocations_familiales.montant *€ 12,0 alors montant_forfaitaire_r_822_7 From a3951f4cdebac19553b258553c04e8e250c03a3f Mon Sep 17 00:00:00 2001 From: Catala nix updated Date: Mon, 17 Oct 2022 00:34:55 +0000 Subject: [PATCH 52/52] update lock files --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index d3b6bd9f..795cc10d 100644 --- a/flake.lock +++ b/flake.lock @@ -17,11 +17,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1665259268, - "narHash": "sha256-ONFhHBLv5nZKhwV/F2GOH16197PbvpyWhoO0AOyktkU=", + "lastModified": 1665848363, + "narHash": "sha256-3Jow1YxzPtQnck1bAAvbVxgRH4gNnkIdw871Vm6UtAU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "c5924154f000e6306030300592f4282949b2db6c", + "rev": "83b198a2083774844962c854f811538323f9f7b1", "type": "github" }, "original": {