From cdde6e8c2188c2bd80ed0ffa01fc7142772af129 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 10 Jul 2020 15:04:06 +0200 Subject: [PATCH 001/255] [Kernel] Status_by_call changes node after visit for replacement --- .../ast_data/statuses_by_call.ml | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/src/kernel_services/ast_data/statuses_by_call.ml b/src/kernel_services/ast_data/statuses_by_call.ml index 2487ade6c49..24779c45007 100644 --- a/src/kernel_services/ast_data/statuses_by_call.ml +++ b/src/kernel_services/ast_data/statuses_by_call.ml @@ -111,23 +111,27 @@ let replacement_visitor ~arguments = object (self) | TVar { lv_origin = Some vinfo } when vinfo.vformal -> if under_label then raise Non_Transposable; begin - let new_term = replace_formal_by_concrete vinfo arguments in - let add_offset lv = TLval (Logic_const.addTermOffsetLval t_offset lv) in - match new_term.term_node with - | TLval lv -> Cil.ChangeDoChildrenPost (add_offset lv, fun x -> x) - | _ -> - if t_offset = TNoOffset - then Cil.ChangeTo new_term.term_node - else - let ltyp = new_term.term_type in - let tmp_lvar = Cil.make_temp_logic_var ltyp in - let tmp_linfo = - { l_var_info = tmp_lvar; l_body = LBterm new_term; - l_type = None; l_tparams = []; l_labels = []; l_profile = []; } - in - let lval_node = TLval (TVar tmp_lvar, t_offset) in - let lval_term = Tlet (tmp_linfo, Logic_const.term lval_node ltyp) in - Cil.ChangeDoChildrenPost (lval_term, fun x -> x) + let post_replace _ = + let new_term = replace_formal_by_concrete vinfo arguments in + let add_offset lv = + TLval (Logic_const.addTermOffsetLval t_offset lv) + in + match new_term.term_node with + | TLval lv -> add_offset lv + | node -> + if t_offset = TNoOffset then node + else + let ltyp = new_term.term_type in + let tmp_lvar = Cil.make_temp_logic_var ltyp in + let tmp_linfo = + { l_var_info = tmp_lvar; l_body = LBterm new_term; + l_type = None; l_tparams = []; l_labels = []; + l_profile = []; } + in + let lval_node = TLval (TVar tmp_lvar, t_offset) in + Tlet (tmp_linfo, Logic_const.term lval_node ltyp) + in + Cil.DoChildrenPost post_replace end | _ -> Cil.DoChildren @@ -149,8 +153,7 @@ let replacement_visitor ~arguments = object (self) | _ -> Cil.DoChildren method! vlogic_label = function - | BuiltinLabel Pre -> - Cil.ChangeDoChildrenPost (Logic_const.here_label, fun x -> x) + | BuiltinLabel Pre -> Cil.DoChildrenPost (fun _ -> Logic_const.here_label) | _ -> Cil.DoChildren end -- GitLab From 726e1225b1e61c11231dfa20bff8cb1b1c1c6ce3 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 10 Jul 2020 15:12:41 +0200 Subject: [PATCH 002/255] [kernel] Add a test that status_by_call terminates --- .../status_by_call_issue_890.res.oracle | 24 +++++++++++++++++++ tests/spec/status_by_call_issue_890.i | 12 ++++++++++ tests/spec/status_by_call_issue_890.ml | 3 +++ 3 files changed, 39 insertions(+) create mode 100644 tests/spec/oracle/status_by_call_issue_890.res.oracle create mode 100644 tests/spec/status_by_call_issue_890.i create mode 100644 tests/spec/status_by_call_issue_890.ml diff --git a/tests/spec/oracle/status_by_call_issue_890.res.oracle b/tests/spec/oracle/status_by_call_issue_890.res.oracle new file mode 100644 index 00000000000..33e76da4d07 --- /dev/null +++ b/tests/spec/oracle/status_by_call_issue_890.res.oracle @@ -0,0 +1,24 @@ +[kernel] Parsing tests/spec/status_by_call_issue_890.i (no preprocessing) +/* Generated by Frama-C */ +struct list { + struct list *next ; +}; +/*@ axiomatic Ax { + predicate P(struct list *root) ; + + } + */ +/*@ requires P(l); */ +int len(struct list *l) +{ + int tmp_0; + if (l == (struct list *)0) tmp_0 = 0; + else { + int tmp; + tmp = len(l->next); + tmp_0 = 1 + tmp; + } + return tmp_0; +} + + diff --git a/tests/spec/status_by_call_issue_890.i b/tests/spec/status_by_call_issue_890.i new file mode 100644 index 00000000000..d3209b6bea9 --- /dev/null +++ b/tests/spec/status_by_call_issue_890.i @@ -0,0 +1,12 @@ +/* run.config + MODULE: @PTEST_DIR@/@PTEST_NAME@.cmxs +*/ + +struct list { struct list *next; }; + +/*@ axiomatic Ax { predicate P(struct list * root) ; } */ + +/*@ requires P(l); @*/ +int len(struct list * l){ + return (l == (void*)0) ? 0 : 1 + len(l->next); +} diff --git a/tests/spec/status_by_call_issue_890.ml b/tests/spec/status_by_call_issue_890.ml new file mode 100644 index 00000000000..374e927700b --- /dev/null +++ b/tests/spec/status_by_call_issue_890.ml @@ -0,0 +1,3 @@ +let () = + Db.Main.extend + (fun () -> Globals.Functions.iter Statuses_by_call.setup_all_preconditions_proxies) -- GitLab From 0e6c98ac62ff177f053aa217c17d14de9c529721 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 9 Jun 2020 09:24:20 +0200 Subject: [PATCH 003/255] [wp] Moves VarUsage hypotheses computation to MemVar --- src/plugins/wp/Factory.ml | 8 +------- src/plugins/wp/Makefile.in | 4 ++-- src/plugins/wp/MemVar.ml | 10 ++++++++-- src/plugins/wp/MemVar.mli | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/plugins/wp/Factory.ml b/src/plugins/wp/Factory.ml index 7d388748ccf..47eca43f0bf 100644 --- a/src/plugins/wp/Factory.ml +++ b/src/plugins/wp/Factory.ml @@ -129,13 +129,7 @@ struct if S.mem x.vname (get_vars ()) then ByValue else V.param x - let hypotheses () = - let kf,init = match WpContext.get_scope () with - | WpContext.Global -> None,false - | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in - let w = ref MemoryContext.empty in - V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (param vi) !w) ; - MemoryContext.requires !w + let iter = V.iter end diff --git a/src/plugins/wp/Makefile.in b/src/plugins/wp/Makefile.in index 0ac7d9c9d91..25a5552f79d 100644 --- a/src/plugins/wp/Makefile.in +++ b/src/plugins/wp/Makefile.in @@ -67,7 +67,7 @@ PLUGIN_CMO:= \ LogicUsage RefUsage \ Layout Region \ RegionAnnot RegionAccess RegionDump RegionAnalysis \ - cil2cfg normAtLabels wpPropId mcfg \ + cil2cfg normAtLabels wpPropId wpStrategy mcfg \ Lang Repr Matrix Passive Splitter \ LogicBuiltins Definitions \ Cmath Cint Cfloat Vset Vlist Cstring Cvalues \ @@ -81,7 +81,7 @@ PLUGIN_CMO:= \ Sigma MemLoader \ MemEmpty MemZeroAlias MemVar \ MemMemory MemTyped MemRegion \ - wpReached wpStrategy wpRTE wpAnnot \ + wpReached wpRTE wpAnnot \ CfgCompiler StmtSemantics \ VCS script proof wpo wpReport \ Footprint Tactical Strategy \ diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index e07a9ad259a..ea92bf8b681 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -37,7 +37,7 @@ module type VarUsage = sig val datatype : string val param : varinfo -> MemoryContext.param - val hypotheses : unit -> MemoryContext.clause list + val iter: ?kf:kernel_function -> init:bool -> (varinfo -> unit) -> unit end module Make(V : VarUsage)(M : Sigs.Model) = @@ -52,7 +52,13 @@ struct let no_binder = { bind = fun _ f v -> f v } let configure_ia _ = no_binder - let hypotheses () = V.hypotheses () @ M.hypotheses () + let hypotheses () = + let kf,init = match WpContext.get_scope () with + | WpContext.Global -> None,false + | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in + let w = ref MemoryContext.empty in + V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (V.param vi) !w) ; + MemoryContext.requires !w @ M.hypotheses () (* -------------------------------------------------------------------------- *) (* --- Chunk --- *) diff --git a/src/plugins/wp/MemVar.mli b/src/plugins/wp/MemVar.mli index 1f73818c445..45c063aa9f4 100644 --- a/src/plugins/wp/MemVar.mli +++ b/src/plugins/wp/MemVar.mli @@ -30,8 +30,8 @@ module type VarUsage = sig val datatype : string val param : varinfo -> MemoryContext.param - (** Memory Model Hypotheses *) - val hypotheses : unit -> MemoryContext.clause list + val iter: ?kf:kernel_function -> init:bool -> (varinfo -> unit) -> unit + end module Make(V : VarUsage)(M : Sigs.Model) : Sigs.Model -- GitLab From 4b63afc54d30b2c7670838bdacd8c26efacebcf7 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 21 Jul 2020 10:07:47 +0200 Subject: [PATCH 004/255] [wp] Collect assigns separation hypotheses --- src/plugins/wp/MemVar.ml | 14 + src/plugins/wp/MemoryContext.ml | 83 +++++- src/plugins/wp/MemoryContext.mli | 6 +- .../wp/tests/wp_bts/oracle/bts0843.res.oracle | 3 + .../wp_bts/oracle_qualif/bts0843.res.oracle | 3 + .../tests/wp_hoare/alias_assigns_hypotheses.i | 99 +++++++ .../alias_assigns_hypotheses.res.oracle | 254 ++++++++++++++++++ .../oracle/reference_and_struct.res.oracle | 3 + .../alias_assigns_hypotheses.res.oracle | 109 ++++++++ .../reference_and_struct.res.oracle | 3 + .../wp_plugin/oracle/overassign.res.oracle | 6 + .../oracle_qualif/overassign.res.oracle | 6 + .../wp_typed/oracle/user_injector.res.oracle | 2 + .../oracle_qualif/user_injector.0.res.oracle | 2 + .../oracle_qualif/user_injector.1.res.oracle | 2 + src/plugins/wp/wp_parameters.ml | 4 + src/plugins/wp/wp_parameters.mli | 2 + 17 files changed, 590 insertions(+), 11 deletions(-) create mode 100644 src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i create mode 100644 src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle create mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index ea92bf8b681..409bf5186c8 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -58,6 +58,20 @@ struct | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in let w = ref MemoryContext.empty in V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (V.param vi) !w) ; + let add_assign kf _emitter = function + | WritesAny -> + Wp_parameters.warning + ~wkey:Wp_parameters.wkey_imprecise_hypotheses_assigns + "No assigns for function '%a', %s hypotheses will be imprecise" + Kernel_function.pretty kf datatype + | Writes l -> + List.iter (fun (e,_ds) -> w := MemoryContext.assigned e !w) l + in + begin match kf with + | None -> () + | Some kf -> + Annotations.iter_assigns (add_assign kf) kf Cil.default_behavior_name + end ; MemoryContext.requires !w @ M.hypotheses () (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 5ef8e4fede2..b97d05a8b64 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -46,11 +46,13 @@ type zone = | Var of varinfo (* &x - the cell x *) | Ptr of varinfo (* p - the cell pointed by p *) | Arr of varinfo (* p+(..) - the cell and its neighbors pointed by p *) + | Term of term type partition = { globals : zone list ; (* [ &G , G[...], ... ] *) to_heap : zone list ; (* [ p, ... ] *) context : zone list ; (* [ p+(..), ... ] *) + assigned: identified_term list (* Must refer to pointed locations *) } type clause = Valid of zone | Separated of zone list list @@ -64,6 +66,7 @@ let pp_zone fmt = function | Arr vi -> Format.fprintf fmt "%a+(..)" Varinfo.pretty vi | Ptr vi -> Varinfo.pretty fmt vi | Var vi -> Format.fprintf fmt "&%a" Varinfo.pretty vi + | Term t -> Format.fprintf fmt "%a" Cil_printer.pp_term t let pp_region fmt = function | [] -> Format.pp_print_string fmt "\\empty" @@ -87,21 +90,70 @@ let pp_clause fmt = function (* -------------------------------------------------------------------------- *) (* --- Memory Context --- *) (* -------------------------------------------------------------------------- *) + +let rec ptr_of = function + | Ctype t -> Ctype (TPtr(t, [])) + | t when Logic_typing.is_set_type t -> + let t = Logic_typing.type_of_set_elem t in + Logic_const.make_set_type (ptr_of t) + | _ -> assert false + +let rec addr_of_lval ?loc term = + let typ = ptr_of term.term_type in + match term.term_node with + | TLval lv -> + Logic_utils.mk_logic_AddrOf ?loc lv typ + | TCastE (_, t) | TLogic_coerce (_, t) -> + addr_of_lval ?loc t + | Tif(c, t, e) -> + let t = addr_of_lval ?loc t in + let e = addr_of_lval ?loc e in + Logic_const.term ?loc (Tif(c, t, e)) typ + | Tat( _, _) -> + term + | Tunion l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tunion l) typ + | Tinter l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tinter l) typ + | Tcomprehension (t, qs, p) -> + let t = addr_of_lval ?loc t in + Logic_const.term ?loc (Tcomprehension (t,qs,p)) typ + | _ -> term + let add_region r s = if r = [] then s else r::s -let separated partition = - List.rev @@ - add_region (List.rev partition.to_heap) @@ - add_region (List.rev partition.globals) @@ - List.map (fun z -> [z]) partition.context +let main_separation partition = + let separated = + List.rev @@ + add_region (List.rev partition.to_heap) @@ + add_region (List.rev partition.globals) @@ + List.map (fun z -> [z]) partition.context + in + Separated separated + +let assigns_separation partition = + if partition.globals = [] then [] + else + let assign_zone t = Term (addr_of_lval t.it_content) in + List.map + (fun t -> Separated ([[assign_zone t]] @ [ partition.globals ])) + partition.assigned let validity partition = List.rev @@ List.map (fun z -> Valid z) partition.context let requires partition = - let s = separated partition in + let ms = main_separation partition in + let ass_sep = assigns_separation partition in + let not_trivial_separation = function + | Separated s -> not (is_separated_true s) + | Valid _ -> false + in + let s = List.filter not_trivial_separation (ms :: ass_sep) in let v = validity partition in - if not (is_separated_true s) then Separated s :: v else v + s @ v (* -------------------------------------------------------------------------- *) (* --- Partition --- *) @@ -111,6 +163,7 @@ let empty = { globals = [] ; context = [] ; to_heap = [] ; + assigned = [] ; } let set x p w = @@ -135,4 +188,20 @@ let set x p w = { w with to_heap = z :: w.to_heap } else w +let assigned t w = + let rec assigned_via_pointer t = + match t.term_node with + | TLval (TMem _, _) -> true + | Tif (_, t, _) | Tat (t, _) + | TCastE (_, t) | TLogic_coerce (_, t) + | Tunion (t :: _) | Tinter (t :: _) + | Tcomprehension(t, _, _) -> assigned_via_pointer t + | _ -> false + in + let assigned = + if assigned_via_pointer t.it_content then t :: w.assigned + else w.assigned + in + { w with assigned = assigned } + (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index f10136afa0e..96707953d64 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -30,11 +30,9 @@ type partition val empty : partition val set : varinfo -> param -> partition -> partition +val assigned : identified_term -> partition -> partition -type zone = - | Var of varinfo (** [&x] the cell x *) - | Ptr of varinfo (** [p] the cell pointed by p *) - | Arr of varinfo (** [p+(..)] the cell and its neighbors pointed by p *) +type zone type clause = | Valid of zone diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle index 27c968f5192..e99403ea348 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle @@ -53,3 +53,6 @@ Goal Instance of 'Pre-condition (file tests/wp_bts/bts0843.i, line 12) in 'f3'' Prove: true. ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f3': + /*@ behavior typed: requires \separated(&p->a,&p); */ + void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index c532eebcae8..159f27542af 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -16,3 +16,6 @@ f3 1 - 1 100% g3 1 2 3 100% ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f3': + /*@ behavior typed: requires \separated(&p->a,&p); */ + void f3(void); diff --git a/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i b/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i new file mode 100644 index 00000000000..ff7d4fc75e4 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i @@ -0,0 +1,99 @@ +/* run.config_qualif + DONT_RUN: +*/ + +int global[1]; +int *g_alias; + +/*@ requires \valid(g_alias); + assigns *g_alias; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void global_alias(void) { + *g_alias = 1; +} + +/*@ requires \valid(g_alias); + assigns *g_alias; + ensures *g_alias == 1; */ +void global_no_alias(void) { + *g_alias = 1; +} + +/*@ requires \valid(f_alias); + assigns *f_alias; + ensures *f_alias == 1; + ensures \old(global[0]) == global[0]; */ +void formal_alias(int* f_alias) { + *f_alias = 1; +} + +/*@ requires \valid(f_alias); + assigns *f_alias; + ensures *f_alias == 1; */ +void formal_no_alias(int* f_alias) { + *f_alias = 1; +} + +/*@ requires \valid(alias_array); + assigns (*alias_array)[0 .. 1]; + ensures (*alias_array)[0] == 1; + ensures (*alias_array)[1] == 1; + ensures \old(global[0]) == global[0]; */ +void formal_alias_array(int (*alias_array)[2]){ + (*alias_array)[0] = 1; + (*alias_array)[1] = 1; +} + +// With field + +struct X { int x; }; + +/*@ requires \valid(x); + assigns x->x ; + ensures x->x == 1; + ensures \old(global[0]) == global[0]; */ +void field_alias(struct X* x){ + x->x = 1 ; +} + +// With field, via set + +// Through set: + +/*@ requires \valid(x); + assigns x[0..3].x ; + ensures x->x == 1; + ensures \old(global[0]) == global[0]; */ +void field_range_alias(struct X* x){ + x->x = 1 ; +} + +/*@ requires \valid(g_alias); + assigns { *g_alias, *f_alias } ; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void set_alias(int *f_alias) { + *g_alias = 1; +} + + +// Through comprehension: + +/*@ requires \valid(g_alias); + assigns { *alias | int* alias ; alias == \at(g_alias, Pre) } ; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void comprehension_alias(void) { + *g_alias = 1; +} + +// Through union: + +/*@ requires \valid(g_alias); + assigns \union(*g_alias, *f_alias) ; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void union_alias(int *f_alias) { + *g_alias = 1; +} diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle new file mode 100644 index 00000000000..c9a461392e7 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle @@ -0,0 +1,254 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function comprehension_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 85) in 'comprehension_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 86) in 'comprehension_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 84) in 'comprehension_alias': +Effect at line 88 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function field_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 54) in 'field_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 55) in 'field_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 53) in 'field_alias': +Effect at line 57 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function field_range_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 66) in 'field_range_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 67) in 'field_range_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 65) in 'field_range_alias': +Effect at line 69 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 25) in 'formal_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 26) in 'formal_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 24) in 'formal_alias': +Effect at line 28 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_alias_array +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 40) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 41) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 42) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 39) in 'formal_alias_array' (1/2): +Effect at line 44 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 39) in 'formal_alias_array' (2/2): +Effect at line 45 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_no_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 33) in 'formal_no_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 32) in 'formal_no_alias': +Effect at line 35 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function global_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 10) in 'global_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 11) in 'global_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 9) in 'global_alias': +Effect at line 13 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function global_no_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 18) in 'global_no_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 17) in 'global_no_alias': +Effect at line 20 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function set_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 74) in 'set_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 75) in 'set_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 73) in 'set_alias': +Effect at line 77 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function union_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 95) in 'union_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 96) in 'union_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 94) in 'union_alias': +Effect at line 98 +Prove: true. + +------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'global_alias': + /*@ + behavior typed: + requires \separated(g_alias,\union(&g_alias,global+(..))); + */ + void global_alias(void); +[wp] Warning: Memory model hypotheses for function 'global_no_alias': + /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + void global_no_alias(void); +[wp] Warning: Memory model hypotheses for function 'formal_alias': + /*@ + behavior typed: + requires \separated(global+(..),f_alias); + requires \separated(f_alias,global+(..)); + */ + void formal_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'formal_alias_array': + /*@ + behavior typed: + requires \separated(global+(..),alias_array+(..)); + requires \separated(&(*alias_array)[0 .. 1],global+(..)); + */ + void formal_alias_array(int (*alias_array)[2]); +[wp] Warning: Memory model hypotheses for function 'field_alias': + /*@ + behavior typed: + requires \separated(global+(..),x); + requires \separated(&x->x,global+(..)); + */ + void field_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'field_range_alias': + /*@ + behavior typed: + requires \separated(global+(..),x+(..)); + requires \separated(&(x + (0 .. 3))->x,global+(..)); + */ + void field_range_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'set_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void set_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'comprehension_alias': + /*@ + behavior typed: + requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, + \union(&g_alias,global+(..))); + */ + void comprehension_alias(void); +[wp] Warning: Memory model hypotheses for function 'union_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle index 90f5112a9d1..502ee3eec09 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle @@ -255,3 +255,6 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'reset': /*@ behavior typed_ref: requires \valid(p); */ void reset(struct T *p); +[wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': + /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle new file mode 100644 index 00000000000..f524e017b1a --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle @@ -0,0 +1,109 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 30 goals scheduled +[wp] [Qed] Goal typed_comprehension_alias_ensures : Valid +[wp] [Qed] Goal typed_comprehension_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_comprehension_alias_assigns : Valid +[wp] [Qed] Goal typed_field_alias_ensures : Valid +[wp] [Qed] Goal typed_field_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_field_alias_assigns : Valid +[wp] [Qed] Goal typed_field_range_alias_ensures : Valid +[wp] [Qed] Goal typed_field_range_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_field_range_alias_assigns : Valid +[wp] [Qed] Goal typed_formal_alias_ensures : Valid +[wp] [Qed] Goal typed_formal_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_formal_alias_assigns : Valid +[wp] [Qed] Goal typed_formal_alias_array_ensures : Valid +[wp] [Qed] Goal typed_formal_alias_array_ensures_2 : Valid +[wp] [Qed] Goal typed_formal_alias_array_ensures_3 : Valid +[wp] [Qed] Goal typed_formal_alias_array_assigns_part1 : Valid +[wp] [Qed] Goal typed_formal_alias_array_assigns_part2 : Valid +[wp] [Qed] Goal typed_formal_no_alias_ensures : Valid +[wp] [Qed] Goal typed_formal_no_alias_assigns : Valid +[wp] [Qed] Goal typed_global_alias_ensures : Valid +[wp] [Qed] Goal typed_global_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_global_alias_assigns : Valid +[wp] [Qed] Goal typed_global_no_alias_ensures : Valid +[wp] [Qed] Goal typed_global_no_alias_assigns : Valid +[wp] [Qed] Goal typed_set_alias_ensures : Valid +[wp] [Qed] Goal typed_set_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_set_alias_assigns : Valid +[wp] [Qed] Goal typed_union_alias_ensures : Valid +[wp] [Qed] Goal typed_union_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_union_alias_assigns : Valid +[wp] Proved goals: 30 / 30 + Qed: 30 +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + global_alias 3 - 3 100% + global_no_alias 2 - 2 100% + formal_alias 3 - 3 100% + formal_no_alias 2 - 2 100% + formal_alias_array 5 - 5 100% + field_alias 3 - 3 100% + field_range_alias 3 - 3 100% + set_alias 3 - 3 100% + comprehension_alias 3 - 3 100% + union_alias 3 - 3 100% +------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'global_alias': + /*@ + behavior typed: + requires \separated(g_alias,\union(&g_alias,global+(..))); + */ + void global_alias(void); +[wp] Warning: Memory model hypotheses for function 'global_no_alias': + /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + void global_no_alias(void); +[wp] Warning: Memory model hypotheses for function 'formal_alias': + /*@ + behavior typed: + requires \separated(global+(..),f_alias); + requires \separated(f_alias,global+(..)); + */ + void formal_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'formal_alias_array': + /*@ + behavior typed: + requires \separated(global+(..),alias_array+(..)); + requires \separated(&(*alias_array)[0 .. 1],global+(..)); + */ + void formal_alias_array(int (*alias_array)[2]); +[wp] Warning: Memory model hypotheses for function 'field_alias': + /*@ + behavior typed: + requires \separated(global+(..),x); + requires \separated(&x->x,global+(..)); + */ + void field_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'field_range_alias': + /*@ + behavior typed: + requires \separated(global+(..),x+(..)); + requires \separated(&(x + (0 .. 3))->x,global+(..)); + */ + void field_range_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'set_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void set_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'comprehension_alias': + /*@ + behavior typed: + requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, + \union(&g_alias,global+(..))); + */ + void comprehension_alias(void); +[wp] Warning: Memory model hypotheses for function 'union_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index ba67c0b6dab..d7fdaedb3bd 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -53,3 +53,6 @@ [wp] Warning: Memory model hypotheses for function 'reset': /*@ behavior typed_ref: requires \valid(p); */ void reset(struct T *p); +[wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': + /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle index 53a71fb06d7..e522e771289 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle @@ -101,3 +101,9 @@ Assume { (* Heap *) Type: linked(Malloc_0). } Prove: invalid(Malloc_0, shift_sint32(global(G_A_32), -5), 10). ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f1_ok': + /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + void f1_ok(void); +[wp] Warning: Memory model hypotheses for function 'f2_ok': + /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index 96e53948b71..31cd7d9aaed 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -28,3 +28,9 @@ f5_ko - - 2 0.0% f6_ko - - 2 0.0% ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f1_ok': + /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + void f1_ok(void); +[wp] Warning: Memory model hypotheses for function 'f2_ok': + /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle index 7ed19a55a52..3dd0d642f58 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle @@ -121,5 +121,7 @@ Prove: true. behavior typed: requires \separated(\union(&seq,&service_cpt,service_id+(..), service_result+(..)),error); + requires \separated(error, + \union(service_result+(..),service_id+(..),&service_cpt,&seq)); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index 1ffe02ced54..510cdf0e651 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -35,5 +35,7 @@ behavior typed: requires \separated(\union(&seq,&service_cpt,service_id+(..), service_result+(..)),error); + requires \separated(error, + \union(service_result+(..),service_id+(..),&service_cpt,&seq)); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 6bfb550fb52..3f861815767 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -31,6 +31,8 @@ behavior typed_ref: requires \separated(error, \union(&seq,&service_cpt,service_id+(..),service_result+(..))); + requires \separated(error, + \union(service_result+(..),service_id+(..),&service_cpt,&seq)); requires \valid(error); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 51394d3c145..1ebfee0094a 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -1011,6 +1011,10 @@ module MemoryContext = let help = "Warn Against Memory Model Hypotheses" end) +let wkey_imprecise_hypotheses_assigns = + register_warn_category "hypotheses:assigns" +let () = set_warn_status wkey_imprecise_hypotheses_assigns Log.Winactive + let () = Parameter_customize.set_group wp_po module OutputDir = String(struct diff --git a/src/plugins/wp/wp_parameters.mli b/src/plugins/wp/wp_parameters.mli index 1543c5b56d9..b5362b1c70d 100644 --- a/src/plugins/wp/wp_parameters.mli +++ b/src/plugins/wp/wp_parameters.mli @@ -152,6 +152,8 @@ module SmokeDeadloop: Parameter_sig.Bool module SmokeDeadcode: Parameter_sig.Bool module SmokeDeadcall: Parameter_sig.Bool +val wkey_imprecise_hypotheses_assigns: warn_category + (** {2 Getters} *) val has_out : unit -> bool -- GitLab From 21d188a3a12ecb27a83bd158eabf5405f3620cab Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 22 Jul 2020 11:12:46 +0200 Subject: [PATCH 005/255] [wp] Hypotheses: fixes assigned via pointer --- src/plugins/wp/MemoryContext.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index b97d05a8b64..8d19ae6e0d1 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -191,12 +191,17 @@ let set x p w = let assigned t w = let rec assigned_via_pointer t = match t.term_node with - | TLval (TMem _, _) -> true - | Tif (_, t, _) | Tat (t, _) + | TLval (TMem _, _) -> + true | TCastE (_, t) | TLogic_coerce (_, t) - | Tunion (t :: _) | Tinter (t :: _) - | Tcomprehension(t, _, _) -> assigned_via_pointer t - | _ -> false + | Tcomprehension(t, _, _) | Tat (t, _) -> + assigned_via_pointer t + | Tunion l | Tinter l -> + List.exists assigned_via_pointer l + | Tif (_, t1, t2) -> + assigned_via_pointer t1 || assigned_via_pointer t2 + | _ -> + false in let assigned = if assigned_via_pointer t.it_content then t :: w.assigned -- GitLab From 88e41d60c671a8855b8b9e26c14225b6a7b28a0d Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 31 Jul 2020 09:33:05 +0200 Subject: [PATCH 006/255] [Eva] fix typos and long lines in documentation --- src/plugins/value/value_parameters.ml | 43 ++++++++++++++++----------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index cd4ef32136c..4d65f1e3c4f 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -380,7 +380,7 @@ module ResultsAll = True (struct let option_name = "-eva-results" - let help = "record values for any of the statements of the program." + let help = "record values for each of the statements of the program." end) let () = add_dep ResultsAll.parameter let () = ResultsAll.add_aliases ["-results"] @@ -390,7 +390,7 @@ module JoinResults = Bool (struct let option_name = "-eva-join-results" - let help = "precompute consolidated states once value is computed" + let help = "precompute consolidated states once Eva is computed" let default = true end) let () = JoinResults.add_aliases ["-val-join-results"] @@ -458,7 +458,9 @@ module AllRoundingModesConstants = False (struct let option_name = "-eva-all-rounding-modes-constants" - let help = "Take into account the possibility of constants not being converted to the nearest representable value, or being converted to higher precision" + let help = "Take into account the possibility of constants not being \ + converted to the nearest representable value, \ + or being converted to higher precision" end) let () = add_correctness_dep AllRoundingModesConstants.parameter let () = AllRoundingModesConstants.add_aliases ["-all-rounding-modes-constants"] @@ -468,7 +470,9 @@ module UndefinedPointerComparisonPropagateAll = False (struct let option_name = "-eva-undefined-pointer-comparison-propagate-all" - let help = "if the target program appears to contain undefined pointer comparisons, propagate both outcomes {0; 1} in addition to the emission of an alarm" + let help = "if the target program appears to contain undefined pointer \ + comparisons, propagate both outcomes {0; 1} in addition to \ + the emission of an alarm" end) let () = add_correctness_dep UndefinedPointerComparisonPropagateAll.parameter let () = @@ -568,7 +572,7 @@ module ReduceOnLogicAlarms = (struct let option_name = "-eva-reduce-on-logic-alarms" let help = "Force reductions by a predicate to ignore logic alarms \ - emitted while the predicated is evaluated (experimental)" + emitted while the predicate is evaluated (experimental)" end) let () = add_correctness_dep ReduceOnLogicAlarms.parameter let () = ReduceOnLogicAlarms.add_aliases ["-val-reduce-on-logic-alarms"] @@ -619,7 +623,8 @@ module AllocatedContextValid = False (struct let option_name = "-eva-context-valid-pointers" - let help = "only allocate valid pointers until context-depth, and then use NULL (defaults to false)" + let help = "only allocate valid pointers until context-depth, \ + and then use NULL (defaults to false)" end) let () = add_correctness_dep AllocatedContextValid.parameter let () = AllocatedContextValid.add_aliases ["-context-valid-pointers"] @@ -669,7 +674,7 @@ module HierarchicalConvergence = (struct let option_name = "-eva-hierarchical-convergence" let help = "Experimental and unsound. Separate the convergence process \ - of each levels of nested loops. This implies that the convergence of \ + of each level of nested loops. This implies that the convergence of \ inner loops will be completely recomputed when doing another iteration \ of the outer loops." end) @@ -711,7 +716,9 @@ module SemanticUnrollingLevel = let option_name = "-eva-slevel" let arg_name = "n" let help = - "superpose up to <n> states when unrolling control flow. The larger n, the more precise and expensive the analysis (defaults to 0)" + "superpose up to <n> states when unrolling control flow. \ + The larger n, the more precise and expensive the analysis \ + (defaults to 0)" end) let () = add_precision_dep SemanticUnrollingLevel.parameter let () = SemanticUnrollingLevel.add_aliases ["-slevel"] @@ -764,7 +771,7 @@ module MinLoopUnroll = let help = "unroll <n> loop iterations for each loop, regardless of the slevel \ settings and the number of states already propagated. \ - Can be overwritten on a case by case basis by loop unroll annotations." + Can be overwritten on a case-by-case basis by loop unroll annotations." end) let () = add_precision_dep MinLoopUnroll.parameter let () = MinLoopUnroll.set_range 0 max_int @@ -791,8 +798,8 @@ module DefaultLoopUnroll = let arg_name = "n" let default = 100 let help = - "defines the default limit for loop unroll annotations that do\ - not explicitely provide a limit." + "defines the default limit for loop unroll annotations that do \ + not explicitly provide a limit." end) let () = add_precision_dep DefaultLoopUnroll.parameter let () = DefaultLoopUnroll.set_range 0 max_int @@ -805,7 +812,7 @@ module HistoryPartitioning = let arg_name = "n" let default = 0 let help = - "keep states distincts as long as the <n> last branching in their\ + "keep states distinct as long as the <n> last branching in their \ traces are also distinct. (A value of 0 deactivates this feature)" end) let () = add_precision_dep HistoryPartitioning.parameter @@ -868,7 +875,7 @@ module SplitReturn = let arg_name = "mode" let default = "" let help = "when 'mode' is a number, or 'full', this is equivalent \ - to -val-split-return-function f:mode for all functions f. \ + to -eva-split-return-function f:mode for all functions f. \ When mode is 'auto', automatically split states at the end \ of all functions, according to the function return code" end) @@ -1014,7 +1021,8 @@ module UsePrototype = (struct let option_name = "-eva-use-spec" let arg_name = "f1,..,fn" - let help = "use the ACSL specification of the functions instead of their definitions" + let help = "use the ACSL specification of the functions instead of \ + their definitions" end) let () = add_precision_dep UsePrototype.parameter let () = UsePrototype.add_aliases ["-val-use-spec"] @@ -1036,7 +1044,8 @@ module RmAssert = True (struct let option_name = "-eva-remove-redundant-alarms" - let help = "after the analysis, try to remove redundant alarms, so that the user needs inspect fewer of them" + let help = "after the analysis, try to remove redundant alarms, \ + so that the user needs to inspect fewer of them" end) let () = add_precision_dep RmAssert.parameter let () = RmAssert.add_aliases ["-remove-redundant-alarms"] @@ -1191,7 +1200,7 @@ module ValShowInitialState = (* deprecated in Silicon *) let help = "[deprecated] Show initial state before analysis starts. \ This option has been replaced by \ - -value-msg-key=[-]initial-state and has no effect anymore." + -eva-msg-key=[-]initial-state and has no effect anymore." end) let () = ValShowInitialState.add_set_hook @@ -1209,7 +1218,7 @@ module ValShowPerf = False (struct let option_name = "-eva-show-perf" - let help = "Compute and shows a summary of the time spent analyzing function calls" + let help = "Compute and show a summary of the time spent analyzing function calls" end) let () = ValShowPerf.add_aliases ["-val-show-perf"] -- GitLab From ccfa4b3575492e586d01adb449527abaef9ec7a7 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 3 Aug 2020 18:07:58 +0200 Subject: [PATCH 007/255] [Eva] normalize style of help messages --- src/plugins/value/value_parameters.ml | 104 +++++++++++++------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 4d65f1e3c4f..84238743bc6 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -106,7 +106,7 @@ module ForceValues = WithOutput (struct let option_name = "-eva" - let help = "compute values" + let help = "Compute values" let output_by_default = true end) let () = ForceValues.add_aliases ["-val"] @@ -225,7 +225,7 @@ module DomainsFunction = end) (struct let option_name = "-eva-domains-function" - let help = "Enables a domain only for the given functions. \ + let help = "Enable a domain only for the given functions. \ <d:f+> enables the domain [d] from function [f] \ (the domain is enabled in all functions called from [f]). \ <d:f-> disables the domain [d] from function [f]." @@ -248,7 +248,7 @@ module EqualityCall = String (struct let option_name = "-eva-equality-through-calls" - let help = "Equalities propagated through function calls (from the caller \ + let help = "Propagate equalities through function calls (from the caller \ to the called function): none, only equalities between formal \ parameters and concrete arguments, or all. " let default = "formals" @@ -269,7 +269,7 @@ module EqualityCallFunction = end) (struct let option_name = "-eva-equality-through-calls-function" - let help = "Equalities propagated through calls to specific functions. \ + let help = "Propagate equalities through calls to specific functions. \ Overrides -eva-equality-call." let default = Kernel_function.Map.empty let arg_name = "f:none|formals|all" @@ -281,8 +281,8 @@ module OctagonCall = Bool (struct let option_name = "-eva-octagon-through-calls" - let help = "Whether the relations inferred by the octagon domain are \ - propagated through function calls. Disabled by default: \ + let help = "Propagate relations inferred by the octagon domain \ + through function calls. Disabled by default: \ the octagon analysis is intra-procedural, starting \ each function with an empty octagon state, \ and losing the octagons inferred at the end. \ @@ -299,7 +299,7 @@ module Numerors_Real_Size = let option_name = "-eva-numerors-real-size" let arg_name = "n" let help = - "set <n> as the significand size of the MPFR representation \ + "Set <n> as the significand size of the MPFR representation \ of reals used by the numerors domain (defaults to 128)" end) let () = add_precision_dep Numerors_Real_Size.parameter @@ -309,7 +309,7 @@ module Numerors_Mode = String (struct let option_name = "-eva-numerors-interaction" - let help = "defines how the numerors domain infers the absolute and the \ + let help = "Define how the numerors domain infers the absolute and the \ relative errors:\n\ - relative: the relative is deduced from the absolute;\n\ - absolute: the absolute is deduced from the relative;\n\ @@ -369,7 +369,7 @@ module NoResultsFunctions = (struct let option_name = "-eva-no-results-function" let arg_name = "f" - let help = "do not record the values obtained for the statements of \ + let help = "Do not record the values obtained for the statements of \ function f" end) let () = add_dep NoResultsFunctions.parameter @@ -380,7 +380,7 @@ module ResultsAll = True (struct let option_name = "-eva-results" - let help = "record values for each of the statements of the program." + let help = "Record values for each of the statements of the program." end) let () = add_dep ResultsAll.parameter let () = ResultsAll.add_aliases ["-results"] @@ -390,7 +390,7 @@ module JoinResults = Bool (struct let option_name = "-eva-join-results" - let help = "precompute consolidated states once Eva is computed" + let help = "Precompute consolidated states once Eva is computed" let default = true end) let () = JoinResults.add_aliases ["-val-join-results"] @@ -400,7 +400,7 @@ module EqualityStorage = Bool (struct let option_name = "-eva-equality-storage" - let help = "Stores the states of the equality domain during \ + let help = "Store the states of the equality domain during \ the analysis." let default = true end) @@ -411,7 +411,7 @@ module SymbolicLocsStorage = Bool (struct let option_name = "-eva-symbolic-locations-storage" - let help = "Stores the states of the symbolic locations domain during \ + let help = "Store the states of the symbolic locations domain during \ the analysis." let default = true end) @@ -422,7 +422,7 @@ module GaugesStorage = Bool (struct let option_name = "-eva-gauges-storage" - let help = "Stores the states of the gauges domain during the analysis." + let help = "Store the states of the gauges domain during the analysis." let default = true end) let () = add_precision_dep GaugesStorage.parameter @@ -432,7 +432,7 @@ module ApronStorage = Bool (struct let option_name = "-eva-apron-storage" - let help = "Stores the states of the apron domains during the \ + let help = "Store the states of the apron domains during the \ analysis." let default = false end) @@ -443,7 +443,7 @@ module BitwiseOffsmStorage = Bool (struct let option_name = "-eva-bitwise-storage" - let help = "Stores the states of the bitwise domain during the \ + let help = "Store the states of the bitwise domain during the \ analysis." let default = true end) @@ -470,7 +470,7 @@ module UndefinedPointerComparisonPropagateAll = False (struct let option_name = "-eva-undefined-pointer-comparison-propagate-all" - let help = "if the target program appears to contain undefined pointer \ + let help = "If the target program appears to contain undefined pointer \ comparisons, propagate both outcomes {0; 1} in addition to \ the emission of an alarm" end) @@ -484,7 +484,7 @@ module WarnPointerComparison = String (struct let option_name = "-eva-warn-undefined-pointer-comparison" - let help = "warn on all pointer comparisons, on comparisons where \ + let help = "Warn on all pointer comparisons, on comparisons where \ the arguments have pointer type (default), or never warn" let default = "pointer" let arg_name = "all|pointer|none" @@ -557,7 +557,7 @@ module WarnCopyIndeterminate = (struct let option_name = "-eva-warn-copy-indeterminate" let arg_name = "f | @all" - let help = "warn when a statement of the specified functions copies a \ + let help = "Warn when a statement of the specified functions copies a \ value that may be indeterminate (uninitialized or containing escaping address). \ Set by default; can be deactivated for function 'f' by '=-f', or for all \ functions by '=-@all'." @@ -600,7 +600,7 @@ module AutomaticContextMaxDepth = let option_name = "-eva-context-depth" let default = 2 let arg_name = "n" - let help = "use <n> as the depth of the default context for Eva. (defaults to 2)" + let help = "Use <n> as the depth of the default context for Eva. (defaults to 2)" end) let () = add_correctness_dep AutomaticContextMaxDepth.parameter let () = AutomaticContextMaxDepth.add_aliases ["-context-depth"] @@ -612,7 +612,7 @@ module AutomaticContextMaxWidth = let option_name = "-eva-context-width" let default = 2 let arg_name = "n" - let help = "use <n> as the width of the default context for Eva. (defaults to 2)" + let help = "Use <n> as the width of the default context for Eva. (defaults to 2)" end) let () = AutomaticContextMaxWidth.set_range ~min:1 ~max:max_int let () = add_correctness_dep AutomaticContextMaxWidth.parameter @@ -623,7 +623,7 @@ module AllocatedContextValid = False (struct let option_name = "-eva-context-valid-pointers" - let help = "only allocate valid pointers until context-depth, \ + let help = "Only allocate valid pointers until context-depth, \ and then use NULL (defaults to false)" end) let () = add_correctness_dep AllocatedContextValid.parameter @@ -688,7 +688,7 @@ module WideningDelay = let option_name = "-eva-widening-delay" let arg_name = "n" let help = - "do not widen before the <n>-th iteration (defaults to 3)" + "Do not widen before the <n>-th iteration (defaults to 3)" end) let () = WideningDelay.set_range ~min:1 ~max:max_int let () = WideningDelay.add_aliases ["-wlevel"] @@ -702,7 +702,7 @@ module WideningPeriod = let option_name = "-eva-widening-period" let arg_name = "n" let help = - "after the first widening, widen each <n> iterations (defaults to 2)" + "After the first widening, widen each <n> iterations (defaults to 2)" end) let () = WideningDelay.set_range ~min:1 ~max:max_int let () = add_precision_dep WideningPeriod.parameter @@ -716,7 +716,7 @@ module SemanticUnrollingLevel = let option_name = "-eva-slevel" let arg_name = "n" let help = - "superpose up to <n> states when unrolling control flow. \ + "Superpose up to <n> states when unrolling control flow. \ The larger n, the more precise and expensive the analysis \ (defaults to 0)" end) @@ -742,7 +742,7 @@ module SlevelFunction = (struct let option_name = "-eva-slevel-function" let arg_name = "f:n" - let help = "override slevel with <n> when analyzing <f>" + let help = "Override slevel with <n> when analyzing <f>" let default = Kernel_function.Map.empty end) let () = add_precision_dep SlevelFunction.parameter @@ -755,7 +755,7 @@ module SlevelMergeAfterLoop = let option_name = "-eva-slevel-merge-after-loop" let arg_name = "f | @all" let help = - "when set, the different execution paths that originate from the body \ + "When set, the different execution paths that originate from the body \ of a loop are merged before entering the next excution." end) let () = add_precision_dep SlevelMergeAfterLoop.parameter @@ -769,7 +769,7 @@ module MinLoopUnroll = let arg_name = "n" let default = 0 let help = - "unroll <n> loop iterations for each loop, regardless of the slevel \ + "Unroll <n> loop iterations for each loop, regardless of the slevel \ settings and the number of states already propagated. \ Can be overwritten on a case-by-case basis by loop unroll annotations." end) @@ -783,7 +783,7 @@ module AutoLoopUnroll = let option_name = "-eva-auto-loop-unroll" let arg_name = "n" let default = 0 - let help = "limit of the automatic loop unrolling: all loops whose \ + let help = "Limit of the automatic loop unrolling: all loops whose \ number of iterations can be easily bounded by <n> \ are completely unrolled." end) @@ -798,7 +798,7 @@ module DefaultLoopUnroll = let arg_name = "n" let default = 100 let help = - "defines the default limit for loop unroll annotations that do \ + "Define the default limit for loop unroll annotations that do \ not explicitly provide a limit." end) let () = add_precision_dep DefaultLoopUnroll.parameter @@ -812,7 +812,7 @@ module HistoryPartitioning = let arg_name = "n" let default = 0 let help = - "keep states distinct as long as the <n> last branching in their \ + "Keep states distinct as long as the <n> last branching in their \ traces are also distinct. (A value of 0 deactivates this feature)" end) let () = add_precision_dep HistoryPartitioning.parameter @@ -823,7 +823,7 @@ module ValuePartitioning = String_set (struct let option_name = "-eva-partition-value" - let help = "partition the space of reachable states according to the \ + let help = "Partition the space of reachable states according to the \ possible values of the global(s) variable(s) V." let arg_name = "V" end) @@ -836,8 +836,8 @@ module SplitLimit = let option_name = "-eva-split-limit" let arg_name = "N" let default = 100 - let help = "prevents the split annotations or -eva-partition-value to \ - enumerate more than N cases" + let help = "Prevent split annotations or -eva-partition-value from \ + enumerating more than N cases" end) let () = add_precision_dep SplitLimit.parameter let () = SplitLimit.set_range 0 max_int @@ -860,7 +860,7 @@ module SplitReturnFunction = (struct let option_name = "-eva-split-return-function" let arg_name = "f:n" - let help = "split return states of function <f> according to \ + let help = "Split return states of function <f> according to \ \\result == n and \\result != n" let default = Kernel_function.Map.empty end) @@ -874,7 +874,7 @@ module SplitReturn = let option_name = "-eva-split-return" let arg_name = "mode" let default = "" - let help = "when 'mode' is a number, or 'full', this is equivalent \ + let help = "When 'mode' is a number, or 'full', this is equivalent \ to -eva-split-return-function f:mode for all functions f. \ When mode is 'auto', automatically split states at the end \ of all functions, according to the function return code" @@ -941,7 +941,7 @@ module BuiltinsOverrides = (struct let option_name = "-eva-builtin" let arg_name = "f:ffc" - let help = "when analyzing function <f>, try to use Frama-C builtin \ + let help = "When analyzing function <f>, try to use Frama-C builtin \ <ffc> instead. \ Fall back to <f> if <ffc> cannot handle its arguments." let default = Kernel_function.Map.empty @@ -971,7 +971,7 @@ module BuiltinsList = False (struct let option_name = "-eva-builtins-list" - let help = "Lists the existing builtins, and which functions they \ + let help = "List existing builtins, and which functions they \ are automatically associated to (if any)" end) let () = BuiltinsList.add_aliases ["-val-builtins-list"] @@ -1008,7 +1008,7 @@ module LinearLevelFunction = (struct let option_name = "-eva-subdivide-non-linear-function" let arg_name = "f:n" - let help = "override the global option -eva-subdivide-non-linear with <n>\ + let help = "Override the global option -eva-subdivide-non-linear with <n>\ when analyzing the function <f>." let default = Kernel_function.Map.empty end) @@ -1021,7 +1021,7 @@ module UsePrototype = (struct let option_name = "-eva-use-spec" let arg_name = "f1,..,fn" - let help = "use the ACSL specification of the functions instead of \ + let help = "Use the ACSL specification of the functions instead of \ their definitions" end) let () = add_precision_dep UsePrototype.parameter @@ -1032,7 +1032,7 @@ module SkipLibcSpecs = True (struct let option_name = "-eva-skip-stdlib-specs" - let help = "skip ACSL specifications on functions originating from the \ + let help = "Skip ACSL specifications on functions originating from the \ standard library of Frama-C, when their bodies are evaluated" end) let () = add_precision_dep SkipLibcSpecs.parameter @@ -1044,7 +1044,7 @@ module RmAssert = True (struct let option_name = "-eva-remove-redundant-alarms" - let help = "after the analysis, try to remove redundant alarms, \ + let help = "After the analysis, try to remove redundant alarms, \ so that the user needs to inspect fewer of them" end) let () = add_precision_dep RmAssert.parameter @@ -1078,7 +1078,7 @@ module ArrayPrecisionLevel = let default = 200 let option_name = "-eva-plevel" let arg_name = "n" - let help = "use <n> as the precision level for arrays accesses. \ + let help = "Use <n> as the precision level for arrays accesses. \ Array accesses are precise as long as the interval for the index contains \ less than n values. (defaults to 200)" end) @@ -1102,7 +1102,7 @@ module SaveFunctionState = (struct let option_name = "-eva-save-fun-state" let arg_name = "function:filename" - let help = "save state of function <function> in file <filename>" + let help = "Experimental. Save state of function <function> in file <filename>" let default = Kernel_function.Map.empty end) let () = SaveFunctionState.add_aliases ["-val-save-fun-state"] @@ -1118,7 +1118,7 @@ module LoadFunctionState = (struct let option_name = "-eva-load-fun-state" let arg_name = "function:filename" - let help = "load state of function <function> from file <filename>" + let help = "Experimental. Load state of function <function> from file <filename>" let default = Kernel_function.Map.empty end) let () = LoadFunctionState.add_aliases ["-val-load-fun-state"] @@ -1227,7 +1227,7 @@ module ValPerfFlamegraphs = String (struct let option_name = "-eva-flamegraph" - let help = "Dumps a summary of the time spent analyzing function calls \ + let help = "Dump a summary of the time spent analyzing function calls \ in a format suitable for the Flamegraph tool \ (http://www.brendangregg.com/flamegraphs.html)" let arg_name = "file" @@ -1264,7 +1264,7 @@ module AlarmsWarnings = (struct let option_name = "-val-warn-on-alarms" let help = "[DEPRECATED: use warning key alarm to manage alarms] \ - if set (default), possible alarms are printed in \ + If set (default), possible alarms are printed in \ the analysis log as warnings, otherwise as plain feedback" end) @@ -1292,7 +1292,7 @@ module ReportRedStatuses = let option_name = "-eva-report-red-statuses" let arg_name = "filename" let default = "" - let help = "output the list of \"red properties\" in a csv file of the \ + let help = "Output the list of \"red properties\" in a csv file of the \ given name. These are the properties which were invalid for \ some states. Their consolidated status may not be invalid, \ but they should often be investigated first." @@ -1303,7 +1303,7 @@ module NumerorsLogFile = String (struct let option_name = "-eva-numerors-log-file" - let help = "The Numerors Domain will save each call to the DPRINT \ + let help = "The Numerors domain will save each call to the DPRINT \ function in the given file" let arg_name = "file" let default = "" @@ -1358,7 +1358,7 @@ module StopAtNthAlarm = let option_name = "-eva-stop-at-nth-alarm" let default = max_int let arg_name = "n" - let help = "Aborts the analysis when the nth alarm is emitted." + let help = "Abort the analysis when the nth alarm is emitted." end) let () = StopAtNthAlarm.add_aliases ["-val-stop-at-nth-alarm"] @@ -1455,7 +1455,7 @@ module AllocFunctions = (struct let option_name = "-eva-alloc-functions" let arg_name = "f1,...,fn" - let help = "Controls call site creation for dynamically allocated bases. \ + let help = "Control call site creation for dynamically allocated bases. \ Dynamic allocation builtins use the call sites of \ malloc/calloc/realloc to know \ where to create new bases. This detection does not work for \ @@ -1484,7 +1484,7 @@ module MallocLevel = let option_name = "-eva-mlevel" let default = 0 let arg_name = "m" - let help = "sets to [m] the number of precise dynamic allocations \ + let help = "Set to [m] the number of precise dynamic allocations \ besides the initial one, for each callstack (defaults to 0)" end) let () = MallocLevel.add_aliases ["-val-mlevel"] -- GitLab From c6bf67b9aff1a497df593de9dd7f2c59e248180e Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 4 Aug 2020 15:24:25 +0200 Subject: [PATCH 008/255] [wp] Add a comment for Term context zones --- src/plugins/wp/MemoryContext.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 8d19ae6e0d1..516044eb597 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -46,7 +46,7 @@ type zone = | Var of varinfo (* &x - the cell x *) | Ptr of varinfo (* p - the cell pointed by p *) | Arr of varinfo (* p+(..) - the cell and its neighbors pointed by p *) - | Term of term + | Term of term (* use the ACSL term as is *) type partition = { globals : zone list ; (* [ &G , G[...], ... ] *) -- GitLab From 8cf44f7879b3aef188768591d884851b4d9fcd6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 25 Aug 2020 14:46:13 +0200 Subject: [PATCH 009/255] [kernel] linting log --- .Makefile.lint | 2 - .../plugin_entry_points/log.ml | 59 ++++++++++--------- .../plugin_entry_points/log.mli | 50 ++++++++-------- 3 files changed, 56 insertions(+), 55 deletions(-) diff --git a/.Makefile.lint b/.Makefile.lint index 80fb691a837..61f6b0eb4af 100644 --- a/.Makefile.lint +++ b/.Makefile.lint @@ -99,8 +99,6 @@ ML_LINT_KO+=src/kernel_services/plugin_entry_points/emitter.ml ML_LINT_KO+=src/kernel_services/plugin_entry_points/emitter.mli ML_LINT_KO+=src/kernel_services/plugin_entry_points/journal.ml ML_LINT_KO+=src/kernel_services/plugin_entry_points/journal.mli -ML_LINT_KO+=src/kernel_services/plugin_entry_points/log.ml -ML_LINT_KO+=src/kernel_services/plugin_entry_points/log.mli ML_LINT_KO+=src/kernel_services/visitors/cabsvisit.ml ML_LINT_KO+=src/kernel_services/visitors/cabsvisit.mli ML_LINT_KO+=src/kernel_services/visitors/visitor.ml diff --git a/src/kernel_services/plugin_entry_points/log.ml b/src/kernel_services/plugin_entry_points/log.ml index d40ae03aa1d..76093e208d0 100644 --- a/src/kernel_services/plugin_entry_points/log.ml +++ b/src/kernel_services/plugin_entry_points/log.ml @@ -71,7 +71,7 @@ type terminal = { mutable delayed : (terminal -> unit) list ; mutable output : string -> int -> int -> unit ; (* Same as Format.make_formatter *) - mutable flush : unit -> unit ; + mutable flush : unit -> unit ; (* Same as Format.make_formatter *) } @@ -90,7 +90,7 @@ let is_ready t = | Locked | DelayedLock -> false | Ready -> true -let term_clean t = +let term_clean t = if t.isatty && not t.clean then begin let u = "\r\027[K" in @@ -126,7 +126,7 @@ let stdout = { let clean () = term_clean stdout -let set_output ?(isatty=false) output flush = +let set_output ?(isatty=false) output flush = set_terminal stdout isatty output flush (* -------------------------------------------------------------------------- *) @@ -204,7 +204,7 @@ let is_prefixed_event = function let is_single_line text = try ignore (String.index_from text 0 '\n') ; false - with Not_found -> true + with Not_found -> true let echo_firstline output text p q width = let t = try String.index_from text p '\n' with Not_found -> succ q in @@ -372,10 +372,13 @@ let () = Array.iteri (* -------------------------------------------------------------------------- *) let all_channels : (string,channelstate) Hashtbl.t = Hashtbl.create 31 -let default_emitters = Array.map (fun _ -> { listeners=[] ; echo=true }) all_kinds +let default_emitters = + Array.map (fun _ -> { listeners=[] ; echo=true }) + all_kinds let new_emitters () = - Array.map (fun e -> { listeners = e.listeners ; echo = e.echo }) default_emitters + Array.map (fun e -> { listeners = e.listeners ; echo = e.echo }) + default_emitters let get_emitters plugin = try @@ -498,7 +501,7 @@ let logwithfinal finally channel Format.pp_print_newline fmt () ; Format.pp_print_flush fmt () ; let p,q = Rich_text.trim buffer in - let output = + let output = if p <= q then let source = get_source current source in let message = Rich_text.range buffer p q in @@ -586,26 +589,26 @@ let deferred_raise ~fatal ~unreported event msg = logwithfinal finally channel ?append ~kind:event.evt_kind msg let treat_deferred_error () = - match !deferred_exn with - | DNo_exn -> () - | DWarn_as_error event -> - let unreported = unreported_event event in - let wkey = - match event.evt_category with - | None -> "" - | Some s when s = unreported_error -> "" - | Some s -> s - in - deferred_raise ~fatal:false ~unreported event - "warning %s treated as deferred error." wkey - | DError event -> - let unreported = unreported_event event in - deferred_raise ~fatal:false ~unreported event - "Deferred error message was emitted during execution." - | DFatal event -> - let unreported = unreported_event event in - deferred_raise ~fatal:true ~unreported event - "Deferred internal error message was emitted during execution." + match !deferred_exn with + | DNo_exn -> () + | DWarn_as_error event -> + let unreported = unreported_event event in + let wkey = + match event.evt_category with + | None -> "" + | Some s when s = unreported_error -> "" + | Some s -> s + in + deferred_raise ~fatal:false ~unreported event + "warning %s treated as deferred error." wkey + | DError event -> + let unreported = unreported_event event in + deferred_raise ~fatal:false ~unreported event + "Deferred error message was emitted during execution." + | DFatal event -> + let unreported = unreported_event event in + deferred_raise ~fatal:true ~unreported event + "Deferred internal error message was emitted during execution." (* -------------------------------------------------------------------------- *) (* --- Messages Interface --- *) @@ -1242,7 +1245,7 @@ struct with error -> unlock_terminal stdout fmt ; raise error end - else + else Pretty_utils.nullprintf text let pp_all_warn_categories_status () = diff --git a/src/kernel_services/plugin_entry_points/log.mli b/src/kernel_services/plugin_entry_points/log.mli index 9fd4675ec6b..89936f3185b 100644 --- a/src/kernel_services/plugin_entry_points/log.mli +++ b/src/kernel_services/plugin_entry_points/log.mli @@ -45,17 +45,17 @@ type 'a pretty_printer = (** Generic type for the various logging channels which are not aborting Frama-C. - - When [current] is [false] (default for most of the channels), - no location is output. When it is [true], the last registered location - is used as current (see {!Cil_const.CurrentLoc}). + - When [current] is [false] (default for most of the channels), + no location is output. When it is [true], the last registered location + is used as current (see {!Cil_const.CurrentLoc}). - [source] is the location to be output. If nil, [current] is used to - determine if a location should be output + determine if a location should be output - [emitwith] function which is called each time an event is processed - [echo] is [true] if the event should be output somewhere in addition - to [stdout] + to [stdout] - [append] adds some actions performed on the formatter after the event - has been processed. - @since Beryllium-20090601-beta1 *) + has been processed. + @since Beryllium-20090601-beta1 *) type ('a,'b) pretty_aborter = ?current:bool -> ?source:Filepath.position -> ?echo:bool -> @@ -120,7 +120,7 @@ module type Messages = sig type category (** category for debugging/verbose messages. Must be registered before - any use. + any use. Each column in the string defines a sub-category, e.g. a:b:c defines a subcategory c of b, which is itself a subcategory of a. Enabling a category (via -plugin-msg-category) will enable all its @@ -140,7 +140,7 @@ module type Messages = sig val debug_atleast : int -> bool (** @since Beryllium-20090601-beta1 *) - val printf : ?level:int -> ?dkey:category -> + val printf : ?level:int -> ?dkey:category -> ?current:bool -> ?source:Filepath.position -> ?append:(Format.formatter -> unit) -> ?header:(Format.formatter -> unit) -> @@ -202,7 +202,7 @@ module type Messages = sig [false]. The intended usage is: [assert (verify e "Bla...") ;]. - @since Beryllium-20090601-beta1 + @since Beryllium-20090601-beta1 @plugin development guide *) val not_yet_implemented : ('a,formatter,unit,'b) format4 -> 'a @@ -242,13 +242,13 @@ module type Messages = sig (** Generic log routine. The default kind is [Result]. Use cases (with [n,m > 0]): - [log ~verbose:n]: emit the message only when verbosity level is - at least [n]. + at least [n]. - [log ~debug:n]: emit the message only when debugging level is - at least [n]. + at least [n]. - [log ~verbose:n ~debug:m]: any debugging or verbosity level is - sufficient. - @since Beryllium-20090901 - @plugin development guide *) + sufficient. + @since Beryllium-20090901 + @plugin development guide *) val logwith : (event option -> 'b) -> ?wkey:warn_category -> ?emitwith:(event -> unit) -> ?once:bool -> @@ -397,14 +397,14 @@ module Register val set_echo : ?plugin:string -> ?kind:kind list -> bool -> unit (** Turns echo on or off. Applies to all channel unless specified, and all kind of messages unless specified. - @since Beryllium-20090601-beta1 + @since Beryllium-20090601-beta1 @plugin development guide *) val add_listener : ?plugin:string -> ?kind:kind list -> (event -> unit) -> unit (** Register a hook that is called each time an event is emitted. Applies to all channel unless specified, and all kind of messages unless specified. - @since Beryllium-20090601-beta1 + @since Beryllium-20090601-beta1 @plugin development guide *) val echo : event -> unit @@ -426,7 +426,7 @@ type channel (** @since Beryllium-20090601-beta1 *) val new_channel : string -> channel -(** @since Beryllium-20090901 +(** @since Beryllium-20090901 @plugin development guide *) val log_channel : channel -> @@ -447,7 +447,7 @@ val kernel_label_name: string val source : file:Filepath.Normalized.t -> line:int -> Filepath.position (** @since Chlorine-20180501 @modify 18.0-Argon change type of [file] - *) +*) val get_current_source : unit -> Filepath.position @@ -463,7 +463,7 @@ val clean : unit -> unit val null : formatter [@@ deprecated "Use 'Pretty_utils.null' instead"] (** Prints nothing. - @since Beryllium-20090901 + @since Beryllium-20090901 @deprecated Chlorine-20180501 use {!Pretty_utils} instead. *) val nullprintf : ('a,formatter,unit) format -> 'a @@ -480,7 +480,7 @@ val with_null : (unit -> 'b) -> ('a,formatter,unit,'b) format4 -> 'a val set_output : ?isatty:bool -> (string -> int -> int -> unit) -> (unit -> unit) -> unit (** This function has the same parameters as Format.make_formatter. - @since Beryllium-20090901 + @since Beryllium-20090901 @plugin development guide *) val print_on_output : (Format.formatter -> unit) -> unit @@ -490,8 +490,8 @@ val print_on_output : (Format.formatter -> unit) -> unit Notification of listeners is not delayed, however. Can not be recursively invoked. - @since Beryllium-20090901 - @modify Nitrogen-20111001 signature changed + @since Beryllium-20090901 + @modify Nitrogen-20111001 signature changed @plugin development guide *) val print_delayed : (Format.formatter -> unit) -> unit @@ -502,7 +502,7 @@ val print_delayed : (Format.formatter -> unit) -> unit Can not be recursively invoked. @since Beryllium-20090901 - @modify Nitrogen-20111001 signature changed + @modify Nitrogen-20111001 signature changed @plugin development guide *) (**/**) @@ -528,7 +528,7 @@ val treat_deferred_error: unit -> unit a delayed error or failure. Currently done: - after each command-line stage. - after each analysis step (as separated by -then and its derivatives), - including the last one. + including the last one. *) (**/**) -- GitLab From 5dd2be83f3120e29869004c16e93e694ef8c44c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 25 Aug 2020 15:07:38 +0200 Subject: [PATCH 010/255] [kernel] log self recursion tests --- tests/misc/log_selfrec.i | 3 + tests/misc/oracle/log_selfrec.res.oracle | 33517 +++++++++++++++++++++ 2 files changed, 33520 insertions(+) create mode 100644 tests/misc/log_selfrec.i create mode 100644 tests/misc/oracle/log_selfrec.res.oracle diff --git a/tests/misc/log_selfrec.i b/tests/misc/log_selfrec.i new file mode 100644 index 00000000000..f65505058bb --- /dev/null +++ b/tests/misc/log_selfrec.i @@ -0,0 +1,3 @@ +/* run.config + OPT: -foobar -report-unclassified-error jazz +*/ diff --git a/tests/misc/oracle/log_selfrec.res.oracle b/tests/misc/oracle/log_selfrec.res.oracle new file mode 100644 index 00000000000..30a487799c7 --- /dev/null +++ b/tests/misc/oracle/log_selfrec.res.oracle @@ -0,0 +1,33517 @@ +[report] Monitoring events +[kernel] User Error: option `-foobar' is unknown. + use `bin/toplevel.opt -help' for more information. +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[report] User Error: Invalid action ("JAZZ") +[kernel] Current source was: :0 + The full backtrace is: + Raised by primitive operation at file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 + Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 + Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 + Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 + Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 + Called from file "list.ml", line 110, characters 12-15 + + Unexpected error (Stack overflow). + Please report as 'crash' at http://bts.frama-c.com/. + Your Frama-C version is 21.1+dev (Scandium). + Note that a version and a backtrace alone often do not contain enough + information to understand the bug. Guidelines for reporting bugs are at: + http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines -- GitLab From 8a29480c9229acc1a2b4ed2f6aaae7647a175d78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 25 Aug 2020 15:13:24 +0200 Subject: [PATCH 011/255] [kernel] fix log recursion --- .../plugin_entry_points/log.ml | 15 +- .../plugin_entry_points/log.mli | 4 + tests/misc/oracle/log_selfrec.res.oracle | 33514 +--------------- 3 files changed, 18 insertions(+), 33515 deletions(-) diff --git a/src/kernel_services/plugin_entry_points/log.ml b/src/kernel_services/plugin_entry_points/log.ml index 76093e208d0..9ac3d86df1d 100644 --- a/src/kernel_services/plugin_entry_points/log.ml +++ b/src/kernel_services/plugin_entry_points/log.ml @@ -419,7 +419,17 @@ let check_not_yet = ref (fun _evt -> false) (* --- Listeners --- *) (* -------------------------------------------------------------------------- *) -let do_fire e f = f e +let firelock = ref false + +let do_fire e f = + if !firelock then f e else + try + firelock := true ; + f e ; + firelock := false + with exn -> + firelock := false ; + raise exn let iter_kind ?kind f ems = match kind with @@ -518,7 +528,8 @@ let logwithfinal finally channel if echo && e.echo then do_echo channel.terminal event ; Extlib.may (do_fire event) emitwith; - if fire then List.iter (do_fire event) e.listeners ; + if fire && not !firelock then + List.iter (do_fire event) e.listeners ; Some event end else None diff --git a/src/kernel_services/plugin_entry_points/log.mli b/src/kernel_services/plugin_entry_points/log.mli index 89936f3185b..a01c5b99e60 100644 --- a/src/kernel_services/plugin_entry_points/log.mli +++ b/src/kernel_services/plugin_entry_points/log.mli @@ -404,6 +404,10 @@ val add_listener : ?plugin:string -> ?kind:kind list -> (event -> unit) -> unit (** Register a hook that is called each time an event is emitted. Applies to all channel unless specified, and all kind of messages unless specified. + + Warning: when executing the listener, all listeners will be + temporarily deactivated in order to avoid infinite recursion. + @since Beryllium-20090601-beta1 @plugin development guide *) diff --git a/tests/misc/oracle/log_selfrec.res.oracle b/tests/misc/oracle/log_selfrec.res.oracle index 30a487799c7..a6950e931a0 100644 --- a/tests/misc/oracle/log_selfrec.res.oracle +++ b/tests/misc/oracle/log_selfrec.res.oracle @@ -2,33516 +2,4 @@ [kernel] User Error: option `-foobar' is unknown. use `bin/toplevel.opt -help' for more information. [report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[report] User Error: Invalid action ("JAZZ") -[kernel] Current source was: :0 - The full backtrace is: - Raised by primitive operation at file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - Called from file "src/kernel_services/plugin_entry_points/log.ml", line 521, characters 30-67 - Re-raised at file "src/kernel_services/plugin_entry_points/log.ml", line 531, characters 9-16 - Called from file "src/plugins/report/classify.ml", line 361, characters 21-46 - Called from file "src/plugins/report/classify.ml", line 333, characters 16-31 - Called from file "src/plugins/report/classify.ml", line 363, characters 4-55 - Called from file "list.ml", line 110, characters 12-15 - - Unexpected error (Stack overflow). - Please report as 'crash' at http://bts.frama-c.com/. - Your Frama-C version is 21.1+dev (Scandium). - Note that a version and a backtrace alone often do not contain enough - information to understand the bug. Guidelines for reporting bugs are at: - http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines +[kernel] Plug-in report aborted: invalid user input. -- GitLab From f9270e93049e3c79e74fcae0322f1c40526cf058 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 25 Aug 2020 16:18:14 +0200 Subject: [PATCH 012/255] [kernel] lock only log listeners on rec --- .../plugin_entry_points/log.ml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/kernel_services/plugin_entry_points/log.ml b/src/kernel_services/plugin_entry_points/log.ml index 9ac3d86df1d..aae66eac586 100644 --- a/src/kernel_services/plugin_entry_points/log.ml +++ b/src/kernel_services/plugin_entry_points/log.ml @@ -419,17 +419,7 @@ let check_not_yet = ref (fun _evt -> false) (* --- Listeners --- *) (* -------------------------------------------------------------------------- *) -let firelock = ref false - -let do_fire e f = - if !firelock then f e else - try - firelock := true ; - f e ; - firelock := false - with exn -> - firelock := false ; - raise exn +let do_fire e f = f e let iter_kind ?kind f ems = match kind with @@ -490,6 +480,8 @@ let logtransient channel text = raise e ) buffer text +let locked_listeners = ref false + let logwithfinal finally channel ?(fire=true) (* fire channel listeners *) ?emitwith (* additional emitter *) @@ -528,8 +520,16 @@ let logwithfinal finally channel if echo && e.echo then do_echo channel.terminal event ; Extlib.may (do_fire event) emitwith; - if fire && not !firelock then - List.iter (do_fire event) e.listeners ; + if fire && not !locked_listeners then + begin + try + locked_listeners := true ; + List.iter (do_fire event) e.listeners ; + locked_listeners := false ; + with exn -> + locked_listeners := false ; + raise exn + end ; Some event end else None -- GitLab From a3ff56eecaf532687336154f703673a10a6282bd Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 25 Aug 2020 14:41:39 +0200 Subject: [PATCH 013/255] [Kernel] improve error message for invalid JCDB file --- src/kernel_services/ast_queries/json_compilation_database.ml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/kernel_services/ast_queries/json_compilation_database.ml b/src/kernel_services/ast_queries/json_compilation_database.ml index 5e0124ac2b1..875c9431f78 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ml @@ -242,6 +242,9 @@ let parse_entry jcdb_dir r = let compute_flags_from_file () = let database = Kernel.JsonCompilationDatabase.get () in let jcdb_dir, jcdb_path = + if not (Sys.file_exists database) then + Kernel.abort "invalid path for option %s: %s" + Kernel.JsonCompilationDatabase.option_name database; if Sys.is_directory database then database, Filename.concat database "compile_commands.json" else Filename.dirname database, database -- GitLab From fb6241a236fcb4eb2d3cf72e764f7fcbef82b1d5 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 25 Aug 2020 14:42:18 +0200 Subject: [PATCH 014/255] [Aorai] improve error handling of invalid file options --- src/plugins/aorai/aorai_register.ml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/src/plugins/aorai/aorai_register.ml b/src/plugins/aorai/aorai_register.ml index a9c5a2bcd06..04c5852e709 100644 --- a/src/plugins/aorai/aorai_register.ml +++ b/src/plugins/aorai/aorai_register.ml @@ -81,9 +81,15 @@ let syntax_error loc msg = ((snd loc).Lexing.pos_cnum - (fst loc).Lexing.pos_bol) msg +(* Performs some checks before calling [open_in f]. + Raises [Not_found] in case of error. *) +let safe_open_in f = + if not (Sys.file_exists f) || (Sys.is_directory f) then raise Not_found; + open_in f + let ltl_to_ltlLight f_ltl f_out = try - let c = open_in f_ltl in + let c = safe_open_in f_ltl in let (ltl_form,exprs) = Ltllexer.parse c in close_in c; Ltl_output.output ltl_form f_out; @@ -94,7 +100,7 @@ let ltl_to_ltlLight f_ltl f_out = let load_ya_file f = try - let c = open_in f in + let c = safe_open_in f in let automata = Yalexer.parse c in close_in c; Data_for_aorai.setAutomata automata; @@ -104,7 +110,7 @@ let load_ya_file f = let load_promela_file f = try - let c = open_in f in + let c = safe_open_in f in let (s,t) = Promelalexer.parse c in let t = convert_ltl_exprs t in close_in c; @@ -115,7 +121,7 @@ let load_promela_file f = let load_promela_file_withexps f = try - let c = open_in f in + let c = safe_open_in f in let automata = Promelalexer_withexps.parse c in close_in c; Data_for_aorai.setAutomata automata; @@ -170,25 +176,25 @@ let init_file_names () = (* The output C file has to be a valid file name if it is used. *) output_c_file := (Aorai_option.Output_C_File.get ()) ; - if (!output_c_file="") then output_c_file:=freshname ((Filename.chop_extension !c_file)^"_annot") ".c"; + if (!output_c_file="") then output_c_file:=freshname ((Filename.remove_extension !c_file)^"_annot") ".c"; (* else if Sys.file_exists !output_c_file then dispErr "already exists" !output_c_file; *) if Aorai_option.Dot.get () then - dot_file:=freshname (Filename.chop_extension !c_file) ".dot"; + dot_file:=freshname (Filename.remove_extension !c_file) ".dot"; if Aorai_option.Ya.get () = "" then if Aorai_option.Buchi.get () = "" then begin (* ltl_file name is given and has to point out a valid file. *) ltl_file := Aorai_option.Ltl_File.get (); - if (!ltl_file="") then dispErr ": invalid LTL file name" !ltl_file; if (not (Sys.file_exists !ltl_file)) then dispErr "not found" !ltl_file; + if (!ltl_file="" || Sys.is_directory !ltl_file) then dispErr ": invalid LTL file name" !ltl_file; (* The LTL file is always used. *) (* The promela file can be given or not. *) if Aorai_option.To_Buchi.get () <> "" then begin ltl_tmp_file:= freshname - (Filename.chop_extension + (Filename.remove_extension (Aorai_option.promela_file ())) ".ltl"; promela_file:= Aorai_option.promela_file (); Extlib.cleanup_at_exit !ltl_tmp_file @@ -200,7 +206,7 @@ let init_file_names () = with Extlib.Temp_file_error s -> Aorai_option.abort "cannot create temporary file: %s" s); promela_file:= - freshname (Filename.chop_extension !ltl_tmp_file) ".promela"; + freshname (Filename.remove_extension !ltl_tmp_file) ".promela"; Extlib.cleanup_at_exit !promela_file; end end else begin -- GitLab From 0f300fcb9db5a1de8a66d84677e6c833201b57ac Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 25 Aug 2020 16:57:43 +0200 Subject: [PATCH 015/255] [Aorai] use MODULE directive in test --- src/plugins/aorai/tests/aorai/assigns.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/aorai/tests/aorai/assigns.c b/src/plugins/aorai/tests/aorai/assigns.c index c8d63fdb9db..843e5dd5119 100644 --- a/src/plugins/aorai/tests/aorai/assigns.c +++ b/src/plugins/aorai/tests/aorai/assigns.c @@ -1,8 +1,8 @@ /* run.config* - EXECNOW: make -s @PTEST_DIR@/name_projects.cmxs OPT: -aorai-automata tests/aorai/assigns.ya -aorai-test 1 -load-module tests/aorai/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ OPT: -aorai-automata tests/aorai/assigns_det.ya -aorai-test 1 -load-module tests/aorai/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ - OPT: -aorai-automata tests/aorai/assigns.ya -load-module @PTEST_DIR@/name_projects -aorai-test 1 -then -print + MODULE: @PTEST_DIR@/name_projects.cmxs + OPT: -aorai-automata tests/aorai/assigns.ya -aorai-test 1 -then -print */ int X; -- GitLab From 2a1463131fcf27f33bf2456fc18b2fcdb73044cf Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 27 Aug 2020 08:49:20 +0200 Subject: [PATCH 016/255] [Metrics] convert user errors from fatal to abort --- src/plugins/metrics/metrics_base.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/metrics/metrics_base.ml b/src/plugins/metrics/metrics_base.ml index c4c0934db60..baf2ca5fd2b 100644 --- a/src/plugins/metrics/metrics_base.ml +++ b/src/plugins/metrics/metrics_base.ml @@ -256,11 +256,11 @@ let get_file_type filename = | "html" | "htm" -> Html | "txt" | "text" -> Text | s -> - Metrics_parameters.fatal + Metrics_parameters.abort "Unknown file extension %s. Cannot produce output.@." s with | No_suffix -> - Metrics_parameters.fatal + Metrics_parameters.abort "File %s has no suffix. Cannot produce output.@." filename module VarinfoByName = struct -- GitLab From 52d32d5cd62033d861a41f21f3884bf91fb18e77 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 15 Jul 2020 13:50:21 +0200 Subject: [PATCH 017/255] [MdR] fix minor typos in SARIF output --- src/plugins/markdown-report/sarif_gen.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index f3e3ed9226d..16c8a3644bc 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -63,7 +63,7 @@ let gen_remark alarm = [ Block [ Text (plain - (Printf.sprintf "This alarms represents a potential %s." + (Printf.sprintf "This alarm represents a potential %s." (Alarms.get_description alarm) ) ) @@ -172,7 +172,7 @@ let gen_run remarks = | [] -> rules | _ -> Datatype.String.Map.add - "user-spec" "User written ACSL specification" rules + "user-spec" "User-written ACSL specification" rules in let rules = make_rule_dictionary rules in let resources = Resources.create ~rules () in -- GitLab From 490ec6c71a2abb1c3f4a76c54eadf908311d5bbc Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 16 Jul 2020 10:24:07 +0200 Subject: [PATCH 018/255] [MdR] use report kind to set output extension --- src/plugins/markdown-report/mdr_params.ml | 30 +++++++++++++++++------ 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/plugins/markdown-report/mdr_params.ml b/src/plugins/markdown-report/mdr_params.ml index aa1f44492ed..b63ea6261a1 100644 --- a/src/plugins/markdown-report/mdr_params.ml +++ b/src/plugins/markdown-report/mdr_params.ml @@ -20,6 +20,8 @@ (* *) (**************************************************************************) +module Pervasives_string = String + include Plugin.Register( struct let name = "Markdown report" @@ -27,14 +29,6 @@ include Plugin.Register( let help = "generates a report in markdown format" end) -module Output = String( - struct - let option_name = "-mdr-out" - let arg_name = "f" - let default = "report.md" - let help = "sets the name of the output file to <f>" - end) - module Generate = String( struct let option_name = "-mdr-gen" @@ -45,6 +39,26 @@ module Generate = String( none (default), md, draft and sarif" end) +module Output : Parameter_sig.String = +struct + include String( + struct + let option_name = "-mdr-out" + let arg_name = "f" + let default = "report" + let help = "sets the name of the output file to <f>.@ \ + If <f> has no extension, it is chosen automatically based on \ + the report kind" + end) + let get () = + let s = get () in + if Pervasives_string.contains (Filename.basename s) '.' then s + else + let kind = Generate.get () in + let ext = if kind = "sarif" then ".sarif" else ".md" in + s ^ ext +end + let () = Generate.set_possible_values [ "none"; "md"; "draft"; "sarif" ] -- GitLab From 446b22467c6565d00bd5acf7df818e8efbdae16d Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 16 Jul 2020 22:28:52 +0200 Subject: [PATCH 019/255] [MdR] do not emit location in SARIF if unknown --- src/plugins/markdown-report/sarif_gen.ml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index 16c8a3644bc..b5cd461e6b0 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -98,6 +98,10 @@ let make_message alarm annot remark = in Message.create ~text ~richText () +let opt_physical_location_of_loc loc = + if loc = Cil_datatype.Location.unknown then [] + else [ Location.of_loc loc ] + let gen_results remarks = let treat_alarm _e kf s ~rank:_ alarm annot (i, rules, content) = let prop = Property.ip_of_code_annot_single kf s annot in @@ -109,7 +113,7 @@ let gen_results remarks = let level = level_of_status (Property_status.Feedback.get prop) in let remark = get_remark remarks label in let message = make_message alarm annot remark in - let locations = [ Location.of_loc (Cil_datatype.Stmt.loc s) ] in + let locations = opt_physical_location_of_loc (Cil_datatype.Stmt.loc s) in let res = Sarif_result.create ~level ~ruleId ~message ~locations () in @@ -131,7 +135,7 @@ let make_ip_message ip = let gen_status ip = let status = Property_status.Feedback.get ip in let level = level_of_status status in - let locations = [ Location.of_loc (Property.location ip) ] in + let locations = opt_physical_location_of_loc (Property.location ip) in let message = make_ip_message ip in Sarif_result.create ~level ~locations ~message () -- GitLab From eeef90a4260881a022544ff85597b92bd625e6d5 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 15 Jul 2020 13:50:40 +0200 Subject: [PATCH 020/255] [MdR] update to SARIF 2.1.0 --- src/plugins/markdown-report/sarif.ml | 137 ++++++++++++++--------- src/plugins/markdown-report/sarif_gen.ml | 27 +++-- 2 files changed, 104 insertions(+), 60 deletions(-) diff --git a/src/plugins/markdown-report/sarif.ml b/src/plugins/markdown-report/sarif.ml index 00977f9a56c..b41a31c18ac 100644 --- a/src/plugins/markdown-report/sarif.ml +++ b/src/plugins/markdown-report/sarif.ml @@ -20,7 +20,7 @@ (* *) (**************************************************************************) -(** OCaml representation for the sarif 2.0 schema. *) +(** OCaml representation for the sarif 2.1 schema. *) (** ppx_deriving_yojson generates parser and printer that are recursive by default: we must thus silence spurious let rec warning (39). *) @@ -63,17 +63,17 @@ end struct type t = string[@@deriving yojson] let sarif_github = - "https://github.com/oasis-tcs/sarif-spec/blob/master/Documents/CommitteeSpecificationDrafts/v2.0-CSD.1/sarif-schema.json" + "https://github.com/oasis-tcs/sarif-spec/blob/master/Documents/CommitteeSpecificationDrafts/v2.1.0-CSD.1/sarif-schema-2.1.0.json" end module Version: sig include Json_type with type t = private string - val v2_0_0: t + val v2_1_0: t end = struct type t = string[@@deriving yojson] - let v2_0_0 = "2.0.0" + let v2_1_0 = "2.1.0" end module Message = struct @@ -107,7 +107,7 @@ module Message = struct let default = create () end -module FileLocation = struct +module ArtifactLocation = struct type t = { uri: string; uriBaseId: (string [@default ""]) @@ -230,26 +230,26 @@ end module PhysicalLocation = struct type t = { id: (string [@default ""]); - fileLocation: FileLocation.t; + artifactLocation: ArtifactLocation.t; region: (Region.t [@default Region.default]); contextRegion: (Region.t [@default Region.default]); }[@@deriving yojson] let create ?(id = "") - ~fileLocation + ~artifactLocation ?(region = Region.default) ?(contextRegion = Region.default) () = - { id; fileLocation; region; contextRegion } + { id; artifactLocation; region; contextRegion } - let default = create ~fileLocation:FileLocation.default () + let default = create ~artifactLocation:ArtifactLocation.default () let of_loc loc = - let fileLocation = FileLocation.of_loc loc in + let artifactLocation = ArtifactLocation.of_loc loc in let region = Region.of_loc loc in - create ~fileLocation ~region () + create ~artifactLocation ~region () end @@ -356,7 +356,7 @@ end module Attachment = struct type t = { description: (Message.t [@default Message.default ]); - fileLocation: FileLocation.t; + artifactLocation: ArtifactLocation.t; regions: (Region.t list [@default []]); rectangles: (Rectangle.t list [@default []]) } [@@deriving yojson] @@ -416,7 +416,7 @@ module Notification = struct }[@@deriving yojson] end -module Tool = struct +module Driver = struct type t = { name: string; fullName: (string [@default ""]); @@ -445,7 +445,16 @@ module Tool = struct downloadUri; sarifLoggerVersion; language; properties } let default = create ~name:"" () +end + +module Tool = struct + type t = { + driver: Driver.t + }[@@deriving yojson] + let create driver = { driver; } + + let default = create Driver.default end module Invocation = struct @@ -453,7 +462,7 @@ module Invocation = struct type t = { commandLine: string; arguments: string list; - responseFiles: (FileLocation.t list [@default []]); + responseFiles: (ArtifactLocation.t list [@default []]); attachments: (Attachment.t list [@default []]); startTime: (string [@default ""]); endTime: (string [@default ""]); @@ -464,18 +473,18 @@ module Invocation = struct exitSignalName: (string [@default ""]); exitSignalNumber: (int [@default 0]); processStartFailureMessage: (string [@default ""]); - toolExecutionSuccessful: bool; + executionSuccessful: bool; machine: (string [@default ""]); account: (string [@default ""]); processId: (int [@default 0]); - executableLocation: (FileLocation.t [@default FileLocation.default]); - workingDirectory: (FileLocation.t [@default FileLocation.default]); + executableLocation: (ArtifactLocation.t [@default ArtifactLocation.default]); + workingDirectory: (ArtifactLocation.t [@default ArtifactLocation.default]); environmentVariables: (Additional_properties.t [@default Additional_properties.default]); - stdin: (FileLocation.t [@default FileLocation.default]); - stdout: (FileLocation.t [@default FileLocation.default]); - stderr: (FileLocation.t [@default FileLocation.default]); - stdoutStderr: (FileLocation.t [@default FileLocation.default]); + stdin: (ArtifactLocation.t [@default ArtifactLocation.default]); + stdout: (ArtifactLocation.t [@default ArtifactLocation.default]); + stderr: (ArtifactLocation.t [@default ArtifactLocation.default]); + stdoutStderr: (ArtifactLocation.t [@default ArtifactLocation.default]); properties: (Properties.t [@default Properties.default]); }[@@deriving yojson] @@ -493,17 +502,17 @@ module Invocation = struct ?(exitSignalName = "") ?(exitSignalNumber = 0) ?(processStartFailureMessage = "") - ?(toolExecutionSuccessful = true) + ?(executionSuccessful = true) ?(machine = "") ?(account = "") ?(processId = 0) - ?(executableLocation = FileLocation.default) - ?(workingDirectory = FileLocation.default) + ?(executableLocation = ArtifactLocation.default) + ?(workingDirectory = ArtifactLocation.default) ?(environmentVariables = Additional_properties.default) - ?(stdin = FileLocation.default) - ?(stdout = FileLocation.default) - ?(stderr = FileLocation.default) - ?(stdoutStderr = FileLocation.default) + ?(stdin = ArtifactLocation.default) + ?(stdout = ArtifactLocation.default) + ?(stderr = ArtifactLocation.default) + ?(stdoutStderr = ArtifactLocation.default) ?(properties = Properties.default) () = @@ -521,7 +530,7 @@ module Invocation = struct exitSignalName; exitSignalNumber; processStartFailureMessage; - toolExecutionSuccessful; + executionSuccessful; machine; account; processId; @@ -543,13 +552,13 @@ module Conversion = struct type t = { tool: Tool.t; invocation: (Invocation.t [@default Invocation.default]); - analysisToolLogFiles: (FileLocation.t [@default FileLocation.default]); + analysisToolLogFiles: (ArtifactLocation.t [@default ArtifactLocation.default]); } [@@deriving yojson] let default = { - tool = Tool.default; + tool = {driver = Driver.default}; invocation = Invocation.default; - analysisToolLogFiles = FileLocation.default; + analysisToolLogFiles = ArtifactLocation.default; } end @@ -656,7 +665,7 @@ end module File = struct type t = { - fileLocation: (FileLocation.t [@default FileLocation.default]); + artifactLocation: (ArtifactLocation.t [@default ArtifactLocation.default]); parentKey: (string [@default ""]); offset: (int [@default 0]); length: (int [@default 0]); @@ -670,7 +679,7 @@ module File = struct }[@@deriving yojson] let create - ?(fileLocation = FileLocation.default) + ?(artifactLocation = ArtifactLocation.default) ?(parentKey = "") ?(offset = 0) ?(length = 0) @@ -684,14 +693,14 @@ module File = struct () = { - fileLocation; parentKey; offset; length; roles; mimeType; contents; + artifactLocation; parentKey; offset; length; roles; mimeType; contents; encoding; hashes; lastModifiedTime; properties } end module FileChange = struct type t = { - fileLocation: FileLocation.t; + artifactLocation: ArtifactLocation.t; replacements: Replacement.t list }[@@deriving yojson] end @@ -705,13 +714,13 @@ end module ExternalFiles = struct type t = { - conversion: (FileLocation.t [@default FileLocation.default]); - files: (FileLocation.t [@default FileLocation.default]); - graphs: (FileLocation.t [@default FileLocation.default]); - invocations: (FileLocation.t list [@default []]); - logicalLocations: (FileLocation.t [@default FileLocation.default]); - resources: (FileLocation.t [@default FileLocation.default]); - results: (FileLocation.t [@default FileLocation.default]); + conversion: (ArtifactLocation.t [@default ArtifactLocation.default]); + files: (ArtifactLocation.t [@default ArtifactLocation.default]); + graphs: (ArtifactLocation.t [@default ArtifactLocation.default]); + invocations: (ArtifactLocation.t list [@default []]); + logicalLocations: (ArtifactLocation.t [@default ArtifactLocation.default]); + resources: (ArtifactLocation.t [@default ArtifactLocation.default]); + results: (ArtifactLocation.t [@default ArtifactLocation.default]); }[@@deriving yojson] end @@ -821,11 +830,34 @@ module Resources = struct { messageStrings; rules } end -module Result_level: +module Result_kind: sig type t = private string val notApplicable: t val pass: t + val fail: t + val review: t + val open_: t + val informational: t + + val to_yojson: t -> Yojson.Safe.t + val of_yojson: Yojson.Safe.t -> (t,string) result +end += +struct + type t = string[@@deriving yojson] + let notApplicable = "notApplicable" + let pass = "pass" + let fail = "fail" + let review = "review" + let open_ = "open" + let informational = "informational" +end + +module Result_level: +sig + type t = private string + val none: t val note: t val warning: t val error: t @@ -836,8 +868,7 @@ end = struct type t = string[@@deriving yojson] - let notApplicable = "notApplicable" - let pass = "pass" + let none = "none" let note = "note" let warning = "warning" let error = "error" @@ -875,9 +906,10 @@ end module Sarif_result = struct type t = { ruleId: (string [@default ""]); - level: (Result_level.t[@default Result_level.notApplicable]); + kind: (Result_kind.t[@default Result_kind.fail]); + level: (Result_level.t[@default Result_level.warning]); message: (Message.t [@default Message.default]); - analysisTarget: (FileLocation.t [@default FileLocation.default]); + analysisTarget: (ArtifactLocation.t [@default ArtifactLocation.default]); locations: (Location.t list [@default []]); instanceGuid: (string [@default ""]); correlationGuid: (string [@default ""]); @@ -903,9 +935,10 @@ module Sarif_result = struct let create ?(ruleId = "") - ?(level=Result_level.notApplicable) + ?(kind=Result_kind.pass) + ?(level=Result_level.none) ?(message=Message.default) - ?(analysisTarget=FileLocation.default) + ?(analysisTarget=ArtifactLocation.default) ?(locations=[]) ?(instanceGuid="") ?(correlationGuid="") @@ -927,7 +960,7 @@ module Sarif_result = struct () = { - ruleId;level; message; analysisTarget; locations; instanceGuid; + ruleId; kind; level; message; analysisTarget; locations; instanceGuid; correlationGuid; occurrenceCount; partialFingerprints; fingerprints; stacks; codeFlows; graphs; graphTraversals; relatedLocations; suppressionStates; baselineState; attachments; workItemsUris; @@ -1031,6 +1064,6 @@ module Schema = struct runs: Run.t list } [@@deriving yojson] - let create ?(schema=Uri.sarif_github) ?(version=Version.v2_0_0) ~runs () = + let create ?(schema=Uri.sarif_github) ?(version=Version.v2_1_0) ~runs () = { schema; version; runs } end diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index b5cd461e6b0..7204ae3f339 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -29,7 +29,7 @@ let frama_c_sarif = let fullName = name ^ "-" ^ version in let downloadUri = "https://frama-c.com/download.html" in Tool.create - ~name ~version ~semanticVersion ~fullName ~downloadUri () + (Driver.create ~name ~version ~semanticVersion ~fullName ~downloadUri ()) let get_remarks () = @@ -70,15 +70,25 @@ let gen_remark alarm = ] ] -let level_of_status = +let kind_of_status = let open Property_status.Feedback in - let open Sarif.Result_level in + let open Sarif.Result_kind in function | Never_tried -> notApplicable | Considered_valid | Valid | Valid_under_hyp | Valid_but_dead -> pass - | Unknown | Unknown_but_dead -> warning + | Unknown | Unknown_but_dead -> open_ + | Invalid | Invalid_under_hyp | Invalid_but_dead -> fail + | Inconsistent -> review + +let level_of_status = + let open Property_status.Feedback in + let open Sarif.Result_level in + function + | Never_tried -> none + | Considered_valid | Valid | Valid_under_hyp | Valid_but_dead -> none + | Unknown | Unknown_but_dead -> none | Invalid | Invalid_under_hyp | Invalid_but_dead -> error - | Inconsistent -> note + | Inconsistent -> none let make_message alarm annot remark = let open Markdown in @@ -110,12 +120,13 @@ let gen_results remarks = Datatype.String.Map.add ruleId (Alarms.get_description alarm) rules in let label = "Alarm-" ^ string_of_int i in + let kind = kind_of_status (Property_status.Feedback.get prop) in let level = level_of_status (Property_status.Feedback.get prop) in let remark = get_remark remarks label in let message = make_message alarm annot remark in let locations = opt_physical_location_of_loc (Cil_datatype.Stmt.loc s) in let res = - Sarif_result.create ~level ~ruleId ~message ~locations () + Sarif_result.create ~kind ~level ~ruleId ~message ~locations () in (i+1, rules, res :: content) in @@ -151,10 +162,10 @@ let gen_files () = let fname = Filepath.Normalized.to_pretty_string f in Filename.chop_extension (Filename.basename fname) in - let fileLocation = FileLocation.create ~uri:(f :> string) () in + let artifactLocation = ArtifactLocation.create ~uri:(f :> string) () in let roles = [ Role.analysisTarget ] in let mimeType = "text/x-csrc" in - key, File.create ~fileLocation ~roles ~mimeType () + key, File.create ~artifactLocation ~roles ~mimeType () in List.map add_src_file (Kernel.Files.get ()) -- GitLab From dd888597c903c99c003d37a540020879bfd043db Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Wed, 22 Jul 2020 19:14:13 +0200 Subject: [PATCH 021/255] [sarif] on the road to sarif 2.1.0 migration --- src/plugins/markdown-report/sarif.ml | 435 +++++++++++++++-------- src/plugins/markdown-report/sarif_gen.ml | 28 +- 2 files changed, 297 insertions(+), 166 deletions(-) diff --git a/src/plugins/markdown-report/sarif.ml b/src/plugins/markdown-report/sarif.ml index b41a31c18ac..0a778905e0f 100644 --- a/src/plugins/markdown-report/sarif.ml +++ b/src/plugins/markdown-report/sarif.ml @@ -32,6 +32,15 @@ module type Json_type = sig val to_yojson: t -> Yojson.Safe.t end +module Json_string: Json_type with type t = string = +struct + type t = string + let of_yojson = function + | `String s -> Ok s + | _ -> Error "string" + let to_yojson s = `String s +end + module Json_dictionary(J: Json_type): Json_type with type t = (string * J.t) list = struct @@ -55,6 +64,8 @@ struct `Assoc json_l end +module JsonStringDictionary = Json_dictionary(Json_string) + module Uri: sig include Json_type with type t = private string val sarif_github:t @@ -124,13 +135,80 @@ module ArtifactLocation = struct create ~uri () end -module FileContent = struct +module ArtifactLocationDictionary = Json_dictionary(ArtifactLocation) + +module Custom_properties = + Json_dictionary(struct + type t = Yojson.Safe.t + let of_yojson x = Ok x + let to_yojson x = x + end) + +module Properties = struct + type tags = string list [@@deriving yojson] + + type t = { + tags: tags; + additional_properties: Custom_properties.t + } + + let default = { tags = []; additional_properties = [] } + + let create additional_properties = + let tags = List.map fst additional_properties in + { tags; additional_properties } + + let of_yojson = function + | `Null -> Ok default + | `Assoc l -> + (match List.assoc_opt "tags" l with + | None -> Error "properties" + | Some json -> + (match tags_of_yojson json with + | Ok tags -> + let additional_properties = List.remove_assoc "tags" l in + Ok { tags; additional_properties } + | Error loc -> Error ("properties." ^ loc))) + | _ -> Error "properties" + + let to_yojson { tags; additional_properties } = + match tags with + | [] -> `Null + | _ -> `Assoc (("tags", tags_to_yojson tags)::additional_properties) +end + +module MultiformatMessageString = struct + type t = { + text: string; + markdown: (string [@default ""]); + properties: (Properties.t [@default Properties.default]) + }[@@deriving yojson] + + let create ~text ?(markdown="") ?(properties=Properties.default) () = + { text; markdown; properties } + + let default = create ~text:"default" () +end + +module MultiformatMessageStringDictionary = + Json_dictionary(MultiformatMessageString) + +module ArtifactContent = struct type t = - | Text of string [@name "text"] - | Binary of string [@name "binary"] + { text: (string [@default ""]); + binary: (string [@default ""]); + rendered: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + properties: (Properties.t [@default Properties.default]) + } [@@deriving yojson] - let default = Text "" + let create ?(text="") ?(binary="") + ?(rendered=MultiformatMessageString.default) + ?(properties=Properties.default) () = + { text; binary; rendered; properties } + + let default = create () end module Region = struct @@ -143,7 +221,7 @@ module Region = struct charLength: (int [@default 0]); byteOffset: (int [@default 0]); byteLength: (int [@default 0]); - snippet: (FileContent.t [@default FileContent.default]); + snippet: (ArtifactContent.t [@default ArtifactContent.default]); message: (Message.t [@default Message.default]) }[@@deriving yojson] @@ -156,7 +234,7 @@ module Region = struct ?(charLength = 0) ?(byteOffset = 0) ?(byteLength = 0) - ?(snippet = FileContent.default) + ?(snippet = ArtifactContent.default) ?(message = Message.default) () = @@ -187,46 +265,6 @@ module Rectangle = struct [@@deriving yojson] end -module Custom_properties = - Json_dictionary(struct - type t = Yojson.Safe.t - let of_yojson x = Ok x - let to_yojson x = x - end) - -module Properties = struct - type tags = string list [@@deriving yojson] - - type t = { - tags: tags; - additional_properties: Custom_properties.t - } - - let default = { tags = []; additional_properties = [] } - - let create additional_properties = - let tags = List.map fst additional_properties in - { tags; additional_properties } - - let of_yojson = function - | `Null -> Ok default - | `Assoc l -> - (match List.assoc_opt "tags" l with - | None -> Error "properties" - | Some json -> - (match tags_of_yojson json with - | Ok tags -> - let additional_properties = List.remove_assoc "tags" l in - Ok { tags; additional_properties } - | Error loc -> Error ("properties." ^ loc))) - | _ -> Error "properties" - - let to_yojson { tags; additional_properties } = - match tags with - | [] -> `Null - | _ -> `Assoc (("tags", tags_to_yojson tags)::additional_properties) -end - module PhysicalLocation = struct type t = { id: (string [@default ""]); @@ -659,42 +697,47 @@ end module Replacement = struct type t = { deletedRegion: Region.t; - insertedContent: (FileContent.t [@default FileContent.default]) + insertedContent: (ArtifactContent.t [@default ArtifactContent.default]) }[@@deriving yojson] end -module File = struct +module Artifact = struct type t = { - artifactLocation: (ArtifactLocation.t [@default ArtifactLocation.default]); - parentKey: (string [@default ""]); + description: (Message.t [@default Message.default]); + location: (ArtifactLocation.t [@default ArtifactLocation.default]); + parentIndex: (int [@default -1]); offset: (int [@default 0]); - length: (int [@default 0]); + length: (int [@default -1]); roles: (Role.t list [@default []]); mimeType: (string [@default ""]); - contents: (FileContent.t [@default FileContent.default]); + contents: (ArtifactContent.t [@default ArtifactContent.default]); encoding: (string [@default ""]); - hashes: (Hash.t list [@default []]); - lastModifiedTime: (string [@default ""]); + sourceLanguage: (string [@default ""]); + hashes: (JsonStringDictionary.t [@default []]); + lastModifiedTimeUtc: (string [@default ""]); properties: (Properties.t [@default Properties.default]); }[@@deriving yojson] let create - ?(artifactLocation = ArtifactLocation.default) - ?(parentKey = "") + ?(description = Message.default) + ?(location = ArtifactLocation.default) + ?(parentIndex = -1) ?(offset = 0) - ?(length = 0) + ?(length = -1) ?(roles = []) ?(mimeType = "") - ?(contents = FileContent.default) + ?(contents = ArtifactContent.default) ?(encoding = "") + ?(sourceLanguage = "") ?(hashes = []) - ?(lastModifiedTime = "") + ?(lastModifiedTimeUtc = "") ?(properties = Properties.default) () = { - artifactLocation; parentKey; offset; length; roles; mimeType; contents; - encoding; hashes; lastModifiedTime; properties + description; location; parentIndex; offset; length; roles; mimeType; + contents; encoding; sourceLanguage; hashes; lastModifiedTimeUtc; + properties } end @@ -737,97 +780,139 @@ end module RuleConfigLevel: sig include Json_type with type t = private string + val cl_none: t val cl_note: t val cl_warning: t val cl_error: t - val cl_open: t end = struct type t = string [@@deriving yojson] + let cl_none = "none" let cl_note = "note" let cl_warning = "warning" let cl_error = "error" - let cl_open = "open" end -module RuleConfiguration = struct +module ReportingConfiguration = struct type t = { enabled: (bool [@default false]); - defaultLevel: (RuleConfigLevel.t [@default RuleConfigLevel.cl_open]); - parameters: (Properties.t [@default Properties.default]) + defaultLevel: (RuleConfigLevel.t [@default RuleConfigLevel.cl_none]); + rank: (int [@default -1]); + parameters: (Properties.t [@default Properties.default]); + properties: (Properties.t [@default Properties.default]); }[@@deriving yojson] let default = { enabled = false; - defaultLevel = RuleConfigLevel.cl_open; + defaultLevel = RuleConfigLevel.cl_none; + rank = -1; parameters = Properties.default; + properties = Properties.default; } end -module Rule = struct +module ToolComponentReference =struct +type t = { + name: (string [@default ""]); + index: (int [@default -1]); + guid: (string [@default ""]); + properties: (Properties.t [@default Properties.default]); +}[@@deriving yojson] + +let create + ?(name="") ?(index = -1) ?(guid = "") ?(properties=Properties.default) () = + { name; index; guid; properties } + +let default = create () + +end + +module ReportingDescriptorReference = +struct type t = { id: (string [@default ""]); - name: (string [@default ""]); - shortDescription: (Message.t [@default Message.default]); - fullDescription: (Message.t [@default Message.default]); - messageStrings: - (Additional_properties.t [@default Additional_properties.default]); - richMessageStrings: - (Additional_properties.t [@default Additional_properties.default]); - configuration: (RuleConfiguration.t [@default RuleConfiguration.default]); - helpUri: (string [@default ""]); + index: (int [@default -1]); + guid: (string [@default ""]); + toolComponent: + (ToolComponentReference.t [@default ToolComponentReference.default]); properties: (Properties.t [@default Properties.default]); }[@@deriving yojson] - let default = { - id = ""; - name = ""; - shortDescription = Message.default; - fullDescription = Message.default; - messageStrings = Additional_properties.default; - richMessageStrings = Additional_properties.default; - configuration = RuleConfiguration.default; - helpUri = ""; - properties = Properties.default; - } - let create - ~id - ?(name="") - ?(shortDescription=Message.default) - ?(fullDescription=Message.default) - ?(messageStrings=Additional_properties.default) - ?(richMessageStrings=Additional_properties.default) - ?(configuration=RuleConfiguration.default) - ?(helpUri="") - ?(properties=Properties.default) - () - = - { id; name; shortDescription; fullDescription; messageStrings; - richMessageStrings; configuration; helpUri; properties } + ?(id="") ?(index = -1) ?(guid="") + ?(toolComponent=ToolComponentReference.default) + ?(properties=Properties.default) () = + { id; index; guid; toolComponent; properties } + let default = create () end -module Rule_dictionary = Json_dictionary(Rule) +module ReportingDescriptorRelationship = struct + type t = { + target: ReportingDescriptorReference.t; + kinds: (string list [@default ["relevant"]]); + description: (Message.t [@default Message.default]); + properties: (Properties.t [@default Properties.default]); + }[@@deriving yojson] + + let create + ~target + ?(kinds=["relevant"]) + ?(description=Message.default) + ?(properties=Properties.default) () = + { target; kinds; description; properties } -module Resources = struct + let default = create ~target:ReportingDescriptorReference.default () +end + +module ReportingDescriptor = struct type t = { + id: string; + deprecatedIds: (string list [@default []]); + guid: (string [@default ""]); + deprecatedGuids: (string list [@default []]); + name: (string [@default ""]); + deprecatedNames: (string list [@default []]); + shortDescription: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + fullDescription: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); messageStrings: - (Additional_properties.t [@default Additional_properties.default]); - rules: (Rule_dictionary.t [@default []]); + (MultiformatMessageStringDictionary.t [@default []]); + defaultConfiguration: + (ReportingConfiguration.t [@default ReportingConfiguration.default]); + helpUri: (string [@default ""]); + help: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + relationships: + (ReportingDescriptorRelationship.t list [@default []]); + properties: (Properties.t [@default Properties.default]); }[@@deriving yojson] - let default = { - messageStrings = Additional_properties.default; - rules = [] } - let create - ?(messageStrings=Additional_properties.default) - ?(rules=[]) + ~id + ?(deprecatedIds=[]) + ?(guid="") + ?(deprecatedGuids=[]) + ?(name="") + ?(deprecatedNames=[]) + ?(shortDescription=MultiformatMessageString.default) + ?(fullDescription=MultiformatMessageString.default) + ?(messageStrings=[]) + ?(defaultConfiguration=ReportingConfiguration.default) + ?(helpUri="") + ?(help=MultiformatMessageString.default) + ?(relationships=[]) + ?(properties=Properties.default) () = - { messageStrings; rules } + { id; deprecatedIds; guid; deprecatedGuids; name; deprecatedNames; + shortDescription; fullDescription; messageStrings; + defaultConfiguration; helpUri; help; relationships; properties } + + let default = create ~id:"id" () + end module Result_kind: @@ -979,10 +1064,6 @@ module VersionControlDetails = struct }[@@deriving yojson] end -module File_dictionary = Json_dictionary(File) - -module LogicalLocation_dictionary = Json_dictionary(LogicalLocation) - module ColumnKind: sig include Json_type with type t = private string val utf16CodeUnits: t @@ -995,65 +1076,117 @@ struct let unicodeCodePoints = "unicodeCodePoints" end +module RunAutomationDetails = struct + type t = unit [@@deriving yojson] + let default = () +end + +module ExternalPropertyFileReferences = struct + type t = unit [@@deriving yojson] + let default = () +end + +module ToolComponent = struct + type t = unit [@@deriving yojson] + let create () = () + let default = () +end + +module Address = struct + type t = unit [@@deriving yojson] + let default = [] +end + +module WebRequest = struct + type t = unit [@@deriving yojson] +end + +module WebResponse = struct + type t = unit [@@deriving yojson] +end + +module SpecialLocations = struct + type t = unit [@@deriving yojson] + let default = () +end + module Run = struct type t = { tool: Tool.t; invocations: (Invocation.t list [@default []]); conversion: (Conversion.t [@default Conversion.default]); + language: (string [@default "en-US"]); versionControlProvenance: (VersionControlDetails.t list [@default []]); originalUriBaseIds: - (Additional_properties.t [@default Additional_properties.default]); - files: (File_dictionary.t [@default []]); - logicalLocations: (LogicalLocation_dictionary.t [@default []]); - graphs: (Graph_dictionary.t [@default []]); + (ArtifactLocationDictionary.t [@default []]); + artifacts: (Artifact.t list [@default []]); + logicalLocations: (LogicalLocation.t list [@default []]); + graphs: (Graph.t list [@default []]); results: (Sarif_result.t list [@default []]); - resources: (Resources.t [@default Resources.default]); - instanceGuid: (string [@default ""]); - correlationGuid: (string [@default ""]); - logicalId: (string [@default ""]); - description: (Message.t [@default Message.default]); - automationLogicalId: (string [@default ""]); - baselineInstanceGuid: (string [@default ""]); - architecture: (string [@default ""]); - richMessageMimeType: (string [@default "text/markdown;variant=GFM" ]); - redactionToken: (string [@default ""]); - defaultFileEncoding: (string [@default "utf-8"]); + automationDetails: + (RunAutomationDetails.t [@default RunAutomationDetails.default]); + runAggregates: (RunAutomationDetails.t list [@default []]); + baselineGuid: (string [@default ""]); + redactionToken: (string list [@default []]); + defaultEncoding: (string [@default "utf-8"]); + defaultSourceLanguage: (string [@default ""]); + newlineSequences: (string list [@default ["\r\n"; "\n"]]); columnKind: (ColumnKind.t [@default ColumnKind.unicodeCodePoints]); + externalPropertyFileReferences: + (ExternalPropertyFileReferences.t + [@default ExternalPropertyFileReferences.default]); + threadFlowLocations: (ThreadFlowLocation.t list [@default []]); + taxonomies: (ToolComponent.t list [@default []]); + addresses: (Address.t list [@default []]); + translations: (ToolComponent.t list [@default []]); + policies: (ToolComponent.t list [@default[]]); + webRequests: (WebRequest.t list [@default[]]); + webResponses: (WebResponse.t list [@default[]]); + specialLocations: (SpecialLocations.t [@default SpecialLocations.default]); properties: (Properties.t [@default Properties.default]); } [@@deriving yojson] let create ~tool - ~invocations + ?(invocations=[]) ?(conversion=Conversion.default) + ?(language="en-US") ?(versionControlProvenance=[]) - ?(originalUriBaseIds=Additional_properties.default) - ?(files=[]) + ?(originalUriBaseIds=[]) + ?(artifacts=[]) ?(logicalLocations=[]) ?(graphs=[]) ?(results=[]) - ?(resources=Resources.default) - ?(instanceGuid="") - ?(correlationGuid="") - ?(logicalId="") - ?(description=Message.default) - ?(automationLogicalId="") - ?(baselineInstanceGuid="") - ?(architecture="") - ?(richMessageMimeType="text/markdown;variant=GFM") - ?(redactionToken="") - ?(defaultFileEncoding="utf-8") + ?(automationDetails=RunAutomationDetails.default) + ?(runAggregates=[]) + ?(baselineGuid="") + ?(redactionToken=[]) + ?(defaultEncoding="utf-8") + ?(defaultSourceLanguage="C") + ?(newlineSequences=["\r\n"; "\n"]) ?(columnKind=ColumnKind.unicodeCodePoints) + ?(externalPropertyFileReferences=ExternalPropertyFileReferences.default) + ?(threadFlowLocations=[]) + ?(taxonomies=[]) + ?(addresses=[]) + ?(translations=[]) + ?(policies=[]) + ?(webRequests=[]) + ?(webResponses=[]) + ?(specialLocations=SpecialLocations.default) ?(properties=Properties.default) () = { - tool; invocations; conversion; versionControlProvenance; originalUriBaseIds; - files; logicalLocations; graphs; results; resources; instanceGuid; - correlationGuid; logicalId; description; automationLogicalId; - baselineInstanceGuid; architecture; richMessageMimeType; - redactionToken; defaultFileEncoding; columnKind; properties + tool; invocations; conversion; versionControlProvenance; + language; originalUriBaseIds; + artifacts; logicalLocations; graphs; results; + automationDetails; runAggregates; baselineGuid; redactionToken; + defaultEncoding; defaultSourceLanguage; newlineSequences; columnKind; + externalPropertyFileReferences; threadFlowLocations; taxonomies; + addresses; translations; policies; webRequests; webResponses; + specialLocations; properties; } end diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index 7204ae3f339..7c47c507a1a 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -156,26 +156,23 @@ let gen_statuses () = in List.rev (Property_status.fold f []) -let gen_files () = +let gen_artifacts () = let add_src_file f = - let key = - let fname = Filepath.Normalized.to_pretty_string f in - Filename.chop_extension (Filename.basename fname) - in - let artifactLocation = ArtifactLocation.create ~uri:(f :> string) () in + let uri = (f:Filepath.Normalized.t :> string) in + let location = ArtifactLocation.create ~uri () in let roles = [ Role.analysisTarget ] in let mimeType = "text/x-csrc" in - key, File.create ~artifactLocation ~roles ~mimeType () + Artifact.create ~location ~roles ~mimeType () in List.map add_src_file (Kernel.Files.get ()) let add_rule id desc l = let text = desc ^ "." in - let shortDescription = Message.plain_text ~text () in - let rule = Rule.create ~id ~shortDescription () in - (id, rule) :: l + let shortDescription = MultiformatMessageString.create ~text () in + let rule = ReportingDescriptor.create ~id ~shortDescription () in + rule :: l -let make_rule_dictionary rules = Datatype.String.Map.fold add_rule rules [] +let make_taxonomies rules = Datatype.String.Map.fold add_rule rules [] let gen_run remarks = let tool = frama_c_sarif in @@ -189,11 +186,12 @@ let gen_run remarks = Datatype.String.Map.add "user-spec" "User-written ACSL specification" rules in - let rules = make_rule_dictionary rules in - let resources = Resources.create ~rules () in + let rules = make_taxonomies rules in + ignore(rules); + let taxonomies = [ToolComponent.create (* ~rules*) ()] in let results = results @ user_annot_results in - let files = gen_files () in - Run.create ~tool ~invocations ~results ~resources ~files () + let artifacts = gen_artifacts () in + Run.create ~tool ~invocations ~results ~taxonomies ~artifacts () let generate () = let remarks = get_remarks () in -- GitLab From 9890f9d77c8d0b468a0df775405ec06c27db158e Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 28 Jul 2020 18:44:25 +0200 Subject: [PATCH 022/255] [sarif] continue upgrade to SARIF 2.1 --- src/plugins/markdown-report/sarif.ml | 254 +++++++++++++++++++++-- src/plugins/markdown-report/sarif_gen.ml | 5 +- 2 files changed, 243 insertions(+), 16 deletions(-) diff --git a/src/plugins/markdown-report/sarif.ml b/src/plugins/markdown-report/sarif.ml index 0a778905e0f..14a2488859b 100644 --- a/src/plugins/markdown-report/sarif.ml +++ b/src/plugins/markdown-report/sarif.ml @@ -1077,37 +1077,265 @@ struct end module RunAutomationDetails = struct - type t = unit [@@deriving yojson] - let default = () + type t = { + description: (Message.t [@default Message.default]); + id: (string [@default ""]); + guid: (string [@default ""]); + correlationGuid: (string [@default ""]); + properties: (Properties.t [@default Properties.default]); + } [@@deriving yojson] + + let create + ?(description=Message.default) ?(id="") ?(guid="") ?(correlationGuid="") + ?(properties=Properties.default) () = + { description; id; guid; correlationGuid; properties } + + let default = create () end module ExternalPropertyFileReferences = struct - type t = unit [@@deriving yojson] - let default = () + type t = { + location: (ArtifactLocation.t [@default ArtifactLocation.default]); + guid: (string [@default ""]); + itemCount: (int [@default -1]); + properties: (Properties.t [@default Properties.default]); + } [@@deriving yojson] + + let create + ?(location = ArtifactLocation.default) + ?(guid = "") + ?(itemCount = -1) + ?(properties = Properties.default) + () = + { location; guid; itemCount; properties } + + let default = create () +end + +module TranslationMetadata = struct + type t = { + name: (string [@default ""]); + fullName: (string [@default ""]); + shortDescription: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + fullDescription: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + downloadUri: (string [@default ""]); + informationUri: (string [@default ""]); + properties: (Properties.t [@default Properties.default]); + } [@@deriving yojson] + + let create + ~name + ?(fullName = "") + ?(shortDescription = MultiformatMessageString.default) + ?(fullDescription = MultiformatMessageString.default) + ?(downloadUri = "") + ?(informationUri = "") + ?(properties = Properties.default) + () + = + { name; fullName; shortDescription; fullDescription; + downloadUri; informationUri; properties } + + let default = create ~name:"" () end module ToolComponent = struct - type t = unit [@@deriving yojson] - let create () = () - let default = () + module Contents: sig + include Json_type with type t = private string + val localizedData: t + val nonLocalizedData: t + end = struct + type t = string [@@deriving yojson] + let localizedData = "localizedData" + let nonLocalizedData = "nonLocalizedData" + end + type t = { + guid: (string [@default ""]); + name: (string [@default ""]); + organization: (string [@default ""]); + product: (string [@default ""]); + productSuite: (string [@default ""]); + shortDescription: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + fullDescription: + (MultiformatMessageString.t [@default MultiformatMessageString.default]); + fullName: (string [@default ""]); + version: (string [@default ""]); + semanticVersion: (string [@default ""]); + dottedQuadFileVersion: (string [@default ""]); + releaseDateUtc: (string [@default ""]); + downloadUri: (string [@default ""]); + informationUri: (string [@default ""]); + globalMessageStrings: (MultiformatMessageStringDictionary.t [@default []]); + notifications: (ReportingDescriptor.t list [@default []]); + rules: (ReportingDescriptor.t list [@default []]); + taxa: (ReportingDescriptor.t list [@default []]); + locations: (ArtifactLocation.t list [@default []]); + language: (string [@default "en-US"]); + contents: (Contents.t list [@default []]); + isComprehensive: (bool [@default false]); + localizedDataSemanticVersion: (string [@default ""]); + minimumRequiredLocalizedDataSemanticVersion: (string [@default ""]); + associateComponent: + (ToolComponentReference.t [@default ToolComponentReference.default]); + translationMetadata: + (TranslationMetadata.t [@default TranslationMetadata.default]); + supportedTaxonomies: (ToolComponentReference.t list [@default []]); + properties: (Properties.t [@default Properties.default]); + }[@@deriving yojson] + let create + ?(guid="") + ~name + ?(organization="") + ?(product="") + ?(productSuite="") + ?(shortDescription=MultiformatMessageString.default) + ?(fullDescription=MultiformatMessageString.default) + ?(fullName="") + ?(version="") + ?(semanticVersion="") + ?(dottedQuadFileVersion="") + ?(releaseDateUtc="") + ?(downloadUri="") + ?(informationUri="") + ?(globalMessageStrings=[]) + ?(notifications=[]) + ?(rules=[]) + ?(taxa=[]) + ?(locations=[]) + ?(language="en-US") + ?(contents=[Contents.nonLocalizedData]) + ?(isComprehensive=false) + ?(localizedDataSemanticVersion="") + ?(minimumRequiredLocalizedDataSemanticVersion="") + ?(associateComponent=ToolComponentReference.default) + ?(translationMetadata=TranslationMetadata.default) + ?(supportedTaxonomies=[]) + ?(properties=Properties.default) + () + = + { guid; name; organization; product; productSuite; shortDescription; + fullDescription; fullName; version; semanticVersion; + dottedQuadFileVersion; releaseDateUtc; downloadUri; informationUri; + globalMessageStrings; notifications; rules; taxa; locations; language; + contents; isComprehensive; localizedDataSemanticVersion; + minimumRequiredLocalizedDataSemanticVersion; + associateComponent; translationMetadata; supportedTaxonomies; properties } + let default = create ~name:"" () end module Address = struct - type t = unit [@@deriving yojson] - let default = [] + type t = { + absoluteAddress: (int [@default -1]); + relativeAddress: (int [@default 0]); + length: (int [@default 0]); + kind: (string [@default ""]); + name: (string [@default ""]); + fullyQualifiedName: (string [@default ""]); + offsetFromParent: (int [@default 0]); + index: (int [@default -1]); + parentIndex: (int [@default -1]); + properties: (Properties.t [@default Properties.default]); + } [@@deriving yojson] + + let create + ?(absoluteAddress = -1) + ?(relativeAddress = 0) + ?(length = 0) + ?(kind = "") + ?(name = "") + ?(fullyQualifiedName = "") + ?(offsetFromParent = 0) + ?(index = -1) + ?(parentIndex = -1) + ?(properties = Properties.default) + () + = + { absoluteAddress; relativeAddress; length; kind; name; + fullyQualifiedName; offsetFromParent; index; parentIndex; properties } + + let default = create () end module WebRequest = struct - type t = unit [@@deriving yojson] + type t = { + index: (int [@default -1]); + protocol: (string [@default ""]); + version: (string [@default ""]); + target: (string [@default ""]); + method_: (string [@default ""]) [@key "method"]; + headers: (JsonStringDictionary.t [@default []]); + parameters: (JsonStringDictionary.t [@default []]); + body: (ArtifactContent.t [@default ArtifactContent.default]); + properties: (Properties.t [@default Properties.default]); + } [@@deriving yojson] + + let create + ?(index = -1) + ?(protocol = "") + ?(version = "") + ?(target = "") + ?(method_ = "") + ?(headers = []) + ?(parameters = []) + ?(body = ArtifactContent.default) + ?(properties = Properties.default) + () + = + { index; protocol; version; target; method_; headers; parameters; + body; properties } + + let default = create () + end module WebResponse = struct - type t = unit [@@deriving yojson] + type t = { + index: (int [@default -1]); + protocol: (string [@default ""]); + version: (string [@default ""]); + statusCode: (int [@default 0]); + reasonPhrase: (string [@default ""]); + headers: (JsonStringDictionary.t [@default []]); + body: (ArtifactContent.t [@default ArtifactContent.default]); + noResponseReceived: (bool [@default false]); + properties: (Properties.t [@default Properties.default]); + } [@@deriving yojson] + + let create + ?(index = -1) + ?(protocol = "") + ?(version = "") + ?(statusCode = 0) + ?(reasonPhrase = "") + ?(headers = []) + ?(body = ArtifactContent.default) + ?(noResponseReceived = false) + ?(properties = Properties.default) + () + = + { index; protocol; version; statusCode; reasonPhrase; + headers; body; noResponseReceived; properties } + + let default = create () + end module SpecialLocations = struct - type t = unit [@@deriving yojson] - let default = () + type t = { + displayBase: (ArtifactLocation.t [@default ArtifactLocation.default]); + properties: (Properties.t [@default Properties.default]) + } [@@deriving yojson] + let create + ?(displayBase = ArtifactLocation.default) + ?(properties = Properties.default) + () + = + { displayBase; properties } + + let default = create () end module Run = struct diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index 7c47c507a1a..d3633e8e8aa 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -31,7 +31,6 @@ let frama_c_sarif = Tool.create (Driver.create ~name ~version ~semanticVersion ~fullName ~downloadUri ()) - let get_remarks () = let f = Mdr_params.Remarks.get () in if f <> "" then Parse_remarks.get_remarks f @@ -176,6 +175,7 @@ let make_taxonomies rules = Datatype.String.Map.fold add_rule rules [] let gen_run remarks = let tool = frama_c_sarif in + let name = "frama-c" in let invocations = [gen_invocation ()] in let rules, results = gen_results remarks in let user_annot_results = gen_statuses () in @@ -187,8 +187,7 @@ let gen_run remarks = "user-spec" "User-written ACSL specification" rules in let rules = make_taxonomies rules in - ignore(rules); - let taxonomies = [ToolComponent.create (* ~rules*) ()] in + let taxonomies = [ToolComponent.create ~name ~rules ()] in let results = results @ user_annot_results in let artifacts = gen_artifacts () in Run.create ~tool ~invocations ~results ~taxonomies ~artifacts () -- GitLab From ce3714266336822a6142dea831537dbe7a6bab3d Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Wed, 29 Jul 2020 08:48:52 +0200 Subject: [PATCH 023/255] lint --- src/plugins/markdown-report/sarif.ml | 156 +++++++++++++-------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/src/plugins/markdown-report/sarif.ml b/src/plugins/markdown-report/sarif.ml index 14a2488859b..32c557b9c6e 100644 --- a/src/plugins/markdown-report/sarif.ml +++ b/src/plugins/markdown-report/sarif.ml @@ -813,18 +813,18 @@ module ReportingConfiguration = struct end module ToolComponentReference =struct -type t = { - name: (string [@default ""]); - index: (int [@default -1]); - guid: (string [@default ""]); - properties: (Properties.t [@default Properties.default]); -}[@@deriving yojson] + type t = { + name: (string [@default ""]); + index: (int [@default -1]); + guid: (string [@default ""]); + properties: (Properties.t [@default Properties.default]); + }[@@deriving yojson] -let create - ?(name="") ?(index = -1) ?(guid = "") ?(properties=Properties.default) () = - { name; index; guid; properties } + let create + ?(name="") ?(index = -1) ?(guid = "") ?(properties=Properties.default) () = + { name; index; guid; properties } -let default = create () + let default = create () end @@ -1102,11 +1102,11 @@ module ExternalPropertyFileReferences = struct } [@@deriving yojson] let create - ?(location = ArtifactLocation.default) - ?(guid = "") - ?(itemCount = -1) - ?(properties = Properties.default) - () = + ?(location = ArtifactLocation.default) + ?(guid = "") + ?(itemCount = -1) + ?(properties = Properties.default) + () = { location; guid; itemCount; properties } let default = create () @@ -1186,35 +1186,35 @@ module ToolComponent = struct properties: (Properties.t [@default Properties.default]); }[@@deriving yojson] let create - ?(guid="") - ~name - ?(organization="") - ?(product="") - ?(productSuite="") - ?(shortDescription=MultiformatMessageString.default) - ?(fullDescription=MultiformatMessageString.default) - ?(fullName="") - ?(version="") - ?(semanticVersion="") - ?(dottedQuadFileVersion="") - ?(releaseDateUtc="") - ?(downloadUri="") - ?(informationUri="") - ?(globalMessageStrings=[]) - ?(notifications=[]) - ?(rules=[]) - ?(taxa=[]) - ?(locations=[]) - ?(language="en-US") - ?(contents=[Contents.nonLocalizedData]) - ?(isComprehensive=false) - ?(localizedDataSemanticVersion="") - ?(minimumRequiredLocalizedDataSemanticVersion="") - ?(associateComponent=ToolComponentReference.default) - ?(translationMetadata=TranslationMetadata.default) - ?(supportedTaxonomies=[]) - ?(properties=Properties.default) - () + ?(guid="") + ~name + ?(organization="") + ?(product="") + ?(productSuite="") + ?(shortDescription=MultiformatMessageString.default) + ?(fullDescription=MultiformatMessageString.default) + ?(fullName="") + ?(version="") + ?(semanticVersion="") + ?(dottedQuadFileVersion="") + ?(releaseDateUtc="") + ?(downloadUri="") + ?(informationUri="") + ?(globalMessageStrings=[]) + ?(notifications=[]) + ?(rules=[]) + ?(taxa=[]) + ?(locations=[]) + ?(language="en-US") + ?(contents=[Contents.nonLocalizedData]) + ?(isComprehensive=false) + ?(localizedDataSemanticVersion="") + ?(minimumRequiredLocalizedDataSemanticVersion="") + ?(associateComponent=ToolComponentReference.default) + ?(translationMetadata=TranslationMetadata.default) + ?(supportedTaxonomies=[]) + ?(properties=Properties.default) + () = { guid; name; organization; product; productSuite; shortDescription; fullDescription; fullName; version; semanticVersion; @@ -1241,17 +1241,17 @@ module Address = struct } [@@deriving yojson] let create - ?(absoluteAddress = -1) - ?(relativeAddress = 0) - ?(length = 0) - ?(kind = "") - ?(name = "") - ?(fullyQualifiedName = "") - ?(offsetFromParent = 0) - ?(index = -1) - ?(parentIndex = -1) - ?(properties = Properties.default) - () + ?(absoluteAddress = -1) + ?(relativeAddress = 0) + ?(length = 0) + ?(kind = "") + ?(name = "") + ?(fullyQualifiedName = "") + ?(offsetFromParent = 0) + ?(index = -1) + ?(parentIndex = -1) + ?(properties = Properties.default) + () = { absoluteAddress; relativeAddress; length; kind; name; fullyQualifiedName; offsetFromParent; index; parentIndex; properties } @@ -1273,16 +1273,16 @@ module WebRequest = struct } [@@deriving yojson] let create - ?(index = -1) - ?(protocol = "") - ?(version = "") - ?(target = "") - ?(method_ = "") - ?(headers = []) - ?(parameters = []) - ?(body = ArtifactContent.default) - ?(properties = Properties.default) - () + ?(index = -1) + ?(protocol = "") + ?(version = "") + ?(target = "") + ?(method_ = "") + ?(headers = []) + ?(parameters = []) + ?(body = ArtifactContent.default) + ?(properties = Properties.default) + () = { index; protocol; version; target; method_; headers; parameters; body; properties } @@ -1305,16 +1305,16 @@ module WebResponse = struct } [@@deriving yojson] let create - ?(index = -1) - ?(protocol = "") - ?(version = "") - ?(statusCode = 0) - ?(reasonPhrase = "") - ?(headers = []) - ?(body = ArtifactContent.default) - ?(noResponseReceived = false) - ?(properties = Properties.default) - () + ?(index = -1) + ?(protocol = "") + ?(version = "") + ?(statusCode = 0) + ?(reasonPhrase = "") + ?(headers = []) + ?(body = ArtifactContent.default) + ?(noResponseReceived = false) + ?(properties = Properties.default) + () = { index; protocol; version; statusCode; reasonPhrase; headers; body; noResponseReceived; properties } @@ -1329,9 +1329,9 @@ module SpecialLocations = struct properties: (Properties.t [@default Properties.default]) } [@@deriving yojson] let create - ?(displayBase = ArtifactLocation.default) - ?(properties = Properties.default) - () + ?(displayBase = ArtifactLocation.default) + ?(properties = Properties.default) + () = { displayBase; properties } -- GitLab From 726be74cce3d35c496d89e082a82c9af6551af88 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 28 Aug 2020 08:32:56 +0200 Subject: [PATCH 024/255] sample program results passes Sarif 2.1.0 validation --- src/plugins/markdown-report/sarif.ml | 66 ++++++++++++------------ src/plugins/markdown-report/sarif_gen.ml | 10 ++-- 2 files changed, 39 insertions(+), 37 deletions(-) diff --git a/src/plugins/markdown-report/sarif.ml b/src/plugins/markdown-report/sarif.ml index 32c557b9c6e..e50d9262a43 100644 --- a/src/plugins/markdown-report/sarif.ml +++ b/src/plugins/markdown-report/sarif.ml @@ -87,37 +87,6 @@ struct let v2_1_0 = "2.1.0" end -module Message = struct - type t = { - text: (string [@default ""]); - messageId: (string [@default ""]); - richText: (string [@default ""]); - richMessageId: (string [@default ""]); - arguments: (string list [@default []]); - }[@@deriving yojson] - - let create - ?(text="") - ?(messageId="") - ?(richText="") - ?(richMessageId="") - ?(arguments=[]) - () - = - { text; messageId; richText; richMessageId; arguments } - - let plain_text ~text ?id:messageId ?arguments () = - create ~text ?messageId ?arguments () - - let markdown ~markdown ?id:richMessageId ?arguments () = - let pp fmt = Markdown.pp_elements fmt in - let richText = String.trim (Format.asprintf "@[%a@]" pp markdown) - in - create ~richText ?richMessageId ?arguments () - - let default = create () -end - module ArtifactLocation = struct type t = { uri: string; @@ -177,6 +146,37 @@ module Properties = struct | _ -> `Assoc (("tags", tags_to_yojson tags)::additional_properties) end +module Message = struct + type t = { + text: (string [@default ""]); + id: (string [@default ""]); + markdown: (string [@default ""]); + arguments: (string list [@default []]); + properties: (Properties.t [@default Properties.default]); + }[@@deriving yojson] + + let create + ?(text="") + ?(id="") + ?(markdown="") + ?(arguments=[]) + ?(properties=Properties.default) + () + = + { text; id; markdown; arguments; properties } + + let plain_text ~text ?id ?arguments () = + create ~text ?id ?arguments () + + let markdown ~markdown ?id ?arguments () = + let pp fmt = Markdown.pp_elements fmt in + let markdown = String.trim (Format.asprintf "@[%a@]" pp markdown) + in + create ~markdown ?id ?arguments () + + let default = create () +end + module MultiformatMessageString = struct type t = { text: string; @@ -1019,7 +1019,7 @@ module Sarif_result = struct }[@@deriving yojson] let create - ?(ruleId = "") + ~ruleId ?(kind=Result_kind.pass) ?(level=Result_level.none) ?(message=Message.default) @@ -1420,7 +1420,7 @@ end module Schema = struct type t = { - schema: (Uri.t [@default Uri.sarif_github]) [@key "$schema"]; + schema: Uri.t [@key "$schema"]; version: Version.t; runs: Run.t list } [@@deriving yojson] diff --git a/src/plugins/markdown-report/sarif_gen.ml b/src/plugins/markdown-report/sarif_gen.ml index d3633e8e8aa..278073346ff 100644 --- a/src/plugins/markdown-report/sarif_gen.ml +++ b/src/plugins/markdown-report/sarif_gen.ml @@ -101,11 +101,11 @@ let make_message alarm annot remark = | [] -> summary :: gen_remark alarm | _ -> summary :: remark in - let richText = + let markdown = String.trim (Format.asprintf "@[%a@]" (Markdown.pp_elements ~page:"") markdown) in - Message.create ~text ~richText () + Message.create ~text ~markdown () let opt_physical_location_of_loc loc = if loc = Cil_datatype.Location.unknown then [] @@ -142,12 +142,14 @@ let make_ip_message ip = let text = Format.asprintf "@[%a.@]" Property.short_pretty ip in Message.plain_text ~text () +let user_annot_id = "user-spec" + let gen_status ip = let status = Property_status.Feedback.get ip in let level = level_of_status status in let locations = opt_physical_location_of_loc (Property.location ip) in let message = make_ip_message ip in - Sarif_result.create ~level ~locations ~message () + Sarif_result.create ~ruleId:user_annot_id ~level ~locations ~message () let gen_statuses () = let f ip content = @@ -184,7 +186,7 @@ let gen_run remarks = | [] -> rules | _ -> Datatype.String.Map.add - "user-spec" "User-written ACSL specification" rules + user_annot_id "User-written ACSL specification" rules in let rules = make_taxonomies rules in let taxonomies = [ToolComponent.create ~name ~rules ()] in -- GitLab From 7da89554af46f144c8dc6c24abed036d8974eae8 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Wed, 26 Aug 2020 14:05:14 +0200 Subject: [PATCH 025/255] [eacsl] Fix file indentations --- .Makefile.lint | 7 - .../e-acsl/src/analyses/mmodel_analysis.ml | 382 +++++++++--------- src/plugins/e-acsl/src/analyses/rte.ml | 10 +- .../src/code_generator/at_with_lscope.ml | 241 +++++------ .../src/code_generator/at_with_lscope.mli | 6 +- .../e-acsl/src/code_generator/temporal.ml | 191 ++++----- .../e-acsl/src/code_generator/temporal.mli | 4 +- 7 files changed, 422 insertions(+), 419 deletions(-) diff --git a/.Makefile.lint b/.Makefile.lint index 80fb691a837..06c49f05b54 100644 --- a/.Makefile.lint +++ b/.Makefile.lint @@ -344,10 +344,3 @@ ML_LINT_KO+=src/plugins/variadic/standard.ml ML_LINT_KO+=src/plugins/variadic/translate.ml ML_LINT_KO+=src/plugins/variadic/va_build.ml ML_LINT_KO+=src/plugins/variadic/va_types.mli -ML_LINT_KO+=src/plugins/e-acsl/src/analyses/mmodel_analysis.ml -ML_LINT_KO+=src/plugins/e-acsl/src/analyses/rte.ml -ML_LINT_KO+=src/plugins/e-acsl/src/code_generator/at_with_lscope.ml -ML_LINT_KO+=src/plugins/e-acsl/src/code_generator/at_with_lscope.mli -ML_LINT_KO+=src/plugins/e-acsl/src/code_generator/temporal.ml -ML_LINT_KO+=src/plugins/e-acsl/src/code_generator/temporal.mli - diff --git a/src/plugins/e-acsl/src/analyses/mmodel_analysis.ml b/src/plugins/e-acsl/src/analyses/mmodel_analysis.ml index c480e318b76..db85a8c4c96 100644 --- a/src/plugins/e-acsl/src/analyses/mmodel_analysis.ml +++ b/src/plugins/e-acsl/src/analyses/mmodel_analysis.ml @@ -138,11 +138,11 @@ end = struct try Kernel_function.Hashtbl.iter (fun _ h -> - Stmt.Hashtbl.iter - (fun _ set -> match set with - | None -> () - | Some s -> if not (Varinfo.Hptset.is_empty s) then raise Exit) - h) + Stmt.Hashtbl.iter + (fun _ set -> match set with + | None -> () + | Some s -> if not (Varinfo.Hptset.is_empty s) then raise Exit) + h) tbl; true with Exit -> @@ -162,7 +162,7 @@ let reset () = module rec Transfer : Dataflow.BackwardsTransfer with type t = Varinfo.Hptset.t option - = struct += struct let name = "E_ACSL.Pre_analysis" @@ -217,8 +217,8 @@ module rec Transfer let rec base_addr_node = function | Lval lv | AddrOf lv | StartOf lv -> (match lv with - | Var vi, _ -> Some vi - | Mem e, _ -> base_addr e) + | Var vi, _ -> Some vi + | Mem e, _ -> base_addr e) | BinOp((PlusPI | IndexPI | MinusPI), e1, e2, _) -> if is_ptr_or_array_exp e1 then base_addr e1 else begin @@ -227,7 +227,7 @@ module rec Transfer end | Info(e, _) | CastE(_, e) -> base_addr e | BinOp((MinusPP | PlusA | MinusA | Mult | Div | Mod |Shiftlt | Shiftrt - | Lt | Gt | Le | Ge | Eq | Ne | BAnd | BXor | BOr | LAnd | LOr), + | Lt | Gt | Le | Ge | Eq | Ne | BAnd | BXor | BOr | LAnd | LOr), _, _, _) | UnOp _ | Const _ | SizeOf _ | SizeOfE _ | SizeOfStr _ | AlignOf _ | AlignOfE _ -> @@ -314,20 +314,20 @@ module rec Transfer register_term kf varinfos t2 | TBinOp((PlusPI | IndexPI | MinusPI), t1, t2) -> (match t1.term_type with - | Ctype ty when is_ptr_or_array ty -> register_term kf varinfos t1 - | _ -> - match t2.term_type with - | Ctype ty when is_ptr_or_array ty -> register_term kf varinfos t2 - | _ -> - if Misc.is_set_of_ptr_or_array t1.term_type || - Misc.is_set_of_ptr_or_array t2.term_type then - (* Occurs for example from: - \valid(&multi_dynamic[2..4][1..7]) - where multi_dynamic has been dynamically allocated *) - let varinfos = register_term kf varinfos t1 in - register_term kf varinfos t2 - else - assert false) + | Ctype ty when is_ptr_or_array ty -> register_term kf varinfos t1 + | _ -> + match t2.term_type with + | Ctype ty when is_ptr_or_array ty -> register_term kf varinfos t2 + | _ -> + if Misc.is_set_of_ptr_or_array t1.term_type || + Misc.is_set_of_ptr_or_array t2.term_type then + (* Occurs for example from: + \valid(&multi_dynamic[2..4][1..7]) + where multi_dynamic has been dynamically allocated *) + let varinfos = register_term kf varinfos t1 in + register_term kf varinfos t2 + else + assert false) | TConst _ | TSizeOf _ | TSizeOfE _ | TSizeOfStr _ | TAlignOf _ | TAlignOfE _ | Tnull | Ttype _ | TUnOp _ | TBinOp _ -> varinfos @@ -359,73 +359,73 @@ module rec Transfer let register_object kf state_ref = object inherit Visitor.frama_c_inplace method !vpredicate_node = function - | Pvalid(_, t) | Pvalid_read(_, t) - | Pobject_pointer(_, t) | Pvalid_function t - | Pinitialized(_, t) | Pfreeable(_, t) -> - (* Options.feedback "REGISTER %a" Cil.d_term t;*) - state_ref := register_term kf !state_ref t; - Cil.DoChildren - | Pallocable _ -> Error.not_yet "\\allocable" - | Pfresh _ -> Error.not_yet "\\fresh" - | Pseparated _ -> Error.not_yet "\\separated" - | Pdangling _ -> Error.not_yet "\\dangling" - | Ptrue | Pfalse | Papp _ | Prel _ - | Pand _ | Por _ | Pxor _ | Pimplies _ | Piff _ | Pnot _ | Pif _ - | Pforall _ | Pexists _ | Pat _ -> - Cil.DoChildren - | Plet(li, _) -> - if may_alias li then Error.not_yet "let-binding on array or pointer" - else begin - state_ref := register_term kf !state_ref (Misc.term_of_li li); + | Pvalid(_, t) | Pvalid_read(_, t) + | Pobject_pointer(_, t) | Pvalid_function t + | Pinitialized(_, t) | Pfreeable(_, t) -> + (* Options.feedback "REGISTER %a" Cil.d_term t;*) + state_ref := register_term kf !state_ref t; Cil.DoChildren - end + | Pallocable _ -> Error.not_yet "\\allocable" + | Pfresh _ -> Error.not_yet "\\fresh" + | Pseparated _ -> Error.not_yet "\\separated" + | Pdangling _ -> Error.not_yet "\\dangling" + | Ptrue | Pfalse | Papp _ | Prel _ + | Pand _ | Por _ | Pxor _ | Pimplies _ | Piff _ | Pnot _ | Pif _ + | Pforall _ | Pexists _ | Pat _ -> + Cil.DoChildren + | Plet(li, _) -> + if may_alias li then Error.not_yet "let-binding on array or pointer" + else begin + state_ref := register_term kf !state_ref (Misc.term_of_li li); + Cil.DoChildren + end method !vterm term = match term.term_node with - | Tbase_addr(_, t) | Toffset(_, t) | Tblock_length(_, t) | Tlet(_, t) -> - state_ref := register_term kf !state_ref t; - Cil.DoChildren - | TConst _ | TSizeOf _ | TSizeOfStr _ | TAlignOf _ | Tnull | Ttype _ - | Tempty_set -> - (* no left-value inside inside: skip for efficiency *) - Cil.SkipChildren - | TUnOp _ | TBinOp _ | Ttypeof _ | TSizeOfE _ - | TLval _ | TAlignOfE _ | TCastE _ | TAddrOf _ - | TStartOf _ | Tapp _ | Tlambda _ | TDataCons _ | Tif _ | Tat _ - | TUpdate _ | Tunion _ | Tinter _ - | Tcomprehension _ | Trange _ | TLogic_coerce _ -> - (* potential sub-term inside *) - Cil.DoChildren + | Tbase_addr(_, t) | Toffset(_, t) | Tblock_length(_, t) | Tlet(_, t) -> + state_ref := register_term kf !state_ref t; + Cil.DoChildren + | TConst _ | TSizeOf _ | TSizeOfStr _ | TAlignOf _ | Tnull | Ttype _ + | Tempty_set -> + (* no left-value inside inside: skip for efficiency *) + Cil.SkipChildren + | TUnOp _ | TBinOp _ | Ttypeof _ | TSizeOfE _ + | TLval _ | TAlignOfE _ | TCastE _ | TAddrOf _ + | TStartOf _ | Tapp _ | Tlambda _ | TDataCons _ | Tif _ | Tat _ + | TUpdate _ | Tunion _ | Tinter _ + | Tcomprehension _ | Trange _ | TLogic_coerce _ -> + (* potential sub-term inside *) + Cil.DoChildren method !vlogic_label _ = Cil.SkipChildren method !vterm_lhost = function - | TMem t -> - (* potential RTE *) - state_ref := register_term kf !state_ref t; - Cil.DoChildren - | TVar _ | TResult _ -> - Cil.SkipChildren + | TMem t -> + (* potential RTE *) + state_ref := register_term kf !state_ref t; + Cil.DoChildren + | TVar _ | TResult _ -> + Cil.SkipChildren end -let register_predicate kf pred state = - let state_ref = ref state in - Error.handle - (fun () -> - ignore - (Visitor.visitFramacIdPredicate (register_object kf state_ref) pred)) - (); - !state_ref + let register_predicate kf pred state = + let state_ref = ref state in + Error.handle + (fun () -> + ignore + (Visitor.visitFramacIdPredicate (register_object kf state_ref) pred)) + (); + !state_ref let register_code_annot kf a state = let state_ref = ref state in Error.handle (fun () -> - ignore - (Visitor.visitFramacCodeAnnotation (register_object kf state_ref) a)) + ignore + (Visitor.visitFramacCodeAnnotation (register_object kf state_ref) a)) (); !state_ref - let rec do_init vi init state = match init with - | SingleInit e -> handle_assignment state (Var vi, NoOffset) e - | CompoundInit(_, l) -> - List.fold_left (fun state (_, init) -> do_init vi init state) state l + let rec do_init vi init state = match init with + | SingleInit e -> handle_assignment state (Var vi, NoOffset) e + | CompoundInit(_, l) -> + List.fold_left (fun state (_, init) -> do_init vi init state) state l let register_initializers state = let do_one vi init state = match init.init with @@ -433,9 +433,9 @@ let register_predicate kf pred state = | Some init -> do_init vi init state in Globals.Vars.fold_in_file_rev_order do_one state -(* below: compatibility with Fluorine *) -(* let l = Globals.Vars.fold_in_file_order (fun v i l -> (v, i) :: l) [] in - List.fold_left (fun state (v, i) -> do_one v i state) state l*) + (* below: compatibility with Fluorine *) + (* let l = Globals.Vars.fold_in_file_order (fun v i l -> (v, i) :: l) [] in + List.fold_left (fun state (v, i) -> do_one v i state) state l*) (** The (backwards) transfer function for a branch. The [(Cil.CurrentLoc.get ())] is set before calling this. If it returns None, then we have some @@ -447,59 +447,63 @@ let register_predicate kf pred state = let is_last = Kernel_function.is_return_stmt kf stmt in Dataflow.Post (fun state -> - let state = Env.default_varinfos state in - let state = - if Functions.check kf then - let state = - if (is_first || is_last) && Functions.RTL.is_generated_kf kf then - Annotations.fold_behaviors - (fun _ bhv s -> - let handle_annot test f s = - if test then - f - (fun _ p s -> register_predicate kf p s) - kf - bhv.b_name + let state = Env.default_varinfos state in + let state = + if Functions.check kf then + let state = + if (is_first || is_last) && Functions.RTL.is_generated_kf kf then + Annotations.fold_behaviors + (fun _ bhv s -> + let handle_annot test f s = + if test then + f + (fun _ p s -> register_predicate kf p s) + kf + bhv.b_name + s + else s - else - s - in - let s = handle_annot is_first Annotations.fold_requires s in - let s = handle_annot is_first Annotations.fold_assumes s in - handle_annot - is_last - (fun f -> - Annotations.fold_ensures (fun e (_, p) -> f e p)) s) - kf - state - else - state - in - let state = - Annotations.fold_code_annot - (fun _ -> register_code_annot kf) stmt state - in - if stmt.ghost then - let rtes = Rte.stmt kf stmt in - List.fold_left - (fun state a -> register_code_annot kf a state) state rtes - else - state - else (* not (Options.Functions.check kf): do not monitor [kf] *) - state - in - let state = - (* take initializers into account *) - if is_first then - let main, lib = Globals.entry_point () in - if Kernel_function.equal kf main && not lib then - register_initializers state - else - state - else - state - in - Some state) + in + let s = + handle_annot is_first Annotations.fold_requires s + in + let s = + handle_annot is_first Annotations.fold_assumes s + in + handle_annot + is_last + (fun f -> + Annotations.fold_ensures (fun e (_, p) -> f e p)) s) + kf + state + else + state + in + let state = + Annotations.fold_code_annot + (fun _ -> register_code_annot kf) stmt state + in + if stmt.ghost then + let rtes = Rte.stmt kf stmt in + List.fold_left + (fun state a -> register_code_annot kf a state) state rtes + else + state + else (* not (Options.Functions.check kf): do not monitor [kf] *) + state + in + let state = + (* take initializers into account *) + if is_first then + let main, lib = Globals.entry_point () in + if Kernel_function.equal kf main && not lib then + register_initializers state + else + state + else + state + in + Some state) let do_call res f args state = let kf = Globals.Functions.get f in @@ -512,11 +516,11 @@ let register_predicate kf pred state = let init = List.fold_left2 (fun acc p a -> match base_addr a with - | None -> acc - | Some vi -> - if Varinfo.Hptset.mem vi state - then Varinfo.Hptset.add p acc - else acc) + | None -> acc + | Some vi -> + if Varinfo.Hptset.mem vi state + then Varinfo.Hptset.add p acc + else acc) state params args @@ -536,10 +540,10 @@ let register_predicate kf pred state = corresponding formals must be kept *) List.fold_left2 (fun acc p a -> match base_addr a with - | None -> acc - | Some vi -> - if Varinfo.Hptset.mem p state then Varinfo.Hptset.add vi acc - else acc) + | None -> acc + | Some vi -> + if Varinfo.Hptset.mem p state then Varinfo.Hptset.add vi acc + else acc) state params args @@ -589,19 +593,19 @@ let register_predicate kf pred state = do_call (Some (Cil.var v)) f args state | Call(result, f_exp, l, _) -> (match f_exp.enode with - | Lval(Var vi, NoOffset) -> do_call result vi l state - | _ -> - Options.warning ~current:true - "function pointers may introduce too limited instrumentation."; -(* imprecise function call: keep each argument *) - Dataflow.Done - (Some - (List.fold_left - (fun acc e -> match base_addr e with - | None -> acc - | Some vi -> Varinfo.Hptset.add vi acc) - state - l))) + | Lval(Var vi, NoOffset) -> do_call result vi l state + | _ -> + Options.warning ~current:true + "function pointers may introduce too limited instrumentation."; + (* imprecise function call: keep each argument *) + Dataflow.Done + (Some + (List.fold_left + (fun acc e -> match base_addr e with + | None -> acc + | Some vi -> Varinfo.Hptset.add vi acc) + state + l))) | Asm _ -> Error.not_yet "asm" | Skip _ | Code_annot _ -> Dataflow.Default @@ -633,23 +637,25 @@ end = struct if is_init then Extlib.may (fun set -> - List.iter - (fun s -> - let old = - try Extlib.the (Stmt.Hashtbl.find tbl s) - with Not_found -> assert false - in - Stmt.Hashtbl.replace - tbl - s - (Some (Varinfo.Hptset.union set old))) - returns) + List.iter + (fun s -> + let old = + try Extlib.the (Stmt.Hashtbl.find tbl s) + with Not_found -> assert false + in + Stmt.Hashtbl.replace + tbl + s + (Some (Varinfo.Hptset.union set old))) + returns) init_set else begin List.iter (fun s -> Stmt.Hashtbl.add tbl s None) stmts; Extlib.may (fun set -> - List.iter (fun s -> Stmt.Hashtbl.replace tbl s (Some set)) returns) + List.iter + (fun s -> Stmt.Hashtbl.replace tbl s (Some set)) + returns) init_set end; D.compute stmts @@ -665,12 +671,12 @@ end = struct else try let stmt = Kernel_function.find_first_stmt kf in -(* Options.feedback "GETTING %a" Kernel_function.pretty kf;*) + (* Options.feedback "GETTING %a" Kernel_function.pretty kf;*) let tbl = if Env.mem_init kf init then try Env.find kf with Not_found -> assert false else begin - (* WARN: potentially incorrect in case of recursive call *) + (* WARN: potentially incorrect in case of recursive call *) Env.add_init kf init; Env.apply (compute init) kf end @@ -691,16 +697,18 @@ let consolidated_must_model_vi vi = Env.consolidated_mem vi else begin Options.feedback ~level:2 "performing pre-analysis for minimal memory \ -instrumentation."; + instrumentation."; (try let main, _ = Globals.entry_point () in let set = Compute.get main in Env.consolidate set with Globals.No_such_entry_point s -> - Options.warning ~once:true "%s@ \ -@[The generated program may miss memory instrumentation@ \ -if there are memory-related annotations.@]" - s); + Options.warning + ~once:true + "%s@ \ + @[The generated program may miss memory instrumentation@ \ + if there are memory-related annotations.@]" + s); Options.feedback ~level:2 "pre-analysis done."; Env.consolidated_mem vi end @@ -715,24 +723,24 @@ let must_model_vi ?kf ?stmt vi = TODO: could be optimized though *) consolidated_must_model_vi vi (* match stmt, kf with - | None, _ -> consolidated_must_model_vi vi - | Some _, None -> + | None, _ -> consolidated_must_model_vi vi + | Some _, None -> assert false - | Some stmt, Some kf -> + | Some stmt, Some kf -> if not (Env.is_consolidated ()) then ignore (consolidated_must_model_vi vi); try let tbl = Env.find kf in try -let set = Stmt.Hashtbl.find tbl stmt in -Varinfo.Hptset.mem vi (Env.default_varinfos set) + let set = Stmt.Hashtbl.find tbl stmt in + Varinfo.Hptset.mem vi (Env.default_varinfos set) with Not_found -> -(* new statement *) -consolidated_must_model_vi vi + (* new statement *) + consolidated_must_model_vi vi with Not_found -> (* [kf] is dead code *) false - *) +*) let rec apply_on_vi_base_from_lval f ?kf ?stmt = function | Var vi, _ -> f ?kf ?stmt vi @@ -748,7 +756,7 @@ and apply_on_vi_base_from_exp f ?kf ?stmt e = match e.enode with || apply_on_vi_base_from_exp f ?kf ?stmt e2 | Info(e, _) | CastE(_, e) -> apply_on_vi_base_from_exp f ?kf ?stmt e | BinOp((PlusA | MinusA | Mult | Div | Mod |Shiftlt | Shiftrt | Lt | Gt | Le - | Ge | Eq | Ne | BAnd | BXor | BOr | LAnd | LOr), _, _, _) + | Ge | Eq | Ne | BAnd | BXor | BOr | LAnd | LOr), _, _, _) | Const _ -> (* possible in case of static address *) false | UnOp _ | SizeOf _ | SizeOfE _ | SizeOfStr _ | AlignOf _ | AlignOfE _ -> Options.fatal "[pre_analysis] unexpected expression %a" Exp.pretty e @@ -777,20 +785,20 @@ let must_never_monitor_exp ?kf ?stmt lv = let must_model_vi ?kf ?stmt vi = not (must_never_monitor vi) && - (Options.Full_mmodel.get () - || Error.generic_handle (must_model_vi ?kf ?stmt) false vi) + (Options.Full_mmodel.get () + || Error.generic_handle (must_model_vi ?kf ?stmt) false vi) let must_model_lval ?kf ?stmt lv = not (must_never_monitor_lval ?kf ?stmt lv) && - (Options.Full_mmodel.get () - || Error.generic_handle (must_model_lval ?kf ?stmt) false lv) + (Options.Full_mmodel.get () + || Error.generic_handle (must_model_lval ?kf ?stmt) false lv) let must_model_exp ?kf ?stmt exp = not (must_never_monitor_exp ?kf ?stmt exp) && - (Options.Full_mmodel.get () - || Error.generic_handle (must_model_exp ?kf ?stmt) false exp) + (Options.Full_mmodel.get () + || Error.generic_handle (must_model_exp ?kf ?stmt) false exp) let use_model () = not (Env.is_empty ()) diff --git a/src/plugins/e-acsl/src/analyses/rte.ml b/src/plugins/e-acsl/src/analyses/rte.ml index 96a1afbb988..9305eff3a55 100644 --- a/src/plugins/e-acsl/src/analyses/rte.ml +++ b/src/plugins/e-acsl/src/analyses/rte.ml @@ -27,7 +27,7 @@ let warn_rte warn exn = if warn then Options.warning "@[@[cannot run RTE:@ %s.@]@ \ -Ignoring potential runtime errors in annotations." + Ignoring potential runtime errors in annotations." (Printexc.to_string exn) (* ************************************************************************** *) @@ -45,8 +45,8 @@ let stmt ?(warn=true) = (let module L = Datatype.List(Code_annotation) in L.ty)) with Failure _ | Dynamic.Unbound_value _ | Dynamic.Incompatible_type _ as exn -> - warn_rte warn exn; - fun _ _ -> [] + warn_rte warn exn; + fun _ _ -> [] let exp ?(warn=true) = try @@ -57,8 +57,8 @@ let exp ?(warn=true) = (let module L = Datatype.List(Code_annotation) in L.ty)) with Failure _ | Dynamic.Unbound_value _ | Dynamic.Incompatible_type _ as exn -> - warn_rte warn exn; - fun _ _ _ -> [] + warn_rte warn exn; + fun _ _ _ -> [] (* Local Variables: diff --git a/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml b/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml index 040c83991ed..fe974d215cd 100644 --- a/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml +++ b/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml @@ -39,8 +39,8 @@ let term_to_exp_ref (*****************************************************************************) (* Remove all the bindings for [kf]. [Cil_datatype.Kf.Hashtbl] does not - provide the [remove_all] function. Thus we need to keep calling [remove] - until all entries are removed. *) + provide the [remove_all] function. Thus we need to keep calling [remove] + until all entries are removed. *) let rec remove_all tbl kf = if Cil_datatype.Kf.Hashtbl.mem tbl kf then begin Cil_datatype.Kf.Hashtbl.remove tbl kf; @@ -66,10 +66,10 @@ end (**************************************************************************) (* Builds the terms [t_size] and [t_shifted] from each - [Lvs_quantif(tmin, lv, tmax)] from [lscope] - where [t_size = tmax - tmin + (-1|0|1)] depending on whether the + [Lvs_quantif(tmin, lv, tmax)] from [lscope] + where [t_size = tmax - tmin + (-1|0|1)] depending on whether the inequalities are strict or large - and [t_shifted = lv - tmin + (-1|0)] (so that we start indexing at 0) *) + and [t_shifted = lv - tmin + (-1|0)] (so that we start indexing at 0) *) let rec sizes_and_shifts_from_quantifs ~loc kf lscope sizes_and_shifts = match lscope with | [] -> @@ -97,29 +97,29 @@ let rec sizes_and_shifts_from_quantifs ~loc kf lscope sizes_and_shifts = in let iv = Interval.(extract_ival (infer t_size)) in (* The EXACT amount of memory that is needed can be known at runtime. This - is because the tightest bounds for the variables can be known at runtime. - Example: In the following predicate + is because the tightest bounds for the variables can be known at runtime. + Example: In the following predicate [\exists integer u; 9 <= u <= 13 && \forall integer v; -5 < v <= (u <= 11 ? u + 6 : u - 9) ==> \at(u + v > 0, K)] the upper bound [M] for [v] depends on [u]. In chronological order, [M] equals to 15, 16, 17, 3 and 4. Thus the tightest upper bound for [v] is [max(M)=17]. - HOWEVER, computing that exact information requires extra nested loops, - prior to the [malloc] stmts, that will try all the possible values of the - variables involved in the bounds. - Instead of sacrificing time over memory (by performing these extra - computations), we consider that sacrificing memory over time is more - beneficial. In particular, though we may allocate more memory than - needed, the number of reads/writes into it is the same in both cases. - Conclusion: over-approximate [t_size] *) + HOWEVER, computing that exact information requires extra nested loops, + prior to the [malloc] stmts, that will try all the possible values of the + variables involved in the bounds. + Instead of sacrificing time over memory (by performing these extra + computations), we consider that sacrificing memory over time is more + beneficial. In particular, though we may allocate more memory than + needed, the number of reads/writes into it is the same in both cases. + Conclusion: over-approximate [t_size] *) let t_size = match Ival.min_and_max iv with | _, Some max -> Logic_const.tint ~loc max | _, None -> Error.not_yet "\\at on purely logic variables and with quantifier that uses \ - too complex bound (E-ACSL cannot infer a finite upper bound to it)" + too complex bound (E-ACSL cannot infer a finite upper bound to it)" in (* Index *) let t_lv = Logic_const.tvar ~loc lv in @@ -148,13 +148,13 @@ let rec sizes_and_shifts_from_quantifs ~loc kf lscope sizes_and_shifts = let size_from_sizes_and_shifts ~loc = function | [] -> (* No quantified variable. But still need to allocate [1*sizeof(_)] amount - of memory to store purely logic variables that are NOT quantified - (example: from \let). *) + of memory to store purely logic variables that are NOT quantified + (example: from \let). *) Cil.lone ~loc () | (size, _) :: sizes_and_shifts -> List.fold_left (fun t_size (t_s, _) -> - Logic_const.term ~loc (TBinOp(Mult, t_size, t_s)) Linteger) + Logic_const.term ~loc (TBinOp(Mult, t_size, t_s)) Linteger) size sizes_and_shifts @@ -171,35 +171,35 @@ let lval_at_index ~loc kf env (e_at, vi_at, t_index) = lval_at_index, env (* Associate to each possible tuple of quantifiers - a unique index from the set {n | 0 <= n < n_max}. - That index will serve to identify the memory location where the evaluation - of the term/predicate is stored for the given tuple of quantifier. - The following gives the smallest set of such indexes (hence we use the - smallest amount of memory in some respect): - To (t_shifted_n, t_shifted_n-1, ..., t_shifted_1) - where 0 <= t_shifted_i < beta_i - corresponds: \sum_{i=1}^n( t_shifted_i * \pi_{j=1}^{i-1}(beta_j) ) *) + a unique index from the set {n | 0 <= n < n_max}. + That index will serve to identify the memory location where the evaluation + of the term/predicate is stored for the given tuple of quantifier. + The following gives the smallest set of such indexes (hence we use the + smallest amount of memory in some respect): + To (t_shifted_n, t_shifted_n-1, ..., t_shifted_1) + where 0 <= t_shifted_i < beta_i + corresponds: \sum_{i=1}^n( t_shifted_i * \pi_{j=1}^{i-1}(beta_j) ) *) let index_from_sizes_and_shifts ~loc sizes_and_shifts = let product terms = List.fold_left - (fun product t -> - Logic_const.term ~loc (TBinOp(Mult, product, t)) Linteger) - (Cil.lone ~loc ()) - terms + (fun product t -> + Logic_const.term ~loc (TBinOp(Mult, product, t)) Linteger) + (Cil.lone ~loc ()) + terms in let sum, _ = List.fold_left - (fun (index, sizes) (t_size, t_shifted) -> - let pi_beta_j = product sizes in - let bi_mult_pi_beta_j = - Logic_const.term ~loc (TBinOp(Mult, t_shifted, pi_beta_j)) Linteger - in - let sum = Logic_const.term - ~loc - (TBinOp(PlusA, bi_mult_pi_beta_j, index)) - Linteger - in - sum, t_size :: sizes) - (Cil.lzero ~loc (), []) - sizes_and_shifts + (fun (index, sizes) (t_size, t_shifted) -> + let pi_beta_j = product sizes in + let bi_mult_pi_beta_j = + Logic_const.term ~loc (TBinOp(Mult, t_shifted, pi_beta_j)) Linteger + in + let sum = Logic_const.term + ~loc + (TBinOp(PlusA, bi_mult_pi_beta_j, index)) + Linteger + in + sum, t_size :: sizes) + (Cil.lzero ~loc (), []) + sizes_and_shifts in sum @@ -225,62 +225,63 @@ let to_exp ~loc kf env pot label = in (* Creating the pointer *) let ty = match pot with - | Lscope.PoT_pred _ -> - Cil.intType - | Lscope.PoT_term t -> - begin match Typing.get_number_ty t with - | Typing.(C_integer _ | C_float _ | Nan) -> - Typing.get_typ t - | Typing.(Rational | Real) -> - Error.not_yet "\\at on purely logic variables and over real type" - | Typing.Gmpz -> - Error.not_yet "\\at on purely logic variables and over gmp type" - end + | Lscope.PoT_pred _ -> + Cil.intType + | Lscope.PoT_term t -> + begin match Typing.get_number_ty t with + | Typing.(C_integer _ | C_float _ | Nan) -> + Typing.get_typ t + | Typing.(Rational | Real) -> + Error.not_yet "\\at on purely logic variables and over real type" + | Typing.Gmpz -> + Error.not_yet "\\at on purely logic variables and over gmp type" + end in let ty_ptr = TPtr(ty, []) in let vi_at, e_at, env = Env.new_var - ~loc - ~name:"at" - ~scope:Varname.Function - env - kf - None - ty_ptr - (fun vi e -> - (* Handle [malloc] and [free] stmts *) - let lty_sizeof = Ctype Cil.(theMachine.typeOfSizeOf) in - let t_sizeof = Logic_const.term ~loc (TSizeOf ty) lty_sizeof in - let t_size = size_from_sizes_and_shifts ~loc sizes_and_shifts in - let t_size = - Logic_const.term ~loc (TBinOp(Mult, t_sizeof, t_size)) lty_sizeof - in - Typing.type_term ~use_gmp_opt:false t_size; - let malloc_stmt = match Typing.get_number_ty t_size with - | Typing.C_integer IInt -> - let e_size, _ = term_to_exp kf env t_size in - let e_size = Cil.constFold false e_size in - let malloc_stmt = - Constructor.mk_lib_call ~loc - ~result:(Cil.var vi) - "malloc" - [ e_size ] - in - malloc_stmt - | Typing.(C_integer _ | C_float _ | Gmpz) -> - Error.not_yet - "\\at on purely logic variables that needs to allocate \ - too much memory (bigger than int_max bytes)" - | Typing.(Rational | Real | Nan) -> - Error.not_yet "quantification over non-integer type" - in - let free_stmt = Constructor.mk_lib_call ~loc "free" [e] in - (* The list of stmts returned by the current closure are inserted - LOCALLY to the block where the new var is FIRST used, whatever scope - is indicated to [Env.new_var]. - Thus we need to add [malloc] and [free] through dedicated functions. *) - Malloc.add kf malloc_stmt; - Free.add kf free_stmt; - []) + ~loc + ~name:"at" + ~scope:Varname.Function + env + kf + None + ty_ptr + (fun vi e -> + (* Handle [malloc] and [free] stmts *) + let lty_sizeof = Ctype Cil.(theMachine.typeOfSizeOf) in + let t_sizeof = Logic_const.term ~loc (TSizeOf ty) lty_sizeof in + let t_size = size_from_sizes_and_shifts ~loc sizes_and_shifts in + let t_size = + Logic_const.term ~loc (TBinOp(Mult, t_sizeof, t_size)) lty_sizeof + in + Typing.type_term ~use_gmp_opt:false t_size; + let malloc_stmt = match Typing.get_number_ty t_size with + | Typing.C_integer IInt -> + let e_size, _ = term_to_exp kf env t_size in + let e_size = Cil.constFold false e_size in + let malloc_stmt = + Constructor.mk_lib_call ~loc + ~result:(Cil.var vi) + "malloc" + [ e_size ] + in + malloc_stmt + | Typing.(C_integer _ | C_float _ | Gmpz) -> + Error.not_yet + "\\at on purely logic variables that needs to allocate \ + too much memory (bigger than int_max bytes)" + | Typing.(Rational | Real | Nan) -> + Error.not_yet "quantification over non-integer type" + in + let free_stmt = Constructor.mk_lib_call ~loc "free" [e] in + (* The list of stmts returned by the current closure are inserted + LOCALLY to the block where the new var is FIRST used, whatever scope + is indicated to [Env.new_var]. + Thus we need to add [malloc] and [free] through dedicated functions. + *) + Malloc.add kf malloc_stmt; + Free.add kf free_stmt; + []) in (* Index *) let t_index = index_from_sizes_and_shifts ~loc sizes_and_shifts in @@ -301,28 +302,28 @@ let to_exp ~loc kf env pot label = Env.pop_and_get env storing_stmt ~global_clear:false Env.After in (* We CANNOT return [block.bstmts] because it does NOT contain - variable declarations. *) + variable declarations. *) [ Constructor.mk_block_stmt block ], env | Lscope.PoT_term t -> begin match Typing.get_number_ty t with - | Typing.(C_integer _ | C_float _ | Nan) -> - let env = Env.push env in - let lval, env = lval_at_index ~loc kf env (e_at, vi_at, t_index) in - let e, env = term_to_exp kf env t in - let e = Cil.constFold false e in - let storing_stmt = - Constructor.mk_assigns ~loc ~result:lval e - in - let block, env = - Env.pop_and_get env storing_stmt ~global_clear:false Env.After - in - (* We CANNOT return [block.bstmts] because it does NOT contain - variable declarations. *) - [ Constructor.mk_block_stmt block ], env - | Typing.(Rational | Real) -> - Error.not_yet "\\at on purely logic variables and over real type" - | Typing.Gmpz -> - Error.not_yet "\\at on purely logic variables and over gmp type" + | Typing.(C_integer _ | C_float _ | Nan) -> + let env = Env.push env in + let lval, env = lval_at_index ~loc kf env (e_at, vi_at, t_index) in + let e, env = term_to_exp kf env t in + let e = Cil.constFold false e in + let storing_stmt = + Constructor.mk_assigns ~loc ~result:lval e + in + let block, env = + Env.pop_and_get env storing_stmt ~global_clear:false Env.After + in + (* We CANNOT return [block.bstmts] because it does NOT contain + variable declarations. *) + [ Constructor.mk_block_stmt block ], env + | Typing.(Rational | Real) -> + Error.not_yet "\\at on purely logic variables and over real type" + | Typing.Gmpz -> + Error.not_yet "\\at on purely logic variables and over gmp type" end in (* Storing loops *) @@ -333,10 +334,10 @@ let to_exp ~loc kf env pot label = in let storing_loops_block = Cil.mkBlock storing_loops_stmts in let storing_loops_block, env = Env.pop_and_get - env - (Constructor.mk_block_stmt storing_loops_block) - ~global_clear:false - Env.After + env + (Constructor.mk_block_stmt storing_loops_block) + ~global_clear:false + Env.After in (* Put at label *) let env = put_block_at_label env kf storing_loops_block label in diff --git a/src/plugins/e-acsl/src/code_generator/at_with_lscope.mli b/src/plugins/e-acsl/src/code_generator/at_with_lscope.mli index f5b51d739bd..0a971045fdd 100644 --- a/src/plugins/e-acsl/src/code_generator/at_with_lscope.mli +++ b/src/plugins/e-acsl/src/code_generator/at_with_lscope.mli @@ -24,7 +24,7 @@ open Cil_types open Cil_datatype (* Convert \at on terms or predicates in which we can find purely - logic variable. *) + logic variable. *) (**************************************************************************) (*************************** Translation **********************************) @@ -39,8 +39,8 @@ val to_exp: (*****************************************************************************) (* The different possible evaluations of the [\at] under study are - stored in a memory location that needs to be alloted then freed. - This part is designed for that purpose. *) + stored in a memory location that needs to be alloted then freed. + This part is designed for that purpose. *) module Malloc: sig val find_all: kernel_function -> stmt list diff --git a/src/plugins/e-acsl/src/code_generator/temporal.ml b/src/plugins/e-acsl/src/code_generator/temporal.ml index a2694969cc6..e57b894f428 100644 --- a/src/plugins/e-acsl/src/code_generator/temporal.ml +++ b/src/plugins/e-acsl/src/code_generator/temporal.ml @@ -51,9 +51,9 @@ type flow = module Mk: sig (* Generate either - - [store_nblock(lhs, rhs)], or - - [store_nreferent(lhs, rhs)] - function call based on the value of [flow] *) + - [store_nblock(lhs, rhs)], or + - [store_nreferent(lhs, rhs)] + function call based on the value of [flow] *) val store_reference: loc:location -> flow -> lval -> exp -> stmt (* Generate a [save_*_parameter] call *) @@ -106,8 +106,8 @@ end = struct in (* TODO: Returning structs is unsupported so far *) (match (Cil.typeOf lhs) with - | TPtr _ -> () - | _ -> Error.not_yet "Struct in return"); + | TPtr _ -> () + | _ -> Error.not_yet "Struct in return"); Constructor.mk_lib_call ~loc (RTL.mk_temporal_name fname) [ lhs ] let reset_return_referent ~loc = @@ -125,10 +125,10 @@ end (* ************************************************************************** *) (* Given an lvalue [lhs] representing LHS of an assignment, and an expression - [rhs] representing its RHS compute triple (l,r,f), such that: + [rhs] representing its RHS compute triple (l,r,f), such that: - lval [l] and exp [r] are addresses of a pointer and a memory block, and - flow [f] indicates how to update the meta-data of [l] using information - stored by [r]. The values of [f] indicate the following + stored by [r]. The values of [f] indicate the following + Direct - referent number of [l] is assigned the referent number of [r] + Indirect - referent number of [l] is assigned the origin number of [r] + Copy - metadata of [r] is copied to metadata of [l] *) @@ -145,51 +145,52 @@ let assign ?(ltype) lhs rhs loc = let base, _ = Misc.ptr_index rhs in let rhs, flow = (match base.enode with - | AddrOf _ - | StartOf _ -> rhs, Direct - (* Unary operator describes !, ~ or -: treat it same as Const since - it implies integer or logical operations. This case is rare but - happens: for instance in Gap SPEC CPU benchmark the returned pointer - is assigned -1 (for whatever bizarre reason) *) - | Const _ | UnOp _ -> base, Direct - (* Special case for literal strings which E-ACSL rewrites into - global variables: take the origin number of a string *) - | Lval(Var vi, _) when RTL.is_generated_name vi.vname -> - base, Direct - (* Lvalue of a pointer type can be a cast of an integral type, for - instance for the case when address is taken by value (shown via the - following example). - uintptr_t addr = ...; - char *p = (char* )addr; - If this is the case then the analysis takes the value of a variable. *) - | Lval lv -> - if Cil.isPointerType (Cil.unrollType (Cil.typeOfLval lv)) then - Cil.mkAddrOf ~loc lv, Indirect - else - rhs, Direct - (* Binary operation which yields an integer (or FP) type. - Since LHS is of pointer type we assume that the whole integer - expression computes to an address for which there is no - outer container, so the only thing to do is to take origin number *) - | BinOp(op, _, _, _) -> - (* At this point [ptr_index] should have split pointer arithmetic into - base pointer and index so there should be no pointer arithmetic - operations there. The following bit is to make sure of it. *) - (match op with + | AddrOf _ + | StartOf _ -> rhs, Direct + (* Unary operator describes !, ~ or -: treat it same as Const since + it implies integer or logical operations. This case is rare but + happens: for instance in Gap SPEC CPU benchmark the returned pointer + is assigned -1 (for whatever bizarre reason) *) + | Const _ | UnOp _ -> base, Direct + (* Special case for literal strings which E-ACSL rewrites into + global variables: take the origin number of a string *) + | Lval(Var vi, _) when RTL.is_generated_name vi.vname -> + base, Direct + (* Lvalue of a pointer type can be a cast of an integral type, for + instance for the case when address is taken by value (shown via the + following example). + uintptr_t addr = ...; + char *p = (char* )addr; + If this is the case then the analysis takes the value of a variable. + *) + | Lval lv -> + if Cil.isPointerType (Cil.unrollType (Cil.typeOfLval lv)) then + Cil.mkAddrOf ~loc lv, Indirect + else + rhs, Direct + (* Binary operation which yields an integer (or FP) type. + Since LHS is of pointer type we assume that the whole integer + expression computes to an address for which there is no + outer container, so the only thing to do is to take origin number *) + | BinOp(op, _, _, _) -> + (* At this point [ptr_index] should have split pointer arithmetic into + base pointer and index so there should be no pointer arithmetic + operations there. The following bit is to make sure of it. *) + (match op with | MinusPI | PlusPI | IndexPI -> assert false | _ -> ()); - base, Direct - | _ -> assert false) + base, Direct + | _ -> assert false) in Some (lhs, rhs, flow) | TNamed _ -> assert false | TInt _ | TFloat _ | TEnum _ -> None | TComp _ -> let rhs = match rhs.enode with - | AddrOf _ -> rhs - | Lval lv -> Cil.mkAddrOf ~loc lv - | Const _ | SizeOf _ | SizeOfE _ | SizeOfStr _ | AlignOf _ | AlignOfE _ - | UnOp _ | BinOp _ | CastE _ | StartOf _ | Info _ -> - Options.abort "unsupported RHS %a" Printer.pp_exp rhs + | AddrOf _ -> rhs + | Lval lv -> Cil.mkAddrOf ~loc lv + | Const _ | SizeOf _ | SizeOfE _ | SizeOfStr _ | AlignOf _ | AlignOfE _ + | UnOp _ | BinOp _ | CastE _ | StartOf _ | Info _ -> + Options.abort "unsupported RHS %a" Printer.pp_exp rhs in Some (lhs, rhs, Copy) (* va_list is a builtin type, we assume it has no pointers here and treat it as a "big" integer rather than a struct *) @@ -240,23 +241,23 @@ end = struct structure so they can be retrieved once that function is called *) let save_params current_stmt loc args env kf = let (env, _) = List.fold_left - (fun (env, index) param -> - let lv = Mem(param), NoOffset in - let ltype = Cil.typeOf param in - let vals = assign ~ltype lv param loc in - Extlib.may_map - (fun (_, rhs, flow) -> - let env = - if Mmodel_analysis.must_model_exp ~kf param then - let stmt = Mk.save_param ~loc flow rhs index in - Env.add_stmt ~before:current_stmt ~post:false env kf stmt - else env - in - (env, index+1)) - ~dft:(env, index+1) - vals) - (env, 0) - args + (fun (env, index) param -> + let lv = Mem(param), NoOffset in + let ltype = Cil.typeOf param in + let vals = assign ~ltype lv param loc in + Extlib.may_map + (fun (_, rhs, flow) -> + let env = + if Mmodel_analysis.must_model_exp ~kf param then + let stmt = Mk.save_param ~loc flow rhs index in + Env.add_stmt ~before:current_stmt ~post:false env kf stmt + else env + in + (env, index+1)) + ~dft:(env, index+1) + vals) + (env, 0) + args in env (* Update local environment with a statement tracking temporal metadata @@ -282,17 +283,17 @@ end = struct [pull_return] added via a call to [Mk.handle_return_referent] *) Extlib.may_map (fun (lhs, rhs, flow) -> - let flow, rhs = match flow with - | Indirect when alloc -> Direct, (Constructor.mk_deref ~loc rhs) - | _ -> flow, rhs - in - let stmt = - if alloc then - Mk.store_reference ~loc flow lhs rhs - else - Mk.handle_return_referent ~save:false ~loc (Cil.mkAddrOf ~loc lhs) - in - Env.add_stmt ~before:current_stmt ~post:true env kf stmt) + let flow, rhs = match flow with + | Indirect when alloc -> Direct, (Constructor.mk_deref ~loc rhs) + | _ -> flow, rhs + in + let stmt = + if alloc then + Mk.store_reference ~loc flow lhs rhs + else + Mk.handle_return_referent ~save:false ~loc (Cil.mkAddrOf ~loc lhs) + in + Env.add_stmt ~before:current_stmt ~post:true env kf stmt) ~dft:env vals @@ -340,9 +341,9 @@ end = struct let alloc = not has_def in Extlib.may_map (fun lhs -> - if Mmodel_analysis.must_model_lval ~kf lhs then - call_with_ret ~alloc current_stmt loc lhs env kf - else env) + if Mmodel_analysis.must_model_lval ~kf lhs then + call_with_ret ~alloc current_stmt loc lhs env kf + else env) ~dft:env ret end @@ -465,15 +466,15 @@ let mk_global_init ~loc vi off init = corresponding variable which that literal string has been converted to *) let exp = try let rec get_string e = match e.enode with - | Const(CStr str) -> str - | CastE(_, exp) -> get_string exp - | _ -> raise Not_found - in - let str = get_string exp in - Cil.evar ~loc (Literal_strings.find str) - with + | Const(CStr str) -> str + | CastE(_, exp) -> get_string exp + | _ -> raise Not_found + in + let str = get_string exp in + Cil.evar ~loc (Literal_strings.find str) + with (* Not a literal string: just use the expression at hand *) - Not_found -> exp + Not_found -> exp in (* The input [vi] is from the old project, so get the corresponding variable from the new one, otherwise AST integrity is violated *) @@ -488,15 +489,15 @@ let mk_global_init ~loc vi off init = let handle_function_parameters kf env = if is_enabled () then let env, _ = List.fold_left - (fun (env, index) param -> - let env = - if Mmodel_analysis.must_model_vi ~kf param - then track_argument param index env kf - else env - in - env, index + 1) - (env, 0) - (Kernel_function.get_formals kf) + (fun (env, index) param -> + let env = + if Mmodel_analysis.must_model_vi ~kf param + then track_argument param index env kf + else env + in + env, index + 1) + (env, 0) + (Kernel_function.get_formals kf) in env else env @@ -505,8 +506,8 @@ let handle_stmt stmt env kf = if is_enabled () then begin match stmt.skind with | Instr instr -> handle_instruction stmt instr env kf - | Return(ret, loc) -> Extlib.may_map - (fun ret -> handle_return_stmt loc ret env kf) ~dft:env ret + | Return(ret, loc) -> + Extlib.may_map (fun ret -> handle_return_stmt loc ret env kf) ~dft:env ret | Goto _ | Break _ | Continue _ | If _ | Switch _ | Loop _ | Block _ | UnspecifiedSequence _ | Throw _ | TryCatch _ | TryFinally _ | TryExcept _ -> env diff --git a/src/plugins/e-acsl/src/code_generator/temporal.mli b/src/plugins/e-acsl/src/code_generator/temporal.mli index 087683efea0..469df071656 100644 --- a/src/plugins/e-acsl/src/code_generator/temporal.mli +++ b/src/plugins/e-acsl/src/code_generator/temporal.mli @@ -43,8 +43,8 @@ val handle_stmt: stmt -> Env.t -> kernel_function -> Env.t properties of memory blocks *) val generate_global_init: varinfo -> offset -> init -> stmt option - (** Generate [Some s], where [s] is a statement tracking global initializer - or [None] if there is no need to track it *) +(** Generate [Some s], where [s] is a statement tracking global initializer + or [None] if there is no need to track it *) (* Local Variables: -- GitLab From 5b3963ba23661cffe39b655c89fba5651e302c46 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 7 Aug 2020 11:49:02 +0200 Subject: [PATCH 026/255] [eacsl] Breakup `Constructor` into smaller files --- src/plugins/e-acsl/Makefile.in | 3 +- src/plugins/e-acsl/headers/header_spec.txt | 6 +- .../e-acsl/src/code_generator/smart_exp.ml | 46 +++++++++ .../e-acsl/src/code_generator/smart_exp.mli | 43 +++++++++ .../{constructor.ml => smart_stmt.ml} | 96 +++++++------------ .../{constructor.mli => smart_stmt.mli} | 78 ++++++--------- src/plugins/e-acsl/src/libraries/misc.ml | 9 ++ src/plugins/e-acsl/src/libraries/misc.mli | 7 ++ 8 files changed, 171 insertions(+), 117 deletions(-) create mode 100644 src/plugins/e-acsl/src/code_generator/smart_exp.ml create mode 100644 src/plugins/e-acsl/src/code_generator/smart_exp.mli rename src/plugins/e-acsl/src/code_generator/{constructor.ml => smart_stmt.ml} (70%) rename src/plugins/e-acsl/src/code_generator/{constructor.mli => smart_stmt.mli} (64%) diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index a44d2724291..06edca93596 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -64,7 +64,8 @@ SRC_ANALYSES:=$(addprefix src/analyses/, $(SRC_ANALYSES)) # code generator SRC_CODE_GENERATOR:= \ - constructor \ + smart_exp \ + smart_stmt \ gmp \ label \ env \ diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index 41708b793a5..f5d1c3fe39a 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -52,8 +52,6 @@ src/analyses/typing.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/typing.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/at_with_lscope.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/at_with_lscope.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL -src/code_generator/constructor.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL -src/code_generator/constructor.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/env.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/env.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/global_observer.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL @@ -80,6 +78,10 @@ src/code_generator/quantif.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/quantif.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/rational.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/rational.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/smart_exp.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/smart_exp.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/smart_stmt.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/smart_stmt.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/temporal.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/temporal.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/translate.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL diff --git a/src/plugins/e-acsl/src/code_generator/smart_exp.ml b/src/plugins/e-acsl/src/code_generator/smart_exp.ml new file mode 100644 index 00000000000..f3dac85ffd2 --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/smart_exp.ml @@ -0,0 +1,46 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types + +let lval ~loc lv = + Cil.new_exp ~loc (Lval lv) + +let deref ~loc lv = lval ~loc (Mem lv, NoOffset) + +let subscript ~loc array idx = + match Misc.extract_uncoerced_lval array with + | Some { enode = Lval lv } -> + let subscript_lval = Cil.addOffsetLval (Index(idx, NoOffset)) lv in + lval ~loc subscript_lval + | Some _ | None -> + Options.fatal + ~current:true + "Trying to create a subscript on an array that is not an Lval: %a" + Cil_types_debug.pp_exp + array + +(* +Local Variables: +compile-command: "make -C ../../../../.." +End: +*) diff --git a/src/plugins/e-acsl/src/code_generator/smart_exp.mli b/src/plugins/e-acsl/src/code_generator/smart_exp.mli new file mode 100644 index 00000000000..566702f1e80 --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/smart_exp.mli @@ -0,0 +1,43 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types + +(* ********************************************************************** *) +(* Helper functions to build expressions *) +(* ********************************************************************** *) + +val lval: loc:location -> lval -> exp +(** Construct an lval expression from an lval. *) + +val deref: loc:location -> exp -> exp +(** Construct a dereference of an expression. *) + +val subscript: loc:location -> exp -> exp -> exp +(** [mk_subscript ~loc array idx] Create an expression to access the [idx]'th + element of the [array]. *) + +(* +Local Variables: +compile-command: "make -C ../../../../.." +End: +*) diff --git a/src/plugins/e-acsl/src/code_generator/constructor.ml b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml similarity index 70% rename from src/plugins/e-acsl/src/code_generator/constructor.ml rename to src/plugins/e-acsl/src/code_generator/smart_stmt.ml index a38f36ce70e..dec6438762f 100644 --- a/src/plugins/e-acsl/src/code_generator/constructor.ml +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml @@ -22,51 +22,21 @@ open Cil_types -(* ********************************************************************** *) -(* Expressions *) -(* ********************************************************************** *) - -let extract_uncoerced_lval e = - let rec aux e = - match e.enode with - | Lval _ -> Some e - | CastE (_, e) -> aux e - | _ -> None - in - aux e - -let mk_lval ~loc lval = - Cil.new_exp ~loc (Lval lval) - -let mk_deref ~loc lv = mk_lval ~loc (Mem lv, NoOffset) - -let mk_subscript ~loc array idx = - match extract_uncoerced_lval array with - | Some { enode = Lval lval } -> - let subscript_lval = Cil.addOffsetLval (Index(idx, NoOffset)) lval in - mk_lval ~loc subscript_lval - | Some _ | None -> - Options.fatal - ~current:true - "Trying to create a subscript on an array that is not an Lval: %a" - Cil_types_debug.pp_exp - array - (* ********************************************************************** *) (* Statements *) (* ********************************************************************** *) -let mk_stmt sk = Cil.mkStmt ~valid_sid:true sk -let mk_instr i = mk_stmt (Instr i) -let mk_block_stmt blk = mk_stmt (Block blk) -let mk_call ~loc ?result e args = mk_instr (Call(result, e, args, loc)) +let stmt sk = Cil.mkStmt ~valid_sid:true sk +let instr i = stmt (Instr i) +let block_stmt blk = stmt (Block blk) +let call ~loc ?result e args = instr (Call(result, e, args, loc)) -let mk_assigns ~loc ~result e = mk_instr (Set(result, e, loc)) +let assigns ~loc ~result e = instr (Set(result, e, loc)) -let mk_if ~loc ~cond ?(else_blk=Cil.mkBlock []) then_blk = - mk_stmt (If (cond, then_blk, else_blk, loc)) +let if_stmt ~loc ~cond ?(else_blk=Cil.mkBlock []) then_blk = + stmt (If (cond, then_blk, else_blk, loc)) -let mk_break ~loc = mk_stmt (Break loc) +let break ~loc = stmt (Break loc) type annotation_kind = | Assertion @@ -85,19 +55,19 @@ let kind_to_string loc k = | Invariant -> "Invariant" | RTE -> "RTE") -let mk_block stmt b = match b.bstmts with +let block stmt b = match b.bstmts with | [] -> (match stmt.skind with | Instr(Skip _) -> stmt | _ -> assert false) | [ s ] -> s - | _ :: _ -> mk_block_stmt b + | _ :: _ -> block_stmt b (* ********************************************************************** *) (* E-ACSL specific code *) (* ********************************************************************** *) -let mk_lib_call ~loc ?result fname args = +let lib_call ~loc ?result fname args = let vi = try Rtl.Symbols.find_vi fname with Rtl.Symbols.Unregistered _ as exn -> @@ -133,32 +103,32 @@ let mk_lib_call ~loc ?result fname args = | TFun(_, None, _, _) -> [] | _ -> assert false in - mk_call ~loc ?result f args + call ~loc ?result f args -let mk_rtl_call ~loc ?result fname args = - mk_lib_call ~loc ?result (Functions.RTL.mk_api_name fname) args +let rtl_call ~loc ?result fname args = + lib_call ~loc ?result (Functions.RTL.mk_api_name fname) args (* ************************************************************************** *) (** {2 Handling the E-ACSL's C-libraries, part II} *) (* ************************************************************************** *) -let mk_full_init_stmt vi = +let full_init_stmt vi = let loc = vi.vdecl in - mk_rtl_call ~loc "full_init" [ Cil.evar ~loc vi ] + rtl_call ~loc "full_init" [ Cil.evar ~loc vi ] -let mk_initialize ~loc (host, offset as lv) = match host, offset with +let initialize ~loc (host, offset as lv) = match host, offset with | Var _, NoOffset -> - mk_rtl_call ~loc "full_init" [ Cil.mkAddrOf ~loc lv ] + rtl_call ~loc "full_init" [ Cil.mkAddrOf ~loc lv ] | _ -> let typ = Cil.typeOfLval lv in - mk_rtl_call ~loc + rtl_call ~loc "initialize" [ Cil.mkAddrOf ~loc lv; Cil.new_exp loc (SizeOf typ) ] -let mk_named_store_stmt name ?str_size vi = +let named_store_stmt name ?str_size vi = let ty = Cil.unrollType vi.vtype in let loc = vi.vdecl in - let store = mk_rtl_call ~loc name in + let store = rtl_call ~loc name in match ty, str_size with | TArray(_, Some _,_,_), None -> store [ Cil.evar ~loc vi; Cil.sizeOf ~loc ty ] @@ -178,27 +148,27 @@ let mk_named_store_stmt name ?str_size vi = Printer.pp_typ ty Printer.pp_exp size -let mk_store_stmt ?str_size vi = - mk_named_store_stmt "store_block" ?str_size vi +let store_stmt ?str_size vi = + named_store_stmt "store_block" ?str_size vi -let mk_duplicate_store_stmt ?str_size vi = - mk_named_store_stmt "store_block_duplicate" ?str_size vi +let duplicate_store_stmt ?str_size vi = + named_store_stmt "store_block_duplicate" ?str_size vi -let mk_delete_stmt ?(is_addr=false) vi = +let delete_stmt ?(is_addr=false) vi = let loc = vi.vdecl in - let mk = mk_rtl_call ~loc "delete_block" in + let mk = rtl_call ~loc "delete_block" in match is_addr, Cil.unrollType vi.vtype with | _, TArray(_, Some _, _, _) | true, _ -> mk [ Cil.evar ~loc vi ] | _ -> mk [ Cil.mkAddrOfVi vi ] -let mk_mark_readonly vi = +let mark_readonly vi = let loc = vi.vdecl in - mk_rtl_call ~loc "mark_readonly" [ Cil.evar ~loc vi ] + rtl_call ~loc "mark_readonly" [ Cil.evar ~loc vi ] -let mk_runtime_check_with_msg ~loc msg kind kf e = +let runtime_check_with_msg ~loc msg kind kf e = let file = (fst loc).Filepath.pos_path in let line = (fst loc).Filepath.pos_lnum in - mk_rtl_call ~loc + rtl_call ~loc "assert" [ e; kind_to_string loc kind; @@ -207,13 +177,13 @@ let mk_runtime_check_with_msg ~loc msg kind kf e = Cil.mkString ~loc (Filepath.Normalized.to_pretty_string file); Cil.integer loc line ] -let mk_runtime_check kind kf e p = +let runtime_check kind kf e p = let loc = p.pred_loc in let msg = Kernel.Unicode.without_unicode (Format.asprintf "%a@?" Printer.pp_predicate) p in - mk_runtime_check_with_msg ~loc msg kind kf e + runtime_check_with_msg ~loc msg kind kf e (* Local Variables: diff --git a/src/plugins/e-acsl/src/code_generator/constructor.mli b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli similarity index 64% rename from src/plugins/e-acsl/src/code_generator/constructor.mli rename to src/plugins/e-acsl/src/code_generator/smart_stmt.mli index d21c71e53a4..e0c919a7f88 100644 --- a/src/plugins/e-acsl/src/code_generator/constructor.mli +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli @@ -20,97 +20,73 @@ (* *) (**************************************************************************) -(** Smart constructors for building C code. *) - open Cil_types -open Cil_datatype - -(* ********************************************************************** *) -(* Expressions *) -(* ********************************************************************** *) - -val extract_uncoerced_lval: exp -> exp option -(** Unroll the [CastE] part of the expression until an [Lval] is found, and - return it. - - If at some point the expression is neither a [CastE] nor an [Lval], then - return [None]. *) - -val mk_lval: loc:location -> lval -> exp -(** Construct an lval expression from an lval. *) - -val mk_deref: loc:Location.t -> exp -> exp -(** Construct a dereference of an expression. *) - -val mk_subscript: loc:location -> exp -> exp -> exp -(** [mk_subscript ~loc array idx] Create an expression to access the [idx]'th - element of the [array]. *) (* ********************************************************************** *) -(* Statements *) +(* Helper functions to build statements *) (* ********************************************************************** *) -val mk_stmt: stmtkind -> stmt +val stmt: stmtkind -> stmt (** Create a statement from a statement kind. *) -val mk_block: stmt -> block -> stmt +val block: stmt -> block -> stmt (** Create a block statement from a block to replace a given statement. Requires that (1) the block is not empty, or (2) the statement is a skip. *) -val mk_block_stmt: block -> stmt +val block_stmt: block -> stmt (** Create a block statement from a block *) -val mk_assigns: loc:location -> result:lval -> exp -> stmt -(** [mk_assigns ~loc ~result value] create a statement to assign the [value] +val assigns: loc:location -> result:lval -> exp -> stmt +(** [assigns ~loc ~result value] create a statement to assign the [value] expression to the [result] lval. *) -val mk_if: +val if_stmt: loc:location -> cond:exp -> ?else_blk:block -> block -> stmt -(** [mk_if ~loc ~cond ~then_blk ~else_blk] create an if statement with [cond] +(** [if ~loc ~cond ~then_blk ~else_blk] create an if statement with [cond] as condition and [then_blk] and [else_blk] as respectively "then" block and "else" block. *) -val mk_break: loc:location -> stmt +val break: loc:location -> stmt (** Create a break statement *) (* ********************************************************************** *) (* E-ACSL specific code: build calls to its RTL API *) (* ********************************************************************** *) -val mk_lib_call: loc:Location.t -> ?result:lval -> string -> exp list -> stmt +val lib_call: loc:location -> ?result:lval -> string -> exp list -> stmt (** Construct a call to a library function with the given name. @raise Rtl.Symbols.Unregistered if the given string does not represent such a function or if library functions were never registered (only possible when using E-ACSL through its API). *) -val mk_rtl_call: loc:Location.t -> ?result:lval -> string -> exp list -> stmt -(** Special version of [mk_lib_call] for E-ACSL's RTL functions. *) +val rtl_call: loc:location -> ?result:lval -> string -> exp list -> stmt +(** Special version of [lib_call] for E-ACSL's RTL functions. *) -val mk_store_stmt: ?str_size:exp -> varinfo -> stmt +val store_stmt: ?str_size:exp -> varinfo -> stmt (** Construct a call to [__e_acsl_store_block] that observes the allocation of the given varinfo. See [share/e-acsl/e_acsl.h] for details about this function. *) -val mk_duplicate_store_stmt: ?str_size:exp -> varinfo -> stmt -(** Same as [mk_store_stmt] for [__e_acsl_duplicate_store_block] that first +val duplicate_store_stmt: ?str_size:exp -> varinfo -> stmt +(** Same as [store_stmt] for [__e_acsl_duplicate_store_block] that first checks for a previous allocation of the given varinfo. *) -val mk_delete_stmt: ?is_addr:bool -> varinfo -> stmt -(** Same as [mk_store_stmt] for [__e_acsl_delete_block] that observes the +val delete_stmt: ?is_addr:bool -> varinfo -> stmt +(** Same as [store_stmt] for [__e_acsl_delete_block] that observes the de-allocation of the given varinfo. If [is_addr] is false (default), take the address of varinfo. *) -val mk_full_init_stmt: varinfo -> stmt -(** Same as [mk_store_stmt] for [__e_acsl_full_init] that observes the +val full_init_stmt: varinfo -> stmt +(** Same as [store_stmt] for [__e_acsl_full_init] that observes the initialization of the given varinfo. The varinfo is the address to fully initialize, no [addrOf] is taken. *) -val mk_initialize: loc:location -> lval -> stmt -(** Same as [mk_store_stmt] for [__e_acsl_initialize] that observes the +val initialize: loc:location -> lval -> stmt +(** Same as [store_stmt] for [__e_acsl_initialize] that observes the initialization of the given left-value. *) -val mk_mark_readonly: varinfo -> stmt -(** Same as [mk_store_stmt] for [__e_acsl_markreadonly] that observes the +val mark_readonly: varinfo -> stmt +(** Same as [store_stmt] for [__e_acsl_markreadonly] that observes the read-onlyness of the given varinfo. *) type annotation_kind = @@ -120,16 +96,16 @@ type annotation_kind = | Invariant | RTE -val mk_runtime_check: +val runtime_check: annotation_kind -> kernel_function -> exp -> predicate -> stmt -(** [mk_runtime_check kind kf e p] generates a runtime check for predicate [p] +(** [runtime_check kind kf e p] generates a runtime check for predicate [p] by building a call to [__e_acsl_assert]. [e] (or [!e] if [reverse] is set to [true]) is the C translation of [p], [kf] is the current kernel_function and [kind] is the annotation kind of [p]. *) -val mk_runtime_check_with_msg: +val runtime_check_with_msg: loc:location -> string -> annotation_kind -> kernel_function -> exp -> stmt -(** [mk_runtime_check_with_msg kind kf e msg] generates a runtime check for [e] +(** [runtime_check_with_msg kind kf e msg] generates a runtime check for [e] (or [!e] if [reverse] is [true]) by building a call to [__e_acsl_assert]. [msg] is the message printed if the runtime check fails. [loc] is the location printed in the message if the runtime check fails. [kf] is the diff --git a/src/plugins/e-acsl/src/libraries/misc.ml b/src/plugins/e-acsl/src/libraries/misc.ml index 0b2cd0d3ad7..284d57621d5 100644 --- a/src/plugins/e-acsl/src/libraries/misc.ml +++ b/src/plugins/e-acsl/src/libraries/misc.ml @@ -189,6 +189,15 @@ module Id_term = let mem_project = Datatype.never_any_project end) +let extract_uncoerced_lval e = + let rec aux e = + match e.enode with + | Lval _ -> Some e + | CastE (_, e) -> aux e + | _ -> None + in + aux e + (* Local Variables: compile-command: "make -C ../../../../.." diff --git a/src/plugins/e-acsl/src/libraries/misc.mli b/src/plugins/e-acsl/src/libraries/misc.mli index f9c92c19e80..6ea105fd88a 100644 --- a/src/plugins/e-acsl/src/libraries/misc.mli +++ b/src/plugins/e-acsl/src/libraries/misc.mli @@ -81,6 +81,13 @@ val finite_min_and_max: Ival.t -> Integer.t * Integer.t module Id_term: Datatype.S_with_collections with type t = term (** Datatype for terms that relies on physical equality. *) +val extract_uncoerced_lval: exp -> exp option +(** Unroll the [CastE] part of the expression until an [Lval] is found, and + return it. + + If at some point the expression is neither a [CastE] nor an [Lval], then + return [None]. *) + (* Local Variables: compile-command: "make -C ../../../../.." -- GitLab From a1367e778a757b8cd14d0e0c5f9a31ec6ba5a70f Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Wed, 26 Aug 2020 14:10:15 +0200 Subject: [PATCH 027/255] [eacsl] Update call sites of Constructor to use the new functions --- .../src/code_generator/at_with_lscope.ml | 16 +++---- src/plugins/e-acsl/src/code_generator/env.ml | 12 ++--- src/plugins/e-acsl/src/code_generator/env.mli | 4 +- .../src/code_generator/global_observer.ml | 20 ++++---- src/plugins/e-acsl/src/code_generator/gmp.ml | 10 ++-- .../e-acsl/src/code_generator/injector.ml | 24 +++++----- .../e-acsl/src/code_generator/logic_array.ml | 28 +++++------ .../src/code_generator/logic_functions.ml | 2 +- .../e-acsl/src/code_generator/loops.ml | 14 +++--- .../src/code_generator/memory_observer.ml | 8 ++-- .../src/code_generator/mmodel_translate.ml | 4 +- .../e-acsl/src/code_generator/quantif.ml | 10 ++-- .../e-acsl/src/code_generator/rational.ml | 8 ++-- .../e-acsl/src/code_generator/temporal.ml | 20 ++++---- .../e-acsl/src/code_generator/translate.ml | 48 +++++++++---------- 15 files changed, 114 insertions(+), 114 deletions(-) diff --git a/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml b/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml index fe974d215cd..671ea306b1f 100644 --- a/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml +++ b/src/plugins/e-acsl/src/code_generator/at_with_lscope.ml @@ -260,7 +260,7 @@ let to_exp ~loc kf env pot label = let e_size, _ = term_to_exp kf env t_size in let e_size = Cil.constFold false e_size in let malloc_stmt = - Constructor.mk_lib_call ~loc + Smart_stmt.lib_call ~loc ~result:(Cil.var vi) "malloc" [ e_size ] @@ -273,7 +273,7 @@ let to_exp ~loc kf env pot label = | Typing.(Rational | Real | Nan) -> Error.not_yet "quantification over non-integer type" in - let free_stmt = Constructor.mk_lib_call ~loc "free" [e] in + let free_stmt = Smart_stmt.lib_call ~loc "free" [e] in (* The list of stmts returned by the current closure are inserted LOCALLY to the block where the new var is FIRST used, whatever scope is indicated to [Env.new_var]. @@ -296,14 +296,14 @@ let to_exp ~loc kf env pot label = let e, env = named_predicate_to_exp kf env p in let e = Cil.constFold false e in let storing_stmt = - Constructor.mk_assigns ~loc ~result:lval e + Smart_stmt.assigns ~loc ~result:lval e in let block, env = Env.pop_and_get env storing_stmt ~global_clear:false Env.After in (* We CANNOT return [block.bstmts] because it does NOT contain variable declarations. *) - [ Constructor.mk_block_stmt block ], env + [ Smart_stmt.block_stmt block ], env | Lscope.PoT_term t -> begin match Typing.get_number_ty t with | Typing.(C_integer _ | C_float _ | Nan) -> @@ -312,14 +312,14 @@ let to_exp ~loc kf env pot label = let e, env = term_to_exp kf env t in let e = Cil.constFold false e in let storing_stmt = - Constructor.mk_assigns ~loc ~result:lval e + Smart_stmt.assigns ~loc ~result:lval e in let block, env = Env.pop_and_get env storing_stmt ~global_clear:false Env.After in (* We CANNOT return [block.bstmts] because it does NOT contain variable declarations. *) - [ Constructor.mk_block_stmt block ], env + [ Smart_stmt.block_stmt block ], env | Typing.(Rational | Real) -> Error.not_yet "\\at on purely logic variables and over real type" | Typing.Gmpz -> @@ -335,7 +335,7 @@ let to_exp ~loc kf env pot label = let storing_loops_block = Cil.mkBlock storing_loops_stmts in let storing_loops_block, env = Env.pop_and_get env - (Constructor.mk_block_stmt storing_loops_block) + (Smart_stmt.block_stmt storing_loops_block) ~global_clear:false Env.After in @@ -343,7 +343,7 @@ let to_exp ~loc kf env pot label = let env = put_block_at_label env kf storing_loops_block label in (* Returning *) let lval_at_index, env = lval_at_index ~loc kf env (e_at, vi_at, t_index) in - let e = Constructor.mk_lval ~loc lval_at_index in + let e = Smart_exp.lval ~loc lval_at_index in e, env (* diff --git a/src/plugins/e-acsl/src/code_generator/env.ml b/src/plugins/e-acsl/src/code_generator/env.ml index e457ac5c226..cfdbe5fdda4 100644 --- a/src/plugins/e-acsl/src/code_generator/env.ml +++ b/src/plugins/e-acsl/src/code_generator/env.ml @@ -56,7 +56,7 @@ type local_env = { type t = { lscope: Lscope.t; lscope_reset: bool; - annotation_kind: Constructor.annotation_kind; + annotation_kind: Smart_stmt.annotation_kind; new_global_vars: (varinfo * localized_scope) list; (* generated variables. The scope indicates the level where the variable should be added. *) @@ -88,7 +88,7 @@ let empty_local_env = let empty = { lscope = Lscope.empty; lscope_reset = true; - annotation_kind = Constructor.Assertion; + annotation_kind = Smart_stmt.Assertion; new_global_vars = []; global_mp_tbl = empty_mp_tbl; env_stack = []; @@ -257,7 +257,7 @@ let rtl_call_to_new_var ~loc ?scope ?name env kf t ty func_name args = t ty (fun v _ -> - [ Constructor.mk_rtl_call ~loc ~result:(Cil.var v) func_name args ]) + [ Smart_stmt.rtl_call ~loc ~result:(Cil.var v) func_name args ]) in exp, env @@ -351,9 +351,9 @@ let add_stmt ?(post=false) ?before env kf stmt = { env with env_stack = local_env :: tl } let extend_stmt_in_place env stmt ~label block = - let new_stmt = Constructor.mk_block_stmt block in + let new_stmt = Smart_stmt.block_stmt block in let sk = stmt.skind in - stmt.skind <- Block (Cil.mkBlock [ new_stmt; Constructor.mk_stmt sk ]); + stmt.skind <- Block (Cil.mkBlock [ new_stmt; Smart_stmt.stmt sk ]); let pre = match label with | BuiltinLabel(Here | Post) -> true | BuiltinLabel(Old | Pre | LoopEntry | LoopCurrent | Init) @@ -447,7 +447,7 @@ let pop_and_get ?(split=false) env stmt ~global_clear where = add the given [stmt] afterwards. This way, we have the guarantee that the final block does not contain any local, so may be transient. *) if split then - let sblock = Constructor.mk_block_stmt b in + let sblock = Smart_stmt.block_stmt b in Cil.transient_block (Cil.mkBlock [ sblock; stmt ]) else b diff --git a/src/plugins/e-acsl/src/code_generator/env.mli b/src/plugins/e-acsl/src/code_generator/env.mli index 847b551cacb..94c11335f1c 100644 --- a/src/plugins/e-acsl/src/code_generator/env.mli +++ b/src/plugins/e-acsl/src/code_generator/env.mli @@ -148,8 +148,8 @@ end (** {2 Current annotation kind} *) (* ************************************************************************** *) -val annotation_kind: t -> Constructor.annotation_kind -val set_annotation_kind: t -> Constructor.annotation_kind -> t +val annotation_kind: t -> Smart_stmt.annotation_kind +val set_annotation_kind: t -> Smart_stmt.annotation_kind -> t (* ************************************************************************** *) (** {2 Loop invariants} *) diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.ml b/src/plugins/e-acsl/src/code_generator/global_observer.ml index ab1d0ed88db..0e6a3ac2302 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/global_observer.ml @@ -123,8 +123,8 @@ let mk_init_function () = if Misc.is_fc_or_compiler_builtin vi then stmts else (* a global is both allocated and initialized *) - Constructor.mk_store_stmt vi - :: Constructor.mk_initialize ~loc:Location.unknown (Cil.var vi) + Smart_stmt.store_stmt vi + :: Smart_stmt.initialize ~loc:Location.unknown (Cil.var vi) :: stmts) tbl stmts @@ -136,10 +136,10 @@ let mk_init_function () = let loc = Location.unknown in let e = Cil.new_exp ~loc:loc (Const (CStr s)) in let str_size = Cil.new_exp loc (SizeOfStr s) in - Constructor.mk_assigns ~loc ~result:(Cil.var vi) e - :: Constructor.mk_store_stmt ~str_size vi - :: Constructor.mk_full_init_stmt vi - :: Constructor.mk_mark_readonly vi + Smart_stmt.assigns ~loc ~result:(Cil.var vi) e + :: Smart_stmt.store_stmt ~str_size vi + :: Smart_stmt.full_init_stmt vi + :: Smart_stmt.mark_readonly vi :: stmts) stmts in @@ -150,7 +150,7 @@ let mk_init_function () = let b, _env = Env.pop_and_get env stmt ~global_clear:true Env.Before in b, stmts in - let stmts = Constructor.mk_block_stmt b :: stmts in + let stmts = Smart_stmt.block_stmt b :: stmts in (* prevent multiple calls to [__e_acsl_globals_init] *) let loc = Location.unknown in let vi_already_run = @@ -168,14 +168,14 @@ let mk_init_function () = (Local_init (vi_already_run, init, loc)) in let already_run = - Constructor.mk_assigns + Smart_stmt.assigns ~loc ~result:(Cil.var vi_already_run) (Cil.one ~loc) in let stmts = already_run :: stmts in let guard = - Constructor.mk_if + Smart_stmt.if_stmt ~loc ~cond:(Cil.evar vi_already_run) (Cil.mkBlock []) @@ -195,7 +195,7 @@ let mk_delete_function () = Varinfo.Hashtbl.fold_sorted (fun vi _l acc -> if Misc.is_fc_or_compiler_builtin vi then acc - else Constructor.mk_delete_stmt vi :: acc) + else Smart_stmt.delete_stmt vi :: acc) tbl [] in diff --git a/src/plugins/e-acsl/src/code_generator/gmp.ml b/src/plugins/e-acsl/src/code_generator/gmp.ml index 8c28ac5e32e..8a2b5385f1c 100644 --- a/src/plugins/e-acsl/src/code_generator/gmp.ml +++ b/src/plugins/e-acsl/src/code_generator/gmp.ml @@ -33,7 +33,7 @@ let apply_on_var ~loc funname e = else if Gmp_types.Q.is_t ty then "__gmpq_" else assert false in - Constructor.mk_lib_call ~loc (prefix ^ funname) [ e ] + Smart_stmt.lib_call ~loc (prefix ^ funname) [ e ] let init ~loc e = apply_on_var "init" ~loc e let clear ~loc e = apply_on_var "clear" ~loc e @@ -90,9 +90,9 @@ let generic_affect ~loc fname lv ev e = let ty = Cil.typeOf ev in if Gmp_types.Z.is_t ty || Gmp_types.Q.is_t ty then begin let suf, args = get_set_suffix_and_arg ty e in - Constructor.mk_lib_call ~loc (fname ^ suf) (ev :: args) + Smart_stmt.lib_call ~loc (fname ^ suf) (ev :: args) end else - Constructor.mk_assigns ~loc:e.eloc ~result:lv e + Smart_stmt.assigns ~loc:e.eloc ~result:lv e let init_set ~loc lv ev e = let fname = @@ -111,7 +111,7 @@ let init_set ~loc lv ev e = | Lval elv -> assert (Gmp_types.Z.is_t (Cil.typeOf ev)); let call = - Constructor.mk_lib_call ~loc + Smart_stmt.lib_call ~loc "__gmpz_import" [ ev; Cil.one ~loc; @@ -121,7 +121,7 @@ let init_set ~loc lv ev e = Cil.zero ~loc; Cil.mkAddrOf ~loc elv ] in - Constructor.mk_block_stmt (Cil.mkBlock [ init ~loc ev; call ]) + Smart_stmt.block_stmt (Cil.mkBlock [ init ~loc ev; call ]) | _ -> Error.not_yet "unsigned long long expression requiring GMP") | Longlong ILongLong -> diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index dd1222051d7..cdc6486702d 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -60,7 +60,7 @@ let inject_in_local_init loc env kf vi = function | ConsInit (fvi, sz :: _, _) as init when Functions.Libc.is_vla_alloc_name fvi.vname -> (* add a store statement when creating a variable length array *) - let store = Constructor.mk_store_stmt ~str_size:sz vi in + let store = Smart_stmt.store_stmt ~str_size:sz vi in let env = Env.add_stmt ~post:true env kf store in init, env @@ -145,13 +145,13 @@ let add_initializer loc ?vi lv ?(post=false) stmt env kf = (* bitfields are not yet supported ==> no initializer. a [not_yet] will be raised in [Translate]. *) if Cil.isBitfield lv then Cil.mkEmptyStmt () - else Constructor.mk_initialize ~loc lv + else Smart_stmt.initialize ~loc lv in let env = Env.add_stmt ~post ~before env kf new_stmt in let env = match vi with | None -> env | Some vi -> - let new_stmt = Constructor.mk_store_stmt vi in + let new_stmt = Smart_stmt.store_stmt vi in Env.add_stmt ~post ~before env kf new_stmt in env @@ -189,7 +189,7 @@ let inject_in_instr env kf stmt = function if Functions.Libc.is_vla_free caller then match args with | [ { enode = CastE (_, { enode = Lval (Var vi, NoOffset) }) } ] -> - let delete_block = Constructor.mk_delete_stmt ~is_addr:true vi in + let delete_block = Smart_stmt.delete_stmt ~is_addr:true vi in Env.add_stmt env kf delete_block | _ -> Options.fatal "The normalization of __fc_vla_free() has changed" else @@ -263,7 +263,7 @@ let add_new_block_in_stmt env kf stmt = let b, env = Env.pop_and_get env new_stmt ~global_clear:true Env.After in - let new_stmt = Constructor.mk_block stmt b in + let new_stmt = Smart_stmt.block stmt b in if not (Cil_datatype.Stmt.equal stmt new_stmt) then begin (* move the labels of the return to the new block in order to evaluate the postcondition when jumping to them. *) @@ -293,7 +293,7 @@ let add_new_block_in_stmt env kf stmt = let post_block, env = Env.pop_and_get env - (Constructor.mk_block new_stmt pre_block) + (Smart_stmt.block new_stmt pre_block) ~global_clear:false Env.Before in @@ -302,7 +302,7 @@ let add_new_block_in_stmt env kf stmt = then Cil.transient_block post_block else post_block in - let res = Constructor.mk_block new_stmt post_block in + let res = Smart_stmt.block new_stmt post_block in if not (Cil_datatype.Stmt.equal new_stmt res) then E_acsl_label.move kf new_stmt res; res, env @@ -337,7 +337,7 @@ let insert_as_last_stmts_in_innermost_block ~last_stmts kf outer_block = match return_stmt with | Some return_stmt -> let b = Cil.mkBlock new_stmts in - let new_stmt = Constructor.mk_block return_stmt b in + let new_stmt = Smart_stmt.block return_stmt b in E_acsl_label.move kf return_stmt new_stmt; [ new_stmt ] | None -> new_stmts @@ -516,7 +516,7 @@ and inject_in_block (env: Env.t) kf blk = List.fold_left (fun acc vi -> if Mmodel_analysis.must_model_vi ~kf vi - then Constructor.mk_delete_stmt vi :: acc + then Smart_stmt.delete_stmt vi :: acc else acc) stmts blk.blocals @@ -531,7 +531,7 @@ and inject_in_block (env: Env.t) kf blk = List.fold_left (fun acc vi -> if Mmodel_analysis.must_model_vi vi && not vi.vdefined - then Constructor.mk_store_stmt vi :: acc + then Smart_stmt.store_stmt vi :: acc else acc) blk.bstmts blk.blocals; @@ -821,8 +821,8 @@ let inject_mmodel_handler main = in let ptr_size = Cil.sizeOf loc Cil.voidPtrType in let args = args @ [ ptr_size ] in - let init = Constructor.mk_rtl_call loc "memory_init" args in - let clean = Constructor.mk_rtl_call loc "memory_clean" [] in + let init = Smart_stmt.rtl_call loc "memory_init" args in + let clean = Smart_stmt.rtl_call loc "memory_clean" [] in surround_function_with main fundec init (Some clean) in Extlib.may handle_main main diff --git a/src/plugins/e-acsl/src/code_generator/logic_array.ml b/src/plugins/e-acsl/src/code_generator/logic_array.ml index af522479dc6..08e9eda66c4 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_array.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_array.ml @@ -95,7 +95,7 @@ let length_exp ~loc kf env ~name array = ~name Cil.theMachine.typeOfSizeOf (fun v _ -> [ - Constructor.mk_assigns + Smart_stmt.assigns ~loc ~result:(Cil.var v) (Cil.mkBinOp @@ -168,7 +168,7 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = None ~name Cil.intType - (fun v _ -> [ Constructor.mk_assigns ~loc ~result:(Cil.var v) (res_value ()) ]) + (fun v _ -> [ Smart_stmt.assigns ~loc ~result:(Cil.var v) (res_value ()) ]) in (* Retrieve the length of the arrays *) @@ -193,8 +193,8 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = arrays. This env will enable us to also check RTEs *) let env = Env.push env in (* Create the access to the arrays *) - let array1_iter_e = Constructor.mk_subscript ~loc array1 iter_e in - let array2_iter_e = Constructor.mk_subscript ~loc array2 iter_e in + let array1_iter_e = Smart_exp.subscript ~loc array1 iter_e in + let array2_iter_e = Smart_exp.subscript ~loc array2 iter_e in (* Check RTE on the arrays, filtering out bounding checks since the accesses are built already in bounds *) let filter a = @@ -212,12 +212,12 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = let cond = Cil.mkBinOp ~loc Ne array1_iter_e array2_iter_e in (* Create the statement representing the body of the for loop *) let body = - Constructor.mk_if + Smart_stmt.if_stmt ~loc ~cond (Cil.mkBlock [ - Constructor.mk_assigns ~loc ~result:(Cil.var comparison_vi) (res_value ~flip:true ()); - Constructor.mk_break ~loc + Smart_stmt.assigns ~loc ~result:(Cil.var comparison_vi) (res_value ~flip:true ()); + Smart_stmt.break ~loc ]) in (* Pop the env to build the body of the for loop *) @@ -225,14 +225,14 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = (* Create the statement representing the full for loop *) let for_loop = - (Constructor.mk_block_stmt + (Smart_stmt.block_stmt (Cil.mkBlock (Cil.mkForIncr ~iter ~first:(Cil.zero ~loc) ~stopat:len1_exp ~incr:(Cil.one ~loc) - ~body:[ Constructor.mk_block_stmt body_blk ] + ~body:[ Smart_stmt.block_stmt body_blk ] ) ) ) @@ -244,7 +244,7 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = (* Add the check for the length before the for loop *) let prepend_coercion_check ~name env stmts array len = - let array_orig = Option.get (Constructor.extract_uncoerced_lval array) in + let array_orig = Option.get (Misc.extract_uncoerced_lval array) in if array_orig == array then stmts, env else @@ -259,7 +259,7 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = in let p = { p with pred_name = "array_coercion" :: p.pred_name } in let stmt = - Constructor.mk_runtime_check Constructor.RTE kf e p + Smart_stmt.runtime_check Smart_stmt.RTE kf e p in stmt :: stmts, env in @@ -272,17 +272,17 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = (* Pop the env to build the full then block *) let then_blk, env = - pop_and_get_env env (Constructor.mk_block_stmt (Cil.mkBlock then_stmts)) + pop_and_get_env env (Smart_stmt.block_stmt (Cil.mkBlock then_stmts)) in (* Create the statement representing the whole generated code *) let stmt = - Constructor.mk_if + Smart_stmt.if_stmt ~loc ~cond:(Cil.mkBinOp ~loc Eq len1_exp len2_exp) then_blk ~else_blk:(Cil.mkBlock - [ Constructor.mk_assigns + [ Smart_stmt.assigns ~loc ~result:(Cil.var comparison_vi) (res_value ~flip:true ()) ]) diff --git a/src/plugins/e-acsl/src/code_generator/logic_functions.ml b/src/plugins/e-acsl/src/code_generator/logic_functions.ml index d5bf1c4da99..97c6523575a 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_functions.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_functions.ml @@ -98,7 +98,7 @@ let term_to_block ~loc kf env ret_ty ret_vi t = function (by reference). *) let set = let lv_star_ret = Cil.mkMem ~addr:(Cil.evar ~loc ret_vi) ~off:NoOffset in - let star_ret = Constructor.mk_lval ~loc lv_star_ret in + let star_ret = Smart_exp.lval ~loc lv_star_ret in Gmp.init_set ~loc lv_star_ret star_ret e in let return_void = Cil.mkStmt ~valid_sid:true (Return (None, loc)) in diff --git a/src/plugins/e-acsl/src/code_generator/loops.ml b/src/plugins/e-acsl/src/code_generator/loops.ml index bca60ec4f2c..c8a5f714ddc 100644 --- a/src/plugins/e-acsl/src/code_generator/loops.ml +++ b/src/plugins/e-acsl/src/code_generator/loops.ml @@ -59,11 +59,11 @@ let preserve_invariant env kf stmt = match stmt.skind with let blk, env = Env.pop_and_get env last ~global_clear:false Env.Before in - Constructor.mk_block last blk :: stmts, env + Smart_stmt.block last blk :: stmts, env | s :: tl -> handle_invariants (s :: stmts, env) tl in - let env = Env.set_annotation_kind env Constructor.Invariant in + let env = Env.set_annotation_kind env Smart_stmt.Invariant in let stmts, env = handle_invariants ([], env) stmts in let new_blk = { blk with bstmts = List.rev stmts } in { stmt with skind = Loop([], new_blk, loc, cont, break) }, @@ -212,7 +212,7 @@ let rec mk_nested_loops ~loc mk_innermost_block kf env lscope_vars = Env.Middle in (* generate the guard [x bop t2] *) - let block_to_stmt b = Constructor.mk_block_stmt b in + let block_to_stmt b = Smart_stmt.block_stmt b in let tlv = Logic_const.tvar ~loc logic_x in let guard = (* must copy [t2] to force being typed again *) @@ -221,10 +221,10 @@ let rec mk_nested_loops ~loc mk_innermost_block kf env lscope_vars = in Typing.type_term ~use_gmp_opt:false ~ctx:Typing.c_int guard; let guard_exp, env = term_to_exp kf (Env.push env) guard in - let break_stmt = Constructor.mk_break ~loc:guard_exp.eloc in + let break_stmt = Smart_stmt.break ~loc:guard_exp.eloc in let guard_blk, env = Env.pop_and_get env - (Constructor.mk_if + (Smart_stmt.if_stmt ~loc:guard_exp.eloc ~cond:guard_exp (mkBlock [ mkEmptyStmt ~loc () ]) @@ -251,10 +251,10 @@ let rec mk_nested_loops ~loc mk_innermost_block kf env lscope_vars = | Some p -> let e, env = !named_predicate_ref kf (Env.push env) p in let stmt, env = - Constructor.mk_runtime_check Constructor.RTE kf e p, env + Smart_stmt.runtime_check Smart_stmt.RTE kf e p, env in let b, env = Env.pop_and_get env stmt ~global_clear:false Env.After in - let guard_for_small_type = Constructor.mk_block_stmt b in + let guard_for_small_type = Smart_stmt.block_stmt b in guard_for_small_type :: guard :: body @ [ next ], env in let start = block_to_stmt init_blk in diff --git a/src/plugins/e-acsl/src/code_generator/memory_observer.ml b/src/plugins/e-acsl/src/code_generator/memory_observer.ml index 0ec5cda04ef..629e3043227 100644 --- a/src/plugins/e-acsl/src/code_generator/memory_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/memory_observer.ml @@ -39,7 +39,7 @@ let store ?before env kf vars = tracking_stmt ?before List.fold_right (* small list *) - Constructor.mk_store_stmt + Smart_stmt.store_stmt env kf vars @@ -48,7 +48,7 @@ let duplicate_store ?before env kf vars = tracking_stmt ?before Varinfo.Set.fold - Constructor.mk_duplicate_store_stmt + Smart_stmt.duplicate_store_stmt env kf vars @@ -57,7 +57,7 @@ let delete_from_list ?before env kf vars = tracking_stmt ?before List.fold_right (* small list *) - Constructor.mk_delete_stmt + Smart_stmt.delete_stmt env kf vars @@ -66,7 +66,7 @@ let delete_from_set ?before env kf vars = tracking_stmt ?before Varinfo.Set.fold - Constructor.mk_delete_stmt + Smart_stmt.delete_stmt env kf vars diff --git a/src/plugins/e-acsl/src/code_generator/mmodel_translate.ml b/src/plugins/e-acsl/src/code_generator/mmodel_translate.ml index f5cae16eb0b..654433624a3 100644 --- a/src/plugins/e-acsl/src/code_generator/mmodel_translate.ml +++ b/src/plugins/e-acsl/src/code_generator/mmodel_translate.ml @@ -155,8 +155,8 @@ let gmp_to_sizet ~loc kf env size p = None sizet (fun vi _ -> - [ Constructor.mk_runtime_check Constructor.RTE kf guard p; - Constructor.mk_lib_call ~loc + [ Smart_stmt.runtime_check Smart_stmt.RTE kf guard p; + Smart_stmt.lib_call ~loc ~result:(Cil.var vi) "__gmpz_get_ui" [ size ] ]) diff --git a/src/plugins/e-acsl/src/code_generator/quantif.ml b/src/plugins/e-acsl/src/code_generator/quantif.ml index b6114f25cd1..b32d939f05d 100644 --- a/src/plugins/e-acsl/src/code_generator/quantif.ml +++ b/src/plugins/e-acsl/src/code_generator/quantif.ml @@ -174,7 +174,7 @@ let convert kf env loc is_forall p bounded_vars hyps goal = intType (fun v _ -> let lv = var v in - [ Constructor.mk_assigns ~loc ~result:lv init_val ]) + [ Smart_stmt.assigns ~loc ~result:lv init_val ]) in let end_loop_ref = ref dummyStmt in (* innermost block *) @@ -188,23 +188,23 @@ let convert kf env loc is_forall p bounded_vars hyps goal = (* use a 'goto', not a simple 'break' in order to handle 'forall' with multiple binders (leading to imbricated loops) *) mkBlock - [ Constructor.mk_assigns ~loc ~result:(var var_res) found_val; + [ Smart_stmt.assigns ~loc ~result:(var var_res) found_val; mkStmt ~valid_sid:true (Goto(end_loop_ref, loc)) ] in let blk, env = Env.pop_and_get env - (Constructor.mk_if ~loc ~cond:(mk_guard test) then_blk ~else_blk) + (Smart_stmt.if_stmt ~loc ~cond:(mk_guard test) then_blk ~else_blk) ~global_clear:false Env.After in let blk = Cil.flatten_transient_sub_blocks blk in - [ Constructor.mk_block_stmt blk ], env + [ Smart_stmt.block_stmt blk ], env in let stmts, env = Loops.mk_nested_loops ~loc mk_innermost_block kf env lvs_guards in let env = - Env.add_stmt env kf (Constructor.mk_block_stmt (mkBlock stmts)) + Env.add_stmt env kf (Smart_stmt.block_stmt (mkBlock stmts)) in (* where to jump to go out of the loop *) let end_loop = mkEmptyStmt ~loc () in diff --git a/src/plugins/e-acsl/src/code_generator/rational.ml b/src/plugins/e-acsl/src/code_generator/rational.ml index 3a0da53951b..2f4417b0191 100644 --- a/src/plugins/e-acsl/src/code_generator/rational.ml +++ b/src/plugins/e-acsl/src/code_generator/rational.ml @@ -24,7 +24,7 @@ open Cil_types (* No init_set for GMPQ: init then set separately *) let init_set ~loc lval vi_e e = - Constructor.mk_block_stmt + Smart_stmt.block_stmt (Cil.mkBlock [ Gmp.init ~loc vi_e ; Gmp.affect ~loc lval vi_e e ]) @@ -148,7 +148,7 @@ let add_cast ~loc ?name e env kf ty = None Cil.doubleType (fun v _ -> - [ Constructor.mk_lib_call ~loc + [ Smart_stmt.lib_call ~loc ~result:(Cil.var v) "__gmpq_get_d" [ e ] ]) @@ -197,7 +197,7 @@ let cmp ~loc bop e1 e2 env kf t_opt = ~name Cil.intType (fun v _ -> - [ Constructor.mk_lib_call ~loc ~result:(Cil.var v) fname [ e1; e2 ] ]) + [ Smart_stmt.lib_call ~loc ~result:(Cil.var v) fname [ e1; e2 ] ]) in Cil.new_exp ~loc (BinOp(bop, e, Cil.zero ~loc, Cil.intType)), env @@ -226,7 +226,7 @@ let binop ~loc bop e1 e2 env kf t_opt = [e2] *) let e1, env = create ~loc e1 env kf None in let e2, env = create ~loc e2 env kf None in - let mk_stmts _ e = [ Constructor.mk_lib_call ~loc name [ e; e1; e2 ] ] in + let mk_stmts _ e = [ Smart_stmt.lib_call ~loc name [ e; e1; e2 ] ] in let name = Misc.name_of_binop bop in let _, e, env = new_var_and_init ~loc ~name env kf t_opt mk_stmts in e, env diff --git a/src/plugins/e-acsl/src/code_generator/temporal.ml b/src/plugins/e-acsl/src/code_generator/temporal.ml index e57b894f428..96f5c22ee29 100644 --- a/src/plugins/e-acsl/src/code_generator/temporal.ml +++ b/src/plugins/e-acsl/src/code_generator/temporal.ml @@ -81,7 +81,7 @@ end = struct | Copy -> Options.fatal "Copy flow type in store_reference" in let fname = RTL.mk_temporal_name fname in - Constructor.mk_lib_call ~loc fname [ Cil.mkAddrOf ~loc lhs; rhs ] + Smart_stmt.lib_call ~loc fname [ Cil.mkAddrOf ~loc lhs; rhs ] let save_param ~loc flow lhs pos = let infix = match flow with @@ -91,13 +91,13 @@ end = struct in let fname = "save_" ^ infix ^ "_parameter" in let fname = RTL.mk_temporal_name fname in - Constructor.mk_lib_call ~loc fname [ lhs ; Cil.integer ~loc pos ] + Smart_stmt.lib_call ~loc fname [ lhs ; Cil.integer ~loc pos ] let pull_param ~loc vi pos = let exp = Cil.mkAddrOfVi vi in let fname = RTL.mk_temporal_name "pull_parameter" in let sz = Cil.kinteger ~loc IULong (Cil.bytesSizeOf vi.vtype) in - Constructor.mk_lib_call ~loc fname [ exp ; Cil.integer ~loc pos ; sz ] + Smart_stmt.lib_call ~loc fname [ exp ; Cil.integer ~loc pos ; sz ] let handle_return_referent ~save ~loc lhs = let fname = match save with @@ -108,15 +108,15 @@ end = struct (match (Cil.typeOf lhs) with | TPtr _ -> () | _ -> Error.not_yet "Struct in return"); - Constructor.mk_lib_call ~loc (RTL.mk_temporal_name fname) [ lhs ] + Smart_stmt.lib_call ~loc (RTL.mk_temporal_name fname) [ lhs ] let reset_return_referent ~loc = - Constructor.mk_lib_call ~loc (RTL.mk_temporal_name "reset_return") [] + Smart_stmt.lib_call ~loc (RTL.mk_temporal_name "reset_return") [] let temporal_memcpy_struct ~loc lhs rhs = let fname = RTL.mk_temporal_name "memcpy" in let size = Cil.sizeOf ~loc (Cil.typeOfLval lhs) in - Constructor.mk_lib_call ~loc fname [ Cil.mkAddrOf ~loc lhs; rhs; size ] + Smart_stmt.lib_call ~loc fname [ Cil.mkAddrOf ~loc lhs; rhs; size ] end (* }}} *) @@ -263,7 +263,7 @@ end = struct (* Update local environment with a statement tracking temporal metadata associated with assignment [ret] = [func(args)]. *) let call_with_ret ?(alloc=false) current_stmt loc ret env kf = - let rhs = Constructor.mk_lval ~loc ret in + let rhs = Smart_exp.lval ~loc ret in let vals = assign ret rhs loc in (* Track referent numbers of assignments via function calls. Library functions (i.e., with no source code available) that return @@ -284,7 +284,7 @@ end = struct Extlib.may_map (fun (lhs, rhs, flow) -> let flow, rhs = match flow with - | Indirect when alloc -> Direct, (Constructor.mk_deref ~loc rhs) + | Indirect when alloc -> Direct, (Smart_exp.deref ~loc rhs) | _ -> flow, rhs in let stmt = @@ -306,7 +306,7 @@ end = struct | _ -> Options.fatal "[Temporal.call_memxxx] not a left-value" in let stmt = - Constructor.mk_lib_call ~loc (RTL.mk_temporal_name name) args + Smart_stmt.lib_call ~loc (RTL.mk_temporal_name name) args in Env.add_stmt ~before:current_stmt ~post:false env kf stmt else @@ -321,7 +321,7 @@ end = struct the implementation of the function should be empty and compiler should be able to optimize that code out. *) let name = (RTL.mk_temporal_name "reset_parameters") in - let stmt = Constructor.mk_lib_call ~loc name [] in + let stmt = Smart_stmt.lib_call ~loc name [] in let env = Env.add_stmt ~before:current_stmt ~post:false env kf stmt in let stmt = Mk.reset_return_referent ~loc in let env = Env.add_stmt ~before:current_stmt ~post:false env kf stmt in diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 009763c7931..2df14a6f11f 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -141,7 +141,7 @@ let add_cast ~loc ?name env kf ctx strnum t_opt e = None new_ty (fun v _ -> - [ Constructor.mk_lib_call ~loc ~result:(Cil.var v) fname [ e ] ]) + [ Smart_stmt.lib_call ~loc ~result:(Cil.var v) fname [ e ] ]) in e, env else if Gmp_types.Q.is_t ty || strnum = Str_R then @@ -229,7 +229,7 @@ let conditional_to_exp ?(name="if") loc kf t_opt e1 (e2, env2) (e3, env3) = let s = affect e3 in Env.pop_and_get env3 s ~global_clear:false Env.Middle in - [ Constructor.mk_if ~loc ~cond:e1 then_blk ~else_blk ]) + [ Smart_stmt.if_stmt ~loc ~cond:e1 then_blk ~else_blk ]) in e, env @@ -276,7 +276,7 @@ and context_insensitive_term_to_exp kf env t = c, env, strnum, "" | TLval lv -> let lv, env, name = tlval_to_lval kf env lv in - Constructor.mk_lval ~loc lv, env, C_number, name + Smart_exp.lval ~loc lv, env, C_number, name | TSizeOf ty -> Cil.sizeOf ~loc ty, env, C_number, "sizeof" | TSizeOfE t -> let e, env = term_to_exp kf env t in @@ -303,7 +303,7 @@ and context_insensitive_term_to_exp kf env t = kf ~name:vname (Some t) - (fun _ ev -> [ Constructor.mk_lib_call ~loc name [ ev; e ] ]) + (fun _ ev -> [ Smart_stmt.lib_call ~loc name [ ev; e ] ]) in e, env, C_number, "" else if Gmp_types.Q.is_t ty then @@ -332,7 +332,7 @@ and context_insensitive_term_to_exp kf env t = let e2, env = term_to_exp kf env t2 in if Gmp_types.Z.is_t ty then let name = name_of_mpz_arith_bop bop in - let mk_stmts _ e = [ Constructor.mk_lib_call ~loc name [ e; e1; e2 ] ] in + let mk_stmts _ e = [ Smart_stmt.lib_call ~loc name [ e; e1; e2 ] ] in let name = Misc.name_of_binop bop in let _, e, env = Env.new_var_and_mpz_init ~loc ~name env kf (Some t) mk_stmts @@ -370,14 +370,14 @@ and context_insensitive_term_to_exp kf env t = let mk_stmts _v e = assert (Gmp_types.Z.is_t ty); let cond = - Constructor.mk_runtime_check + Smart_stmt.runtime_check (Env.annotation_kind env) kf guard p in Env.add_assert kf cond p; - let instr = Constructor.mk_lib_call ~loc name [ e; e1; e2 ] in + let instr = Smart_stmt.lib_call ~loc name [ e; e1; e2 ] in [ cond; instr ] in let name = Misc.name_of_binop bop in @@ -435,7 +435,7 @@ and context_insensitive_term_to_exp kf env t = (fun vi _e -> let result = Cil.var vi in let fname = "__gmpz_fits_ulong_p" in - [ Constructor.mk_lib_call ~loc ~result fname [ e2 ] ]) + [ Smart_stmt.lib_call ~loc ~result fname [ e2 ] ]) in e, env in @@ -454,8 +454,8 @@ and context_insensitive_term_to_exp kf env t = in let pname = bop_name ^ "_rhs_fits_in_mp_bitcnt_t" in let pred = { pred with pred_name = pname :: pred.pred_name } in - let cond = Constructor.mk_runtime_check - Constructor.RTE + let cond = Smart_stmt.runtime_check + Smart_stmt.RTE kf coerce_guard pred @@ -465,7 +465,7 @@ and context_insensitive_term_to_exp kf env t = in let result = Cil.var vi in let name = "__gmpz_get_ui" in - let instr = Constructor.mk_lib_call ~loc ~result name [ e2 ] in + let instr = Smart_stmt.lib_call ~loc ~result name [ e2 ] in [ coerce_guard_cond; instr ] in let name = e2_name ^ bop_name ^ "_coerced" in @@ -484,7 +484,7 @@ and context_insensitive_term_to_exp kf env t = (* Create the shift instruction *) let mk_shift_instr result_e = let name = name_of_mpz_arith_bop bop in - Constructor.mk_lib_call ~loc name [ result_e; e1; e2_as_bitcnt_e ] + Smart_stmt.lib_call ~loc name [ result_e; e1; e2_as_bitcnt_e ] in (* Put t in an option to use with comparison_to_exp and @@ -515,8 +515,8 @@ and context_insensitive_term_to_exp kf env t = in let e1_guard_cond = let pred = Logic_const.prel ~loc (Rge, t1, zero) in - let cond = Constructor.mk_runtime_check - Constructor.RTE + let cond = Smart_stmt.runtime_check + Smart_stmt.RTE kf e1_guard pred @@ -568,7 +568,7 @@ and context_insensitive_term_to_exp kf env t = if Gmp_types.Z.is_t ty then let mk_stmts _v e = let name = name_of_mpz_arith_bop bop in - let instr = Constructor.mk_lib_call ~loc name [ e; e1; e2 ] in + let instr = Smart_stmt.lib_call ~loc name [ e; e1; e2 ] in [ instr ] in let name = Misc.name_of_binop bop in @@ -646,7 +646,7 @@ and context_insensitive_term_to_exp kf env t = (Some t) (Misc.cty (Extlib.the li.l_type)) (fun vi _ -> - [ Constructor.mk_lib_call ~loc ~result:(Cil.var vi) fname args ]) + [ Smart_stmt.lib_call ~loc ~result:(Cil.var vi) fname args ]) else (* build the arguments and compute the integer_ty of the parameters *) let params_ty, args, env = @@ -788,7 +788,7 @@ and comparison_to_exp ~name Cil.intType (fun v _ -> - [ Constructor.mk_lib_call ~loc + [ Smart_stmt.lib_call ~loc ~result:(Cil.var v) "__gmpz_cmp" [ e1; e2 ] ]) @@ -855,7 +855,7 @@ and env_of_li li kf env loc = let e, env = term_to_exp kf env t in let stmt = match Typing.get_number_ty t with | Typing.(C_integer _ | C_float _ | Nan) -> - Constructor.mk_assigns ~loc ~result:(Cil.var vi) e + Smart_stmt.assigns ~loc ~result:(Cil.var vi) e | Typing.Gmpz -> Gmp.init_set ~loc (Cil.var vi) vi_e e | Typing.Rational -> @@ -1033,7 +1033,7 @@ and translate_rte_annots: fun pp elt kf env l -> let old_valid = !is_visiting_valid in let old_kind = Env.annotation_kind env in - let env = Env.set_annotation_kind env Constructor.RTE in + let env = Env.set_annotation_kind env Smart_stmt.RTE in let env = List.fold_left (fun env a -> match a.annot_content with @@ -1078,7 +1078,7 @@ and translate_named_predicate kf env p = Env.add_stmt env kf - (Constructor.mk_runtime_check + (Smart_stmt.runtime_check (Env.annotation_kind env) kf e @@ -1168,7 +1168,7 @@ let assumes_predicate bhv = bhv.b_assumes let translate_preconditions kf kinstr env behaviors = - let env = Env.set_annotation_kind env Constructor.Precondition in + let env = Env.set_annotation_kind env Smart_stmt.Precondition in let do_behavior env b = let assumes_pred = assumes_predicate b in List.fold_left @@ -1193,7 +1193,7 @@ let translate_preconditions kf kinstr env behaviors = List.fold_left do_behavior env behaviors let translate_postconditions kf kinstr env behaviors = - let env = Env.set_annotation_kind env Constructor.Postcondition in + let env = Env.set_annotation_kind env Smart_stmt.Postcondition in (* generate one guard by postcondition of each behavior *) let do_behavior env b = let env = @@ -1284,7 +1284,7 @@ let translate_pre_code_annotation kf stmt env annot = let convert env = match annot.annot_content with | AAssert(l, _, p) -> if must_translate (Property.ip_of_code_annot_single kf stmt annot) then - let env = Env.set_annotation_kind env Constructor.Assertion in + let env = Env.set_annotation_kind env Smart_stmt.Assertion in if l <> [] then not_yet env "@[assertion applied only on some behaviors@]"; translate_named_predicate kf env p @@ -1296,7 +1296,7 @@ let translate_pre_code_annotation kf stmt env annot = translate_pre_spec kf (Kstmt stmt) env spec ; | AInvariant(l, loop_invariant, p) -> if must_translate (Property.ip_of_code_annot_single kf stmt annot) then - let env = Env.set_annotation_kind env Constructor.Invariant in + let env = Env.set_annotation_kind env Smart_stmt.Invariant in if l <> [] then not_yet env "@[invariant applied only on some behaviors@]"; let env = translate_named_predicate kf env p in -- GitLab From 79b2f0b80c55e4aefaafebd9b63270c865282aeb Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 28 Aug 2020 14:14:47 +0200 Subject: [PATCH 028/255] [eacsl] Remove TAB from changelog --- src/plugins/e-acsl/doc/Changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog index caec156e2bc..541d6252e8d 100644 --- a/src/plugins/e-acsl/doc/Changelog +++ b/src/plugins/e-acsl/doc/Changelog @@ -26,8 +26,8 @@ Plugin E-ACSL <next-release> ############################ -* E-ACSL [2020-08-28] Fix crash that may occur when translating - properties that have been proved valid by another plug-in - (frama-c/e-acsl#106). + properties that have been proved valid by another plug-in + (frama-c/e-acsl#106). -! E-ACSL [2020-08-28] Remove option -e-acsl-prepare-ast. -! E-ACSL [2020-08-28] Remove option -e-acsl-check. - E-ACSL [2020-08-07] Add support for logical array comparison -- GitLab From 9a6d9a9acb9e2db718380d6d60bdda245bc7222f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Mon, 31 Aug 2020 14:06:01 +0200 Subject: [PATCH 029/255] [Eva] Fixes the automatic loop unrolling on loops with no counter increment. --- src/plugins/value/partitioning/auto_loop_unroll.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/value/partitioning/auto_loop_unroll.ml b/src/plugins/value/partitioning/auto_loop_unroll.ml index ac50025173c..b2c114233e6 100644 --- a/src/plugins/value/partitioning/auto_loop_unroll.ml +++ b/src/plugins/value/partitioning/auto_loop_unroll.ml @@ -415,7 +415,8 @@ module Make (Abstract: Abstractions.Eva) = struct try let zero_delta = { current = `Value Val.zero; final = `Bottom; } in let delta = delta_block zero_delta loop in - final_delta delta >> fun d -> Some d + final_delta delta >> fun d -> + if is_true (Val.assume_non_zero d) then Some d else None with NoIncrement -> None (* If in the block [loop], [lval] is assigned once to the value of another -- GitLab From 7efda0affb3be984cb2f9ca247840e56ab52f205 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Mon, 29 Jun 2020 11:41:55 +0200 Subject: [PATCH 030/255] [ival] improve the precision of the computed small sets for bitwise operators --- .../abstract_interp/int_val.ml | 18 +++- tests/value/bitwise.i | 23 ++++- tests/value/oracle/bitwise.res.oracle | 95 +++++++++++++------ 3 files changed, 102 insertions(+), 34 deletions(-) diff --git a/src/kernel_services/abstract_interp/int_val.ml b/src/kernel_services/abstract_interp/int_val.ml index a98c8c40fee..e1afac0cf11 100644 --- a/src/kernel_services/abstract_interp/int_val.ml +++ b/src/kernel_services/abstract_interp/int_val.ml @@ -660,6 +660,8 @@ end module type BitOperator = sig + (* Concrete version of the bitwise operator *) + val concrete_bitwise : Int.t -> Int.t -> Int.t (* Printable version of the operator *) val representation : string (* forward is given here as the lifted function of some bit operator op @@ -682,6 +684,8 @@ end module And : BitOperator = struct + let concrete_bitwise = Int.logand + let representation = "&" let forward v1 v2 = @@ -701,6 +705,8 @@ end module Or : BitOperator = struct + let concrete_bitwise = Int.logor + let representation = "|" let forward v1 v2 = @@ -720,6 +726,8 @@ end module Xor : BitOperator = struct + let concrete_bitwise = Int.logxor + let representation = "^" let forward v1 v2 = @@ -893,7 +901,15 @@ struct acc := List.fold_left (set_bit (Bit i)) [] !acc; if List.length !acc > small_cardinal () then raise Do_not_fit_small_sets done; - let list = List.map (fun (r, _, _) -> r) !acc in + (* Keep only values that can actually be obtained *) + let is_admissible (r, v1, v2) = + match v1, v2 with + | Set s1, Set s2 -> + let op = Op.concrete_bitwise in + Int_set.(exists (fun i1 -> exists (fun i2 -> op i1 i2 = r) s2) s1) + | _, _ -> true + in + let list = Extlib.filter_map is_admissible (fun (r, _, _) -> r) !acc in Set (Int_set.inject_list list) (* If lower is true (resp. false), compute the lower (resp. upper) bound of diff --git a/tests/value/bitwise.i b/tests/value/bitwise.i index 10db311b22c..92a3bc59753 100644 --- a/tests/value/bitwise.i +++ b/tests/value/bitwise.i @@ -2,11 +2,16 @@ STDOPT: +"-big-ints-hex 256" */ -/*@ assigns \result \from min, max; - ensures min <= \result <= max ; +/*@ assigns \result \from a, b; + ensures result_a_or_b: \result == a || \result == b ; */ -int Frama_C_interval(int min, int max); +extern int Frama_C_nondet(int a, int b); +/*@ requires order: min <= max; + assigns \result \from min, max; + ensures result_bounded: min <= \result <= max ; + */ +extern int Frama_C_interval(int min, int max); volatile long v; volatile unsigned char input[3]; @@ -67,13 +72,22 @@ int test4(void) if (something & 0x80000000) { Frama_C_show_each_true(something); return 0; - } + } else { Frama_C_show_each_false(something); return 1; } } +void test5(void) +{ + int x = Frama_C_nondet(-1, 0); + int y = Frama_C_nondet(-1, 0); + int a = x & y; + int b = x | y; + int c = x ^ y; +} + void and_or_rel(void) { long x, r1, r2, r3; @@ -150,6 +164,7 @@ void main(void) { test2(); test3(); test4(); + test5(); and_or_rel(); double_neg(); bug1(); diff --git a/tests/value/oracle/bitwise.res.oracle b/tests/value/oracle/bitwise.res.oracle index 5bd9c79813b..20f6783fe65 100644 --- a/tests/value/oracle/bitwise.res.oracle +++ b/tests/value/oracle/bitwise.res.oracle @@ -7,76 +7,95 @@ input[0..2] ∈ [--..--] s ∈ [--..--] [eva] computing for function test1 <- main. - Called from tests/value/bitwise.i:149. + Called from tests/value/bitwise.i:163. [eva] computing for function Frama_C_interval <- test1 <- main. - Called from tests/value/bitwise.i:23. + Called from tests/value/bitwise.i:28. [eva] using specification for function Frama_C_interval +[eva] tests/value/bitwise.i:28: + function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test1 <- main. - Called from tests/value/bitwise.i:24. + Called from tests/value/bitwise.i:29. +[eva] tests/value/bitwise.i:29: + function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test1 <- main. - Called from tests/value/bitwise.i:25. + Called from tests/value/bitwise.i:30. +[eva] tests/value/bitwise.i:30: + function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] Recording results for test1 [eva] Done for function test1 [eva] computing for function test2 <- main. - Called from tests/value/bitwise.i:150. + Called from tests/value/bitwise.i:164. [eva] computing for function Frama_C_interval <- test2 <- main. - Called from tests/value/bitwise.i:50. + Called from tests/value/bitwise.i:55. +[eva] tests/value/bitwise.i:55: + function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] Recording results for test2 [eva] Done for function test2 [eva] computing for function test3 <- main. - Called from tests/value/bitwise.i:151. + Called from tests/value/bitwise.i:165. [eva] Recording results for test3 [eva] Done for function test3 [eva] computing for function test4 <- main. - Called from tests/value/bitwise.i:152. -[eva] tests/value/bitwise.i:62: assertion got status valid. -[eva] tests/value/bitwise.i:64: + Called from tests/value/bitwise.i:166. +[eva] tests/value/bitwise.i:67: assertion got status valid. +[eva] tests/value/bitwise.i:69: Frama_C_show_each_1: [0x80000000..0xFFFFFFFF], {0x80000000} -[eva] tests/value/bitwise.i:64: Frama_C_show_each_1: [0..0x7FFFFFFF], {0} -[eva] tests/value/bitwise.i:66: +[eva] tests/value/bitwise.i:69: Frama_C_show_each_1: [0..0x7FFFFFFF], {0} +[eva] tests/value/bitwise.i:71: Frama_C_show_each_2: [0..0x7FFFFFFF], {0}, {0x80000000} -[eva] tests/value/bitwise.i:66: Frama_C_show_each_2: [0..0x7FFFFFFF], {0}, {0} -[eva] tests/value/bitwise.i:72: Frama_C_show_each_false: [0..0x7FFFFFFF] -[eva] tests/value/bitwise.i:72: Frama_C_show_each_false: [0..0x7FFFFFFF] +[eva] tests/value/bitwise.i:71: Frama_C_show_each_2: [0..0x7FFFFFFF], {0}, {0} +[eva] tests/value/bitwise.i:77: Frama_C_show_each_false: [0..0x7FFFFFFF] +[eva] tests/value/bitwise.i:77: Frama_C_show_each_false: [0..0x7FFFFFFF] [eva] Recording results for test4 [eva] Done for function test4 +[eva] computing for function test5 <- main. + Called from tests/value/bitwise.i:167. +[eva] computing for function Frama_C_nondet <- test5 <- main. + Called from tests/value/bitwise.i:84. +[eva] using specification for function Frama_C_nondet +[eva] Done for function Frama_C_nondet +[eva] computing for function Frama_C_nondet <- test5 <- main. + Called from tests/value/bitwise.i:85. +[eva] Done for function Frama_C_nondet +[eva] Recording results for test5 +[eva] Done for function test5 [eva] computing for function and_or_rel <- main. - Called from tests/value/bitwise.i:153. -[eva:alarm] tests/value/bitwise.i:87: Warning: assertion got status unknown. + Called from tests/value/bitwise.i:168. +[eva:alarm] tests/value/bitwise.i:101: Warning: assertion got status unknown. [eva] Recording results for and_or_rel [eva] Done for function and_or_rel [eva] computing for function double_neg <- main. - Called from tests/value/bitwise.i:154. + Called from tests/value/bitwise.i:169. [eva] Recording results for double_neg [eva] Done for function double_neg [eva] computing for function bug1 <- main. - Called from tests/value/bitwise.i:155. + Called from tests/value/bitwise.i:170. [eva] Recording results for bug1 [eva] Done for function bug1 [eva] computing for function bug2 <- main. - Called from tests/value/bitwise.i:156. -[eva] tests/value/bitwise.i:114: Frama_C_show_each_then: -[eva] tests/value/bitwise.i:114: Frama_C_show_each_else: + Called from tests/value/bitwise.i:171. +[eva] tests/value/bitwise.i:128: Frama_C_show_each_then: +[eva] tests/value/bitwise.i:128: Frama_C_show_each_else: [eva] Recording results for bug2 [eva] Done for function bug2 [eva] computing for function bug3 <- main. - Called from tests/value/bitwise.i:157. -[eva] tests/value/bitwise.i:121: Frama_C_show_each: {0x41F656F}, {0xFBE09A91} + Called from tests/value/bitwise.i:172. +[eva] tests/value/bitwise.i:135: Frama_C_show_each: {0x41F656F}, {0xFBE09A91} [eva] Recording results for bug3 [eva] Done for function bug3 [eva] computing for function bug4 <- main. - Called from tests/value/bitwise.i:158. -[eva] tests/value/bitwise.i:131: Frama_C_show_each_then: -[eva] tests/value/bitwise.i:133: Frama_C_show_each_else: + Called from tests/value/bitwise.i:173. +[eva] tests/value/bitwise.i:145: Frama_C_show_each_then: +[eva] tests/value/bitwise.i:147: Frama_C_show_each_else: [eva] Recording results for bug4 [eva] Done for function bug4 [eva] computing for function bug5 <- main. - Called from tests/value/bitwise.i:159. -[eva] tests/value/bitwise.i:144: Frama_C_show_each_dead: {0} + Called from tests/value/bitwise.i:174. +[eva] tests/value/bitwise.i:158: Frama_C_show_each_dead: {0} [eva] Recording results for bug5 [eva] Done for function bug5 [eva] Recording results for main @@ -136,6 +155,12 @@ something ∈ [0..0x7FFFFFFF] topBitOnly ∈ {0; 0x80000000} __retres ∈ {1} +[eva:final-states] Values at end of function test5: + x ∈ {-1; 0} + y ∈ {-1; 0} + a ∈ {-1; 0} + b ∈ {-1; 0} + c ∈ {-1; 0} [eva:final-states] Values at end of function main: [from] Computing for function and_or_rel @@ -162,12 +187,18 @@ [from] Done for function test3 [from] Computing for function test4 [from] Done for function test4 +[from] Computing for function test5 +[from] Computing for function Frama_C_nondet <-test5 +[from] Done for function Frama_C_nondet +[from] Done for function test5 [from] Computing for function main [from] Done for function main [from] ====== DEPENDENCIES COMPUTED ====== These dependencies hold at termination for the executions that terminate: [from] Function Frama_C_interval: \result FROM min; max +[from] Function Frama_C_nondet: + \result FROM a; b [from] Function and_or_rel: NO EFFECTS [from] Function bug1: @@ -190,6 +221,8 @@ NO EFFECTS [from] Function test4: \result FROM v +[from] Function test5: + NO EFFECTS [from] Function main: NO EFFECTS [from] ====== END OF DEPENDENCIES ====== @@ -238,6 +271,10 @@ something; topBitOnly; __retres [inout] Inputs for function test4: v +[inout] Out (internal) for function test5: + x; y; a; b; c +[inout] Inputs for function test5: + \nothing [inout] Out (internal) for function main: \nothing [inout] Inputs for function main: -- GitLab From ff0b8e6df5ae1aa7973db557e495022e63bc9538 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 28 Jul 2020 14:13:46 +0200 Subject: [PATCH 031/255] [Ival] Improves the precision of bitwise operators on small sets. Applies the concrete operator on all possible pairs of integers. This is maximally precise. --- .../abstract_interp/int_set.ml | 6 ++-- .../abstract_interp/int_set.mli | 3 ++ .../abstract_interp/int_val.ml | 28 +++++++++++-------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/kernel_services/abstract_interp/int_set.ml b/src/kernel_services/abstract_interp/int_set.ml index 41de93a6ba8..a337b628b84 100644 --- a/src/kernel_services/abstract_interp/int_set.ml +++ b/src/kernel_services/abstract_interp/int_set.ml @@ -318,7 +318,7 @@ let apply_bin_1_strict_decr f x (s : Integer.t array) = in c 0 -let apply2_n f (s1 : Integer.t array) (s2 : Integer.t array) = +let apply2 f (s1 : Integer.t array) (s2 : Integer.t array) = let ps = ref empty_ps in let l1 = Array.length s1 in let l2 = Array.length s2 in @@ -588,7 +588,7 @@ let add_singleton = apply_bin_1_strict_incr Int.add let add s1 s2 = match s1, s2 with | [| x |], s | s, [| x |] -> `Set (apply_bin_1_strict_incr Int.add x s) - | _, _ -> apply2_n Int.add s1 s2 + | _, _ -> apply2 Int.add s1 s2 let add_under s1 s2 = match s1, s2 with @@ -619,7 +619,7 @@ let scale f s = let mul s1 s2 = match s1, s2 with | s, [| x |] | [| x |], s -> `Set (scale x s) - | _, _ -> apply2_n Int.mul s1 s2 + | _, _ -> apply2 Int.mul s1 s2 let scale_div ~pos f s = assert (not (Int.is_zero f)); diff --git a/src/kernel_services/abstract_interp/int_set.mli b/src/kernel_services/abstract_interp/int_set.mli index 6b81748ffc1..a55b2e745b5 100644 --- a/src/kernel_services/abstract_interp/int_set.mli +++ b/src/kernel_services/abstract_interp/int_set.mli @@ -97,6 +97,9 @@ type set_or_top = type set_or_top_or_bottom = [ `Bottom | set_or_top ] +(** [apply2 f s1 s2] applies [f i1 i2] for all integers i1 in s1 and i2 in s2. *) +val apply2: (Integer.t -> Integer.t -> Integer.t) -> t -> t -> set_or_top + (** {2 Lattice structure.} *) val is_included: t -> t -> bool diff --git a/src/kernel_services/abstract_interp/int_val.ml b/src/kernel_services/abstract_interp/int_val.ml index e1afac0cf11..df1e9925d9d 100644 --- a/src/kernel_services/abstract_interp/int_val.ml +++ b/src/kernel_services/abstract_interp/int_val.ml @@ -952,18 +952,22 @@ struct bound let bitwise_forward (v1 : t) (v2 : t) : t = - let r, modu = compute_modulo v1 v2 in - match result_size v1 v2 with - | None -> - (* We could do better here, as one of the bound may be finite. However, - this case should occur rarely or not at all. *) - inject_interval None None r modu - | Some size -> - try compute_small_set ~size v1 v2 r modu - with Do_not_fit_small_sets -> - let min = compute_bound ~size v1 v2 true - and max = compute_bound ~size v1 v2 false in - inject_interval (Some min) (Some max) r modu + match v1, v2 with + | Set s1, Set s2 -> + inject_set_or_top (Int_set.apply2 Op.concrete_bitwise s1 s2) + | _, _ -> + let r, modu = compute_modulo v1 v2 in + match result_size v1 v2 with + | None -> + (* We could do better here, as one of the bound may be finite. However, + this case should occur rarely or not at all. *) + inject_interval None None r modu + | Some size -> + try compute_small_set ~size v1 v2 r modu + with Do_not_fit_small_sets -> + let min = compute_bound ~size v1 v2 true + and max = compute_bound ~size v1 v2 false in + inject_interval (Some min) (Some max) r modu end let bitwise_or = let module M = BitwiseOperator (Or) in M.bitwise_forward -- GitLab From aa5ecf658ce392689d5501c3fff2c572fbab08d3 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 1 Sep 2020 11:29:23 +0200 Subject: [PATCH 032/255] [Kernel] improve error message for sizeof on incomplete types --- src/kernel_internals/typing/cabs2cil.ml | 3 ++- tests/syntax/oracle/sizeof_incomplete_type.res.oracle | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml index d797b501c14..209aed920b7 100644 --- a/src/kernel_internals/typing/cabs2cil.ml +++ b/src/kernel_internals/typing/cabs2cil.ml @@ -5995,7 +5995,8 @@ and doExp local_env let res = if Cil.isCompleteType typ then new_exp ~loc (SizeOf typ) else begin - Kernel.error ~once:true ~current:true "sizeof on incomplete type"; + Kernel.error ~once:true ~current:true + "sizeof on incomplete type '%a'" Cil_printer.pp_typ typ; new_exp ~loc (Const (CStr ("booo sizeof(incomplete)"))) end in diff --git a/tests/syntax/oracle/sizeof_incomplete_type.res.oracle b/tests/syntax/oracle/sizeof_incomplete_type.res.oracle index 861a044c355..37dab603578 100644 --- a/tests/syntax/oracle/sizeof_incomplete_type.res.oracle +++ b/tests/syntax/oracle/sizeof_incomplete_type.res.oracle @@ -1,6 +1,6 @@ [kernel] Parsing tests/syntax/sizeof_incomplete_type.c (with preprocessing) [kernel] tests/syntax/sizeof_incomplete_type.c:21: User Error: - sizeof on incomplete type + sizeof on incomplete type 'struct inexistent' [kernel] User Error: stopping on file "tests/syntax/sizeof_incomplete_type.c" that has errors. Add '-kernel-msg-key pp' for preprocessing command. [kernel] Frama-C aborted: invalid user input. -- GitLab From b278d748520dd18b44d0f970e59563775c4a05e8 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 1 Sep 2020 17:47:45 +0200 Subject: [PATCH 033/255] [Kernel] use Filepath for -json-compilation-database and fix test --- .../ast_queries/json_compilation_database.ml | 7 ++----- src/kernel_services/plugin_entry_points/kernel.ml | 6 +++--- src/kernel_services/plugin_entry_points/kernel.mli | 2 +- tests/jcdb/compile_commands.json | 8 ++++---- tests/jcdb/jcdb.ml | 4 ++-- tests/jcdb/oracle/jcdb.0.res.oracle | 2 +- 6 files changed, 13 insertions(+), 16 deletions(-) diff --git a/src/kernel_services/ast_queries/json_compilation_database.ml b/src/kernel_services/ast_queries/json_compilation_database.ml index 875c9431f78..eb529f3c239 100644 --- a/src/kernel_services/ast_queries/json_compilation_database.ml +++ b/src/kernel_services/ast_queries/json_compilation_database.ml @@ -240,11 +240,8 @@ let parse_entry jcdb_dir r = Flags.add path flags let compute_flags_from_file () = - let database = Kernel.JsonCompilationDatabase.get () in + let database = (Kernel.JsonCompilationDatabase.get () :> string) in let jcdb_dir, jcdb_path = - if not (Sys.file_exists database) then - Kernel.abort "invalid path for option %s: %s" - Kernel.JsonCompilationDatabase.option_name database; if Sys.is_directory database then database, Filename.concat database "compile_commands.json" else Filename.dirname database, database @@ -267,7 +264,7 @@ let compute_flags_from_file () = Flags.mark_as_computed () let get_flags f = - if Kernel.JsonCompilationDatabase.get () <> "" then begin + if not (Filepath.Normalized.is_unknown (Kernel.JsonCompilationDatabase.get ())) then begin if not (Flags.is_computed ()) then compute_flags_from_file (); try let flags = Flags.find f in diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 0d5cfc8f14b..cb516102dae 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -1110,12 +1110,12 @@ module C11 = let () = Parameter_customize.set_group parsing let () = Parameter_customize.do_not_reset_on_copy () module JsonCompilationDatabase = - String + P.Filepath (struct - let module_name = "JsonCompilationDatabase" let option_name = "-json-compilation-database" - let default = "" let arg_name = "path" + let file_kind = "directory or json" + let existence = Filepath.Must_exist let help = "when set, preprocessing of each file will include corresponding \ flags (e.g. -I, -D) from the JSON compilation database \ diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index c9dae9c7fd2..fe86c933c17 100644 --- a/src/kernel_services/plugin_entry_points/kernel.mli +++ b/src/kernel_services/plugin_entry_points/kernel.mli @@ -465,7 +465,7 @@ module ImplicitFunctionDeclaration: Parameter_sig.String module C11: Parameter_sig.Bool (** Behavior of option "-c11" *) -module JsonCompilationDatabase: Parameter_sig.String +module JsonCompilationDatabase: Parameter_sig.Filepath (** Behavior of option "-json-compilation-database" *) (* ************************************************************************* *) diff --git a/tests/jcdb/compile_commands.json b/tests/jcdb/compile_commands.json index 52a0f039c5b..0592cf2b079 100644 --- a/tests/jcdb/compile_commands.json +++ b/tests/jcdb/compile_commands.json @@ -7,12 +7,12 @@ "command": "g++ -DDUPLICATE_FLAGS_THAT_WILL_BE_OVERWRITTEN", "file": "jcdb.c" }, - { "directory": ".", - "command": "/usr/bin/clang++ -D'MSG=\"a \\\" \\\"b\"' -D'SINGLE_DOUBLE(a)=\"a \\\"with spaces and tab \"' -DSOMEDEF=\"With spaces, quotes and \\-es.\" -D\"DOUBLE_SINGLE(a)=a \\\"macro with spaces and non-escaped \\\\'\\\"\" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF", + { + "command": "testing entry without 'directory' key -DFLAG_TO_BE_FORGOTTEN", "file": "jcdb.c" }, - { - "command": "testing entry without 'directory' key", + { "directory": ".", + "command": "/usr/bin/clang++ -D'MSG=\"a \\\" \\\"b\"' -D'SINGLE_DOUBLE(a)=\"a \\\"with spaces and tab \"' -DSOMEDEF=\"With spaces, quotes and \\-es.\" -D\"DOUBLE_SINGLE(a)=a \\\"macro with spaces and non-escaped \\\\'\\\"\" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF", "file": "jcdb.c" } ] diff --git a/tests/jcdb/jcdb.ml b/tests/jcdb/jcdb.ml index 4d0408048a1..d9163defa21 100644 --- a/tests/jcdb/jcdb.ml +++ b/tests/jcdb/jcdb.ml @@ -1,8 +1,8 @@ let print_json () = Kernel.feedback - "Value of -json-compilation-database in %s is %s" + "Value of -json-compilation-database in %s is %a" (Project.get_name (Project.current())) - (Kernel.JsonCompilationDatabase.get()) + Filepath.Normalized.pretty (Kernel.JsonCompilationDatabase.get()) let run () = print_json (); diff --git a/tests/jcdb/oracle/jcdb.0.res.oracle b/tests/jcdb/oracle/jcdb.0.res.oracle index 1a80090d55b..aca498a1f02 100644 --- a/tests/jcdb/oracle/jcdb.0.res.oracle +++ b/tests/jcdb/oracle/jcdb.0.res.oracle @@ -1,6 +1,6 @@ [kernel:pp:compilation-db] Warning: found duplicate flags for 'tests/jcdb/jcdb.c', replacing old flags. - Old flags no longer present: -D'MSG="a \" \"b"' -D'SINGLE_DOUBLE(a)="a \"with spaces and tab "' -DSOMEDEF="With spaces, quotes and \-es." -D"DOUBLE_SINGLE(a)=a \"macro with spaces and non-escaped \\'\"" -DEMPTY='' -DEMPTY2= -DTEST=42 -D'MACRO_FOR_INCR(s)=s+1' -DTOUNDEF -UTOUNDEF + Old flags no longer present: -DFLAG_TO_BE_FORGOTTEN New flags not previously present: -DDUPLICATE_FLAGS_THAT_WILL_BE_OVERWRITTEN (warn-once: no further messages from category 'pp:compilation-db' will be emitted) [kernel] Parsing tests/jcdb/jcdb.c (with preprocessing) -- GitLab From 547e1155534b6760b8e9642b7fd9506f3fccdd9a Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 2 Sep 2020 09:16:49 +0200 Subject: [PATCH 034/255] [Aorai] use Filepath in most places --- src/plugins/aorai/aorai_option.ml | 22 ++-- src/plugins/aorai/aorai_option.mli | 12 +-- src/plugins/aorai/aorai_register.ml | 151 ++++++++++++++-------------- 3 files changed, 97 insertions(+), 88 deletions(-) diff --git a/src/plugins/aorai/aorai_option.ml b/src/plugins/aorai/aorai_option.ml index 850d0efb906..1dfe1a0504a 100644 --- a/src/plugins/aorai/aorai_option.ml +++ b/src/plugins/aorai/aorai_option.ml @@ -31,36 +31,44 @@ include Plugin.Register end) module Ltl_File = - Empty_string + Filepath (struct let option_name = "-aorai-ltl" let arg_name = "" + let file_kind = "ltl" + let existence = Fc_Filepath.Must_exist let help = "specifies file name for LTL property" end) module To_Buchi = - Empty_string + Filepath (struct let option_name = "-aorai-to-buchi" let arg_name = "f" + let file_kind = "Promela" + let existence = Fc_Filepath.Indifferent let help = "only generates the buchi automata (in Promela language) in file <s>" end) module Buchi = - Empty_string + Filepath (struct let option_name = "-aorai-buchi" let arg_name = "f" + let file_kind = "Promela" + let existence = Fc_Filepath.Must_exist let help = "considers the property described by the buchi automata \ (in Promela language) from file <f>." end) module Ya = - Empty_string + Filepath (struct let option_name = "-aorai-automata" let arg_name = "f" + let file_kind = "Ya" + let existence = Fc_Filepath.Must_exist let help = "considers the property described by the ya automata \ (in Ya language) from file <f>." end) @@ -74,10 +82,12 @@ module Output_Spec = end) module Output_C_File = - Empty_string + Filepath (struct let option_name = "-aorai-output-c-file" let arg_name = "" + let file_kind = "annotated C" + let existence = Fc_Filepath.Indifferent let help = "specifies generated file name for annotated C code" end) @@ -155,7 +165,7 @@ let is_on () = Buchi.is_default () && Ya.is_default () ) let promela_file () = - if Buchi.get () = "" then To_Buchi.get () else Buchi.get () + if Fc_Filepath.Normalized.is_unknown (Buchi.get ()) then To_Buchi.get () else Buchi.get () let advance_abstract_interpretation () = not (AbstractInterpretationOff.get ()) && not (AbstractInterpretation.get ()) diff --git a/src/plugins/aorai/aorai_option.mli b/src/plugins/aorai/aorai_option.mli index 66037798612..111cf0e74ea 100644 --- a/src/plugins/aorai/aorai_option.mli +++ b/src/plugins/aorai/aorai_option.mli @@ -25,12 +25,12 @@ include Plugin.S -module Ltl_File: Parameter_sig.String -module To_Buchi: Parameter_sig.String -module Buchi: Parameter_sig.String -module Ya: Parameter_sig.String +module Ltl_File: Parameter_sig.Filepath +module To_Buchi: Parameter_sig.Filepath +module Buchi: Parameter_sig.Filepath +module Ya: Parameter_sig.Filepath module Output_Spec: Parameter_sig.Bool -module Output_C_File: Parameter_sig.String +module Output_C_File: Parameter_sig.Filepath module Dot: Parameter_sig.Bool module DotSeparatedLabels: Parameter_sig.Bool module AbstractInterpretation: Parameter_sig.Bool @@ -44,7 +44,7 @@ module AddingOperationNameAndStatusInSpecification: Parameter_sig.Bool module Deterministic: State_builder.Ref with type data = bool val is_on : unit -> bool -val promela_file: unit -> string +val promela_file: unit -> Filepath.Normalized.t val advance_abstract_interpretation: unit -> bool val emitter: Emitter.t diff --git a/src/plugins/aorai/aorai_register.ml b/src/plugins/aorai/aorai_register.ml index 04c5852e709..546c7cc20bb 100644 --- a/src/plugins/aorai/aorai_register.ml +++ b/src/plugins/aorai/aorai_register.ml @@ -27,13 +27,13 @@ open Logic_ptree open Promelaast (* [VP] Need to get rid of those global references at some point. *) -let promela_file = ref "" -let ya_file = ref "" -let c_file = ref "" -let output_c_file = ref "" -let ltl_tmp_file = ref "" -let ltl_file = ref "" -let dot_file = ref "" +let promela_file = ref Filepath.Normalized.unknown +let ya_file = ref Filepath.Normalized.unknown +let c_file = ref Filepath.Normalized.unknown +let output_c_file = ref Filepath.Normalized.unknown +let ltl_tmp_file = ref Filepath.Normalized.unknown +let ltl_file = ref Filepath.Normalized.unknown +let dot_file = ref Filepath.Normalized.unknown let generatesCFile = ref true let ltl2ba_params = " -l -p -o " @@ -81,69 +81,66 @@ let syntax_error loc msg = ((snd loc).Lexing.pos_cnum - (fst loc).Lexing.pos_bol) msg -(* Performs some checks before calling [open_in f]. - Raises [Not_found] in case of error. *) -let safe_open_in f = - if not (Sys.file_exists f) || (Sys.is_directory f) then raise Not_found; - open_in f +(* Performs some checks before calling [open_in f], reporting ["errmsg: <f>"] + in case of error. *) +let check_and_open_in (f : Filepath.Normalized.t) errmsg = + if Sys.is_directory (f :> string) then + Aorai_option.abort "%s: %a" errmsg Filepath.Normalized.pretty f; + open_in (f :> string) -let ltl_to_ltlLight f_ltl f_out = +let ltl_to_ltlLight f_ltl (f_out : Filepath.Normalized.t) = try - let c = safe_open_in f_ltl in + let c = check_and_open_in f_ltl "invalid LTL file" in let (ltl_form,exprs) = Ltllexer.parse c in close_in c; - Ltl_output.output ltl_form f_out; + Ltl_output.output ltl_form (f_out :> string); set_ltl_correspondence exprs - with - | Not_found -> Aorai_option.abort "Unknown LTL file %s" f_ltl - | Ltllexer.Error (loc,msg) -> syntax_error loc msg + with + | Ltllexer.Error (loc,msg) -> syntax_error loc msg -let load_ya_file f = +let load_ya_file f = try - let c = safe_open_in f in + let c = check_and_open_in f "invalid Ya file" in let automata = Yalexer.parse c in close_in c; Data_for_aorai.setAutomata automata; with - | Not_found -> Aorai_option.abort "Unknown Ya file %s" f - | Yalexer.Error (loc,msg) -> syntax_error loc msg + | Yalexer.Error (loc,msg) -> syntax_error loc msg let load_promela_file f = try - let c = safe_open_in f in + let c = check_and_open_in f "invalid Promela file" in let (s,t) = Promelalexer.parse c in let t = convert_ltl_exprs t in close_in c; Data_for_aorai.setAutomata (s,t); with - | Not_found -> Aorai_option.abort "Unknown Promela file %s" f - | Promelalexer.Error(loc,msg) -> syntax_error loc msg + | Promelalexer.Error(loc,msg) -> syntax_error loc msg -let load_promela_file_withexps f = +let load_promela_file_withexps f = try - let c = safe_open_in f in + let c = check_and_open_in f "invalid Promela file" in let automata = Promelalexer_withexps.parse c in close_in c; Data_for_aorai.setAutomata automata; with - | Not_found -> Aorai_option.abort "Unknown Promela file %s" f - | Promelalexer_withexps.Error(loc,msg) -> syntax_error loc msg + | Promelalexer_withexps.Error(loc,msg) -> syntax_error loc msg let display_status () = if Aorai_option.verbose_atleast 2 then begin Aorai_option.feedback "\n" ; - Aorai_option.feedback "C file: '%s'\n" !c_file ; + Aorai_option.feedback "C file: '%a'\n" Filepath.Normalized.pretty !c_file ; Aorai_option.feedback "Entry point: '%a'\n" Kernel_function.pretty (fst (Globals.entry_point())) ; - Aorai_option.feedback "LTL property: '%s'\n" !ltl_file ; - Aorai_option.feedback "Files to generate: '%s' (Annotated code)\n" - (if !generatesCFile then !output_c_file else "(none)"); + Aorai_option.feedback "LTL property: '%a'\n" Filepath.Normalized.pretty !ltl_file ; + Aorai_option.feedback "Files to generate: '%a' (Annotated code)\n" + (if !generatesCFile then Filepath.Normalized.pretty else (fun fmt _ -> Format.fprintf fmt "(none)")) !output_c_file; if Aorai_option.Dot.get () then - Aorai_option.feedback "Dot file: '%s'\n" !dot_file; - Aorai_option.feedback "Tmp files: '%s' (Light LTL file)\n" - !ltl_tmp_file ; - Aorai_option.feedback " '%s' (Promela file)\n" - !promela_file ; + Aorai_option.feedback "Dot file: '%a'\n" Filepath.Normalized.pretty !dot_file; + Aorai_option.feedback "Tmp files: '%a' (Light LTL file)\n" + Filepath.Normalized.pretty !ltl_tmp_file ; + Aorai_option.feedback " '%a' (Promela file)\n" + Filepath.Normalized.pretty !promela_file ; Aorai_option.feedback "\n" end @@ -152,10 +149,13 @@ let init_file_names () = generation *) let err= ref false in let dispErr mesg f = - Aorai_option.error "Error. File '%s' %s.\n" f mesg; + Aorai_option.error "Error. File '%a' %s.\n" Filepath.Normalized.pretty f mesg; err:=true in - let freshname pre suf = + let freshname ?opt_suf file suf = + let name = Filepath.Normalized.to_pretty_string file in + let pre = Filename.remove_extension name in + let pre = match opt_suf with None -> pre | Some s -> pre ^ s in let rec fn p s n = if not (Sys.file_exists (p^(string_of_int n)^s)) then (p^(string_of_int n)^s) else fn p s (n+1) @@ -163,55 +163,53 @@ let init_file_names () = let name = if not (Sys.file_exists (pre^suf)) then pre^suf else fn pre suf 0 - in name + in Filepath.Normalized.of_string name in (* c_file name is given and has to point out a valid file. *) c_file := (match Kernel.Files.get () with - | [] -> "dummy.i" - | f :: _ -> Filepath.Normalized.to_pretty_string f); - if (!c_file="") then dispErr ": invalid C file name" !c_file; - if (not (Sys.file_exists !c_file)) then dispErr "not found" !c_file; + | [] -> Filepath.Normalized.of_string "dummy.i" + | f :: _ -> f); + if (Filepath.Normalized.is_unknown !c_file) then dispErr ": invalid C file name" !c_file; (* The output C file has to be a valid file name if it is used. *) - output_c_file := (Aorai_option.Output_C_File.get ()) ; - if (!output_c_file="") then output_c_file:=freshname ((Filename.remove_extension !c_file)^"_annot") ".c"; + output_c_file := Aorai_option.Output_C_File.get (); + if (Filepath.Normalized.is_unknown !output_c_file) then + output_c_file := freshname ~opt_suf:"_annot" !c_file ".c"; (* else if Sys.file_exists !output_c_file then dispErr "already exists" !output_c_file; *) if Aorai_option.Dot.get () then - dot_file:=freshname (Filename.remove_extension !c_file) ".dot"; + dot_file:= freshname !c_file ".dot"; - if Aorai_option.Ya.get () = "" then - if Aorai_option.Buchi.get () = "" then begin + if Filepath.Normalized.is_unknown (Aorai_option.Ya.get ()) then + if Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ()) then begin (* ltl_file name is given and has to point out a valid file. *) ltl_file := Aorai_option.Ltl_File.get (); - if (not (Sys.file_exists !ltl_file)) then dispErr "not found" !ltl_file; - if (!ltl_file="" || Sys.is_directory !ltl_file) then dispErr ": invalid LTL file name" !ltl_file; + if (Sys.is_directory (!ltl_file:>string)) then dispErr ": invalid LTL file name" !ltl_file; (* The LTL file is always used. *) (* The promela file can be given or not. *) - if Aorai_option.To_Buchi.get () <> "" then begin + if not (Filepath.Normalized.is_unknown (Aorai_option.To_Buchi.get ())) then begin ltl_tmp_file:= - freshname - (Filename.remove_extension - (Aorai_option.promela_file ())) ".ltl"; + freshname (Aorai_option.promela_file ()) ".ltl"; promela_file:= Aorai_option.promela_file (); - Extlib.cleanup_at_exit !ltl_tmp_file + Extlib.cleanup_at_exit (!ltl_tmp_file :> string) end else begin ltl_tmp_file:= (try - Extlib.temp_file_cleanup_at_exit - (Filename.basename !c_file) ".ltl" + Filepath.Normalized.of_string + (Extlib.temp_file_cleanup_at_exit + (Filename.basename (!c_file:>string)) ".ltl") with Extlib.Temp_file_error s -> Aorai_option.abort "cannot create temporary file: %s" s); promela_file:= - freshname (Filename.remove_extension !ltl_tmp_file) ".promela"; - Extlib.cleanup_at_exit !promela_file; + freshname !ltl_tmp_file ".promela"; + Extlib.cleanup_at_exit (!promela_file :> string); end end else begin - if Aorai_option.To_Buchi.get () <> "" && - Aorai_option.Ltl_File.get () <> "" + if not (Filepath.Normalized.is_unknown (Aorai_option.To_Buchi.get ())) && + not (Filepath.Normalized.is_unknown (Aorai_option.Ltl_File.get ())) then begin Aorai_option.error "Error. '-buchi' option is incompatible with '-to-buchi' and '-ltl' \ @@ -224,8 +222,7 @@ options."; end else begin ya_file := Aorai_option.Ya.get (); - if (!ya_file="") then dispErr ": invalid Ya file name" !ya_file; - if (not (Sys.file_exists !ya_file)) then dispErr "not found" !ya_file + if (Filepath.Normalized.is_unknown !ya_file) then dispErr ": invalid Ya file name" !ya_file; end; display_status (); !err @@ -242,7 +239,7 @@ let output () = if (Aorai_option.Dot.get()) then begin Promelaoutput.output_dot_automata (Data_for_aorai.getAutomata ()) - !dot_file; + (!dot_file:>string); printverb "Generating dot file : done\n" end; @@ -251,7 +248,7 @@ let output () = printverb "C file generation : skipped\n" else begin - let cout = open_out !output_c_file in + let cout = open_out (!output_c_file:>string) in let fmt = Format.formatter_of_out_channel cout in Kernel.Unicode.without_unicode (fun () -> @@ -264,32 +261,34 @@ let output () = printverb "Finished.\n"; (* Some test traces. *) Data_for_aorai.debug_computed_state (); - if !generatesCFile then Kernel.Files.set [ Datatype.Filepath.of_string !output_c_file ] + if !generatesCFile then Kernel.Files.set [ !output_c_file ] let work () = let file = Ast.get () in Aorai_utils.initFile file; printverb "C file loading : done\n"; - if Aorai_option.Ya.get () = "" then - if Aorai_option.Buchi.get () = "" then begin + if Filepath.Normalized.is_unknown (Aorai_option.Ya.get ()) then + if Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ()) then begin ltl_to_ltlLight !ltl_file !ltl_tmp_file; printverb "LTL loading : done\n"; - let cmd = Format.sprintf "ltl2ba %s -F %s > %s" - ltl2ba_params !ltl_tmp_file !promela_file + let cmd = Format.asprintf "ltl2ba %s -F %a > %a" + ltl2ba_params + Filepath.Normalized.pretty !ltl_tmp_file + Filepath.Normalized.pretty !promela_file in if Sys.command cmd <> 0 then Aorai_option.abort "failed to run: %s" cmd ; printverb "LTL ~> Promela (ltl2ba): done\n" end; - if Aorai_option.To_Buchi.get () <> "" then - printverb ("Finished.\nGenerated file: '"^(!promela_file)^"'\n") + if not (Filepath.Normalized.is_unknown (Aorai_option.To_Buchi.get ())) then + printverb ("Finished.\nGenerated file: '"^(Filepath.Normalized.to_pretty_string !promela_file)^"'\n") else begin (* Step 3 : Loading promela_file and checking the consistency between informations from C code and LTL property *) (* Such as functions name and global variables. *) - if Aorai_option.Buchi.get () <> "" then + if not (Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ())) then load_promela_file_withexps !promela_file - else if Aorai_option.Ya.get () <> "" then + else if not (Filepath.Normalized.is_unknown (Aorai_option.Ya.get ())) then load_ya_file !ya_file else load_promela_file !promela_file; -- GitLab From c41ac97722fbc2155d0514f3e02dc195850b87f5 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 2 Sep 2020 10:21:23 +0200 Subject: [PATCH 035/255] [Filepath] add Filepath.Normalized.is_file --- src/libraries/utils/filepath.ml | 4 ++++ src/libraries/utils/filepath.mli | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/src/libraries/utils/filepath.ml b/src/libraries/utils/filepath.ml index 4e5a859748c..4e02418356f 100644 --- a/src/libraries/utils/filepath.ml +++ b/src/libraries/utils/filepath.ml @@ -252,6 +252,10 @@ module Normalized = struct let pp_abs fmt p = Format.fprintf fmt "%s" p let unknown = normalize "" let is_unknown fp = equal fp unknown + let is_file fp = + try + (Unix.stat (fp :> string)).Unix.st_kind = Unix.S_REG + with _ -> false end type position = diff --git a/src/libraries/utils/filepath.mli b/src/libraries/utils/filepath.mli index 39c084bffa8..41c56ec8167 100644 --- a/src/libraries/utils/filepath.mli +++ b/src/libraries/utils/filepath.mli @@ -144,6 +144,12 @@ module Normalized: sig (** @since 20.0-Calcium *) val is_unknown: t -> bool + + (** [is_file f] returns [true] iff [f] points to a regular file + (or a symbolic link pointing to a file). + Returns [false] if any errors happen when [stat]'ing the file. + @since Frama-C+dev *) + val is_file: t -> bool end (** Describes a position in a source file. -- GitLab From cc00f46055ed113debd00f24fb618ed9a2e3029f Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 2 Sep 2020 10:22:11 +0200 Subject: [PATCH 036/255] [Aorai] remove unnecessary reference and use Filepath.is_file --- src/plugins/aorai/aorai_register.ml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/plugins/aorai/aorai_register.ml b/src/plugins/aorai/aorai_register.ml index 546c7cc20bb..664f3289886 100644 --- a/src/plugins/aorai/aorai_register.ml +++ b/src/plugins/aorai/aorai_register.ml @@ -28,7 +28,6 @@ open Promelaast (* [VP] Need to get rid of those global references at some point. *) let promela_file = ref Filepath.Normalized.unknown -let ya_file = ref Filepath.Normalized.unknown let c_file = ref Filepath.Normalized.unknown let output_c_file = ref Filepath.Normalized.unknown let ltl_tmp_file = ref Filepath.Normalized.unknown @@ -84,7 +83,7 @@ let syntax_error loc msg = (* Performs some checks before calling [open_in f], reporting ["errmsg: <f>"] in case of error. *) let check_and_open_in (f : Filepath.Normalized.t) errmsg = - if Sys.is_directory (f :> string) then + if not (Filepath.Normalized.is_file f) then Aorai_option.abort "%s: %a" errmsg Filepath.Normalized.pretty f; open_in (f :> string) @@ -186,7 +185,6 @@ let init_file_names () = if Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ()) then begin (* ltl_file name is given and has to point out a valid file. *) ltl_file := Aorai_option.Ltl_File.get (); - if (Sys.is_directory (!ltl_file:>string)) then dispErr ": invalid LTL file name" !ltl_file; (* The LTL file is always used. *) (* The promela file can be given or not. *) @@ -221,8 +219,8 @@ options."; promela_file := Aorai_option.promela_file (); end else begin - ya_file := Aorai_option.Ya.get (); - if (Filepath.Normalized.is_unknown !ya_file) then dispErr ": invalid Ya file name" !ya_file; + let ya_file = Aorai_option.Ya.get () in + if (Filepath.Normalized.is_unknown ya_file) then dispErr ": invalid Ya file name" ya_file; end; display_status (); !err @@ -289,7 +287,7 @@ let work () = if not (Filepath.Normalized.is_unknown (Aorai_option.Buchi.get ())) then load_promela_file_withexps !promela_file else if not (Filepath.Normalized.is_unknown (Aorai_option.Ya.get ())) then - load_ya_file !ya_file + load_ya_file (Aorai_option.Ya.get ()) else load_promela_file !promela_file; printverb "Loading promela : done\n"; -- GitLab From b47c61dd861fd593fd67cd1c911c89e3c68f3535 Mon Sep 17 00:00:00 2001 From: Romain Maliach-Auguste <romain.maliach-auguste@cea.fr> Date: Wed, 2 Sep 2020 11:17:59 +0200 Subject: [PATCH 037/255] helloooo --- world | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 world diff --git a/world b/world new file mode 100644 index 00000000000..e69de29bb2d -- GitLab From ee4a22ebbb867c0e5fbf3ff063a1f99164e693f4 Mon Sep 17 00:00:00 2001 From: Romain Maliach-Auguste <romain.maliach-auguste@cea.fr> Date: Wed, 2 Sep 2020 11:20:18 +0200 Subject: [PATCH 038/255] Revert stupid commit. Sorry, I mixed up repos --- world | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 world diff --git a/world b/world deleted file mode 100644 index e69de29bb2d..00000000000 -- GitLab From abe7fd4aa2c30bff98a20bd9bf7032e3d3ee8169 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 2 Sep 2020 12:13:34 +0200 Subject: [PATCH 039/255] [Slicing] avoid crash due to invalid command line --- src/plugins/slicing/slicingCmds.ml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/plugins/slicing/slicingCmds.ml b/src/plugins/slicing/slicingCmds.ml index a549613bcff..f4f31d5622a 100644 --- a/src/plugins/slicing/slicingCmds.ml +++ b/src/plugins/slicing/slicingCmds.ml @@ -529,6 +529,7 @@ let select_stmt_annots set mark ~spare ~threat ~user_assert ~slicing_pragma ~lo (** Registered as a slicing selection function: Add a selection of the annotations related to a function. *) let select_func_annots set mark ~spare ~threat ~user_assert ~slicing_pragma ~loop_inv ~loop_var kf = + try let zones_decl_vars,pragmas = !Db.Properties.Interp.To_zone.from_func_annots Kinstr.iter_from_func (Some @@ -538,6 +539,13 @@ let select_func_annots set mark ~spare ~threat ~user_assert ~slicing_pragma ~loo kf in let set = select_ZoneAnnot_pragmas set ~spare pragmas kf in select_ZoneAnnot_zones_decl_vars set mark (get_or_raise zones_decl_vars) kf + with Kernel_function.No_Definition -> + SlicingParameters.warning ~wkey:SlicingParameters.wkey_cmdline + "No definition for function '%a'. \ + Slicing requests from the command line are ignored." + Kernel_function.pretty kf; + Cil_datatype.Varinfo.Map.empty + (** Registered as a slicing selection function: Add selection of function outputs. -- GitLab From 0adac834aabcafd88835991025216c1b0bea7e72 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 2 Sep 2020 13:50:42 +0200 Subject: [PATCH 040/255] [Kernel] remove obsolete and unused Cmdline.String_list --- src/kernel_services/cmdline_parameters/cmdline.ml | 6 ------ src/kernel_services/cmdline_parameters/cmdline.mli | 1 - 2 files changed, 7 deletions(-) diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index 808046e9e91..7178eea308b 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -252,7 +252,6 @@ type option_setting = | Unit of (unit -> unit) | Int of (int -> unit) | String of (string -> unit) - | String_list of (string list -> unit) exception Cannot_parse of string * string let raise_error name because = raise (Cannot_parse(name, because)) @@ -310,10 +309,6 @@ let parse known_options_list then_expected options_list = check_string_argname (); f arg; true - | String_list f -> - check_string_argname (); - f (Str.split (Str.regexp "[ \t]*,[ \t]*") arg); - true in unknown_options, use_arg && not explicit, true with Not_found -> @@ -896,7 +891,6 @@ let low_print_option_help fmt print_invisible o = | Unit _ -> "" | Int _ -> " <n>" | String _ -> " <s>" - | String_list _ -> " <s1, ..., sn>" else " <" ^ s ^ ">" in diff --git a/src/kernel_services/cmdline_parameters/cmdline.mli b/src/kernel_services/cmdline_parameters/cmdline.mli index db33fb74584..b3eda2c34f9 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.mli +++ b/src/kernel_services/cmdline_parameters/cmdline.mli @@ -270,7 +270,6 @@ type option_setting = | Unit of (unit -> unit) | Int of (int -> unit) | String of (string -> unit) - | String_list of (string list -> unit) val add_option: string -> -- GitLab From 72332617d157802f986ab1b0ac17db883b1605ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Thu, 3 Sep 2020 09:23:14 +0200 Subject: [PATCH 041/255] [Eva] Removes deprecated and invisible parameters. --- src/plugins/value/value_parameters.ml | 96 -------------------------- src/plugins/value/value_parameters.mli | 2 - 2 files changed, 98 deletions(-) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 38dedbe7db7..796bd38d9c1 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -493,23 +493,6 @@ let () = WarnPointerComparison.set_possible_values ["all"; "pointer"; "none"] let () = add_correctness_dep WarnPointerComparison.parameter let () = WarnPointerComparison.add_aliases ["-val-warn-undefined-pointer-comparison"] - -let () = Parameter_customize.set_group alarms -let () = Parameter_customize.is_invisible () -module WarnLeftShiftNegative = - True - (struct - let option_name = "-val-warn-left-shift-negative" - let help = - "Emit alarms when left-shifting negative integers" - end) -let () = add_correctness_dep WarnLeftShiftNegative.parameter -let () = WarnLeftShiftNegative.add_update_hook - (fun _ v -> - warning "This option is deprecated. Use %s instead" - Kernel.LeftShiftNegative.name; - Kernel.LeftShiftNegative.set v) - let () = Parameter_customize.set_group alarms module WarnSignedConvertedDowncast = False @@ -1192,28 +1175,6 @@ module ValShowProgress = end) let () = ValShowProgress.add_aliases ["-val-show-progress"] -let () = Parameter_customize.set_group messages -let () = Parameter_customize.is_invisible () -module ValShowInitialState = - True - (struct - let option_name = "-val-show-initial-state" - (* deprecated in Silicon *) - let help = "[deprecated] Show initial state before analysis starts. \ - This option has been replaced by \ - -eva-msg-key=[-]initial-state and has no effect anymore." - end) -let () = - ValShowInitialState.add_set_hook - (fun _ new_ -> - if new_ then - Kernel.warning "@[Option -val-show-initial-state has no effect, \ - it has been replaced by -eva-msg-key=initial-state@]" - else - Kernel.warning "@[Option -no-val-show-initial-state has no effect, \ - it has been replaced by -eva-msg-key=-initial-state@]" - ) - let () = Parameter_customize.set_group messages module ValShowPerf = False @@ -1258,34 +1219,6 @@ module PrintCallstacks = end) let () = PrintCallstacks.add_aliases ["-val-print-callstacks"] -let () = Parameter_customize.set_group messages -let () = Parameter_customize.is_invisible () -module AlarmsWarnings = - True - (struct - let option_name = "-val-warn-on-alarms" - let help = "[DEPRECATED: use warning key alarm to manage alarms] \ - If set (default), possible alarms are printed in \ - the analysis log as warnings, otherwise as plain feedback" - end) - -let () = - AlarmsWarnings.add_set_hook - (fun _ f -> - match get_warn_status wkey_alarm with - | Log.Wabort | Log.Werror | Log.Werror_once -> - warning "alarms already set to produce an error. \ - Ignoring -val-warn-on-alarms" - | Log.Winactive | Log.Wactive | Log.Wfeedback -> - set_warn_status wkey_alarm (if f then Log.Wactive else Log.Wfeedback) - | Log.Wonce | Log.Wfeedback_once -> - (* Keep the 'once' status. Note that this will only happen if user - is mixing old and new style of warning management, thus it becomes - difficult to interpret the desired action. - *) - set_warn_status wkey_alarm - (if f then Log.Wonce else Log.Wfeedback_once)) - let () = Parameter_customize.set_group messages module ReportRedStatuses = String @@ -1324,35 +1257,6 @@ module InterpreterMode = end) let () = InterpreterMode.add_aliases ["-val-interpreter-mode"] -let () = Parameter_customize.set_group interpreter -let () = Parameter_customize.is_invisible () -module ObviouslyTerminatesFunctions = - Fundec_set - (struct - let option_name = "-obviously-terminates-function" - let arg_name = "f" - let help = "deprecated" - end) -let () = add_dep ObviouslyTerminatesFunctions.parameter -let () = ObviouslyTerminatesFunctions.add_update_hook - (fun _ _ -> - warning "Option -obviously-terminates-function is no longer supported. \ - Ignoring.") - -let () = Parameter_customize.set_group interpreter -let () = Parameter_customize.is_invisible () -module ObviouslyTerminatesAll = - False - (struct - let option_name = "-obviously-terminates" - let help = "undocumented and deprecated" - end) -let () = add_dep ObviouslyTerminatesAll.parameter -let () = ObviouslyTerminatesAll.add_update_hook - (fun _ _ -> - warning "Option -obviously-terminates is no longer supported. \ - Ignoring.") - let () = Parameter_customize.set_group interpreter module StopAtNthAlarm = Int(struct diff --git a/src/plugins/value/value_parameters.mli b/src/plugins/value/value_parameters.mli index 495d7b1fa9a..8e5d5161ad5 100644 --- a/src/plugins/value/value_parameters.mli +++ b/src/plugins/value/value_parameters.mli @@ -131,12 +131,10 @@ module SplitReturnFunction: module SplitGlobalStrategy: State_builder.Ref with type data = Split_strategy.t module ValShowProgress: Parameter_sig.Bool -module ValShowInitialState: Parameter_sig.Bool module ValShowPerf: Parameter_sig.Bool module ValPerfFlamegraphs: Parameter_sig.String module ShowSlevel: Parameter_sig.Int module PrintCallstacks: Parameter_sig.Bool -module AlarmsWarnings: Parameter_sig.Bool module ReportRedStatuses: Parameter_sig.String module NumerorsLogFile: Parameter_sig.String -- GitLab From 4ed9c09e6d9f92af84f5af9447b3a78809fc5154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Thu, 3 Sep 2020 13:25:01 +0200 Subject: [PATCH 042/255] In tests, uses the current Eva parameters name instead of legacy aliases. --- src/plugins/e-acsl/tests/arith/array.i | 4 ++-- src/plugins/e-acsl/tests/constructs/invariant.i | 2 +- src/plugins/e-acsl/tests/constructs/loop.i | 2 +- .../loop_analysis/tests/loop_analysis/with_value.i | 2 +- .../nonterm/tests/nonterm/builtin_termination.c | 2 +- src/plugins/nonterm/tests/nonterm/n6.c | 2 +- src/plugins/nonterm/tests/test_config | 2 +- src/plugins/report/tests/report/csv.c | 2 +- src/plugins/studia/tests/test_config | 2 +- .../variadic/tests/defined/multiple-va_start.c | 2 +- src/plugins/variadic/tests/defined/va_copy.c | 2 +- src/plugins/variadic/tests/test_config | 2 +- tests/builtins/allocated.c | 4 ++-- tests/builtins/gcc_zero_length_array.c | 2 +- tests/builtins/linked_list.c | 4 ++-- tests/builtins/malloc-deps.c | 2 +- tests/builtins/malloc-optimistic.c | 2 +- tests/builtins/malloc.c | 2 +- tests/builtins/malloc_multiple.c | 2 +- tests/builtins/memcpy.c | 2 +- tests/builtins/memset.c | 2 +- tests/builtins/realloc.c | 2 +- tests/builtins/realloc_multiple.c | 4 ++-- tests/builtins/vla.c | 2 +- tests/float/const3.i | 2 +- tests/float/const4.i | 2 +- tests/float/dr.i | 2 +- tests/float/extract_bits.i | 4 ++-- tests/float/nonlin.c | 12 ++++++------ tests/float/precise_cos_sin.c | 2 +- tests/float/round10d.i | 2 +- tests/float/some.c | 4 ++-- tests/float/sqrt.c | 4 ++-- tests/float/widen.c | 4 ++-- tests/idct/ieee_1180_1990.c | 2 +- tests/impact/alias.i | 2 +- tests/libc/coverage.c | 2 +- tests/libc/ctype.c | 2 +- tests/libc/netdb_c.c | 2 +- tests/libc/signal_h.c | 2 +- tests/libc/stdlib_c.c | 4 ++-- tests/libc/string_c.c | 2 +- tests/libc/string_c_generic.c | 2 +- tests/libc/string_c_strchr.c | 2 +- tests/libc/string_c_strstr.c | 2 +- tests/libc/sys_stat_h.c | 2 +- tests/libc/sys_wait_h.c | 2 +- tests/libc/termios.c | 2 +- tests/libc/time_h.c | 2 +- tests/libc/unistd_h.c | 4 ++-- tests/libc/wchar_c_h.c | 4 ++-- tests/misc/issue109.i | 2 +- tests/misc/widen_hints.c | 2 +- tests/misc/widen_hints_float.c | 2 +- tests/pdg/top_pdg_input.c | 2 +- tests/scope/bts383.c | 2 +- tests/scope/no-effect.i | 2 +- tests/slicing/if_many_values.i | 2 +- tests/slicing/keep_annot.i | 8 ++++---- tests/slicing/unravel-variance.i | 10 +++++----- tests/syntax/loop-case-switch-for-unroll.c | 6 +++--- tests/syntax/unroll_labels.i | 2 +- tests/value/CruiseControl.c | 2 +- tests/value/ai_annot.i | 2 +- tests/value/alias.i | 2 +- tests/value/base_addr_offset_block_length.i | 2 +- tests/value/big_lib_entry.i | 2 +- tests/value/bts1306.i | 2 +- tests/value/bug0245.i | 2 +- tests/value/builtins_split.c | 2 +- tests/value/case_analysis.i | 2 +- tests/value/cmp_ptr.i | 2 +- tests/value/cmp_ptr_follow_all_branches.i | 2 +- tests/value/cond_integer_cast_of_float.i | 2 +- tests/value/context_width.i | 2 +- tests/value/div.i | 2 +- tests/value/domains.i | 2 +- tests/value/exit_paths.i | 2 +- tests/value/gauges.c | 2 +- tests/value/invalid_loc_return.i | 2 +- tests/value/lazy.i | 2 +- tests/value/library.i | 2 +- tests/value/local_slevel.i | 2 +- tests/value/logic_ptr_cast.i | 2 +- tests/value/loopfun.i | 2 +- tests/value/loopinv.c | 2 +- tests/value/modulo.i | 2 +- tests/value/narrow_behaviors.i | 2 +- tests/value/no_results.c | 2 +- tests/value/plevel.i | 2 +- tests/value/pointer_comparison.c | 2 +- tests/value/precise_locations.i | 2 +- tests/value/ptr_call_object.c | 2 +- tests/value/recol.c | 4 ++-- tests/value/redundant_alarms.c | 2 +- tests/value/reevaluate_alarms.i | 2 +- tests/value/slevelex.i | 2 +- tests/value/split_return.i | 10 +++++----- tests/value/traces/test1.c | 2 +- tests/value/traces/test2.i | 2 +- tests/value/traces/test3.i | 2 +- tests/value/traces/test4.i | 2 +- tests/value/traces/test5.i | 2 +- tests/value/uninit_callstack.i | 2 +- tests/value/widen_on_non_monotonic.i | 2 +- 105 files changed, 135 insertions(+), 135 deletions(-) diff --git a/src/plugins/e-acsl/tests/arith/array.i b/src/plugins/e-acsl/tests/arith/array.i index 192094bfbde..4ef7b8e882f 100644 --- a/src/plugins/e-acsl/tests/arith/array.i +++ b/src/plugins/e-acsl/tests/arith/array.i @@ -1,6 +1,6 @@ /* run.config_ci COMMENT: arrays - STDOPT: #"-slevel 5" + STDOPT: #"-eva-slevel 5" */ int T1[3],T2[4]; @@ -113,4 +113,4 @@ int main(void) { vlas(3); return 0; -} \ No newline at end of file +} diff --git a/src/plugins/e-acsl/tests/constructs/invariant.i b/src/plugins/e-acsl/tests/constructs/invariant.i index 76cbdb63c71..8bc1eeee091 100644 --- a/src/plugins/e-acsl/tests/constructs/invariant.i +++ b/src/plugins/e-acsl/tests/constructs/invariant.i @@ -1,6 +1,6 @@ /* run.config_ci COMMENT: invariant - STDOPT: +"-slevel 11" + STDOPT: +"-eva-slevel 11" */ int main(void) { diff --git a/src/plugins/e-acsl/tests/constructs/loop.i b/src/plugins/e-acsl/tests/constructs/loop.i index 4b0b3193ee1..bbab3b09f21 100644 --- a/src/plugins/e-acsl/tests/constructs/loop.i +++ b/src/plugins/e-acsl/tests/constructs/loop.i @@ -1,6 +1,6 @@ /* run.config_ci COMMENT: loop invariants - STDOPT: +"-slevel 160" + STDOPT: +"-eva-slevel 160" */ void simple_loop() { diff --git a/src/plugins/loop_analysis/tests/loop_analysis/with_value.i b/src/plugins/loop_analysis/tests/loop_analysis/with_value.i index b147374aa57..b030fa5e58d 100644 --- a/src/plugins/loop_analysis/tests/loop_analysis/with_value.i +++ b/src/plugins/loop_analysis/tests/loop_analysis/with_value.i @@ -1,5 +1,5 @@ /*run.config -OPT: -no-autoload-plugins -load-module from,inout,loopanalysis,eva,scope -val -val-show-progress -then -loop +OPT: -no-autoload-plugins -load-module from,inout,loopanalysis,eva,scope -eva -eva-show-progress -then -loop */ void f1(int n) { diff --git a/src/plugins/nonterm/tests/nonterm/builtin_termination.c b/src/plugins/nonterm/tests/nonterm/builtin_termination.c index 514e4202b09..dff850dc8ae 100644 --- a/src/plugins/nonterm/tests/nonterm/builtin_termination.c +++ b/src/plugins/nonterm/tests/nonterm/builtin_termination.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-val-builtin strlen:Frama_C_strlen" + STDOPT: #"-eva-builtin strlen:Frama_C_strlen" */ #include <string.h> diff --git a/src/plugins/nonterm/tests/nonterm/n6.c b/src/plugins/nonterm/tests/nonterm/n6.c index 1e4af5d6d67..e75e048ec1f 100644 --- a/src/plugins/nonterm/tests/nonterm/n6.c +++ b/src/plugins/nonterm/tests/nonterm/n6.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-val-builtin memcpy:Frama_C_memcpy" + STDOPT: #"-eva-builtin memcpy:Frama_C_memcpy" */ #include <string.h> diff --git a/src/plugins/nonterm/tests/test_config b/src/plugins/nonterm/tests/test_config index 1d678ae3e1a..91f0e5ec1ff 100644 --- a/src/plugins/nonterm/tests/test_config +++ b/src/plugins/nonterm/tests/test_config @@ -1 +1 @@ -OPT: -no-autoload-plugins -load-module from,inout,nonterm,scope -val -val-show-progress -eva-msg-key=-summary -then -nonterm -nonterm-verbose 2 +OPT: -no-autoload-plugins -load-module from,inout,nonterm,scope -eva -eva-show-progress -eva-msg-key=-summary -then -nonterm -nonterm-verbose 2 diff --git a/src/plugins/report/tests/report/csv.c b/src/plugins/report/tests/report/csv.c index 3bd7c80288a..536cfb432f2 100644 --- a/src/plugins/report/tests/report/csv.c +++ b/src/plugins/report/tests/report/csv.c @@ -1,6 +1,6 @@ /* run.config LOG: csv.csv - OPT: -no-autoload-plugins -load-module from,inout,report,scope,eva -eva-warn-copy-indeterminate=-main4 -eva -eva-show-progress -remove-redundant-alarms -eva-warn-key=alarm=inactive -then -report-csv @PTEST_RESULT@/csv.csv -report-no-proven -then -report-csv= -eva-warn-key=alarm -slevel 1 + OPT: -no-autoload-plugins -load-module from,inout,report,scope,eva -eva-warn-copy-indeterminate=-main4 -eva -eva-show-progress -eva-remove-redundant-alarms -eva-warn-key=alarm=inactive -then -report-csv @PTEST_RESULT@/csv.csv -report-no-proven -then -report-csv= -eva-warn-key=alarm -eva-slevel 1 COMMENT: first, do an analysis without any message, but check that the .csv is complete. Then, redo the analysis with value warnings. slevel 1 is just there to force Value to restart */ volatile v; diff --git a/src/plugins/studia/tests/test_config b/src/plugins/studia/tests/test_config index 0875cfb7318..dc79c97068c 100644 --- a/src/plugins/studia/tests/test_config +++ b/src/plugins/studia/tests/test_config @@ -1 +1 @@ -OPT: -val -journal-disable -out -input -deps +OPT: -eva -journal-disable -out -input -deps diff --git a/src/plugins/variadic/tests/defined/multiple-va_start.c b/src/plugins/variadic/tests/defined/multiple-va_start.c index f10b950af4c..9a3ff262748 100644 --- a/src/plugins/variadic/tests/defined/multiple-va_start.c +++ b/src/plugins/variadic/tests/defined/multiple-va_start.c @@ -1,5 +1,5 @@ /* run.config -STDOPT: +"-no-val-alloc-returns-null" +STDOPT: +"-eva-no-alloc-returns-null" */ diff --git a/src/plugins/variadic/tests/defined/va_copy.c b/src/plugins/variadic/tests/defined/va_copy.c index 3ad479a98de..129708fa9f3 100644 --- a/src/plugins/variadic/tests/defined/va_copy.c +++ b/src/plugins/variadic/tests/defined/va_copy.c @@ -1,5 +1,5 @@ /* run.config -STDOPT: +"-no-val-alloc-returns-null" +STDOPT: +"-eva-no-alloc-returns-null" */ diff --git a/src/plugins/variadic/tests/test_config b/src/plugins/variadic/tests/test_config index 9d83090791b..e076935b234 100644 --- a/src/plugins/variadic/tests/test_config +++ b/src/plugins/variadic/tests/test_config @@ -1 +1 @@ -OPT: -no-autoload-plugins -load-module from,inout,eva,variadic,scope -check -print -kernel-verbose 0 -variadic-verbose 2 -eva -slevel 10 -eva-msg-key=-initial-state,-summary -eva-no-show-progress -eva-print +OPT: -no-autoload-plugins -load-module from,inout,eva,variadic,scope -check -print -kernel-verbose 0 -variadic-verbose 2 -eva -eva-slevel 10 -eva-msg-key=-initial-state,-summary -eva-no-show-progress -eva-print diff --git a/tests/builtins/allocated.c b/tests/builtins/allocated.c index b09b532881c..3015ea59f13 100644 --- a/tests/builtins/allocated.c +++ b/tests/builtins/allocated.c @@ -1,6 +1,6 @@ /* run.config* - STDOPT: +"-slevel 1 -eva-mlevel 0" - STDOPT: +"-slevel 999 -eva-alloc-builtin fresh" + STDOPT: +"-eva-slevel 1 -eva-mlevel 0" + STDOPT: +"-eva-slevel 999 -eva-alloc-builtin fresh" */ #define assert_bottom(exp) if (nondet) {exp; Frama_C_show_each_unreachable();} diff --git a/tests/builtins/gcc_zero_length_array.c b/tests/builtins/gcc_zero_length_array.c index b990a598b0e..18d39c75f5f 100644 --- a/tests/builtins/gcc_zero_length_array.c +++ b/tests/builtins/gcc_zero_length_array.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-machdep gcc_x86_32 -eva-alloc-builtin fresh -slevel 11" + STDOPT: +"-machdep gcc_x86_32 -eva-alloc-builtin fresh -eva-slevel 11" */ #include <stdlib.h> diff --git a/tests/builtins/linked_list.c b/tests/builtins/linked_list.c index 8ae291e7474..dfa85bbfb98 100644 --- a/tests/builtins/linked_list.c +++ b/tests/builtins/linked_list.c @@ -1,7 +1,7 @@ /* run.config* STDOPT: #"-load-module variadic -eva-no-builtins-auto" - STDOPT: #"-load-module variadic -plevel 100 -big-ints-hex 257 -eva-no-builtins-auto" - STDOPT: #"-load-module variadic -slevel 12 -big-ints-hex 257 -eva-no-builtins-auto" + STDOPT: #"-load-module variadic -eva-plevel 100 -big-ints-hex 257 -eva-no-builtins-auto" + STDOPT: #"-load-module variadic -eva-slevel 12 -big-ints-hex 257 -eva-no-builtins-auto" */ #include "__fc_define_size_t.h" diff --git a/tests/builtins/malloc-deps.c b/tests/builtins/malloc-deps.c index 312e2534df5..1bb43e5021c 100644 --- a/tests/builtins/malloc-deps.c +++ b/tests/builtins/malloc-deps.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -eva @EVA_CONFIG@ -deps -calldeps -inout -slevel 5 -eva-msg-key malloc + OPT: -eva @EVA_CONFIG@ -deps -calldeps -inout -eva-slevel 5 -eva-msg-key malloc */ #include <stdlib.h> diff --git a/tests/builtins/malloc-optimistic.c b/tests/builtins/malloc-optimistic.c index d5a922355ce..8b2a9551ec0 100644 --- a/tests/builtins/malloc-optimistic.c +++ b/tests/builtins/malloc-optimistic.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 30 -eva-slevel-merge-after-loop @all -eva-memexec" + STDOPT: +"-eva-slevel 30 -eva-slevel-merge-after-loop @all -eva-memexec" */ #include <stddef.h> //@ assigns \result \from \nothing; diff --git a/tests/builtins/malloc.c b/tests/builtins/malloc.c index fb9377fa004..989d36b9086 100644 --- a/tests/builtins/malloc.c +++ b/tests/builtins/malloc.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -eva @EVA_CONFIG@ -slevel 10 -eva-mlevel 0 -eva-alloc-builtin by_stack + OPT: -eva @EVA_CONFIG@ -eva-slevel 10 -eva-mlevel 0 -eva-alloc-builtin by_stack */ #include <stdlib.h> diff --git a/tests/builtins/malloc_multiple.c b/tests/builtins/malloc_multiple.c index 6c807d486a2..81e2a9cc9f7 100644 --- a/tests/builtins/malloc_multiple.c +++ b/tests/builtins/malloc_multiple.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -eva @EVA_CONFIG@ -slevel 50 -eva-mlevel 5 + OPT: -eva @EVA_CONFIG@ -eva-slevel 50 -eva-mlevel 5 */ #include<stdlib.h> #define MAX 10 diff --git a/tests/builtins/memcpy.c b/tests/builtins/memcpy.c index 3b438a80337..97d2feee02e 100644 --- a/tests/builtins/memcpy.c +++ b/tests/builtins/memcpy.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-calldeps -slevel-function init:2000 -eva-msg-key imprecision -plevel 150 -main main_all -inout -no-deps -absolute-valid-range 100000-100001 -then -load-module report -report" + STDOPT: +"-calldeps -eva-slevel-function init:2000 -eva-msg-key imprecision -eva-plevel 150 -main main_all -inout -no-deps -absolute-valid-range 100000-100001 -then -load-module report -report" */ #include "string.h" diff --git a/tests/builtins/memset.c b/tests/builtins/memset.c index 2cbdd6386c6..bb8f0dfe496 100644 --- a/tests/builtins/memset.c +++ b/tests/builtins/memset.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-calldeps -eva-msg-key imprecision -plevel 500" +"-inout -no-deps" + STDOPT: #"-calldeps -eva-msg-key imprecision -eva-plevel 500" +"-inout -no-deps" */ #include "string.h" diff --git a/tests/builtins/realloc.c b/tests/builtins/realloc.c index 77b69e12e8c..bb11b50a7a7 100644 --- a/tests/builtins/realloc.c +++ b/tests/builtins/realloc.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 10 -eva-alloc-builtin by_stack -eva-warn-copy-indeterminate @all" + STDOPT: +"-eva-slevel 10 -eva-alloc-builtin by_stack -eva-warn-copy-indeterminate @all" */ #include <stdlib.h> diff --git a/tests/builtins/realloc_multiple.c b/tests/builtins/realloc_multiple.c index 1e582554446..f5ceb25223f 100644 --- a/tests/builtins/realloc_multiple.c +++ b/tests/builtins/realloc_multiple.c @@ -1,6 +1,6 @@ /* run.config* - STDOPT: +"-slevel 10 -eva-alloc-builtin fresh -eva-malloc-functions malloc,realloc" - STDOPT: +"-slevel 10 -eva-alloc-builtin fresh -eva-malloc-functions malloc,realloc -eva-alloc-returns-null" + STDOPT: +"-eva-slevel 10 -eva-alloc-builtin fresh -eva-alloc-functions malloc,realloc" + STDOPT: +"-eva-slevel 10 -eva-alloc-builtin fresh -eva-alloc-functions malloc,realloc -eva-alloc-returns-null" */ #include <stdlib.h> #include "__fc_builtin.h" diff --git a/tests/builtins/vla.c b/tests/builtins/vla.c index 1bfefb182d0..8e8c0eaaad3 100644 --- a/tests/builtins/vla.c +++ b/tests/builtins/vla.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-slevel 10 -eva-builtins-auto" + STDOPT: #"-eva-slevel 10 -eva-builtins-auto" */ void f(int i) { diff --git a/tests/float/const3.i b/tests/float/const3.i index e4bbf48c12d..4e06fb90429 100644 --- a/tests/float/const3.i +++ b/tests/float/const3.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: #"-warn-decimal-float all" - STDOPT: #"-warn-decimal-float all -all-rounding-modes-constants -float-hex" + STDOPT: #"-warn-decimal-float all -eva-all-rounding-modes-constants -float-hex" */ double f1 = 1e-40f; diff --git a/tests/float/const4.i b/tests/float/const4.i index 0a2be77cb0a..605bad01de2 100644 --- a/tests/float/const4.i +++ b/tests/float/const4.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: #"-warn-decimal-float all" - STDOPT: #"-warn-decimal-float all -all-rounding-modes-constants" + STDOPT: #"-warn-decimal-float all -eva-all-rounding-modes-constants" */ double f1 = 3.4e38f; diff --git a/tests/float/dr.i b/tests/float/dr.i index 8c2a6c88e23..b3322030be3 100644 --- a/tests/float/dr.i +++ b/tests/float/dr.i @@ -1,7 +1,7 @@ /* run.config* STDOPT: STDOPT: #"-float-hex" - STDOPT: #"-all-rounding-modes-constants" + STDOPT: #"-eva-all-rounding-modes-constants" */ float big = 100e30f; diff --git a/tests/float/extract_bits.i b/tests/float/extract_bits.i index 2f1c3b541cf..08372744719 100644 --- a/tests/float/extract_bits.i +++ b/tests/float/extract_bits.i @@ -1,6 +1,6 @@ /* run.config* - OPT: -eva @EVA_CONFIG@ -slevel 10 -big-ints-hex 0 -machdep ppc_32 -float-normal -warn-decimal-float all - OPT: -eva @EVA_CONFIG@ -slevel 10 -big-ints-hex 0 -machdep x86_32 -float-normal -warn-decimal-float all + OPT: -eva @EVA_CONFIG@ -eva-slevel 10 -big-ints-hex 0 -machdep ppc_32 -float-normal -warn-decimal-float all + OPT: -eva @EVA_CONFIG@ -eva-slevel 10 -big-ints-hex 0 -machdep x86_32 -float-normal -warn-decimal-float all */ float f = 3.14; diff --git a/tests/float/nonlin.c b/tests/float/nonlin.c index 4d258f382ae..d210fe4a315 100644 --- a/tests/float/nonlin.c +++ b/tests/float/nonlin.c @@ -1,10 +1,10 @@ /* run.config* - OPT: -eva-msg-key nonlin -slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 0 - OPT: -eva-msg-key nonlin -slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 10 - OPT: -eva-msg-key nonlin -slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 10 -warn-special-float none - OPT: -eva-msg-key nonlin -slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 0 - OPT: -eva-msg-key nonlin -slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 10 - OPT: -eva-msg-key nonlin -slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 10 -warn-special-float none + OPT: -eva-msg-key nonlin -eva-slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 0 + OPT: -eva-msg-key nonlin -eva-slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 10 + OPT: -eva-msg-key nonlin -eva-slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double" -float-hex -journal-disable -eva-subdivide-non-linear 10 -warn-special-float none + OPT: -eva-msg-key nonlin -eva-slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 0 + OPT: -eva-msg-key nonlin -eva-slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 10 + OPT: -eva-msg-key nonlin -eva-slevel 30 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float" -float-hex -journal-disable -eva-subdivide-non-linear 10 -warn-special-float none */ #include "__fc_builtin.h" diff --git a/tests/float/precise_cos_sin.c b/tests/float/precise_cos_sin.c index 19fde982cfb..f6e6f36e907 100644 --- a/tests/float/precise_cos_sin.c +++ b/tests/float/precise_cos_sin.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -eva @EVA_CONFIG@ -slevel 1000 -journal-disable -float-normal + OPT: -eva @EVA_CONFIG@ -eva-slevel 1000 -journal-disable -float-normal */ #include <__fc_builtin.h> diff --git a/tests/float/round10d.i b/tests/float/round10d.i index a11f0172aff..1d6ebe39de5 100644 --- a/tests/float/round10d.i +++ b/tests/float/round10d.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -eva @EVA_CONFIG@ -float-normal -journal-disable -no-results + OPT: -eva @EVA_CONFIG@ -float-normal -journal-disable -eva-no-results */ int main() diff --git a/tests/float/some.c b/tests/float/some.c index d7713ce8d71..8eb3f38ea73 100644 --- a/tests/float/some.c +++ b/tests/float/some.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -eva-show-slevel 10 -slevel 100 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double -DN=55" -float-normal -journal-disable -no-results - OPT: -slevel 100 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float -DN=26" -float-normal -journal-disable -no-results + OPT: -eva-show-slevel 10 -eva-slevel 100 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=double -DN=55" -float-normal -journal-disable -eva-no-results + OPT: -eva-slevel 100 -eva @EVA_CONFIG@ -cpp-extra-args="-DFLOAT=float -DN=26" -float-normal -journal-disable -eva-no-results */ FLOAT t[N] = { 1. } ; diff --git a/tests/float/sqrt.c b/tests/float/sqrt.c index 02a8d3995c8..da6743b0866 100644 --- a/tests/float/sqrt.c +++ b/tests/float/sqrt.c @@ -1,6 +1,6 @@ /* run.config* - STDOPT: #"-slevel 10 -big-ints-hex 257" - STDOPT: #"-slevel 10 -big-ints-hex 257 -machdep ppc_32" + STDOPT: #"-eva-slevel 10 -big-ints-hex 257" + STDOPT: #"-eva-slevel 10 -big-ints-hex 257 -machdep ppc_32" */ #include <math.h> diff --git a/tests/float/widen.c b/tests/float/widen.c index 8ad29d4d152..c685b88be02 100644 --- a/tests/float/widen.c +++ b/tests/float/widen.c @@ -1,6 +1,6 @@ /* run.config* - STDOPT: #"-warn-special-float non-finite -wlevel 3" - STDOPT: #"-warn-special-float none -wlevel 3" + STDOPT: #"-warn-special-float non-finite -eva-widening-delay 3" + STDOPT: #"-warn-special-float none -eva-widening-delay 3" */ volatile int rand; diff --git a/tests/idct/ieee_1180_1990.c b/tests/idct/ieee_1180_1990.c index 6c5b0285d74..d0dce5401ae 100644 --- a/tests/idct/ieee_1180_1990.c +++ b/tests/idct/ieee_1180_1990.c @@ -1,6 +1,6 @@ /* run.config* GCC: - STDOPT: +"-eva-msg-key=summary -load-module report,scope,variadic -float-normal -no-warn-signed-overflow tests/idct/idct.c -remove-redundant-alarms -eva-memexec -eva-builtin sqrt:Frama_C_sqrt,cos:Frama_C_cos -then -report -report-print-properties" + STDOPT: +"-eva-msg-key=summary -load-module report,scope,variadic -float-normal -no-warn-signed-overflow tests/idct/idct.c -eva-remove-redundant-alarms -eva-memexec -eva-builtin sqrt:Frama_C_sqrt,cos:Frama_C_cos -then -report -report-print-properties" */ /* IEEE_1180_1990: a testbed for IDCT accuracy * Copyright (C) 2001 Renaud Pacalet diff --git a/tests/impact/alias.i b/tests/impact/alias.i index f1cc091ed52..1b4edfb05d1 100644 --- a/tests/impact/alias.i +++ b/tests/impact/alias.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-impact-pragma f" +"-lib-entry" +"-main f" +"-remove-redundant-alarms" + STDOPT: +"-impact-pragma f" +"-lib-entry" +"-main f" +"-eva-remove-redundant-alarms" */ int P,c; diff --git a/tests/libc/coverage.c b/tests/libc/coverage.c index 2fa988b1e5d..342d79af628 100644 --- a/tests/libc/coverage.c +++ b/tests/libc/coverage.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -eva-no-builtins-auto @EVA_OPTIONS@ share/libc/string.c -eva -slevel 6 -metrics-eva-cover -then -metrics-libc + OPT: -eva-no-builtins-auto @EVA_OPTIONS@ share/libc/string.c -eva -eva-slevel 6 -metrics-eva-cover -then -metrics-libc */ #include "string.h" diff --git a/tests/libc/ctype.c b/tests/libc/ctype.c index a874a223d28..a54bd13b6a3 100644 --- a/tests/libc/ctype.c +++ b/tests/libc/ctype.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-slevel 4" + STDOPT: #"-eva-slevel 4" */ #include <stdio.h> #include <ctype.h> diff --git a/tests/libc/netdb_c.c b/tests/libc/netdb_c.c index 6e8f905b5d8..c2f9a8c9d34 100644 --- a/tests/libc/netdb_c.c +++ b/tests/libc/netdb_c.c @@ -1,5 +1,5 @@ /*run.config - STDOPT: #"-eva-split-return auto -slevel 2" + STDOPT: #"-eva-split-return auto -eva-slevel 2" */ // Extract based on Linux Programmer's Manual, GETADDRINFO(3) man page #include <sys/types.h> diff --git a/tests/libc/signal_h.c b/tests/libc/signal_h.c index f8aa063de2e..c0d539f925a 100644 --- a/tests/libc/signal_h.c +++ b/tests/libc/signal_h.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-slevel 2" + STDOPT: #"-eva-slevel 2" */ #include <signal.h> diff --git a/tests/libc/stdlib_c.c b/tests/libc/stdlib_c.c index d1dbd85a5a3..33dc8110214 100644 --- a/tests/libc/stdlib_c.c +++ b/tests/libc/stdlib_c.c @@ -1,6 +1,6 @@ /* run.config - STDOPT: #"-eva-no-builtins-auto -slevel 10 -eva-builtin calloc:Frama_C_calloc -eva-alloc-builtin by_stack -eva-msg-key malloc" - STDOPT: #"-eva-no-builtins-auto -slevel 10 -eva-builtin calloc:Frama_C_calloc -eva-alloc-builtin by_stack -eva-no-alloc-returns-null -eva-msg-key malloc" + STDOPT: #"-eva-no-builtins-auto -eva-slevel 10 -eva-builtin calloc:Frama_C_calloc -eva-alloc-builtin by_stack -eva-msg-key malloc" + STDOPT: #"-eva-no-builtins-auto -eva-slevel 10 -eva-builtin calloc:Frama_C_calloc -eva-alloc-builtin by_stack -eva-no-alloc-returns-null -eva-msg-key malloc" STDOPT: #"-eva-no-builtins-auto" */ // slevel is used to unroll loops diff --git a/tests/libc/string_c.c b/tests/libc/string_c.c index 05e5dc7c140..e5bff29eaf3 100644 --- a/tests/libc/string_c.c +++ b/tests/libc/string_c.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-no-builtins-auto -slevel 1000 -eva-no-skip-stdlib-specs" + STDOPT: #"-eva-no-builtins-auto -eva-slevel 1000 -eva-no-skip-stdlib-specs" */ // slevel is used to unroll loops #include "string.c" diff --git a/tests/libc/string_c_generic.c b/tests/libc/string_c_generic.c index 9168f43d736..4470a3d07b5 100644 --- a/tests/libc/string_c_generic.c +++ b/tests/libc/string_c_generic.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-no-builtins-auto -cpp-extra-args=-includeshare/libc/string.c -slevel-function strcpy:20,strncpy:5,strcmp:6,strchr:20,strrchr:20,strncat:4,memset:32,strlen:20,memcmp:8 -eva-no-skip-stdlib-specs" + STDOPT: #"-eva-no-builtins-auto -cpp-extra-args=-includeshare/libc/string.c -eva-slevel-function strcpy:20,strncpy:5,strcmp:6,strchr:20,strrchr:20,strncat:4,memset:32,strlen:20,memcmp:8 -eva-no-skip-stdlib-specs" */ /* This file has been adapted from libc-test, which is licensed under the following standard MIT license: diff --git a/tests/libc/string_c_strchr.c b/tests/libc/string_c_strchr.c index 54ed8fab06e..83ea787bc73 100644 --- a/tests/libc/string_c_strchr.c +++ b/tests/libc/string_c_strchr.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -slevel-function strchr:256,main:256 -eva-slevel-merge-after-loop main -eva-no-builtins-auto -eva-no-skip-stdlib-specs" + STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -eva-slevel-function strchr:256,main:256 -eva-slevel-merge-after-loop main -eva-no-builtins-auto -eva-no-skip-stdlib-specs" */ /* This file has been adapted from libc-test, which is licensed under the following standard MIT license: diff --git a/tests/libc/string_c_strstr.c b/tests/libc/string_c_strstr.c index 9f0613b3515..3dd1d13d890 100644 --- a/tests/libc/string_c_strstr.c +++ b/tests/libc/string_c_strstr.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -slevel-function strstr:30 -eva-no-skip-stdlib-specs" + STDOPT: #"-cpp-extra-args=-includeshare/libc/string.c -eva-slevel-function strstr:30 -eva-no-skip-stdlib-specs" */ /* This file has been adapted from libc-test, which is licensed under the following standard MIT license: diff --git a/tests/libc/sys_stat_h.c b/tests/libc/sys_stat_h.c index 65ddbfc8890..24a4b333511 100644 --- a/tests/libc/sys_stat_h.c +++ b/tests/libc/sys_stat_h.c @@ -1,5 +1,5 @@ /*run.config - STDOPT: #"-slevel 2" + STDOPT: #"-eva-slevel 2" */ #include <sys/stat.h> #include <fcntl.h> diff --git a/tests/libc/sys_wait_h.c b/tests/libc/sys_wait_h.c index 9eec66c206b..0fe9b221ce1 100644 --- a/tests/libc/sys_wait_h.c +++ b/tests/libc/sys_wait_h.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-slevel 4" + STDOPT: #"-eva-slevel 4" */ #include <sys/wait.h> diff --git a/tests/libc/termios.c b/tests/libc/termios.c index 6ba105607a2..78100d57f84 100644 --- a/tests/libc/termios.c +++ b/tests/libc/termios.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 2" + STDOPT: +"-eva-slevel 2" */ #include <termios.h> #include <fcntl.h> diff --git a/tests/libc/time_h.c b/tests/libc/time_h.c index c56c8ef3b96..30db0860b50 100644 --- a/tests/libc/time_h.c +++ b/tests/libc/time_h.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-slevel 4" + STDOPT: #"-eva-slevel 4" */ #include <time.h> diff --git a/tests/libc/unistd_h.c b/tests/libc/unistd_h.c index 8c3104215bf..8f0f40681fd 100644 --- a/tests/libc/unistd_h.c +++ b/tests/libc/unistd_h.c @@ -1,6 +1,6 @@ /*run.config - STDOPT: #"-slevel 12" #"-val-split-return auto" - STDOPT: #"-variadic-no-translation" #"-slevel 12" #"-val-split-return auto" + STDOPT: #"-eva-slevel 12" #"-eva-split-return auto" + STDOPT: #"-variadic-no-translation" #"-eva-slevel 12" #"-eva-split-return auto" */ #define _GNU_SOURCE #define _XOPEN_SOURCE 600 diff --git a/tests/libc/wchar_c_h.c b/tests/libc/wchar_c_h.c index ff2b3f2a7d1..8dadb46e2f8 100644 --- a/tests/libc/wchar_c_h.c +++ b/tests/libc/wchar_c_h.c @@ -1,6 +1,6 @@ /* run.config - STDOPT: +"-cpp-extra-args=-DTEST_IMPLEMENTATION=1" +"-slevel 1000" - STDOPT: +"-slevel 1000" + STDOPT: +"-cpp-extra-args=-DTEST_IMPLEMENTATION=1" +"-eva-slevel 1000" + STDOPT: +"-eva-slevel 1000" COMMENT: slevel is used to ensure all loops are unrolled (including in the COMMENT: implementation). 'goto exit' avoids recomputing split branches. */ diff --git a/tests/misc/issue109.i b/tests/misc/issue109.i index e6d7a20671a..3d9d35c81d6 100644 --- a/tests/misc/issue109.i +++ b/tests/misc/issue109.i @@ -1,6 +1,6 @@ /* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs - OPT: -eva @EVA_CONFIG@ -slevel-function main:10 -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -eva @EVA_CONFIG@ -eva-slevel-function main:10 -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs */ void main() { int i, j = 0; diff --git a/tests/misc/widen_hints.c b/tests/misc/widen_hints.c index 9791791713a..e4f063807c1 100644 --- a/tests/misc/widen_hints.c +++ b/tests/misc/widen_hints.c @@ -1,7 +1,7 @@ /* run.config OPT: -eva @EVA_CONFIG@ -cpp-extra-args=-DSYNTAX_ERRORS -kernel-warn-key=annot-error=active OPT: -eva @EVA_CONFIG@ -cpp-extra-args=-DNONCONST - OPT: -eva @EVA_CONFIG@ -slevel 1 -eva-msg-key widen-hints + OPT: -eva @EVA_CONFIG@ -eva-slevel 1 -eva-msg-key widen-hints OPT: -eva @EVA_CONFIG@ -cpp-extra-args=-DALLGLOBAL -eva-msg-key widen-hints */ #define N 2 diff --git a/tests/misc/widen_hints_float.c b/tests/misc/widen_hints_float.c index db243cd089d..a01f0a35784 100644 --- a/tests/misc/widen_hints_float.c +++ b/tests/misc/widen_hints_float.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-val-subdivide-non-linear 20" + STDOPT: #"-eva-subdivide-non-linear 20" */ diff --git a/tests/pdg/top_pdg_input.c b/tests/pdg/top_pdg_input.c index 7a0e2f57246..1fa9bc58564 100644 --- a/tests/pdg/top_pdg_input.c +++ b/tests/pdg/top_pdg_input.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-eva -pdg -out -input -deps -no-results-function no_results -eva-no-builtins-auto -load-module pdg -pdg -then -main main_asm" + STDOPT: +"-eva -pdg -out -input -deps -eva-no-results-function no_results -eva-no-builtins-auto -load-module pdg -pdg -then -main main_asm" */ volatile int nondet; int no_results() {return 1;} diff --git a/tests/scope/bts383.c b/tests/scope/bts383.c index db156cbcfc2..1f9c07e1e44 100644 --- a/tests/scope/bts383.c +++ b/tests/scope/bts383.c @@ -1,5 +1,5 @@ /* run.config - OPT: -eva @EVA_CONFIG@ -print -journal-disable -scope-verbose 1 -remove-redundant-alarms -context-width 3 + OPT: -eva @EVA_CONFIG@ -print -journal-disable -scope-verbose 1 -eva-remove-redundant-alarms -eva-context-width 3 */ /* echo '!Db.Scope.check_asserts();;' \ diff --git a/tests/scope/no-effect.i b/tests/scope/no-effect.i index 47f41d8fb6b..7b75f9e1d9f 100644 --- a/tests/scope/no-effect.i +++ b/tests/scope/no-effect.i @@ -1,5 +1,5 @@ /* run.config - OPT: @EVA_CONFIG@ -eva -print -journal-disable -scope-verbose 1 -remove-redundant-alarms + OPT: @EVA_CONFIG@ -eva -print -journal-disable -scope-verbose 1 -eva-remove-redundant-alarms */ typedef struct { diff --git a/tests/slicing/if_many_values.i b/tests/slicing/if_many_values.i index 11bf03bc16c..55807dadf28 100644 --- a/tests/slicing/if_many_values.i +++ b/tests/slicing/if_many_values.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-slice-value r -journal-disable -slevel 101 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps" + STDOPT: +"-slice-value r -journal-disable -eva-slevel 101 -then-on 'Slicing export' -set-project-as-default -print -check -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -check -no-deps" **/ int r=1; diff --git a/tests/slicing/keep_annot.i b/tests/slicing/keep_annot.i index ae570853dfd..adbfac557cd 100644 --- a/tests/slicing/keep_annot.i +++ b/tests/slicing/keep_annot.i @@ -1,8 +1,8 @@ /* run.config - STDOPT: +"-context-valid-pointers -lib-entry -main f -slice-assert f -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" - STDOPT: +"-context-valid-pointers -lib-entry -main f -slice-assert f -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" - STDOPT: +"-context-valid-pointers -lib-entry -main L -slice-pragma L -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" - STDOPT: +"-context-valid-pointers -lib-entry -main L -slice-pragma L -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" + STDOPT: +"-eva-context-valid-pointers -lib-entry -main f -slice-assert f -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" + STDOPT: +"-eva-context-valid-pointers -lib-entry -main f -slice-assert f -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" + STDOPT: +"-eva-context-valid-pointers -lib-entry -main L -slice-pragma L -slicing-keep-annotations -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" + STDOPT: +"-eva-context-valid-pointers -lib-entry -main L -slice-pragma L -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" STDOPT: +"-slice-return bts1110 -main bts1110 -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -no-deps" diff --git a/tests/slicing/unravel-variance.i b/tests/slicing/unravel-variance.i index e30a4aebcb2..554c7a94398 100644 --- a/tests/slicing/unravel-variance.i +++ b/tests/slicing/unravel-variance.i @@ -1,9 +1,9 @@ /* run.config - STDOPT: +"-slice-calls printf1 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " - STDOPT: +"-slice-calls printf2 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " - STDOPT: +"-slice-calls printf3 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " - STDOPT: +"-slice-calls printf4 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " - STDOPT: +"-slice-calls printf5 -journal-disable -float-normal -remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " + STDOPT: +"-slice-calls printf1 -journal-disable -float-normal -eva-remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " + STDOPT: +"-slice-calls printf2 -journal-disable -float-normal -eva-remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " + STDOPT: +"-slice-calls printf3 -journal-disable -float-normal -eva-remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " + STDOPT: +"-slice-calls printf4 -journal-disable -float-normal -eva-remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " + STDOPT: +"-slice-calls printf5 -journal-disable -float-normal -eva-remove-redundant-alarms -then-on 'Slicing export' -set-project-as-default -print -then -print -ocode @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i -then @PTEST_DIR@/result/ocode_@PTEST_NUMBER@_@PTEST_NAME@.i " */ /* Small example devired from examples given for UNRAVEL tool : */ diff --git a/tests/syntax/loop-case-switch-for-unroll.c b/tests/syntax/loop-case-switch-for-unroll.c index c379555af57..7785be51b6a 100644 --- a/tests/syntax/loop-case-switch-for-unroll.c +++ b/tests/syntax/loop-case-switch-for-unroll.c @@ -1,7 +1,7 @@ /* run.config - STDOPT: +"-slevel 100 -eva" - STDOPT: +"-ulevel 1 -slevel 100 -eva" - STDOPT: +"-ulevel 2 -slevel 100 -eva" + STDOPT: +"-eva-slevel 100 -eva" + STDOPT: +"-ulevel 1 -eva-slevel 100 -eva" + STDOPT: +"-ulevel 2 -eva-slevel 100 -eva" COMMENT: compile and run with GCC, save output to a file, and compare it to the result of Frama-C piped to: "| grep Frama_C_show_each | sed 's/^.*Frama_C_show_each_//'" diff --git a/tests/syntax/unroll_labels.i b/tests/syntax/unroll_labels.i index 4ccad645f15..66da8b7cf48 100644 --- a/tests/syntax/unroll_labels.i +++ b/tests/syntax/unroll_labels.i @@ -1,6 +1,6 @@ /* run.config STDOPT: +"-eva @EVA_CONFIG@" - STDOPT: +"-eva @EVA_CONFIG@ -main main2 -slevel 3" + STDOPT: +"-eva @EVA_CONFIG@ -main main2 -eva-slevel 3" */ enum { SIX = 6 } ; volatile foo; diff --git a/tests/value/CruiseControl.c b/tests/value/CruiseControl.c index eb8c3acf07f..868f2ad6eb7 100644 --- a/tests/value/CruiseControl.c +++ b/tests/value/CruiseControl.c @@ -1,6 +1,6 @@ /* run.config* GCC: - STDOPT: #"-float-normal tests/value/CruiseControl_const.c -lib-entry -main CruiseControl -context-depth 10 -context-valid-pointers" + STDOPT: #"-float-normal tests/value/CruiseControl_const.c -lib-entry -main CruiseControl -eva-context-depth 10 -eva-context-valid-pointers" */ /*$************* SCADE_KCG KCG Version 5.1.1 (build i10) ************** diff --git a/tests/value/ai_annot.i b/tests/value/ai_annot.i index 9a531689e60..16034a0e0f4 100644 --- a/tests/value/ai_annot.i +++ b/tests/value/ai_annot.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-load-module scope -scope-verbose 2 -remove-redundant-alarms -context-width 3" + STDOPT: #"-load-module scope -scope-verbose 2 -eva-remove-redundant-alarms -eva-context-width 3" */ diff --git a/tests/value/alias.i b/tests/value/alias.i index 048db091421..4b91cf96a5b 100644 --- a/tests/value/alias.i +++ b/tests/value/alias.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-no-results-function f" + STDOPT: #"-eva-no-results-function f" STDOPT: #"-main main3" STDOPT: #"-main main4 -absolute-valid-range 0-0xFF" STDOPT: #"-main main5" diff --git a/tests/value/base_addr_offset_block_length.i b/tests/value/base_addr_offset_block_length.i index 4a20889d500..b3aad4d14b7 100644 --- a/tests/value/base_addr_offset_block_length.i +++ b/tests/value/base_addr_offset_block_length.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -eva @EVA_CONFIG@ -context-width 3 -then -slevel 3 + OPT: -no-autoload-plugins -load-module inout,eva -eva @EVA_CONFIG@ -eva-context-width 3 -then -eva-slevel 3 */ diff --git a/tests/value/big_lib_entry.i b/tests/value/big_lib_entry.i index 88a7fbc821a..0c2770eab0f 100644 --- a/tests/value/big_lib_entry.i +++ b/tests/value/big_lib_entry.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -eva @EVA_CONFIG@ -lib-entry -context-width 4 -eva-initialization-padding-globals no + OPT: -no-autoload-plugins -load-module inout,eva -eva @EVA_CONFIG@ -lib-entry -eva-context-width 4 -eva-initialization-padding-globals no */ typedef struct { diff --git a/tests/value/bts1306.i b/tests/value/bts1306.i index f6b51b85784..81f9cc8f329 100644 --- a/tests/value/bts1306.i +++ b/tests/value/bts1306.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module from,inout,eva -constfold -slevel 0 -eva @EVA_CONFIG@ -print -then -slevel 10 -eva -print + OPT: -no-autoload-plugins -load-module from,inout,eva -constfold -eva-slevel 0 -eva @EVA_CONFIG@ -print -then -eva-slevel 10 -eva -print */ void g(double x) { double y= x*x; } diff --git a/tests/value/bug0245.i b/tests/value/bug0245.i index 584d53f7846..1408f3e7dee 100644 --- a/tests/value/bug0245.i +++ b/tests/value/bug0245.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-slevel 4" + STDOPT: #"-eva-slevel 4" */ int R,*p,S,*q; diff --git a/tests/value/builtins_split.c b/tests/value/builtins_split.c index a04c5fcd46b..cc38f28c313 100644 --- a/tests/value/builtins_split.c +++ b/tests/value/builtins_split.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-eva-show-progress -slevel 100" + STDOPT: +"-eva-show-progress -eva-slevel 100" */ int *p; diff --git a/tests/value/case_analysis.i b/tests/value/case_analysis.i index 7d9214dd079..40be501257b 100644 --- a/tests/value/case_analysis.i +++ b/tests/value/case_analysis.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,eva -eva @EVA_CONFIG@ -slevel 30 -journal-disable -float-normal + OPT: -no-autoload-plugins -load-module inout,eva -eva @EVA_CONFIG@ -eva-slevel 30 -journal-disable -float-normal */ diff --git a/tests/value/cmp_ptr.i b/tests/value/cmp_ptr.i index 198a11aacaf..da2355d605c 100644 --- a/tests/value/cmp_ptr.i +++ b/tests/value/cmp_ptr.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: #"-main main -eva-msg-key pointer-comparison" - STDOPT: #"-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" + STDOPT: #"-eva-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" */ int *p,T[10]={0,1,2,3,4,5,6,7,8,9}; diff --git a/tests/value/cmp_ptr_follow_all_branches.i b/tests/value/cmp_ptr_follow_all_branches.i index 2e5292ae2db..71e72fec503 100644 --- a/tests/value/cmp_ptr_follow_all_branches.i +++ b/tests/value/cmp_ptr_follow_all_branches.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: #"-eva-msg-key pointer-comparison" - STDOPT: #"-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" + STDOPT: #"-eva-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" */ int a; diff --git a/tests/value/cond_integer_cast_of_float.i b/tests/value/cond_integer_cast_of_float.i index 3a6d8768ec9..9d1350ea671 100644 --- a/tests/value/cond_integer_cast_of_float.i +++ b/tests/value/cond_integer_cast_of_float.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -eva @EVA_CONFIG@ -no-results -then -float-hex -main mainbis + OPT: -no-autoload-plugins -load-module eva -eva @EVA_CONFIG@ -eva-no-results -then -float-hex -main mainbis */ typedef double D; typedef float F; diff --git a/tests/value/context_width.i b/tests/value/context_width.i index b9209213bc3..e2f3d39895a 100644 --- a/tests/value/context_width.i +++ b/tests/value/context_width.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-context-width 3 -then -print -then -context-width 1" + STDOPT: +"-eva-context-width 3 -then -print -then -eva-context-width 1" */ int a; diff --git a/tests/value/div.i b/tests/value/div.i index dcea8cf46d4..3ac38b6068d 100644 --- a/tests/value/div.i +++ b/tests/value/div.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-load-module scope -remove-redundant-alarms" + STDOPT: #"-load-module scope -eva-remove-redundant-alarms" OPT: -no-autoload-plugins -load-module eva,inout -rte -then -eva @EVA_CONFIG@ */ int X,Y,Z1,Z2,T,U1,U2,V,W1,W2; diff --git a/tests/value/domains.i b/tests/value/domains.i index 434324fc2f5..22b198ea39f 100644 --- a/tests/value/domains.i +++ b/tests/value/domains.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-eva-domains sign,equality,bitwise,symbolic-locations,gauges -slevel 2" + STDOPT: #"-eva-domains sign,equality,bitwise,symbolic-locations,gauges -eva-slevel 2" */ /* Tests five domains together. */ diff --git a/tests/value/exit_paths.i b/tests/value/exit_paths.i index 9182998fe62..3d0ac19e034 100644 --- a/tests/value/exit_paths.i +++ b/tests/value/exit_paths.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-wlevel 1" + STDOPT: +"-eva-widening-delay 1" */ #include "__fc_builtin.h" diff --git a/tests/value/gauges.c b/tests/value/gauges.c index ab2963f70b4..8acfac2c411 100644 --- a/tests/value/gauges.c +++ b/tests/value/gauges.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +" -slevel-function main8_aux:2,main5_bis:4 -eva-msg-key d-gauges" + STDOPT: +" -eva-slevel-function main8_aux:2,main5_bis:4 -eva-msg-key d-gauges" */ #include <stdlib.h> diff --git a/tests/value/invalid_loc_return.i b/tests/value/invalid_loc_return.i index 729b0a9038c..7cdc2deecad 100644 --- a/tests/value/invalid_loc_return.i +++ b/tests/value/invalid_loc_return.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-main main1 -then -slevel 3 -main main2" + STDOPT: +"-main main1 -then -eva-slevel 3 -main main2" */ int foo() { diff --git a/tests/value/lazy.i b/tests/value/lazy.i index 11f7d183bfb..5b4b95d35dc 100644 --- a/tests/value/lazy.i +++ b/tests/value/lazy.i @@ -1,6 +1,6 @@ /* run.config* STDOPT: #"-eva-msg-key pointer-comparison" - STDOPT: #"-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" + STDOPT: #"-eva-undefined-pointer-comparison-propagate-all -eva-msg-key pointer-comparison" */ int a=-1; int b, d; diff --git a/tests/value/library.i b/tests/value/library.i index bbb69d46eb9..6f7615e0638 100644 --- a/tests/value/library.i +++ b/tests/value/library.i @@ -1,6 +1,6 @@ /* run.config* GCC: - STDOPT: +"-eva-msg-key initial-state -eva-initialization-padding-globals no -lib-entry -main main -context-depth 3 -then -main main2 -then -context-width 4" + STDOPT: +"-eva-msg-key initial-state -eva-initialization-padding-globals no -lib-entry -main main -eva-context-depth 3 -then -main main2 -then -eva-context-width 4" */ int f_int(int x); diff --git a/tests/value/local_slevel.i b/tests/value/local_slevel.i index 985751249a2..f8a28e18299 100644 --- a/tests/value/local_slevel.i +++ b/tests/value/local_slevel.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +" -load-module frama-c-constant_propagation -slevel-function main2:100000 -print -then -scf -then-on propagated -eva -eva-show-progress -no-scf" + STDOPT: +" -load-module frama-c-constant_propagation -eva-slevel-function main2:100000 -print -then -scf -then-on propagated -eva -eva-show-progress -no-scf" */ int *p; diff --git a/tests/value/logic_ptr_cast.i b/tests/value/logic_ptr_cast.i index 6f4c7af2f12..64eb43489d6 100644 --- a/tests/value/logic_ptr_cast.i +++ b/tests/value/logic_ptr_cast.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -eva @EVA_CONFIG@ -print -journal-disable -no-results + OPT: -no-autoload-plugins -load-module eva -eva @EVA_CONFIG@ -print -journal-disable -eva-no-results */ int *p; int t[90]; diff --git a/tests/value/loopfun.i b/tests/value/loopfun.i index 030e2654b43..2db5a9837a5 100644 --- a/tests/value/loopfun.i +++ b/tests/value/loopfun.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 50 -no-results" + STDOPT: +"-eva-slevel 50 -eva-no-results" STDOPT: +"-eva-warn-key=missing-loop-unroll=feedback -eva-warn-key=missing-loop-unroll:for=active -main main2" */ static int a = 7; diff --git a/tests/value/loopinv.c b/tests/value/loopinv.c index fbb89b089a4..26f3a1e37b2 100644 --- a/tests/value/loopinv.c +++ b/tests/value/loopinv.c @@ -1,5 +1,5 @@ /* run.config* -OPT: @EVA_CONFIG@ -no-autoload-plugins -load-module from,inout,eva,report -slevel-function main2:20 -pp-annot -eva -then -report +OPT: @EVA_CONFIG@ -no-autoload-plugins -load-module from,inout,eva,report -eva-slevel-function main2:20 -pp-annot -eva -then -report */ /*@ requires valid: \valid(&t[0..s-1]); diff --git a/tests/value/modulo.i b/tests/value/modulo.i index 81d342ce947..70e4fe6ceec 100644 --- a/tests/value/modulo.i +++ b/tests/value/modulo.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-slevel-function pgcd1:100,pgcd2:100,pgcd3:100" + STDOPT: #"-eva-slevel-function pgcd1:100,pgcd2:100,pgcd3:100" */ int A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R; volatile v; diff --git a/tests/value/narrow_behaviors.i b/tests/value/narrow_behaviors.i index 64d98062b97..ba639b21956 100644 --- a/tests/value/narrow_behaviors.i +++ b/tests/value/narrow_behaviors.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 10 -eva-verbose 2" + STDOPT: +"-eva-slevel 10 -eva-verbose 2" */ extern int nondet; diff --git a/tests/value/no_results.c b/tests/value/no_results.c index 1f2355186c9..39549decf2a 100644 --- a/tests/value/no_results.c +++ b/tests/value/no_results.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-no-results-function init -calldeps -slevel 10000" +"-inout" + STDOPT: #"-eva-no-results-function init -calldeps -eva-slevel 10000" +"-inout" */ #define N 3000 diff --git a/tests/value/plevel.i b/tests/value/plevel.i index 01f7e73dd47..202526dc0de 100644 --- a/tests/value/plevel.i +++ b/tests/value/plevel.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-plevel 40 -big-ints-hex 0x55" + STDOPT: #"-eva-plevel 40 -big-ints-hex 0x55" */ int t[0xFFFF]; diff --git a/tests/value/pointer_comparison.c b/tests/value/pointer_comparison.c index 2dcf4207353..40717af44c5 100644 --- a/tests/value/pointer_comparison.c +++ b/tests/value/pointer_comparison.c @@ -1,6 +1,6 @@ /* run.config* STDOPT: +" -load-module report -report-print-properties -eva-warn-undefined-pointer-comparison none -eva-msg-key pointer-comparison -then -report -then -eva-warn-undefined-pointer-comparison pointer -then -report -then -eva-warn-undefined-pointer-comparison all -then -report" - STDOPT: +" -load-module report -report-print-properties -undefined-pointer-comparison-propagate-all -eva-warn-undefined-pointer-comparison none -eva-msg-key pointer-comparison -then -report -then -eva-warn-undefined-pointer-comparison pointer -then -report -then -eva-warn-undefined-pointer-comparison all -then -report" + STDOPT: +" -load-module report -report-print-properties -eva-undefined-pointer-comparison-propagate-all -eva-warn-undefined-pointer-comparison none -eva-msg-key pointer-comparison -then -report -then -eva-warn-undefined-pointer-comparison pointer -then -report -then -eva-warn-undefined-pointer-comparison all -then -report" */ int x,y,*p; int main(){ diff --git a/tests/value/precise_locations.i b/tests/value/precise_locations.i index 06340dba48a..94273989581 100644 --- a/tests/value/precise_locations.i +++ b/tests/value/precise_locations.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-eva-widening-period 3 -then -inout -load-module report -report -then -plevel 250" + STDOPT: +"-eva-widening-period 3 -then -inout -load-module report -report -then -eva-plevel 250" */ struct s { diff --git a/tests/value/ptr_call_object.c b/tests/value/ptr_call_object.c index f8872244f28..b02914deb96 100644 --- a/tests/value/ptr_call_object.c +++ b/tests/value/ptr_call_object.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-slevel 2" + STDOPT: +"-eva-slevel 2" */ struct obj { diff --git a/tests/value/recol.c b/tests/value/recol.c index 5d0d3e258ca..46f6de92f5a 100644 --- a/tests/value/recol.c +++ b/tests/value/recol.c @@ -1,6 +1,6 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva,inout -eva @EVA_CONFIG@ -slevel 100 -cpp-extra-args="-DPTEST " -journal-disable -no-warn-signed-overflow - OPT: -no-autoload-plugins -load-module eva,inout -eva @EVA_CONFIG@ -slevel 100 -cpp-extra-args="-DPTEST " -journal-disable -machdep ppc_32 -no-warn-signed-overflow + OPT: -no-autoload-plugins -load-module eva,inout -eva @EVA_CONFIG@ -eva-slevel 100 -cpp-extra-args="-DPTEST " -journal-disable -no-warn-signed-overflow + OPT: -no-autoload-plugins -load-module eva,inout -eva @EVA_CONFIG@ -eva-slevel 100 -cpp-extra-args="-DPTEST " -journal-disable -machdep ppc_32 -no-warn-signed-overflow */ #ifndef PTEST diff --git a/tests/value/redundant_alarms.c b/tests/value/redundant_alarms.c index cd26fec1a2c..a6b1785cd3d 100644 --- a/tests/value/redundant_alarms.c +++ b/tests/value/redundant_alarms.c @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module inout,scope,slicing,sparecode @EVA_CONFIG@ -eva-warn-copy-indeterminate=-@all,main3 -scope-msg-key rm_asserts -scope-verbose 2 -remove-redundant-alarms -print -slice-threat main1 -then-on 'Slicing export' -print + OPT: -no-autoload-plugins -load-module inout,scope,slicing,sparecode @EVA_CONFIG@ -eva-warn-copy-indeterminate=-@all,main3 -scope-msg-key rm_asserts -scope-verbose 2 -eva-remove-redundant-alarms -print -slice-threat main1 -then-on 'Slicing export' -print **/ volatile int v; diff --git a/tests/value/reevaluate_alarms.i b/tests/value/reevaluate_alarms.i index c0fc49d5b76..9085a0a7185 100644 --- a/tests/value/reevaluate_alarms.i +++ b/tests/value/reevaluate_alarms.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: +"-load-module report -report -then -slevel 10" + STDOPT: +"-load-module report -report -then -eva-slevel 10" */ diff --git a/tests/value/slevelex.i b/tests/value/slevelex.i index ed8cb52583d..2c2546796fb 100644 --- a/tests/value/slevelex.i +++ b/tests/value/slevelex.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-slevel 5 -slevel-function main:0 -slevel-function gu:21 -slevel-function ginc:21" + STDOPT: #"-eva-slevel 5 -eva-slevel-function main:0 -eva-slevel-function gu:21 -eva-slevel-function ginc:21" */ volatile int c; diff --git a/tests/value/split_return.i b/tests/value/split_return.i index 3873c1b9d22..8cfc8a21a75 100644 --- a/tests/value/split_return.i +++ b/tests/value/split_return.i @@ -1,10 +1,10 @@ /* run.config* - STDOPT: +"-deterministic -eva-no-memexec -slevel-function init:3,main1:3,f2:4,main2:4,f4:3,main5:3,uninit:2,main9:2 -eva-split-return-function f2:0,f3:-2:-4,f4:4,f5:-2,NON_EXISTING:4,uninit:0,escaping:0 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -permissive -then -load-module report -report" - STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -slevel 6 -eva-split-return auto -eva-split-return-function f7:0:3 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -load-module report -report" + STDOPT: +"-deterministic -eva-no-memexec -eva-slevel-function init:3,main1:3,f2:4,main2:4,f4:3,main5:3,uninit:2,main9:2 -eva-split-return-function f2:0,f3:-2:-4,f4:4,f5:-2,NON_EXISTING:4,uninit:0,escaping:0 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -permissive -then -load-module report -report" + STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -eva-slevel 6 -eva-split-return auto -eva-split-return-function f7:0:3 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -load-module report -report" COMMENT: below command must fail, as -permissive is not set - STDOPT: +"-deterministic -eva-no-memexec -eva -slevel-function NON_EXISTING:4 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9" - STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -slevel 6 -eva-split-return full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9" - STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -slevel 6 -eva-split-return full -eva-split-return-function f7:0:3 -eva-split-return-function f2:full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -eva-split-return-function f2:auto" + STDOPT: +"-deterministic -eva-no-memexec -eva -eva-slevel-function NON_EXISTING:4 -eva-warn-copy-indeterminate=-uninit,-escaping,-main9" + STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -eva-slevel 6 -eva-split-return full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9" + STDOPT: +"-deterministic -eva-no-memexec -eva -journal-disable -out -input -deps -eva-slevel 6 -eva-split-return full -eva-split-return-function f7:0:3 -eva-split-return-function f2:full -eva-warn-copy-indeterminate=-uninit,-escaping,-main9 -then -eva-split-return-function f2:auto" */ /*@ assigns \result \from \nothing; diff --git a/tests/value/traces/test1.c b/tests/value/traces/test1.c index b6097db5d27..2eda2c29eb8 100644 --- a/tests/value/traces/test1.c +++ b/tests/value/traces/test1.c @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-domains traces -value-msg-key d-traces -slevel 10 -eva-traces-project" +"-then-last -val -print -value-msg-key=-d-traces" + STDOPT: #"-eva-domains traces -eva-msg-key d-traces -eva-slevel 10 -eva-traces-project" +"-then-last -eva -print -eva-msg-key=-d-traces" */ extern volatile int entropy_source; diff --git a/tests/value/traces/test2.i b/tests/value/traces/test2.i index 506b765112f..11d8611c60a 100644 --- a/tests/value/traces/test2.i +++ b/tests/value/traces/test2.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-domains traces -value-msg-key d-traces -slevel 10 -eva-traces-project" +"-then-last -val -print -value-msg-key=-d-traces" + STDOPT: #"-eva-domains traces -eva-msg-key d-traces -eva-slevel 10 -eva-traces-project" +"-then-last -eva -print -eva-msg-key=-d-traces" */ diff --git a/tests/value/traces/test3.i b/tests/value/traces/test3.i index 80f30b09d39..1878979fbfe 100644 --- a/tests/value/traces/test3.i +++ b/tests/value/traces/test3.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-domains traces -value-msg-key d-traces -slevel 10 -eva-traces-project" +"-then-last -val -print -value-msg-key=-d-traces" + STDOPT: #"-eva-domains traces -eva-msg-key d-traces -eva-slevel 10 -eva-traces-project" +"-then-last -eva -print -eva-msg-key=-d-traces" */ int g; diff --git a/tests/value/traces/test4.i b/tests/value/traces/test4.i index 5cb5ad20e10..ef512f629ee 100644 --- a/tests/value/traces/test4.i +++ b/tests/value/traces/test4.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-domains traces -value-msg-key d-traces -slevel 10" + STDOPT: #"-eva-domains traces -eva-msg-key d-traces -eva-slevel 10" */ /* Test of join inside a loop */ diff --git a/tests/value/traces/test5.i b/tests/value/traces/test5.i index 60775951cad..d3f122845da 100644 --- a/tests/value/traces/test5.i +++ b/tests/value/traces/test5.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: #"-eva-domains traces -value-msg-key d-traces -slevel 10" +"-then-last -val -slevel 10 -print -no-eva-traces-domain" + STDOPT: #"-eva-domains traces -eva-msg-key d-traces -eva-slevel 10" +"-then-last -eva -eva-slevel 10 -print -no-eva-traces-domain" */ diff --git a/tests/value/uninit_callstack.i b/tests/value/uninit_callstack.i index 3c1d29d5765..6adb7e51200 100644 --- a/tests/value/uninit_callstack.i +++ b/tests/value/uninit_callstack.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -no-autoload-plugins -load-module eva -eva @EVA_CONFIG@ -eva-no-show-progress -eva-print-callstacks -journal-disable -no-results + OPT: -no-autoload-plugins -load-module eva -eva @EVA_CONFIG@ -eva-no-show-progress -eva-print-callstacks -journal-disable -eva-no-results */ int *p, x; diff --git a/tests/value/widen_on_non_monotonic.i b/tests/value/widen_on_non_monotonic.i index c20b8bc7910..1242896475e 100644 --- a/tests/value/widen_on_non_monotonic.i +++ b/tests/value/widen_on_non_monotonic.i @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-slevel 20" + STDOPT: #"-eva-slevel 20" */ /* Problem with Value's memory model, that does not guarantee that we call -- GitLab From ad737cbdae2bd3138fb6a90a351e322dc1397a8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Bobot?= <francois.bobot@cea.fr> Date: Fri, 4 Sep 2020 16:02:00 +0200 Subject: [PATCH 043/255] [CI] Try to remove frama_c_clang from internal --- nix/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nix/default.nix b/nix/default.nix index 610b886c089..b3e6929a292 100644 --- a/nix/default.nix +++ b/nix/default.nix @@ -237,8 +237,8 @@ rec { chmod -R u+w -- "$sourceRoot/src/plugins/counter-examples" cp -r --preserve=mode "$genassigns_src" "$sourceRoot/src/plugins/genassigns" chmod -R u+w -- "$sourceRoot/src/plugins/genassigns" - cp -r --preserve=mode "$frama_clang_src" "$sourceRoot/src/plugins/frama-clang" - chmod -R u+w -- "$sourceRoot/src/plugins/frama-clang" + # cp -r --preserve=mode "$frama_clang_src" "$sourceRoot/src/plugins/frama-clang" + # chmod -R u+w -- "$sourceRoot/src/plugins/frama-clang" cp -r --preserve=mode "$pathcrawler_src" "$sourceRoot/src/plugins/pathcrawler" chmod -R u+w -- "$sourceRoot/src/plugins/pathcrawler" cp -r --preserve=mode "$mthread_src" "$sourceRoot/src/plugins/mthread" -- GitLab From c69097ff2d1a6d840e968206cd88f6fc1e75767e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 4 Sep 2020 10:11:44 +0200 Subject: [PATCH 044/255] [cmdline] Supports invisible and deprecated aliases for command line parameters. Invisible aliases are not printed in the help message of the plugin or kernel. Deprecated aliases emit a warning when used. --- .../cmdline_parameters/cmdline.ml | 31 +++++++++++++++---- .../cmdline_parameters/cmdline.mli | 7 ++++- .../cmdline_parameters/parameter_builder.ml | 11 ++++--- .../cmdline_parameters/parameter_sig.mli | 7 +++-- .../cmdline_parameters/parameter_state.ml | 5 +-- .../plugin_entry_points/plugin.ml | 15 ++++----- .../plugin_entry_points/plugin.mli | 14 +++++---- 7 files changed, 61 insertions(+), 29 deletions(-) diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index 7178eea308b..b9e34c5015c 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -253,6 +253,11 @@ type option_setting = | Int of (int -> unit) | String of (string -> unit) +let option_setting_and_warn warn = function + | Unit f -> Unit (fun () -> warn (); f ()) + | Int f -> Int (fun i -> warn (); f i) + | String f -> String (fun s -> warn (); f s) + exception Cannot_parse of string * string let raise_error name because = raise (Cannot_parse(name, because)) @@ -436,7 +441,8 @@ module Plugin: sig val add_group: ?memo:bool -> plugin:string -> string -> string * bool val add_option: string -> group:string -> cmdline_option -> unit val add_aliases: - orig:string -> string -> group:string -> string list -> cmdline_option list + orig:string -> string -> group:string -> ?visible:bool -> ?deprecated:bool + -> string list -> cmdline_option list val replace_option_setting: string -> plugin:string -> group:string -> option_setting -> unit val replace_option_help: @@ -525,7 +531,7 @@ end = struct (* table name_of_the_original_option --> aliases *) let aliases_tbl = Hashtbl.create 7 - let add_aliases ~orig shortname ~group names = + let add_aliases ~orig shortname ~group ?(visible=true) ?(deprecated=false) names = (* mostly inline [add_option] and perform additional actions *) let options_group = find_group shortname group in let option = List.find (fun o -> o.oname = orig) !options_group in @@ -533,7 +539,19 @@ end = struct if name = "" then invalid_arg "empty alias name"; Hashtbl.replace all_options name option; Option_names.add name true; - let alias = { option with oname = name } in + let setting = + if deprecated + then + let warn () = + Kernel_log.warning ~once:true + "@[%s is@ a deprecated alias@ for option %s.@ \ + Please use %s instead.@]" + name option.oname option.oname + in + option_setting_and_warn warn option.setting + else option.setting + in + let alias = { option with oname = name; ovisible = visible; setting; } in options_group := alias :: !options_group; alias in @@ -723,8 +741,8 @@ let add_option_without_action ohelp = help; ext_help = ext_help; ovisible = visible; setting = Unit (fun () -> assert false) } -let add_aliases orig ~plugin ~group stage aliases = - let l = Plugin.add_aliases ~orig plugin ~group aliases in +let add_aliases orig ~plugin ~group ?visible ?deprecated stage aliases = + let l = Plugin.add_aliases ~orig plugin ~group ?visible ?deprecated aliases in let add = match stage with | Early -> Early_Stage.add_for_parsing | Extending -> Extending_Stage.add_for_parsing @@ -899,7 +917,8 @@ let low_print_option_help fmt print_invisible o = print_helpline fmt (name ^ ty) o.ohelp o.ext_help; List.iter (fun o -> - print_helpline fmt (o.oname ^ ty) ("alias for option " ^ name) "") + if print_invisible || o.ovisible then + print_helpline fmt (o.oname ^ ty) ("alias for option " ^ name) "") (Plugin.find_option_aliases o) end; true diff --git a/src/kernel_services/cmdline_parameters/cmdline.mli b/src/kernel_services/cmdline_parameters/cmdline.mli index b3eda2c34f9..025cb258599 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.mli +++ b/src/kernel_services/cmdline_parameters/cmdline.mli @@ -313,13 +313,18 @@ val add_aliases: string -> plugin:string -> group:Group.t -> + ?visible: bool -> + ?deprecated: bool -> stage -> string list -> unit (** [add_aliases orig plugin group aliases] adds a list of aliases to the given option name [orig]. + If [visible] is set to false, the aliases do not appear in help messages. + If [deprecated] is set to true, the use of the aliases emits a warning. @Invalid_argument if an alias name is the empty string - @since Carbon-20110201 *) + @since Carbon-20110201 + @modify Frama-c+dev add [visible] and [deprecated] arguments. *) val replace_option_setting: string -> plugin:string -> group:Group.t -> option_setting -> unit diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.ml b/src/kernel_services/cmdline_parameters/parameter_builder.ml index 533be6968e7..5675500ced7 100644 --- a/src/kernel_services/cmdline_parameters/parameter_builder.ml +++ b/src/kernel_services/cmdline_parameters/parameter_builder.ml @@ -223,14 +223,15 @@ struct ~plugin X.option_name Typed_parameter.ty ~journalize:false p else p - let add_aliases list = - add_aliases list; + let add_aliases ?visible ?deprecated list = + add_aliases ?visible ?deprecated list; match !negative_option_ref with | None -> () | Some negative_option -> let negative_list = List.map negate_name list in let plugin = P.shortname in - Cmdline.add_aliases negative_option ~plugin ~group stage negative_list + Cmdline.add_aliases + negative_option ~plugin ~group ?visible ?deprecated stage negative_list end @@ -1719,8 +1720,8 @@ struct f (); end - let add_aliases list = - add_aliases list; + let add_aliases ?visible ?deprecated list = + add_aliases ?visible ?deprecated list; Output.add_aliases (List.map (fun alias -> alias ^ "-print") list) end diff --git a/src/kernel_services/cmdline_parameters/parameter_sig.mli b/src/kernel_services/cmdline_parameters/parameter_sig.mli index 9ab4f1cca7e..89a439f71b3 100644 --- a/src/kernel_services/cmdline_parameters/parameter_sig.mli +++ b/src/kernel_services/cmdline_parameters/parameter_sig.mli @@ -179,10 +179,13 @@ module type S_no_parameter = sig val equal: t -> t -> bool - val add_aliases: string list -> unit + val add_aliases: ?visible: bool -> ?deprecated:bool -> string list -> unit (** Add some aliases for this option. That is other option names which have exactly the same semantics that the initial option. - @raise Invalid_argument if one of the strings is empty *) + If [visible] is set to false, the aliases do not appear in help messages. + If [deprecated] is set to true, the use of the aliases emits a warning. + @raise Invalid_argument if one of the strings is empty + @modify Frama-c+dev add [visible] and [deprecated] arguments. *) (**/**) val is_set: unit -> bool diff --git a/src/kernel_services/cmdline_parameters/parameter_state.ml b/src/kernel_services/cmdline_parameters/parameter_state.ml index a61ea576898..8941eec2758 100644 --- a/src/kernel_services/cmdline_parameters/parameter_state.ml +++ b/src/kernel_services/cmdline_parameters/parameter_state.ml @@ -270,8 +270,9 @@ struct let option_name = X.option_name - let add_aliases = - Cmdline.add_aliases option_name ~plugin:P.shortname ~group stage + let add_aliases ?visible ?deprecated = + Cmdline.add_aliases + option_name ~plugin:P.shortname ~group stage ?visible ?deprecated let print_help fmt = Cmdline.print_option_help fmt ~plugin:P.shortname ~group option_name diff --git a/src/kernel_services/plugin_entry_points/plugin.ml b/src/kernel_services/plugin_entry_points/plugin.ml index 06ec07489dc..067694ad12c 100644 --- a/src/kernel_services/plugin_entry_points/plugin.ml +++ b/src/kernel_services/plugin_entry_points/plugin.ml @@ -44,7 +44,8 @@ module type S_no_log = sig module Config: Parameter_sig.Specific_dir val help: Cmdline.Group.t val messages: Cmdline.Group.t - val add_plugin_output_aliases: string list -> unit + val add_plugin_output_aliases: + ?visible:bool -> ?deprecated:bool -> string list -> unit end module type S = sig @@ -795,14 +796,14 @@ struct let is_kernel = is_kernel () in Warn_category.add_set_hook (parse_warn_directives is_kernel) - let add_plugin_output_aliases aliases = + let add_plugin_output_aliases ?visible ?deprecated aliases = let aliases = List.filter (fun alias -> alias <> "") aliases in let optname suffix = List.map (fun alias -> "-" ^ alias ^ suffix) aliases in - Help.add_aliases (optname "-help"); - Verbose.add_aliases (optname "-verbose"); - Debug_category.add_aliases (optname "-msg-key"); - Warn_category.add_aliases (optname "-warn-key"); - LogToFile.add_aliases (optname "-log") + Help.add_aliases ?visible ?deprecated (optname "-help"); + Verbose.add_aliases ?visible ?deprecated (optname "-verbose"); + Debug_category.add_aliases ?visible ?deprecated (optname "-msg-key"); + Warn_category.add_aliases ?visible ?deprecated (optname "-warn-key"); + LogToFile.add_aliases ?visible ?deprecated (optname "-log") let () = reset_plugin () diff --git a/src/kernel_services/plugin_entry_points/plugin.mli b/src/kernel_services/plugin_entry_points/plugin.mli index a5e41ee354e..16c14c026ae 100644 --- a/src/kernel_services/plugin_entry_points/plugin.mli +++ b/src/kernel_services/plugin_entry_points/plugin.mli @@ -64,12 +64,14 @@ module type S_no_log = sig (** The group containing options -*-debug and -*-verbose. @since Boron-20100401 *) - val add_plugin_output_aliases: string list -> unit - (** Adds aliases to the options -plugin-help, -plugin-verbose, -plugin-log, - -plugin-msg-key, and -plugin-warn-key. - [add_plugin_output_aliases [alias]] adds the aliases -alias-help, - -alias-verbose, etc. - @since 18.0-Argon *) + val add_plugin_output_aliases: + ?visible:bool -> ?deprecated:bool -> string list -> unit + (** Adds aliases to the options -plugin-help, -plugin-verbose, -plugin-log, + -plugin-msg-key, and -plugin-warn-key. + [add_plugin_output_aliases [alias]] adds the aliases -alias-help, + -alias-verbose, etc. + @since 18.0-Argon + @modify Frama-c+dev add [visible] and [deprecated] arguments. *) end (** Provided plug-general services for plug-ins. -- GitLab From b53894ef2a349121c6437a3287f4c79089fcbc30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 4 Sep 2020 11:00:25 +0200 Subject: [PATCH 045/255] [Eva] Deprecates the legacy aliases of Eva parameters. These aliases will not be printed in the help message of Eva, and will emit a warning when used. --- src/plugins/value/value_parameters.ml | 107 ++++++++++++++------------ 1 file changed, 58 insertions(+), 49 deletions(-) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 796bd38d9c1..67d4ce541f1 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -64,8 +64,8 @@ include Plugin.Register "automatically computes variation domains for the variables of the program" end) -let () = Help.add_aliases [ "-value-h"; "-val-h" ] -let () = add_plugin_output_aliases [ "value" ] +let () = Help.add_aliases ~visible:false [ "-value-h"; "-val-h" ] +let () = add_plugin_output_aliases ~visible:false ~deprecated:true [ "value" ] (* Debug categories. *) let dkey_initial_state = register_category "initial-state" @@ -109,7 +109,7 @@ module ForceValues = let help = "Compute values" let output_by_default = true end) -let () = ForceValues.add_aliases ["-val"] +let () = ForceValues.add_aliases ~deprecated:true ["-val"] let domains = add_group "Abstract Domains" let precision_tuning = add_group "Precision vs. time" @@ -373,7 +373,6 @@ module NoResultsFunctions = function f" end) let () = add_dep NoResultsFunctions.parameter -let () = NoResultsFunctions.add_aliases ["-no-results-function"] let () = Parameter_customize.set_group performance module ResultsAll = @@ -383,7 +382,6 @@ module ResultsAll = let help = "Record values for each of the statements of the program." end) let () = add_dep ResultsAll.parameter -let () = ResultsAll.add_aliases ["-results"] let () = Parameter_customize.set_group performance module JoinResults = @@ -393,7 +391,6 @@ module JoinResults = let help = "Precompute consolidated states once Eva is computed" let default = true end) -let () = JoinResults.add_aliases ["-val-join-results"] let () = Parameter_customize.set_group performance module EqualityStorage = @@ -463,7 +460,6 @@ module AllRoundingModesConstants = or being converted to higher precision" end) let () = add_correctness_dep AllRoundingModesConstants.parameter -let () = AllRoundingModesConstants.add_aliases ["-all-rounding-modes-constants"] let () = Parameter_customize.set_group alarms module UndefinedPointerComparisonPropagateAll = @@ -475,9 +471,6 @@ module UndefinedPointerComparisonPropagateAll = the emission of an alarm" end) let () = add_correctness_dep UndefinedPointerComparisonPropagateAll.parameter -let () = - UndefinedPointerComparisonPropagateAll.add_aliases - ["-undefined-pointer-comparison-propagate-all"] let () = Parameter_customize.set_group alarms module WarnPointerComparison = @@ -491,7 +484,6 @@ module WarnPointerComparison = end) let () = WarnPointerComparison.set_possible_values ["all"; "pointer"; "none"] let () = add_correctness_dep WarnPointerComparison.parameter -let () = WarnPointerComparison.add_aliases ["-val-warn-undefined-pointer-comparison"] let () = Parameter_customize.set_group alarms module WarnSignedConvertedDowncast = @@ -504,9 +496,6 @@ module WarnSignedConvertedDowncast = destination range." end) let () = add_correctness_dep WarnSignedConvertedDowncast.parameter -let () = - WarnSignedConvertedDowncast.add_aliases - ["-val-warn-signed-converted-downcast"] let () = Parameter_customize.set_group alarms @@ -520,7 +509,6 @@ module WarnPointerSubstraction = offsets. When unset, do not warn but generate imprecise offsets." end) let () = add_correctness_dep WarnPointerSubstraction.parameter -let () = WarnPointerSubstraction.add_aliases ["-val-warn-pointer-subtraction"] let () = Parameter_customize.set_group alarms module IgnoreRecursiveCalls = @@ -531,7 +519,6 @@ module IgnoreRecursiveCalls = "Pretend function calls that would be recursive do not happen. Causes unsoundness" end) let () = add_correctness_dep IgnoreRecursiveCalls.parameter -let () = IgnoreRecursiveCalls.add_aliases ["-val-ignore-recursive-calls"] let () = Parameter_customize.set_group alarms @@ -546,7 +533,6 @@ module WarnCopyIndeterminate = functions by '=-@all'." end) let () = add_correctness_dep WarnCopyIndeterminate.parameter -let () = WarnCopyIndeterminate.add_aliases ["-val-warn-copy-indeterminate"] let () = WarnCopyIndeterminate.Category.(set_default (all ())) let () = Parameter_customize.set_group alarms @@ -558,7 +544,6 @@ module ReduceOnLogicAlarms = emitted while the predicate is evaluated (experimental)" end) let () = add_correctness_dep ReduceOnLogicAlarms.parameter -let () = ReduceOnLogicAlarms.add_aliases ["-val-reduce-on-logic-alarms"] let () = Parameter_customize.set_group alarms module InitializedLocals = @@ -570,7 +555,6 @@ module InitializedLocals = initialization." end) let () = add_correctness_dep InitializedLocals.parameter -let () = InitializedLocals.add_aliases ["-val-initialized-locals"] (* ------------------------------------------------------------------------- *) (* --- Initial context --- *) @@ -586,7 +570,6 @@ module AutomaticContextMaxDepth = let help = "Use <n> as the depth of the default context for Eva. (defaults to 2)" end) let () = add_correctness_dep AutomaticContextMaxDepth.parameter -let () = AutomaticContextMaxDepth.add_aliases ["-context-depth"] let () = Parameter_customize.set_group initial_context module AutomaticContextMaxWidth = @@ -599,7 +582,6 @@ module AutomaticContextMaxWidth = end) let () = AutomaticContextMaxWidth.set_range ~min:1 ~max:max_int let () = add_correctness_dep AutomaticContextMaxWidth.parameter -let () = AutomaticContextMaxWidth.add_aliases ["-context-width"] let () = Parameter_customize.set_group initial_context module AllocatedContextValid = @@ -610,7 +592,6 @@ module AllocatedContextValid = and then use NULL (defaults to false)" end) let () = add_correctness_dep AllocatedContextValid.parameter -let () = AllocatedContextValid.add_aliases ["-context-valid-pointers"] let () = Parameter_customize.set_group initial_context module InitializationPaddingGlobals = @@ -626,7 +607,6 @@ module InitializationPaddingGlobals = end) let () = InitializationPaddingGlobals.set_possible_values ["yes"; "no"; "maybe"] let () = add_correctness_dep InitializationPaddingGlobals.parameter -let () = InitializationPaddingGlobals.add_aliases ["-val-initialization-padding-globals"] (* ------------------------------------------------------------------------- *) (* --- Tuning --- *) @@ -674,7 +654,6 @@ module WideningDelay = "Do not widen before the <n>-th iteration (defaults to 3)" end) let () = WideningDelay.set_range ~min:1 ~max:max_int -let () = WideningDelay.add_aliases ["-wlevel"] let () = add_precision_dep WideningDelay.parameter let () = Parameter_customize.set_group precision_tuning @@ -704,7 +683,6 @@ module SemanticUnrollingLevel = (defaults to 0)" end) let () = add_precision_dep SemanticUnrollingLevel.parameter -let () = SemanticUnrollingLevel.add_aliases ["-slevel"] let () = Parameter_customize.set_group precision_tuning let () = Parameter_customize.argument_may_be_fundecl () @@ -729,7 +707,6 @@ module SlevelFunction = let default = Kernel_function.Map.empty end) let () = add_precision_dep SlevelFunction.parameter -let () = SlevelFunction.add_aliases ["-slevel-function"] let () = Parameter_customize.set_group precision_tuning module SlevelMergeAfterLoop = @@ -742,7 +719,6 @@ module SlevelMergeAfterLoop = of a loop are merged before entering the next excution." end) let () = add_precision_dep SlevelMergeAfterLoop.parameter -let () = SlevelMergeAfterLoop.add_aliases ["-val-slevel-merge-after-loop"] let () = Parameter_customize.set_group precision_tuning module MinLoopUnroll = @@ -848,7 +824,6 @@ module SplitReturnFunction = let default = Kernel_function.Map.empty end) let () = add_precision_dep SplitReturnFunction.parameter -let () = SplitReturnFunction.add_aliases ["-val-split-return-function"] let () = Parameter_customize.set_group precision_tuning module SplitReturn = @@ -876,7 +851,6 @@ let () = abort "@[@[incorrect argument for option %s@ (%s).@]" SplitReturn.name s)) let () = add_precision_dep SplitReturn.parameter -let () = SplitReturn.add_aliases ["-val-split-return"] (* --- Misc --- *) @@ -893,7 +867,6 @@ module ILevel = (defaults to 8, must be between 4 and 128)" end) let () = add_precision_dep ILevel.parameter -let () = ILevel.add_aliases ["-val-ilevel"] let () = ILevel.add_update_hook (fun _ i -> Int_set.set_small_cardinal i) let () = ILevel.set_range 4 256 @@ -930,7 +903,6 @@ module BuiltinsOverrides = let default = Kernel_function.Map.empty end) let () = add_precision_dep BuiltinsOverrides.parameter -let () = BuiltinsOverrides.add_aliases ["-val-builtin"] (* Exported in Eva.mli. *) let use_builtin key name = @@ -947,7 +919,6 @@ module BuiltinsAuto = known C functions" end) let () = add_correctness_dep BuiltinsAuto.parameter -let () = BuiltinsAuto.add_aliases ["-val-builtins-auto"] let () = Parameter_customize.set_group precision_tuning let () = Parameter_customize.set_negative_option_name "" @@ -958,7 +929,6 @@ module BuiltinsList = let help = "List existing builtins, and which functions they \ are automatically associated to (if any)" end) -let () = BuiltinsList.add_aliases ["-val-builtins-list"] let () = Parameter_customize.set_group precision_tuning module LinearLevel = @@ -972,7 +942,6 @@ module LinearLevel = Defaults to 0." end) let () = add_precision_dep LinearLevel.parameter -let () = LinearLevel.add_aliases ["-val-subdivide-non-linear"] let () = Parameter_customize.set_group precision_tuning module LinearLevelFunction = @@ -1009,7 +978,6 @@ module UsePrototype = their definitions" end) let () = add_precision_dep UsePrototype.parameter -let () = UsePrototype.add_aliases ["-val-use-spec"] let () = Parameter_customize.set_group precision_tuning module SkipLibcSpecs = @@ -1020,7 +988,6 @@ module SkipLibcSpecs = standard library of Frama-C, when their bodies are evaluated" end) let () = add_precision_dep SkipLibcSpecs.parameter -let () = SkipLibcSpecs.add_aliases ["-val-skip-stdlib-specs"] let () = Parameter_customize.set_group precision_tuning @@ -1032,7 +999,6 @@ module RmAssert = so that the user needs to inspect fewer of them" end) let () = add_precision_dep RmAssert.parameter -let () = RmAssert.add_aliases ["-remove-redundant-alarms"] let () = Parameter_customize.set_group precision_tuning module MemExecAll = @@ -1044,7 +1010,6 @@ module MemExecAll = Callstacks for which the analysis has not been recomputed \ are incorrectly shown as dead in the GUI." end) -let () = MemExecAll.add_aliases ["-memexec-all"] let () = MemExecAll.add_set_hook (fun _bold bnew -> @@ -1067,7 +1032,6 @@ module ArrayPrecisionLevel = less than n values. (defaults to 200)" end) let () = add_precision_dep ArrayPrecisionLevel.parameter -let () = ArrayPrecisionLevel.add_aliases ["-plevel"] let () = ArrayPrecisionLevel.add_update_hook (fun _ v -> Offsetmap.set_plevel v) @@ -1173,7 +1137,6 @@ module ValShowProgress = let option_name = "-eva-show-progress" let help = "Show progression messages during analysis" end) -let () = ValShowProgress.add_aliases ["-val-show-progress"] let () = Parameter_customize.set_group messages module ValShowPerf = @@ -1182,7 +1145,6 @@ module ValShowPerf = let option_name = "-eva-show-perf" let help = "Compute and show a summary of the time spent analyzing function calls" end) -let () = ValShowPerf.add_aliases ["-val-show-perf"] let () = Parameter_customize.set_group messages module ValPerfFlamegraphs = @@ -1195,7 +1157,6 @@ module ValPerfFlamegraphs = let arg_name = "file" let default = "" end) -let () = ValPerfFlamegraphs.add_aliases ["-val-flamegraph"] let () = Parameter_customize.set_group messages @@ -1207,7 +1168,6 @@ module ShowSlevel = let arg_name = "n" let help = "Period for showing consumption of the alloted slevel during analysis" end) -let () = ShowSlevel.add_aliases ["-val-show-slevel"] let () = ShowSlevel.set_range ~min:1 ~max:max_int let () = Parameter_customize.set_group messages @@ -1217,7 +1177,6 @@ module PrintCallstacks = let option_name = "-eva-print-callstacks" let help = "When printing a message, also show the current call stack" end) -let () = PrintCallstacks.add_aliases ["-val-print-callstacks"] let () = Parameter_customize.set_group messages module ReportRedStatuses = @@ -1255,7 +1214,6 @@ module InterpreterMode = let help = "Stop at first call to a library function, if main() has \ arguments, on undecided branches" end) -let () = InterpreterMode.add_aliases ["-val-interpreter-mode"] let () = Parameter_customize.set_group interpreter module StopAtNthAlarm = @@ -1265,7 +1223,6 @@ module StopAtNthAlarm = let arg_name = "n" let help = "Abort the analysis when the nth alarm is emitted." end) -let () = StopAtNthAlarm.add_aliases ["-val-stop-at-nth-alarm"] (* -------------------------------------------------------------------------- *) (* --- Ugliness required for correctness --- *) @@ -1369,7 +1326,6 @@ module AllocFunctions = By default, contains malloc, calloc and realloc." let default = Datatype.String.Set.of_list ["malloc"; "calloc"; "realloc"] end) -let () = AllocFunctions.add_aliases ["-val-malloc-functions"] let () = AllocFunctions.add_aliases ["-eva-malloc-functions"] let () = Parameter_customize.set_group malloc @@ -1380,7 +1336,6 @@ module AllocReturnsNull= let help = "Memory allocation built-ins (malloc, calloc, realloc) are \ modeled as nondeterministically returning a null pointer" end) -let () = AllocReturnsNull.add_aliases ["-val-alloc-returns-null"] let () = Parameter_customize.set_group malloc module MallocLevel = @@ -1392,7 +1347,61 @@ module MallocLevel = let help = "Set to [m] the number of precise dynamic allocations \ besides the initial one, for each callstack (defaults to 0)" end) -let () = MallocLevel.add_aliases ["-val-mlevel"] + +(* -------------------------------------------------------------------------- *) +(* --- Deprecated aliases --- *) +(* -------------------------------------------------------------------------- *) + +let deprecated_aliases : ((module Parameter_sig.S) * string) list = + [ (module SemanticUnrollingLevel), "-slevel" + ; (module SlevelFunction), "-slevel-function" + ; (module NoResultsFunctions), "-no-results-function" + ; (module ResultsAll), "-results" + ; (module JoinResults), "-val-join-results" + ; (module AllRoundingModesConstants), "-all-rounding-modes-constants" + ; (module UndefinedPointerComparisonPropagateAll), "-undefined-pointer-comparison-propagate-all" + ; (module WarnPointerComparison), "-val-warn-undefined-pointer-comparison" + ; (module WarnSignedConvertedDowncast), "-val-warn-signed-converted-downcast" + ; (module WarnPointerSubstraction), "-val-warn-pointer-subtraction" + ; (module IgnoreRecursiveCalls), "-val-ignore-recursive-calls" + ; (module WarnCopyIndeterminate), "-val-warn-copy-indeterminate" + ; (module ReduceOnLogicAlarms), "-val-reduce-on-logic-alarms" + ; (module InitializedLocals), "-val-initialized-locals" + ; (module AutomaticContextMaxDepth), "-context-depth" + ; (module AutomaticContextMaxWidth), "-context-width" + ; (module AllocatedContextValid), "-context-valid-pointers" + ; (module InitializationPaddingGlobals), "-val-initialization-padding-globals" + ; (module WideningDelay), "-wlevel" + ; (module SlevelMergeAfterLoop), "-val-slevel-merge-after-loop" + ; (module SplitReturnFunction), "-val-split-return-function" + ; (module SplitReturn), "-val-split-return" + ; (module ILevel), "-val-ilevel" + ; (module BuiltinsOverrides), "-val-builtin" + ; (module BuiltinsAuto), "-val-builtins-auto" + ; (module BuiltinsList), "-val-builtins-list" + ; (module LinearLevel), "-val-subdivide-non-linear" + ; (module UsePrototype), "-val-use-spec" + ; (module SkipLibcSpecs), "-val-skip-stdlib-specs" + ; (module RmAssert), "-remove-redundant-alarms" + ; (module MemExecAll), "-memexec-all" + ; (module ArrayPrecisionLevel), "-plevel" + ; (module ValShowProgress), "-val-show-progress" + ; (module ValShowPerf), "-val-show-perf" + ; (module ValPerfFlamegraphs), "-val-flamegraph" + ; (module ShowSlevel), "-val-show-slevel" + ; (module PrintCallstacks), "-val-print-callstacks" + ; (module InterpreterMode), "-val-interpreter-mode" + ; (module StopAtNthAlarm), "-val-stop-at-nth-alarm" + ; (module AllocFunctions), "-val-malloc-functions" + ; (module AllocReturnsNull), "-val-alloc-returns-null" + ; (module MallocLevel), "-val-mlevel" + ] + +let add_deprecated_alias ((module P: Parameter_sig.S), name) = + P.add_aliases ~visible:false ~deprecated:true [name] + +let () = List.iter add_deprecated_alias deprecated_aliases + (* -------------------------------------------------------------------------- *) (* --- Meta options --- *) -- GitLab From 320296068bbb68baeb9ae591b4298bdf9921f9d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 4 Sep 2020 13:50:54 +0200 Subject: [PATCH 046/255] [Eva] Uses the deprecated alias -slevel in test value/summary. Tests the emitted warning on use of deprecated aliases. --- tests/value/oracle/summary.4.res.oracle | 2 ++ tests/value/summary.i | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/value/oracle/summary.4.res.oracle b/tests/value/oracle/summary.4.res.oracle index 3e988afe488..7bfb7aff024 100644 --- a/tests/value/oracle/summary.4.res.oracle +++ b/tests/value/oracle/summary.4.res.oracle @@ -1,3 +1,5 @@ +[kernel] Warning: -slevel is a deprecated alias for option -eva-slevel. + Please use -eva-slevel instead. [kernel] Parsing tests/value/summary.i (no preprocessing) [rte] annotating function alarms [rte] annotating function bottom diff --git a/tests/value/summary.i b/tests/value/summary.i index d73b4b42d73..8d5d6efd3f5 100644 --- a/tests/value/summary.i +++ b/tests/value/summary.i @@ -3,7 +3,7 @@ STDOPT: +"-eva-msg-key=summary -main minimal" STDOPT: +"-eva-msg-key=summary -main bottom" STDOPT: +"-eva-msg-key=summary -main main" - STDOPT: +"-rte -eva-msg-key=summary -main main" + STDOPT: +"-rte -eva-msg-key=summary -main main -slevel 0" */ /* Tests the summary on the smallest possible program. */ -- GitLab From bb37703702d07847be26647f806f490e1e976cc3 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 3 Sep 2020 17:52:54 +0200 Subject: [PATCH 047/255] [Eva] constrain ranges and values for several options --- src/plugins/value/value_parameters.ml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 67d4ce541f1..80903bd7fb8 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -254,6 +254,7 @@ module EqualityCall = let default = "formals" let arg_name = "none|formals|all" end) +let () = EqualityCall.set_possible_values ["none"; "formals"; "all"] let () = add_precision_dep EqualityCall.parameter let () = Parameter_customize.set_group domains @@ -302,6 +303,7 @@ module Numerors_Real_Size = "Set <n> as the significand size of the MPFR representation \ of reals used by the numerors domain (defaults to 128)" end) +let () = Numerors_Real_Size.set_range 1 max_int let () = add_precision_dep Numerors_Real_Size.parameter let () = Parameter_customize.set_group domains @@ -569,6 +571,7 @@ module AutomaticContextMaxDepth = let arg_name = "n" let help = "Use <n> as the depth of the default context for Eva. (defaults to 2)" end) +let () = AutomaticContextMaxDepth.set_range 0 max_int let () = add_correctness_dep AutomaticContextMaxDepth.parameter let () = Parameter_customize.set_group initial_context @@ -666,7 +669,7 @@ module WideningPeriod = let help = "After the first widening, widen each <n> iterations (defaults to 2)" end) -let () = WideningDelay.set_range ~min:1 ~max:max_int +let () = WideningPeriod.set_range ~min:1 ~max:max_int let () = add_precision_dep WideningPeriod.parameter (* --- Partitioning --- *) @@ -682,6 +685,7 @@ module SemanticUnrollingLevel = The larger n, the more precise and expensive the analysis \ (defaults to 0)" end) +let () = SemanticUnrollingLevel.set_range 0 max_int let () = add_precision_dep SemanticUnrollingLevel.parameter let () = Parameter_customize.set_group precision_tuning @@ -941,6 +945,7 @@ module LinearLevel = appears multiple times, by splitting its value at most n times. \ Defaults to 0." end) +let () = LinearLevel.set_range 0 max_int let () = add_precision_dep LinearLevel.parameter let () = Parameter_customize.set_group precision_tuning @@ -1031,6 +1036,7 @@ module ArrayPrecisionLevel = Array accesses are precise as long as the interval for the index contains \ less than n values. (defaults to 200)" end) +let () = ArrayPrecisionLevel.set_range 0 max_int let () = add_precision_dep ArrayPrecisionLevel.parameter let () = ArrayPrecisionLevel.add_update_hook (fun _ v -> Offsetmap.set_plevel v) @@ -1223,6 +1229,7 @@ module StopAtNthAlarm = let arg_name = "n" let help = "Abort the analysis when the nth alarm is emitted." end) +let () = StopAtNthAlarm.set_range 0 max_int (* -------------------------------------------------------------------------- *) (* --- Ugliness required for correctness --- *) @@ -1273,6 +1280,7 @@ module OracleDepth = let default = 2 let arg_name = "" end) +let () = OracleDepth.set_range 0 max_int let () = add_precision_dep OracleDepth.parameter let () = Parameter_customize.set_group precision_tuning @@ -1285,6 +1293,7 @@ module ReductionDepth = let default = 4 let arg_name = "" end) +let () = ReductionDepth.set_range 0 max_int let () = add_precision_dep ReductionDepth.parameter @@ -1347,6 +1356,7 @@ module MallocLevel = let help = "Set to [m] the number of precise dynamic allocations \ besides the initial one, for each callstack (defaults to 0)" end) +let () = MallocLevel.set_range 0 max_int (* -------------------------------------------------------------------------- *) (* --- Deprecated aliases --- *) -- GitLab From 99132c9e7e0801d4c6f4260bc7e3e3e5679e8e2b Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 3 Sep 2020 10:12:01 +0200 Subject: [PATCH 048/255] [Eva] hide experimental and deprecated options --- src/plugins/value/value_parameters.ml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 67d4ce541f1..f3bd9c4baed 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -1039,6 +1039,7 @@ let () = ArrayPrecisionLevel.add_update_hook and mutually dependent for sanity checking. Also, they depend on BuiltinsOverrides, so they cannot be defined before it. *) let () = Parameter_customize.set_group initial_context +let () = Parameter_customize.is_invisible () module SaveFunctionState = Kernel_function_map (struct @@ -1055,6 +1056,7 @@ module SaveFunctionState = end) let () = SaveFunctionState.add_aliases ["-val-save-fun-state"] let () = Parameter_customize.set_group initial_context +let () = Parameter_customize.is_invisible () module LoadFunctionState = Kernel_function_map (struct -- GitLab From 9b68391bc40e29ab1149fb1d5c5ff371deb76ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 4 Sep 2020 16:34:15 +0200 Subject: [PATCH 049/255] [Eva] Removes state_import.ml and options -eva-[save|load]-fun-state. --- Makefile | 1 - src/plugins/value/engine/compute_functions.ml | 7 +- src/plugins/value/register.ml | 3 +- src/plugins/value/utils/state_import.ml | 308 -------- src/plugins/value/utils/state_import.mli | 43 - src/plugins/value/value_parameters.ml | 93 --- src/plugins/value/value_parameters.mli | 9 - tests/builtins/Longinit_sequencer.i | 4 - tests/builtins/Longinit_sequencer.ml | 67 -- .../oracle/Longinit_sequencer.res.oracle | 733 ------------------ 10 files changed, 3 insertions(+), 1265 deletions(-) delete mode 100644 src/plugins/value/utils/state_import.ml delete mode 100644 src/plugins/value/utils/state_import.mli delete mode 100644 tests/builtins/Longinit_sequencer.i delete mode 100644 tests/builtins/Longinit_sequencer.ml delete mode 100644 tests/builtins/oracle/Longinit_sequencer.res.oracle diff --git a/Makefile b/Makefile index 7f7d6c9d995..31c65947753 100644 --- a/Makefile +++ b/Makefile @@ -899,7 +899,6 @@ PLUGIN_CMO:= partitioning/split_strategy domains/domain_mode value_parameters \ domains/cvalue/builtins_watchpoint \ domains/cvalue/builtins_float domains/cvalue/builtins_split \ domains/inout_domain \ - utils/state_import \ legacy/eval_terms legacy/eval_annots \ domains/powerset engine/transfer_logic \ domains/cvalue/cvalue_transfer domains/cvalue/cvalue_init \ diff --git a/src/plugins/value/engine/compute_functions.ml b/src/plugins/value/engine/compute_functions.ml index 6fbf9dbd503..e7d1b0f5a42 100644 --- a/src/plugins/value/engine/compute_functions.ml +++ b/src/plugins/value/engine/compute_functions.ml @@ -91,12 +91,9 @@ let post_analysis_cleanup ~aborted = if Value_parameters.JoinResults.get () then Db.Value.Table_By_Callstack.iter (fun s _ -> ignore (Db.Value.get_stmt_state s)); - if not aborted then begin + if not aborted then (* Keep memexec results for users that want to resume the analysis *) - Mem_exec.cleanup_results (); - if not (Value_parameters.SaveFunctionState.is_empty ()) then - State_import.save_globals_state (); - end + Mem_exec.cleanup_results () let post_analysis () = (* Garbled mix must be dumped here -- at least before the call to diff --git a/src/plugins/value/register.ml b/src/plugins/value/register.ml index 1a396420b8e..00dc42fad17 100644 --- a/src/plugins/value/register.ml +++ b/src/plugins/value/register.ml @@ -138,8 +138,7 @@ let use_spec_instead_of_definition kf = not (Kernel_function.is_definition kf) || Ast_info.is_frama_c_builtin (Kernel_function.get_name kf) || Builtins.is_builtin_overridden kf || - Kernel_function.Set.mem kf (Value_parameters.UsePrototype.get ()) || - Value_parameters.LoadFunctionState.mem kf + Kernel_function.Set.mem kf (Value_parameters.UsePrototype.get ()) let eval_predicate ~pre ~here p = let open Eval_terms in diff --git a/src/plugins/value/utils/state_import.ml b/src/plugins/value/utils/state_import.ml deleted file mode 100644 index f20c361e991..00000000000 --- a/src/plugins/value/utils/state_import.ml +++ /dev/null @@ -1,308 +0,0 @@ -(**************************************************************************) -(* *) -(* This file is part of Frama-C. *) -(* *) -(* Copyright (C) 2007-2020 *) -(* CEA (Commissariat à l'énergie atomique et aux énergies *) -(* alternatives) *) -(* *) -(* you can redistribute it and/or modify it under the terms of the GNU *) -(* Lesser General Public License as published by the Free Software *) -(* Foundation, version 2.1. *) -(* *) -(* It is distributed in the hope that it will be useful, *) -(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) -(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) -(* GNU Lesser General Public License for more details. *) -(* *) -(* See the GNU Lesser General Public License version 2.1 *) -(* for more details (enclosed in the file licenses/LGPLv2.1). *) -(* *) -(**************************************************************************) - -open Cvalue -open Cil_types - -let dkey = Value_parameters.register_category "restart" - -let base_cache : (int, Base.t) Hashtbl.t = Hashtbl.create 41 -let v_cache = V.Hashtbl.create 53 - -(* Used to identify and remove escaping values from globals *) -exception Possibly_escaping_value - -let import_varinfo (vi : varinfo) ~importing_value = - try - if Cil.isFunctionType vi.vtype then - let kf = Globals.Functions.find_by_name vi.vname in - Kernel_function.get_vi kf - else begin - let vi' = Globals.Vars.find_from_astinfo vi.vname VGlobal in - if vi.vstorage = Static then - Value_parameters.warning ~once:true - "loaded state contains static variables;@ AST ordering@ \ - cannot be enforced and must be manually checked for soundness@ \ - (e.g. ensure that files are processed in the same order)"; - vi' - end - with Not_found -> - (* search in the state *) - if importing_value then begin - (* Variable may be an escaping local value *) - Value_parameters.warning "variable `%a' is not global, \ - possibly an escaping value; ignoring" - Printer.pp_varinfo vi; - raise Possibly_escaping_value - end else - Value_parameters.abort "global not found: `%a'" - Printer.pp_varinfo vi - -let import_validity = function - | Base.Empty | Base.Known _ | Base.Unknown _ | Base.Invalid as v -> v - | Base.Variable { Base.weak; min_alloc; max_alloc; max_allocable } -> - let var = Base.create_variable_validity ~weak ~min_alloc ~max_alloc in - if Integer.equal max_allocable var.Base.max_allocable then - Base.Variable var - else Kernel.abort "Incompatible maximum size for variable %a vs. %a" - Abstract_interp.Int.pretty max_allocable - Abstract_interp.Int.pretty var.Base.max_allocable - -let import_base (base : Base.t) ~importing_value = - let make_base = function - | Base.Var (vi, _validity) -> - Base.of_varinfo (import_varinfo vi ~importing_value) - | Base.CLogic_Var (lv, _ty, _validity) -> - (* Value states do not contain logic variables anyway - (except when evaluating ACSL clauses, which is not the case here *) - Value_parameters.fatal "importing logic variables (%a) is unsupported" - Printer.pp_logic_var lv - | Base.Null -> Base.null - | Base.String (_, s) -> - (* TODO: currently, we recreate a new string unrelated to the original - one. This is probably not the good solution *) - let c = match s with - | Base.CSString s -> Const (CStr s) - | Base.CSWstring s -> Const (CWStr s) - in - let e = Cil.new_exp Cil_datatype.Location.unknown c in - Base.of_string_exp e - | Base.Allocated (vi, deallocation, validity) -> - Value_parameters.feedback ~dkey "recreating allocated base for alloc: `%a'" - Printer.pp_varinfo vi; - let new_vi = Value_util.create_new_var vi.vname vi.vtype in - let validity = import_validity validity in - let new_base = Base.register_allocated_var new_vi deallocation validity in - Builtins_malloc.register_malloced_base new_base; - new_base - in - let id = Base.id base in - try - let res = Hashtbl.find base_cache id in - res - with Not_found -> - let base' = make_base base in - Hashtbl.replace base_cache id base'; - base' - -let import_base_setlattice (sl : Base.SetLattice.t) ~importing_value = - Base.SetLattice.fold (fun base acc -> - let b' = import_base base ~importing_value in - Base.Hptset.add b' acc - ) sl Base.Hptset.empty - -let import_ival = Ival.rehash - -let import_map (m : Cvalue.V.M.t) = - let add base ival m = - let new_base = import_base base ~importing_value:true in - let new_ival = import_ival ival in - Cvalue.V.add new_base new_ival m - in - Cvalue.V.M.fold add m Cvalue.V.bottom - -let import_v (v : Cvalue.V.t) = - match v with - | Cvalue.V.Top (sl, o) -> - Value_parameters.warning ~once:true - "importing garbled mix, locations may have changed"; - (*let o' = import_origin o in*) - let s = import_base_setlattice sl ~importing_value:true in - Cvalue.V.inject_top_origin o s - | Cvalue.V.Map m -> - import_map m - -let import_v_or_uninit (vu : Cvalue.V_Or_Uninitialized.t) = - let find v = - try - let res = V.Hashtbl.find v_cache v in - res - with Not_found -> - let v' = import_v v - in - V.Hashtbl.replace v_cache v v'; - v' - in - try - V_Or_Uninitialized.map find vu - with Possibly_escaping_value -> - (* replace variable with ESCAPINGADDR *) - Cvalue.V_Or_Uninitialized.C_init_esc V.bottom - -let import_offsetmap (offsetmap : V_Offsetmap.t) = - V_Offsetmap.map_on_values import_v_or_uninit offsetmap - -let import_model (state : Model.t) = - match state with - | Model.Bottom -> Model.bottom - | Model.Top -> Model.top - | Model.Map map -> - let add base offsetmap map = - let new_offsetmap = import_offsetmap offsetmap in - let new_base = import_base base ~importing_value:false in - Model.add_base new_base new_offsetmap map - in - Model.fold add map Model.empty_map - -(*and import_origin (o : Origin.t) = - (* the "new" origin location is arbitrary, since no guarantees about the - actual location can be given *) - let loc = Origin.LocationSetLattice.currentloc_singleton () in - match o with - | Origin.Misalign_read _ -> Origin.Misalign_read loc - | Origin.Leaf _ -> Origin.Leaf loc - | Origin.Merge _ -> Origin.Merge loc - | Origin.Arith _ -> Origin.Arith loc - | Origin.Well | Origin.Unknown -> o*) - -let load_globals_from_file filename : Model.t = - let ic = open_in_bin filename in - let (state : Model.t) = Marshal.from_channel ic in - close_in ic; - Value_parameters.feedback ~dkey "DE-MARSHALLED STATE (before import):@.%a" - Cvalue.Model.pretty state; - import_model state - -let save_globals_to_file kf state_with_locals filename = - Value_parameters.feedback "Saving globals state after call to function: %a" - Kernel_function.pretty kf; - let state = Model.filter_base Base.is_global state_with_locals in - Value_parameters.feedback ~dkey "SAVED STATE:@.%a" Model.pretty state; - let oc = open_out_bin filename in - Marshal.to_channel oc state []; - close_out oc - -let load_and_merge_function_state state : Model.t = - let (kf, filename) = Value_parameters.get_LoadFunctionState () in - Value_parameters.feedback - "@[<hov 0>Skipping call to %a,@ loading globals state from file:@ %s@]" - Kernel_function.pretty kf filename; - let saved_state = load_globals_from_file filename in - Value_parameters.debug ~dkey "LOADED STATE:@.%a" - Cvalue.Model.pretty saved_state; - (* warn about missing globals in the new AST, and add new globals that were - not present before *) - let saved_map = match saved_state with - | Model.Map m -> m - | _ -> assert false - in - let locals = - Model.filter_base (fun base -> not (Base.is_global base)) state - in - let state_without_locals = - Model.filter_base (fun base -> Base.is_global base) state - in - Value_parameters.debug ~dkey "Merging state with locals: %a@." - Model.pretty locals; - let new_globals = - Model.filter_base - (fun base -> - try - let _ = Model.find_base base saved_state in - false (* previously existing global *) - with - | Not_found -> - Value_parameters.warning "found new global variable `%a'" - Base.pretty base; - true (* new global *) - ) state_without_locals - in - let merged_globals_state = - Model.fold (fun new_base offsm acc -> - Model.add_base new_base offsm acc - ) saved_map new_globals - in - let map_with_globals = match merged_globals_state with - | Model.Map m -> m - | _ -> Value_parameters.fatal "invalid saved state: %a" - Model.pretty saved_state - in - let merged_globals_and_locals = - Model.fold (fun new_base offsm acc -> - Model.add_base new_base offsm acc - ) map_with_globals locals - in - merged_globals_and_locals - -let save_globals_state () : unit = - let (kf, filename) = Value_parameters.get_SaveFunctionState () in - let ret_stmt = Kernel_function.find_return kf in - try - let ret_state = Db.Value.get_stmt_state ret_stmt in - match ret_state with - | Model.Top -> - Value_parameters.abort "cannot save state at return statement of %a \ - (too imprecise)" Kernel_function.pretty kf - | Model.Bottom -> - Value_parameters.abort "cannot save state at return statement of %a \ - (bottom)" Kernel_function.pretty kf - | Model.Map _ -> save_globals_to_file kf ret_state filename - with Not_found -> - if Value_parameters.LoadFunctionState.is_set () then - let (load_kf, _) = Value_parameters.get_LoadFunctionState () in - Value_parameters.abort "could not find saved state for function `%a';@ \ - this can happen if it is called from `%a'" - Kernel_function.pretty kf Kernel_function.pretty load_kf; - else - Value_parameters.failure "could not find saved state for function `%a'" - Kernel_function.pretty kf - - -exception Warn_local_addresses -(* visitor used by frama_c_load_state *) -class locals_visitor = object(_self) inherit Visitor.frama_c_inplace - method! vlval (lhost, _) = - match lhost with - | Var vi -> - if not vi.vglob then raise Warn_local_addresses; - Cil.DoChildren - | Mem _ -> Cil.DoChildren -end - - -(* Builtin to load a saved analysis state *) -let frama_c_load_state state actuals = - (* Warn if arguments contain pointers to local variables, - in which case the loaded state may be unsound. *) - begin - try - List.iter (fun (exp_arg, arg, _) -> - let vis = new locals_visitor in - if Cil.isPointerType (Cil.typeOf exp_arg) then - ignore (Visitor.visitFramacExpr vis exp_arg); - if Cvalue.V.contains_addresses_of_any_locals arg then - raise Warn_local_addresses - ) actuals; - with Warn_local_addresses -> - Value_parameters.warning ~current:true ~once:true - "arguments to loaded function state contain local addresses,@ \ - possible unsoundness"; - end; - let merged_loaded_state = load_and_merge_function_state state in - { - Value_types.c_values = [None, merged_loaded_state]; - c_clobbered = Base.SetLattice.empty; - c_cacheable = Value_types.NoCacheCallers; - c_from = None - } - -let () = Builtins.register_builtin "Frama_C_load_state" frama_c_load_state diff --git a/src/plugins/value/utils/state_import.mli b/src/plugins/value/utils/state_import.mli deleted file mode 100644 index b1c140858e2..00000000000 --- a/src/plugins/value/utils/state_import.mli +++ /dev/null @@ -1,43 +0,0 @@ -(**************************************************************************) -(* *) -(* This file is part of Frama-C. *) -(* *) -(* Copyright (C) 2007-2020 *) -(* CEA (Commissariat à l'énergie atomique et aux énergies *) -(* alternatives) *) -(* *) -(* you can redistribute it and/or modify it under the terms of the GNU *) -(* Lesser General Public License as published by the Free Software *) -(* Foundation, version 2.1. *) -(* *) -(* It is distributed in the hope that it will be useful, *) -(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) -(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) -(* GNU Lesser General Public License for more details. *) -(* *) -(* See the GNU Lesser General Public License version 2.1 *) -(* for more details (enclosed in the file licenses/LGPLv2.1). *) -(* *) -(**************************************************************************) - -(** Saving/loading of Value states, possibly among different ASTs. - Used by the command-line options defined by - [Value_parameters.SaveFunctionState] and - [Value_parameters.LoadFunctionState]. - @since Aluminium-20160501 *) - -(** Loads the saved initial global state, and merges it with the given state - (locals plus new globals which were not present in the original AST). - The saved state may come from a different project. - Note that, to ensure soundness of the merge, some constraints must be - respected according to where the merge takes place. - The intended use is to replace costly function calls, in which case - the state of local variables should not be modified by the function. *) -val load_and_merge_function_state: Cvalue.Model.t -> Cvalue.Model.t - -(** Saves the final state of globals variables after the return statement of - the function defined via [Value_parameters.SaveFunctionState]. The result - is saved in the file defined by the same option. - The function must have been called exactly once during the value analysis, - otherwise the saved state is unspecified. *) -val save_globals_state: unit -> unit diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index f3bd9c4baed..97e54167787 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -1035,99 +1035,6 @@ let () = add_precision_dep ArrayPrecisionLevel.parameter let () = ArrayPrecisionLevel.add_update_hook (fun _ v -> Offsetmap.set_plevel v) -(* Options SaveFunctionState and LoadFunctionState are related - and mutually dependent for sanity checking. - Also, they depend on BuiltinsOverrides, so they cannot be defined before it. *) -let () = Parameter_customize.set_group initial_context -let () = Parameter_customize.is_invisible () -module SaveFunctionState = - Kernel_function_map - (struct - include Datatype.String - type key = Cil_types.kernel_function - let of_string ~key:_ ~prev:_ file = file - let to_string ~key:_ file = file - end) - (struct - let option_name = "-eva-save-fun-state" - let arg_name = "function:filename" - let help = "Experimental. Save state of function <function> in file <filename>" - let default = Kernel_function.Map.empty - end) -let () = SaveFunctionState.add_aliases ["-val-save-fun-state"] -let () = Parameter_customize.set_group initial_context -let () = Parameter_customize.is_invisible () -module LoadFunctionState = - Kernel_function_map - (struct - include Datatype.String - type key = Cil_types.kernel_function - let of_string ~key:_ ~prev:_ file = file - let to_string ~key:_ file = file - end) - (struct - let option_name = "-eva-load-fun-state" - let arg_name = "function:filename" - let help = "Experimental. Load state of function <function> from file <filename>" - let default = Kernel_function.Map.empty - end) -let () = LoadFunctionState.add_aliases ["-val-load-fun-state"] -let () = add_correctness_dep SaveFunctionState.parameter -let () = add_correctness_dep LoadFunctionState.parameter -(* checks that SaveFunctionState has a unique argument pair, and returns it. *) -let get_SaveFunctionState () = - let is_first = ref true in - let (kf, filename) = SaveFunctionState.fold - (fun (kf, opt_filename) _acc -> - if !is_first then is_first := false - else abort "option `%s' requires a single function:filename pair" - SaveFunctionState.name; - let filename = Extlib.the opt_filename in - kf, filename - ) (Kernel_function.dummy (), "") - in - if filename = "" then abort "option `%s' requires a function:filename pair" - SaveFunctionState.name - else kf, filename -(* checks that LoadFunctionState has a unique argument pair, and returns it. *) -let get_LoadFunctionState () = - let is_first = ref true in - let (kf, filename) = LoadFunctionState.fold - (fun (kf, opt_filename) _acc -> - if !is_first then is_first := false - else abort "option `%s' requires a single function:filename pair" - LoadFunctionState.name; - let filename = Extlib.the opt_filename in - kf, filename - ) (Kernel_function.dummy (), "") - in - if filename = "" then abort "option `%s' requires a function:filename pair" - LoadFunctionState.name - else kf, filename -(* perform early sanity checks to avoid aborting the analysis only at the end *) -let () = Ast.apply_after_computed (fun _ -> - (* check the function to save returns 'void' *) - if SaveFunctionState.is_set () then begin - let (kf, _) = get_SaveFunctionState () in - if not (Kernel_function.returns_void kf) then - abort "option `%s': function `%a' must return void" - SaveFunctionState.name Kernel_function.pretty kf - end; - if SaveFunctionState.is_set () && LoadFunctionState.is_set () then begin - (* check that if both save and load are set, they do not specify the - same function name (note: cannot compare using function ids) *) - let (save_kf, _) = get_SaveFunctionState () in - let (load_kf, _) = get_LoadFunctionState () in - if Kernel_function.equal save_kf load_kf then - abort "options `%s' and `%s' cannot save/load the same function `%a'" - SaveFunctionState.name LoadFunctionState.name - Kernel_function.pretty save_kf - end; - if LoadFunctionState.is_set () then - let (kf, _) = get_LoadFunctionState () in - BuiltinsOverrides.add (kf, Some "Frama_C_load_state"); - ) - (* ------------------------------------------------------------------------- *) (* --- Messages --- *) (* ------------------------------------------------------------------------- *) diff --git a/src/plugins/value/value_parameters.mli b/src/plugins/value/value_parameters.mli index 8e5d5161ad5..6e126920273 100644 --- a/src/plugins/value/value_parameters.mli +++ b/src/plugins/value/value_parameters.mli @@ -91,15 +91,6 @@ module ArrayPrecisionLevel: Parameter_sig.Int module AllocatedContextValid: Parameter_sig.Bool module InitializationPaddingGlobals: Parameter_sig.String -module SaveFunctionState: - Parameter_sig.Map with type key = Cil_types.kernel_function - and type value = string -module LoadFunctionState: - Parameter_sig.Map with type key = Cil_types.kernel_function - and type value = string -val get_SaveFunctionState : unit -> Cil_types.kernel_function * string -val get_LoadFunctionState : unit -> Cil_types.kernel_function * string - module Numerors_Real_Size : Parameter_sig.Int module Numerors_Mode : Parameter_sig.String diff --git a/tests/builtins/Longinit_sequencer.i b/tests/builtins/Longinit_sequencer.i deleted file mode 100644 index 919f247cf5d..00000000000 --- a/tests/builtins/Longinit_sequencer.i +++ /dev/null @@ -1,4 +0,0 @@ -/* run.config* - EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs - OPT: @EVA_OPTIONS@ -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -res-file @PTEST_RESULT@ -*/ diff --git a/tests/builtins/Longinit_sequencer.ml b/tests/builtins/Longinit_sequencer.ml deleted file mode 100644 index e08e24d518d..00000000000 --- a/tests/builtins/Longinit_sequencer.ml +++ /dev/null @@ -1,67 +0,0 @@ -(* Small script to test long_init*.c files, which require one test to run - before the other. *) - -open Kernel - -include Plugin.Register -(struct - let name = "long init testing module" - let shortname = "test-long-init" - let help = "utility script for tests" - end) - -module Res = String(struct - let option_name = "-res-file" - let help = "" - let arg_name = "file" - let default = "result" - end) - -let ok = ref false - -let tmpfile () = Res.get () ^ "/Longinit_sequencer.sav" - -let () = - at_exit (fun () -> - let tmpfile = tmpfile () in - if Debug.get () >= 1 || not !ok then - result "Keeping temp file %s" tmpfile - else - try Sys.remove tmpfile with Sys_error _ -> ()) - -let main () = - let tmpfile = tmpfile () in - let fmt = Format.std_formatter in - let display_results state = Format.fprintf fmt "@[%a@]@\n" !Db.Value.display state in - Dynamic.Parameter.String.set "" "tests/builtins/long_init.c"; - Dynamic.Parameter.String.set "-eva-save-fun-state" ("init_inner:" ^ tmpfile); - Dynamic.Parameter.String.set "-eva-alloc-builtin" "fresh"; - Dynamic.Parameter.Bool.set "-eva-alloc-returns-null" false; - Dynamic.Parameter.String.set "-eva-warn-key" "builtins:override=inactive"; - !Db.Value.compute (); - Callgraph.Uses.iter_in_rev_order display_results; - Files.clear (); - Dynamic.Parameter.String.set "" "tests/builtins/long_init2.c"; - (* clear and set parameters to the same value to recompute - kernel function IDs *) - Dynamic.Parameter.String.clear "-eva-save-fun-state" (); - Dynamic.Parameter.String.set "-eva-save-fun-state" ("init_outer:" ^ tmpfile); - Dynamic.Parameter.String.set "-eva-load-fun-state" ("init_inner:" ^ tmpfile); - (* set builtins in a different order to force kernel to recompute - kernel function IDs *) - Dynamic.Parameter.String.set "-eva-alloc-builtin" "fresh"; - !Db.Value.compute (); - Callgraph.Uses.iter_in_rev_order display_results; - Files.clear (); - Dynamic.Parameter.String.set "" "tests/builtins/long_init3.c"; - Dynamic.Parameter.String.clear "-eva-save-fun-state" (); - Dynamic.Parameter.String.clear "-eva-load-fun-state" (); - Dynamic.Parameter.String.set "-eva-load-fun-state" ("init_outer:" ^ tmpfile); - (* set builtins in a different order to force kernel to recompute - kernel function IDs *) - Dynamic.Parameter.String.set "-eva-alloc-builtin" "fresh"; - !Db.Value.compute (); - Callgraph.Uses.iter_in_rev_order display_results; - ok:=true (* no error, we can erase the file *) - -let () = Db.Main.extend main diff --git a/tests/builtins/oracle/Longinit_sequencer.res.oracle b/tests/builtins/oracle/Longinit_sequencer.res.oracle deleted file mode 100644 index c07049acaa7..00000000000 --- a/tests/builtins/oracle/Longinit_sequencer.res.oracle +++ /dev/null @@ -1,733 +0,0 @@ -[kernel] Parsing tests/builtins/Longinit_sequencer.i (no preprocessing) -[kernel] Parsing tests/builtins/long_init.c (with preprocessing) -[eva] Analyzing a complete application starting at main -[eva] Computing initial state -[eva:alarm] tests/builtins/long_init.c:34: Warning: - pointer downcast. assert (unsigned int)"abc" ≤ 127; -[eva] Initial state computed -[eva:initial-state] Values of globals at initialization - nondet ∈ [--..--] - a1[0..9] ∈ {0} - stuff ∈ {0} - garbled_mix ∈ {{ "abc" }} - s ∈ {{ "abc" }} - pr ∈ {0} - pr2 ∈ {0} - pr_escaping ∈ {0} - ppr ∈ {0} - alloc1 ∈ {0} - alloc2 ∈ {0} - alloc3 ∈ {0} - fp ∈ {{ &fun }} - inited ∈ {0} -[eva] computing for function init_outer <- main. - Called from tests/builtins/long_init.c:90. -[eva] computing for function init_inner <- init_outer <- main. - Called from tests/builtins/long_init.c:85. -[eva] tests/builtins/long_init.c:61: starting to merge loop iterations -[eva] computing for function analyze <- init_inner <- init_outer <- main. - Called from tests/builtins/long_init.c:68. -[eva] computing for function subanalyze <- analyze <- init_inner <- init_outer <- - main. - Called from tests/builtins/long_init.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- init_inner <- init_outer <- - main. - Called from tests/builtins/long_init.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- init_inner <- init_outer <- - main. - Called from tests/builtins/long_init.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- init_inner <- init_outer <- - main. - Called from tests/builtins/long_init.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- init_inner <- init_outer <- - main. - Called from tests/builtins/long_init.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] Recording results for analyze -[eva] Done for function analyze -[eva] computing for function analyze <- init_inner <- init_outer <- main. - Called from tests/builtins/long_init.c:69. -[eva] tests/builtins/long_init.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init.c:29: Reusing old results for call to subanalyze -[eva] computing for function subanalyze <- analyze <- init_inner <- init_outer <- - main. - Called from tests/builtins/long_init.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] Recording results for analyze -[eva] Done for function analyze -[eva] tests/builtins/long_init.c:73: Call to builtin malloc -[eva] tests/builtins/long_init.c:73: allocating variable __malloc_init_inner_l73 -[eva:alarm] tests/builtins/long_init.c:74: Warning: - pointer downcast. assert (unsigned int)alloc1 ≤ 2147483647; -[eva] tests/builtins/long_init.c:75: Call to builtin malloc -[eva] tests/builtins/long_init.c:75: allocating variable __malloc_init_inner_l75 -[eva] tests/builtins/long_init.c:77: Call to builtin free -[eva] tests/builtins/long_init.c:77: - function free: precondition 'freeable' got status valid. -[eva:malloc] tests/builtins/long_init.c:77: - strong free on bases: {__malloc_init_inner_l75} -[eva] Recording results for init_inner -[eva] Done for function init_inner -[eva:locals-escaping] tests/builtins/long_init.c:85: Warning: - locals {r, r2} escaping the scope of init_inner through pr -[eva:locals-escaping] tests/builtins/long_init.c:85: Warning: - locals {r2} escaping the scope of init_inner through pr2 -[eva:locals-escaping] tests/builtins/long_init.c:85: Warning: - locals {r2} escaping the scope of init_inner through pr_escaping -[eva] Recording results for init_outer -[eva] Done for function init_outer -[eva] tests/builtins/long_init.c:92: - Frama_C_dump_each: - # Cvalue domain: - __fc_heap_status ∈ [--..--] - __fc_random_counter ∈ [--..--] - __fc_rand_max ∈ {32767} - __fc_random48_init ∈ {0} - __fc_random48_counter[0..2] ∈ [--..--] - __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }} - __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }} - [1] ∈ {{ NULL ; &S_1___fc_env[0] }} - [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }} - __fc_mblen_state ∈ [--..--] - __fc_mbtowc_state ∈ [--..--] - __fc_wctomb_state ∈ [--..--] - nondet ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - garbled_mix ∈ {{ "abc" }} - s ∈ {{ "abc" }} - pr ∈ ESCAPINGADDR - pr2 ∈ ESCAPINGADDR - pr_escaping ∈ ESCAPINGADDR - ppr ∈ {0} - alloc1 ∈ {{ &__malloc_init_inner_l73 }} - alloc2 ∈ ESCAPINGADDR - alloc3 ∈ {0} - fp ∈ {{ &fun }} - inited ∈ {1} - sa ∈ {{ "abc" }} - tmp_2 ∈ UNINITIALIZED - __retres ∈ UNINITIALIZED - S_0___fc_env[0..1] ∈ [--..--] - S_1___fc_env[0..1] ∈ [--..--] - __malloc_init_inner_l73 ∈ {{ (int)&__malloc_init_inner_l73 }} - ==END OF DUMP== -[eva] tests/builtins/long_init.c:93: Reusing old results for call to analyze -[eva] tests/builtins/long_init.c:94: Reusing old results for call to analyze -[eva] computing for function dmin <- main. - Called from tests/builtins/long_init.c:98. -[eva] Recording results for dmin -[eva] Done for function dmin -[eva] computing for function fun <- main. - Called from tests/builtins/long_init.c:99. -[eva] Recording results for fun -[eva] Done for function fun -[eva] tests/builtins/long_init.c:103: Call to builtin free -[eva] tests/builtins/long_init.c:103: - function free: precondition 'freeable' got status valid. -[eva:malloc] tests/builtins/long_init.c:103: - strong free on bases: {__malloc_init_inner_l73} -[eva] tests/builtins/long_init.c:104: Call to builtin malloc -[eva] tests/builtins/long_init.c:104: allocating variable __malloc_main_l104 -[eva] Recording results for main -[eva] done for function main -[eva] tests/builtins/long_init.c:34: - cannot evaluate ACSL term, unsupported ACSL construct: constant strings -[eva] Saving globals state after call to function: init_inner -Values at end of function dmin: - __retres ∈ [93.9166666667 .. 110.791666667] - - -Values at end of function fun: - __retres ∈ {32} - - -Values at end of function subanalyze: - - -Values at end of function analyze: - i ∈ {5} - res ∈ [93.9166666667 .. 110.791666667] - -Values at end of function init_inner: - __fc_heap_status ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - pr ∈ {{ &r ; &r2 }} - pr2 ∈ {{ &r2 }} - pr_escaping ∈ {{ &r2 }} - alloc1 ∈ {{ &__malloc_init_inner_l73 }} - alloc2 ∈ ESCAPINGADDR - i ∈ {10} - r ∈ {93.9166666667} - r2 ∈ {110.791666667} - __malloc_init_inner_l73 ∈ {{ (int)&__malloc_init_inner_l73 }} - -Values at end of function init_outer: - __fc_heap_status ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - pr ∈ ESCAPINGADDR - pr2 ∈ ESCAPINGADDR - pr_escaping ∈ ESCAPINGADDR - alloc1 ∈ {{ &__malloc_init_inner_l73 }} - alloc2 ∈ ESCAPINGADDR - inited ∈ {1} - __malloc_init_inner_l73 ∈ {{ (int)&__malloc_init_inner_l73 }} - -Values at end of function main: - __fc_heap_status ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - pr ∈ {{ &r ; &r2 }} - pr2 ∈ {{ &r ; &r2 }} - pr_escaping ∈ ESCAPINGADDR - ppr ∈ {{ &pr ; &pr2 }} - alloc1 ∈ ESCAPINGADDR - alloc2 ∈ ESCAPINGADDR - alloc3 ∈ {{ &__malloc_main_l104 }} - inited ∈ {1} - sa ∈ {{ "abc" }} - r ∈ {93.9166666667} - r2 ∈ {110.791666667} - dm ∈ [93.9166666667 .. 110.791666667] - res_from_fp ∈ {32} - res ∈ {93} - local ∈ {1} - __retres ∈ {0}[kernel] Parsing tests/builtins/long_init2.c (with preprocessing) -[eva] Analyzing a complete application starting at main -[eva] Computing initial state -[eva:alarm] tests/builtins/long_init2.c:34: Warning: - pointer downcast. assert (unsigned int)"abc" ≤ 127; -[eva] Initial state computed -[eva:initial-state] Values of globals at initialization - nondet ∈ [--..--] - a1[0..9] ∈ {0} - stuff ∈ {0} - garbled_mix ∈ {{ "abc" }} - s ∈ {{ "abc" }} - another_global ∈ {42} - pr ∈ {0} - pr2 ∈ {0} - pr_escaping ∈ {0} - ppr ∈ {0} - alloc1 ∈ {0} - alloc2 ∈ {0} - alloc3 ∈ {0} - fp ∈ {{ &fun }} - inited ∈ {0} -[eva] computing for function init_outer <- main. - Called from tests/builtins/long_init2.c:90. -[eva] tests/builtins/long_init2.c:85: - Call to builtin Frama_C_load_state for function init_inner -[eva] Skipping call to init_inner, loading globals state from file: - tests/builtins/result/Longinit_sequencer.sav -[eva] Warning: variable `r' is not global, possibly an escaping value; ignoring -[eva] Warning: variable `r2' is not global, possibly an escaping value; ignoring -[eva] Warning: variable `r2' is not global, possibly an escaping value; ignoring -[eva] Warning: found new global variable `another_global' -[eva] Recording results for init_outer -[eva] Done for function init_outer -[eva] tests/builtins/long_init2.c:92: - Frama_C_dump_each: - # Cvalue domain: - __fc_heap_status ∈ [--..--] - __fc_random_counter ∈ [--..--] - __fc_rand_max ∈ {32767} - __fc_random48_init ∈ {0} - __fc_random48_counter[0..2] ∈ [--..--] - __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }} - __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }} - [1] ∈ {{ NULL ; &S_1___fc_env[0] }} - [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }} - __fc_mblen_state ∈ [--..--] - __fc_mbtowc_state ∈ [--..--] - __fc_wctomb_state ∈ [--..--] - nondet ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - garbled_mix ∈ {{ "abc" }} - s ∈ {{ "abc" }} - another_global ∈ {42} - pr ∈ ESCAPINGADDR - pr2 ∈ ESCAPINGADDR - pr_escaping ∈ ESCAPINGADDR - ppr ∈ {0} - alloc1 ∈ {{ &__malloc_init_inner_l73 }} - alloc2 ∈ ESCAPINGADDR - alloc3 ∈ {0} - fp ∈ {{ &fun }} - inited ∈ {1} - sa ∈ {{ "abc" }} - tmp_2 ∈ UNINITIALIZED - __retres ∈ UNINITIALIZED - S_0___fc_env[0..1] ∈ [--..--] - S_1___fc_env[0..1] ∈ [--..--] - __malloc_init_inner_l73 ∈ {{ (int)&__malloc_init_inner_l73 }} - ==END OF DUMP== -[eva] computing for function analyze <- main. - Called from tests/builtins/long_init2.c:93. -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init2.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init2.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init2.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init2.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init2.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] Recording results for analyze -[eva] Done for function analyze -[eva] computing for function analyze <- main. - Called from tests/builtins/long_init2.c:94. -[eva] tests/builtins/long_init2.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init2.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init2.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init2.c:29: Reusing old results for call to subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init2.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] Recording results for analyze -[eva] Done for function analyze -[eva] computing for function dmin <- main. - Called from tests/builtins/long_init2.c:98. -[eva] Recording results for dmin -[eva] Done for function dmin -[eva] computing for function fun <- main. - Called from tests/builtins/long_init2.c:99. -[eva] Recording results for fun -[eva] Done for function fun -[eva] tests/builtins/long_init2.c:103: Call to builtin free -[eva] tests/builtins/long_init2.c:103: - function free: precondition 'freeable' got status valid. -[eva:malloc] tests/builtins/long_init2.c:103: - strong free on bases: {__malloc_init_inner_l73} -[eva] tests/builtins/long_init2.c:104: Call to builtin malloc -[eva] tests/builtins/long_init2.c:104: allocating variable __malloc_main_l104 -[eva] Recording results for main -[eva] done for function main -[eva] tests/builtins/long_init2.c:34: - cannot evaluate ACSL term, unsupported ACSL construct: constant strings -[eva] Saving globals state after call to function: init_outer - - -Values at end of function dmin: - __retres ∈ [93.9166666667 .. 110.791666667] - - -Values at end of function fun: - __retres ∈ {32} - - -Values at end of function init_outer: - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - pr ∈ ESCAPINGADDR - pr2 ∈ ESCAPINGADDR - pr_escaping ∈ ESCAPINGADDR - alloc1 ∈ {{ &__malloc_init_inner_l73 }} - alloc2 ∈ ESCAPINGADDR - inited ∈ {1} - - -Values at end of function subanalyze: - - -Values at end of function analyze: - i ∈ {5} - res ∈ [93.9166666667 .. 110.791666667] - -Values at end of function main: - __fc_heap_status ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - pr ∈ {{ &r ; &r2 }} - pr2 ∈ {{ &r ; &r2 }} - pr_escaping ∈ ESCAPINGADDR - ppr ∈ {{ &pr ; &pr2 }} - alloc1 ∈ ESCAPINGADDR - alloc2 ∈ ESCAPINGADDR - alloc3 ∈ {{ &__malloc_main_l104 }} - inited ∈ {1} - sa ∈ {{ "abc" }} - r ∈ {93.9166666667} - r2 ∈ {110.791666667} - dm ∈ [93.9166666667 .. 110.791666667] - res_from_fp ∈ {32} - res ∈ {93} - local ∈ {42} - __retres ∈ {0}[kernel] Parsing tests/builtins/long_init3.c (with preprocessing) -[eva] Analyzing a complete application starting at main -[eva] Computing initial state -[eva:alarm] tests/builtins/long_init3.c:34: Warning: - pointer downcast. assert (unsigned int)"abc" ≤ 127; -[eva] Initial state computed -[eva:initial-state] Values of globals at initialization - nondet ∈ [--..--] - a1[0..9] ∈ {0} - stuff ∈ {0} - garbled_mix ∈ {{ "abc" }} - s ∈ {{ "abc" }} - another_global ∈ {42} - yet_another_global ∈ {43} - pr ∈ {0} - pr2 ∈ {0} - pr_escaping ∈ {0} - ppr ∈ {0} - alloc1 ∈ {0} - alloc2 ∈ {0} - alloc3 ∈ {0} - fp ∈ {{ &fun }} - inited ∈ {0} -[eva] tests/builtins/long_init3.c:90: - Call to builtin Frama_C_load_state for function init_outer -[eva] Skipping call to init_outer, loading globals state from file: - tests/builtins/result/Longinit_sequencer.sav -[eva] Warning: found new global variable `yet_another_global' -[eva] tests/builtins/long_init3.c:92: - Frama_C_dump_each: - # Cvalue domain: - __fc_heap_status ∈ [--..--] - __fc_random_counter ∈ [--..--] - __fc_rand_max ∈ {32767} - __fc_random48_init ∈ {0} - __fc_random48_counter[0..2] ∈ [--..--] - __fc_p_random48_counter ∈ {{ &__fc_random48_counter[0] }} - __fc_env[0] ∈ {{ NULL ; &S_0___fc_env[0] }} - [1] ∈ {{ NULL ; &S_1___fc_env[0] }} - [2..4095] ∈ {{ NULL ; &S_0___fc_env[0] ; &S_1___fc_env[0] }} - __fc_mblen_state ∈ [--..--] - __fc_mbtowc_state ∈ [--..--] - __fc_wctomb_state ∈ [--..--] - nondet ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - garbled_mix ∈ {{ "abc" }} - s ∈ {{ "abc" }} - another_global ∈ {42} - yet_another_global ∈ {43} - pr ∈ ESCAPINGADDR - pr2 ∈ ESCAPINGADDR - pr_escaping ∈ ESCAPINGADDR - ppr ∈ {0} - alloc1 ∈ {{ &__malloc_init_inner_l73 }} - alloc2 ∈ ESCAPINGADDR - alloc3 ∈ {0} - fp ∈ {{ &fun }} - inited ∈ {1} - sa ∈ {{ "abc" }} - tmp_2 ∈ UNINITIALIZED - __retres ∈ UNINITIALIZED - S_0___fc_env[0..1] ∈ [--..--] - S_1___fc_env[0..1] ∈ [--..--] - __malloc_init_inner_l73 ∈ {{ (int)&__malloc_init_inner_l73 }} - ==END OF DUMP== -[eva] computing for function analyze <- main. - Called from tests/builtins/long_init3.c:93. -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init3.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init3.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init3.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init3.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init3.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] Recording results for analyze -[eva] Done for function analyze -[eva] computing for function analyze <- main. - Called from tests/builtins/long_init3.c:94. -[eva] tests/builtins/long_init3.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init3.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init3.c:29: Reusing old results for call to subanalyze -[eva] tests/builtins/long_init3.c:29: Reusing old results for call to subanalyze -[eva] computing for function subanalyze <- analyze <- main. - Called from tests/builtins/long_init3.c:29. -[eva] Recording results for subanalyze -[eva] Done for function subanalyze -[eva] Recording results for analyze -[eva] Done for function analyze -[eva] computing for function dmin <- main. - Called from tests/builtins/long_init3.c:98. -[eva] Recording results for dmin -[eva] Done for function dmin -[eva] computing for function fun <- main. - Called from tests/builtins/long_init3.c:99. -[eva] Recording results for fun -[eva] Done for function fun -[eva] tests/builtins/long_init3.c:103: Call to builtin free -[eva] tests/builtins/long_init3.c:103: - function free: precondition 'freeable' got status valid. -[eva:malloc] tests/builtins/long_init3.c:103: - strong free on bases: {__malloc_init_inner_l73} -[eva] tests/builtins/long_init3.c:104: Call to builtin malloc -[eva] tests/builtins/long_init3.c:104: allocating variable __malloc_main_l104 -[eva] Recording results for main -[eva] done for function main -[eva] tests/builtins/long_init3.c:34: - cannot evaluate ACSL term, unsupported ACSL construct: constant strings - - -Values at end of function dmin: - __retres ∈ [93.9166666667 .. 110.791666667] - - -Values at end of function fun: - __retres ∈ {32} - - - - -Values at end of function subanalyze: - - -Values at end of function analyze: - i ∈ {5} - res ∈ [93.9166666667 .. 110.791666667] - -Values at end of function main: - __fc_heap_status ∈ [--..--] - a1[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {2} - [3] ∈ {3} - [4] ∈ {4} - [5] ∈ {5} - [6] ∈ {6} - [7] ∈ {7} - [8] ∈ {8} - [9] ∈ {9} - stuff.t[0..4] ∈ {3} - .t[5..9] ∈ {4} - .t[10..49] ∈ [0..12] - .d[0] ∈ {0} - .d[1] ∈ {3.125} - .d[2] ∈ {6.25} - .d[3] ∈ {9.375} - .d[4] ∈ {12.5} - .d[5] ∈ {15.625} - .d[6] ∈ {18.75} - .d[7] ∈ {21.875} - .d[8] ∈ {25.} - .d[9] ∈ {28.125} - pr ∈ {{ &r ; &r2 }} - pr2 ∈ {{ &r ; &r2 }} - pr_escaping ∈ ESCAPINGADDR - ppr ∈ {{ &pr ; &pr2 }} - alloc1 ∈ ESCAPINGADDR - alloc2 ∈ ESCAPINGADDR - alloc3 ∈ {{ &__malloc_main_l104 }} - inited ∈ {1} - sa ∈ {{ "abc" }} - r ∈ {93.9166666667} - r2 ∈ {110.791666667} - dm ∈ [93.9166666667 .. 110.791666667] - res_from_fp ∈ {32} - res ∈ {93} - local ∈ {42} - local2 ∈ {43} - __retres ∈ {0} - -- GitLab From 7f1ef6076a3b49307c116c2e487caa05d8b893ed Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 9 Jun 2020 09:24:20 +0200 Subject: [PATCH 050/255] [wp] Moves VarUsage hypotheses computation to MemVar --- src/plugins/wp/Factory.ml | 8 +------- src/plugins/wp/Makefile.in | 4 ++-- src/plugins/wp/MemVar.ml | 10 ++++++++-- src/plugins/wp/MemVar.mli | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/plugins/wp/Factory.ml b/src/plugins/wp/Factory.ml index f6a1a01a5d9..8fea80af863 100644 --- a/src/plugins/wp/Factory.ml +++ b/src/plugins/wp/Factory.ml @@ -129,13 +129,7 @@ struct if S.mem x.vname (get_vars ()) then ByValue else V.param x - let hypotheses () = - let kf,init = match WpContext.get_scope () with - | WpContext.Global -> None,false - | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in - let w = ref MemoryContext.empty in - V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (param vi) !w) ; - MemoryContext.requires !w + let iter = V.iter end diff --git a/src/plugins/wp/Makefile.in b/src/plugins/wp/Makefile.in index dc8b2c99ece..2ab8ab0e658 100644 --- a/src/plugins/wp/Makefile.in +++ b/src/plugins/wp/Makefile.in @@ -67,7 +67,7 @@ PLUGIN_CMO:= \ LogicUsage RefUsage \ Layout Region \ RegionAnnot RegionAccess RegionDump RegionAnalysis \ - cil2cfg normAtLabels wpPropId mcfg \ + cil2cfg normAtLabels wpPropId wpStrategy mcfg \ Lang Repr Matrix Passive Splitter \ LogicBuiltins Definitions \ Cmath Cint Cfloat Vset Vlist Cstring Cvalues \ @@ -81,7 +81,7 @@ PLUGIN_CMO:= \ Sigma MemLoader \ MemEmpty MemZeroAlias MemVar \ MemMemory MemTyped MemRegion \ - wpReached wpStrategy wpRTE wpAnnot \ + wpReached wpRTE wpAnnot \ CfgCompiler StmtSemantics \ VCS script proof wpo wpReport \ Footprint Tactical Strategy \ diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index 32e840f7893..a748aade45a 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -37,7 +37,7 @@ module type VarUsage = sig val datatype : string val param : varinfo -> MemoryContext.param - val hypotheses : unit -> MemoryContext.clause list + val iter: ?kf:kernel_function -> init:bool -> (varinfo -> unit) -> unit end module Make(V : VarUsage)(M : Sigs.Model) = @@ -52,7 +52,13 @@ struct let no_binder = { bind = fun _ f v -> f v } let configure_ia _ = no_binder - let hypotheses () = V.hypotheses () @ M.hypotheses () + let hypotheses () = + let kf,init = match WpContext.get_scope () with + | WpContext.Global -> None,false + | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in + let w = ref MemoryContext.empty in + V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (V.param vi) !w) ; + MemoryContext.requires !w @ M.hypotheses () (* -------------------------------------------------------------------------- *) (* --- Chunk --- *) diff --git a/src/plugins/wp/MemVar.mli b/src/plugins/wp/MemVar.mli index 1f73818c445..45c063aa9f4 100644 --- a/src/plugins/wp/MemVar.mli +++ b/src/plugins/wp/MemVar.mli @@ -30,8 +30,8 @@ module type VarUsage = sig val datatype : string val param : varinfo -> MemoryContext.param - (** Memory Model Hypotheses *) - val hypotheses : unit -> MemoryContext.clause list + val iter: ?kf:kernel_function -> init:bool -> (varinfo -> unit) -> unit + end module Make(V : VarUsage)(M : Sigs.Model) : Sigs.Model -- GitLab From ea13960959b283b116f125f648dd7bb9ed4b10a0 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 21 Jul 2020 10:07:47 +0200 Subject: [PATCH 051/255] [wp] Collect assigns separation hypotheses --- src/plugins/wp/MemVar.ml | 14 + src/plugins/wp/MemoryContext.ml | 83 +++++- src/plugins/wp/MemoryContext.mli | 6 +- .../wp/tests/wp_bts/oracle/bts0843.res.oracle | 3 + .../wp_bts/oracle_qualif/bts0843.res.oracle | 3 + .../tests/wp_hoare/alias_assigns_hypotheses.i | 99 +++++++ .../alias_assigns_hypotheses.res.oracle | 254 ++++++++++++++++++ .../oracle/reference_and_struct.res.oracle | 3 + .../alias_assigns_hypotheses.res.oracle | 109 ++++++++ .../reference_and_struct.res.oracle | 3 + .../wp_plugin/oracle/overassign.res.oracle | 6 + .../oracle_qualif/overassign.res.oracle | 6 + .../wp_typed/oracle/user_injector.res.oracle | 2 + .../oracle_qualif/user_injector.0.res.oracle | 2 + .../oracle_qualif/user_injector.1.res.oracle | 2 + src/plugins/wp/wp_parameters.ml | 4 + src/plugins/wp/wp_parameters.mli | 2 + 17 files changed, 590 insertions(+), 11 deletions(-) create mode 100644 src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i create mode 100644 src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle create mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index a748aade45a..7a395b0e59f 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -58,6 +58,20 @@ struct | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in let w = ref MemoryContext.empty in V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (V.param vi) !w) ; + let add_assign kf _emitter = function + | WritesAny -> + Wp_parameters.warning + ~wkey:Wp_parameters.wkey_imprecise_hypotheses_assigns + "No assigns for function '%a', %s hypotheses will be imprecise" + Kernel_function.pretty kf datatype + | Writes l -> + List.iter (fun (e,_ds) -> w := MemoryContext.assigned e !w) l + in + begin match kf with + | None -> () + | Some kf -> + Annotations.iter_assigns (add_assign kf) kf Cil.default_behavior_name + end ; MemoryContext.requires !w @ M.hypotheses () (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 5ef8e4fede2..b97d05a8b64 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -46,11 +46,13 @@ type zone = | Var of varinfo (* &x - the cell x *) | Ptr of varinfo (* p - the cell pointed by p *) | Arr of varinfo (* p+(..) - the cell and its neighbors pointed by p *) + | Term of term type partition = { globals : zone list ; (* [ &G , G[...], ... ] *) to_heap : zone list ; (* [ p, ... ] *) context : zone list ; (* [ p+(..), ... ] *) + assigned: identified_term list (* Must refer to pointed locations *) } type clause = Valid of zone | Separated of zone list list @@ -64,6 +66,7 @@ let pp_zone fmt = function | Arr vi -> Format.fprintf fmt "%a+(..)" Varinfo.pretty vi | Ptr vi -> Varinfo.pretty fmt vi | Var vi -> Format.fprintf fmt "&%a" Varinfo.pretty vi + | Term t -> Format.fprintf fmt "%a" Cil_printer.pp_term t let pp_region fmt = function | [] -> Format.pp_print_string fmt "\\empty" @@ -87,21 +90,70 @@ let pp_clause fmt = function (* -------------------------------------------------------------------------- *) (* --- Memory Context --- *) (* -------------------------------------------------------------------------- *) + +let rec ptr_of = function + | Ctype t -> Ctype (TPtr(t, [])) + | t when Logic_typing.is_set_type t -> + let t = Logic_typing.type_of_set_elem t in + Logic_const.make_set_type (ptr_of t) + | _ -> assert false + +let rec addr_of_lval ?loc term = + let typ = ptr_of term.term_type in + match term.term_node with + | TLval lv -> + Logic_utils.mk_logic_AddrOf ?loc lv typ + | TCastE (_, t) | TLogic_coerce (_, t) -> + addr_of_lval ?loc t + | Tif(c, t, e) -> + let t = addr_of_lval ?loc t in + let e = addr_of_lval ?loc e in + Logic_const.term ?loc (Tif(c, t, e)) typ + | Tat( _, _) -> + term + | Tunion l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tunion l) typ + | Tinter l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tinter l) typ + | Tcomprehension (t, qs, p) -> + let t = addr_of_lval ?loc t in + Logic_const.term ?loc (Tcomprehension (t,qs,p)) typ + | _ -> term + let add_region r s = if r = [] then s else r::s -let separated partition = - List.rev @@ - add_region (List.rev partition.to_heap) @@ - add_region (List.rev partition.globals) @@ - List.map (fun z -> [z]) partition.context +let main_separation partition = + let separated = + List.rev @@ + add_region (List.rev partition.to_heap) @@ + add_region (List.rev partition.globals) @@ + List.map (fun z -> [z]) partition.context + in + Separated separated + +let assigns_separation partition = + if partition.globals = [] then [] + else + let assign_zone t = Term (addr_of_lval t.it_content) in + List.map + (fun t -> Separated ([[assign_zone t]] @ [ partition.globals ])) + partition.assigned let validity partition = List.rev @@ List.map (fun z -> Valid z) partition.context let requires partition = - let s = separated partition in + let ms = main_separation partition in + let ass_sep = assigns_separation partition in + let not_trivial_separation = function + | Separated s -> not (is_separated_true s) + | Valid _ -> false + in + let s = List.filter not_trivial_separation (ms :: ass_sep) in let v = validity partition in - if not (is_separated_true s) then Separated s :: v else v + s @ v (* -------------------------------------------------------------------------- *) (* --- Partition --- *) @@ -111,6 +163,7 @@ let empty = { globals = [] ; context = [] ; to_heap = [] ; + assigned = [] ; } let set x p w = @@ -135,4 +188,20 @@ let set x p w = { w with to_heap = z :: w.to_heap } else w +let assigned t w = + let rec assigned_via_pointer t = + match t.term_node with + | TLval (TMem _, _) -> true + | Tif (_, t, _) | Tat (t, _) + | TCastE (_, t) | TLogic_coerce (_, t) + | Tunion (t :: _) | Tinter (t :: _) + | Tcomprehension(t, _, _) -> assigned_via_pointer t + | _ -> false + in + let assigned = + if assigned_via_pointer t.it_content then t :: w.assigned + else w.assigned + in + { w with assigned = assigned } + (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index f10136afa0e..96707953d64 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -30,11 +30,9 @@ type partition val empty : partition val set : varinfo -> param -> partition -> partition +val assigned : identified_term -> partition -> partition -type zone = - | Var of varinfo (** [&x] the cell x *) - | Ptr of varinfo (** [p] the cell pointed by p *) - | Arr of varinfo (** [p+(..)] the cell and its neighbors pointed by p *) +type zone type clause = | Valid of zone diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle index 27c968f5192..e99403ea348 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle @@ -53,3 +53,6 @@ Goal Instance of 'Pre-condition (file tests/wp_bts/bts0843.i, line 12) in 'f3'' Prove: true. ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f3': + /*@ behavior typed: requires \separated(&p->a,&p); */ + void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index c532eebcae8..159f27542af 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -16,3 +16,6 @@ f3 1 - 1 100% g3 1 2 3 100% ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f3': + /*@ behavior typed: requires \separated(&p->a,&p); */ + void f3(void); diff --git a/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i b/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i new file mode 100644 index 00000000000..ff7d4fc75e4 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i @@ -0,0 +1,99 @@ +/* run.config_qualif + DONT_RUN: +*/ + +int global[1]; +int *g_alias; + +/*@ requires \valid(g_alias); + assigns *g_alias; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void global_alias(void) { + *g_alias = 1; +} + +/*@ requires \valid(g_alias); + assigns *g_alias; + ensures *g_alias == 1; */ +void global_no_alias(void) { + *g_alias = 1; +} + +/*@ requires \valid(f_alias); + assigns *f_alias; + ensures *f_alias == 1; + ensures \old(global[0]) == global[0]; */ +void formal_alias(int* f_alias) { + *f_alias = 1; +} + +/*@ requires \valid(f_alias); + assigns *f_alias; + ensures *f_alias == 1; */ +void formal_no_alias(int* f_alias) { + *f_alias = 1; +} + +/*@ requires \valid(alias_array); + assigns (*alias_array)[0 .. 1]; + ensures (*alias_array)[0] == 1; + ensures (*alias_array)[1] == 1; + ensures \old(global[0]) == global[0]; */ +void formal_alias_array(int (*alias_array)[2]){ + (*alias_array)[0] = 1; + (*alias_array)[1] = 1; +} + +// With field + +struct X { int x; }; + +/*@ requires \valid(x); + assigns x->x ; + ensures x->x == 1; + ensures \old(global[0]) == global[0]; */ +void field_alias(struct X* x){ + x->x = 1 ; +} + +// With field, via set + +// Through set: + +/*@ requires \valid(x); + assigns x[0..3].x ; + ensures x->x == 1; + ensures \old(global[0]) == global[0]; */ +void field_range_alias(struct X* x){ + x->x = 1 ; +} + +/*@ requires \valid(g_alias); + assigns { *g_alias, *f_alias } ; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void set_alias(int *f_alias) { + *g_alias = 1; +} + + +// Through comprehension: + +/*@ requires \valid(g_alias); + assigns { *alias | int* alias ; alias == \at(g_alias, Pre) } ; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void comprehension_alias(void) { + *g_alias = 1; +} + +// Through union: + +/*@ requires \valid(g_alias); + assigns \union(*g_alias, *f_alias) ; + ensures *g_alias == 1; + ensures \old(global[0]) == global[0]; */ +void union_alias(int *f_alias) { + *g_alias = 1; +} diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle new file mode 100644 index 00000000000..c9a461392e7 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle @@ -0,0 +1,254 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function comprehension_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 85) in 'comprehension_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 86) in 'comprehension_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 84) in 'comprehension_alias': +Effect at line 88 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function field_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 54) in 'field_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 55) in 'field_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 53) in 'field_alias': +Effect at line 57 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function field_range_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 66) in 'field_range_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 67) in 'field_range_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 65) in 'field_range_alias': +Effect at line 69 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 25) in 'formal_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 26) in 'formal_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 24) in 'formal_alias': +Effect at line 28 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_alias_array +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 40) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 41) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 42) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 39) in 'formal_alias_array' (1/2): +Effect at line 44 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 39) in 'formal_alias_array' (2/2): +Effect at line 45 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_no_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 33) in 'formal_no_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 32) in 'formal_no_alias': +Effect at line 35 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function global_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 10) in 'global_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 11) in 'global_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 9) in 'global_alias': +Effect at line 13 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function global_no_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 18) in 'global_no_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 17) in 'global_no_alias': +Effect at line 20 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function set_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 74) in 'set_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 75) in 'set_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 73) in 'set_alias': +Effect at line 77 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function union_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 95) in 'union_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 96) in 'union_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 94) in 'union_alias': +Effect at line 98 +Prove: true. + +------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'global_alias': + /*@ + behavior typed: + requires \separated(g_alias,\union(&g_alias,global+(..))); + */ + void global_alias(void); +[wp] Warning: Memory model hypotheses for function 'global_no_alias': + /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + void global_no_alias(void); +[wp] Warning: Memory model hypotheses for function 'formal_alias': + /*@ + behavior typed: + requires \separated(global+(..),f_alias); + requires \separated(f_alias,global+(..)); + */ + void formal_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'formal_alias_array': + /*@ + behavior typed: + requires \separated(global+(..),alias_array+(..)); + requires \separated(&(*alias_array)[0 .. 1],global+(..)); + */ + void formal_alias_array(int (*alias_array)[2]); +[wp] Warning: Memory model hypotheses for function 'field_alias': + /*@ + behavior typed: + requires \separated(global+(..),x); + requires \separated(&x->x,global+(..)); + */ + void field_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'field_range_alias': + /*@ + behavior typed: + requires \separated(global+(..),x+(..)); + requires \separated(&(x + (0 .. 3))->x,global+(..)); + */ + void field_range_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'set_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void set_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'comprehension_alias': + /*@ + behavior typed: + requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, + \union(&g_alias,global+(..))); + */ + void comprehension_alias(void); +[wp] Warning: Memory model hypotheses for function 'union_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle index 90f5112a9d1..502ee3eec09 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle @@ -255,3 +255,6 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'reset': /*@ behavior typed_ref: requires \valid(p); */ void reset(struct T *p); +[wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': + /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle new file mode 100644 index 00000000000..f524e017b1a --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle @@ -0,0 +1,109 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 30 goals scheduled +[wp] [Qed] Goal typed_comprehension_alias_ensures : Valid +[wp] [Qed] Goal typed_comprehension_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_comprehension_alias_assigns : Valid +[wp] [Qed] Goal typed_field_alias_ensures : Valid +[wp] [Qed] Goal typed_field_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_field_alias_assigns : Valid +[wp] [Qed] Goal typed_field_range_alias_ensures : Valid +[wp] [Qed] Goal typed_field_range_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_field_range_alias_assigns : Valid +[wp] [Qed] Goal typed_formal_alias_ensures : Valid +[wp] [Qed] Goal typed_formal_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_formal_alias_assigns : Valid +[wp] [Qed] Goal typed_formal_alias_array_ensures : Valid +[wp] [Qed] Goal typed_formal_alias_array_ensures_2 : Valid +[wp] [Qed] Goal typed_formal_alias_array_ensures_3 : Valid +[wp] [Qed] Goal typed_formal_alias_array_assigns_part1 : Valid +[wp] [Qed] Goal typed_formal_alias_array_assigns_part2 : Valid +[wp] [Qed] Goal typed_formal_no_alias_ensures : Valid +[wp] [Qed] Goal typed_formal_no_alias_assigns : Valid +[wp] [Qed] Goal typed_global_alias_ensures : Valid +[wp] [Qed] Goal typed_global_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_global_alias_assigns : Valid +[wp] [Qed] Goal typed_global_no_alias_ensures : Valid +[wp] [Qed] Goal typed_global_no_alias_assigns : Valid +[wp] [Qed] Goal typed_set_alias_ensures : Valid +[wp] [Qed] Goal typed_set_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_set_alias_assigns : Valid +[wp] [Qed] Goal typed_union_alias_ensures : Valid +[wp] [Qed] Goal typed_union_alias_ensures_2 : Valid +[wp] [Qed] Goal typed_union_alias_assigns : Valid +[wp] Proved goals: 30 / 30 + Qed: 30 +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + global_alias 3 - 3 100% + global_no_alias 2 - 2 100% + formal_alias 3 - 3 100% + formal_no_alias 2 - 2 100% + formal_alias_array 5 - 5 100% + field_alias 3 - 3 100% + field_range_alias 3 - 3 100% + set_alias 3 - 3 100% + comprehension_alias 3 - 3 100% + union_alias 3 - 3 100% +------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'global_alias': + /*@ + behavior typed: + requires \separated(g_alias,\union(&g_alias,global+(..))); + */ + void global_alias(void); +[wp] Warning: Memory model hypotheses for function 'global_no_alias': + /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + void global_no_alias(void); +[wp] Warning: Memory model hypotheses for function 'formal_alias': + /*@ + behavior typed: + requires \separated(global+(..),f_alias); + requires \separated(f_alias,global+(..)); + */ + void formal_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'formal_alias_array': + /*@ + behavior typed: + requires \separated(global+(..),alias_array+(..)); + requires \separated(&(*alias_array)[0 .. 1],global+(..)); + */ + void formal_alias_array(int (*alias_array)[2]); +[wp] Warning: Memory model hypotheses for function 'field_alias': + /*@ + behavior typed: + requires \separated(global+(..),x); + requires \separated(&x->x,global+(..)); + */ + void field_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'field_range_alias': + /*@ + behavior typed: + requires \separated(global+(..),x+(..)); + requires \separated(&(x + (0 .. 3))->x,global+(..)); + */ + void field_range_alias(struct X *x); +[wp] Warning: Memory model hypotheses for function 'set_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void set_alias(int *f_alias); +[wp] Warning: Memory model hypotheses for function 'comprehension_alias': + /*@ + behavior typed: + requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, + \union(&g_alias,global+(..))); + */ + void comprehension_alias(void); +[wp] Warning: Memory model hypotheses for function 'union_alias': + /*@ + behavior typed: + requires \separated(\union(global+(..),&g_alias),f_alias); + requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + */ + void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index ba67c0b6dab..d7fdaedb3bd 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -53,3 +53,6 @@ [wp] Warning: Memory model hypotheses for function 'reset': /*@ behavior typed_ref: requires \valid(p); */ void reset(struct T *p); +[wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': + /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle index 53a71fb06d7..e522e771289 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle @@ -101,3 +101,9 @@ Assume { (* Heap *) Type: linked(Malloc_0). } Prove: invalid(Malloc_0, shift_sint32(global(G_A_32), -5), 10). ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f1_ok': + /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + void f1_ok(void); +[wp] Warning: Memory model hypotheses for function 'f2_ok': + /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index 96e53948b71..31cd7d9aaed 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -28,3 +28,9 @@ f5_ko - - 2 0.0% f6_ko - - 2 0.0% ------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'f1_ok': + /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + void f1_ok(void); +[wp] Warning: Memory model hypotheses for function 'f2_ok': + /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle index 7ed19a55a52..3dd0d642f58 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle @@ -121,5 +121,7 @@ Prove: true. behavior typed: requires \separated(\union(&seq,&service_cpt,service_id+(..), service_result+(..)),error); + requires \separated(error, + \union(service_result+(..),service_id+(..),&service_cpt,&seq)); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index 1ffe02ced54..510cdf0e651 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -35,5 +35,7 @@ behavior typed: requires \separated(\union(&seq,&service_cpt,service_id+(..), service_result+(..)),error); + requires \separated(error, + \union(service_result+(..),service_id+(..),&service_cpt,&seq)); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 6bfb550fb52..3f861815767 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -31,6 +31,8 @@ behavior typed_ref: requires \separated(error, \union(&seq,&service_cpt,service_id+(..),service_result+(..))); + requires \separated(error, + \union(service_result+(..),service_id+(..),&service_cpt,&seq)); requires \valid(error); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 448ff335f59..07700701b0d 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -1040,6 +1040,10 @@ module MemoryContext = let help = "Warn Against Memory Model Hypotheses" end) +let wkey_imprecise_hypotheses_assigns = + register_warn_category "hypotheses:assigns" +let () = set_warn_status wkey_imprecise_hypotheses_assigns Log.Winactive + let () = Parameter_customize.set_group wp_po module OutputDir = String(struct diff --git a/src/plugins/wp/wp_parameters.mli b/src/plugins/wp/wp_parameters.mli index f998977a9af..c5cce1de8c7 100644 --- a/src/plugins/wp/wp_parameters.mli +++ b/src/plugins/wp/wp_parameters.mli @@ -155,6 +155,8 @@ module SmokeDeadloop: Parameter_sig.Bool module SmokeDeadcode: Parameter_sig.Bool module SmokeDeadcall: Parameter_sig.Bool +val wkey_imprecise_hypotheses_assigns: warn_category + (** {2 Getters} *) val has_out : unit -> bool -- GitLab From e1c474de860e782657786827a01cd68ceafe35ee Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 21 Jul 2020 13:38:15 +0200 Subject: [PATCH 052/255] [wp] Changes hypotheses signature --- src/plugins/wp/MemEmpty.ml | 2 +- src/plugins/wp/MemRegion.ml | 2 +- src/plugins/wp/MemTyped.ml | 2 +- src/plugins/wp/MemVar.ml | 6 +++--- src/plugins/wp/MemZeroAlias.ml | 2 +- src/plugins/wp/Sigs.ml | 7 ++++--- src/plugins/wp/register.ml | 3 ++- src/plugins/wp/wpContext.ml | 7 ++++--- src/plugins/wp/wpContext.mli | 4 ++-- 9 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/plugins/wp/MemEmpty.ml b/src/plugins/wp/MemEmpty.ml index 5435ab551b6..837d3f28f39 100644 --- a/src/plugins/wp/MemEmpty.ml +++ b/src/plugins/wp/MemEmpty.ml @@ -43,7 +43,7 @@ let configure () = let no_binder = { bind = fun _ f v -> f v } let configure_ia _ = no_binder -let hypotheses () = [] +let hypotheses p = p module Chunk = struct diff --git a/src/plugins/wp/MemRegion.ml b/src/plugins/wp/MemRegion.ml index 3723ce42322..def850d503e 100644 --- a/src/plugins/wp/MemRegion.ml +++ b/src/plugins/wp/MemRegion.ml @@ -441,7 +441,7 @@ let configure_ia = let no_binder = { bind = fun _ f v -> f v } in fun _vertex -> no_binder -let hypotheses () = [] +let hypotheses p = p let error msg = Warning.error ~source:"Region Model" msg diff --git a/src/plugins/wp/MemTyped.ml b/src/plugins/wp/MemTyped.ml index 6743fc7a086..9ef4f43ed45 100644 --- a/src/plugins/wp/MemTyped.ml +++ b/src/plugins/wp/MemTyped.ml @@ -42,7 +42,7 @@ module L = Qed.Logic (* -------------------------------------------------------------------------- *) let datatype = "MemTyped" -let hypotheses () = [] +let hypotheses p = p let configure () = begin let orig_pointer = Context.push Lang.pointer (fun _ -> t_addr) in diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index 7a395b0e59f..7d07665c6be 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -52,11 +52,11 @@ struct let no_binder = { bind = fun _ f v -> f v } let configure_ia _ = no_binder - let hypotheses () = + let hypotheses p = let kf,init = match WpContext.get_scope () with | WpContext.Global -> None,false | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in - let w = ref MemoryContext.empty in + let w = ref p in V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (V.param vi) !w) ; let add_assign kf _emitter = function | WritesAny -> @@ -72,7 +72,7 @@ struct | Some kf -> Annotations.iter_assigns (add_assign kf) kf Cil.default_behavior_name end ; - MemoryContext.requires !w @ M.hypotheses () + M.hypotheses !w (* -------------------------------------------------------------------------- *) (* --- Chunk --- *) diff --git a/src/plugins/wp/MemZeroAlias.ml b/src/plugins/wp/MemZeroAlias.ml index 3300bf555d9..3e185883a6d 100644 --- a/src/plugins/wp/MemZeroAlias.ml +++ b/src/plugins/wp/MemZeroAlias.ml @@ -48,7 +48,7 @@ let no_binder = { bind = fun _ f v -> f v } let configure_ia _ = no_binder (* TODO: compute actual separation hypotheses *) -let hypotheses () = [] +let hypotheses p = p (* -------------------------------------------------------------------------- *) (* --- Chunks --- *) diff --git a/src/plugins/wp/Sigs.ml b/src/plugins/wp/Sigs.ml index 98754486ae4..bc4f14f098b 100644 --- a/src/plugins/wp/Sigs.ml +++ b/src/plugins/wp/Sigs.ml @@ -291,9 +291,10 @@ sig val datatype : string (** For projectification. Must be unique among models. *) - val hypotheses : unit -> MemoryContext.clause list - (** Computes the memory model hypotheses including separation and validity - clauses to be verified for this model. *) + val hypotheses : MemoryContext.partition -> MemoryContext.partition + (** Computes the memory model partitionning of the memory locations. + This function typically adds new elements to the partition received + in input (that can be empty). *) module Chunk : Chunk (** Memory model chunks. *) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index c350f0f5779..bb54e4da628 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -105,7 +105,8 @@ let wp_warn_memory_context () = begin wp_iter_model begin fun kf m -> - let hyp = WpContext.compute_hypotheses m kf in + let partition = WpContext.compute_hypotheses m kf in + let hyp = MemoryContext.requires partition in if hyp <> [] then Wp_parameters.warning ~current:false diff --git a/src/plugins/wp/wpContext.ml b/src/plugins/wp/wpContext.ml index b37368f1378..acc32631cad 100644 --- a/src/plugins/wp/wpContext.ml +++ b/src/plugins/wp/wpContext.ml @@ -34,11 +34,11 @@ type model = { and rollback = (unit -> unit) and scope = Global | Kf of Kernel_function.t -and hypotheses = unit -> MemoryContext.clause list +and hypotheses = MemoryContext.partition -> MemoryContext.partition and context = model * scope and t = context -let nohyp (_kf) = [] +let nohyp (_kf) = MemoryContext.empty module MODEL = struct @@ -149,7 +149,8 @@ let get_context () = Context.get context |> snd let get_model () = get_context () |> fst let get_scope () = get_context () |> snd -let compute_hypotheses m f = on_context (m,Kf f) m.hypotheses () +let compute_hypotheses m f = + on_context (m,Kf f) m.hypotheses MemoryContext.empty let directory () = get_model () |> MODEL.id |> Wp_parameters.get_output_dir diff --git a/src/plugins/wp/wpContext.mli b/src/plugins/wp/wpContext.mli index 7693815595f..a52c5af5f7f 100644 --- a/src/plugins/wp/wpContext.mli +++ b/src/plugins/wp/wpContext.mli @@ -25,7 +25,7 @@ type model type scope = Global | Kf of Kernel_function.t type rollback = unit -> unit -type hypotheses = unit -> MemoryContext.clause list +type hypotheses = MemoryContext.partition -> MemoryContext.partition val register : id:string -> @@ -44,7 +44,7 @@ val register : val get_descr : model -> string val get_emitter : model -> Emitter.t -val compute_hypotheses : model -> Kernel_function.t -> MemoryContext.clause list +val compute_hypotheses : model -> Kernel_function.t -> MemoryContext.partition type context = model * scope type t = context -- GitLab From f71d1a0eeae7ba5396ec5ed0f7d1752693176f78 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 21 Jul 2020 15:24:17 +0200 Subject: [PATCH 053/255] [wp] Generate ACSL predicates for model hypotheses --- src/plugins/wp/MemoryContext.ml | 288 +++++++++++------- src/plugins/wp/MemoryContext.mli | 14 +- src/plugins/wp/register.ml | 15 +- .../wp_acsl/oracle/assigns_path.res.oracle | 3 +- .../wp_acsl/oracle/chunk_typing.res.oracle | 11 +- .../tests/wp_acsl/oracle/pointer.res.oracle | 6 +- .../oracle_qualif/assigns_path.res.oracle | 3 +- .../oracle_qualif/chunk_typing.res.oracle | 11 +- .../oracle_qualif/pointer.0.res.oracle | 3 +- .../oracle_qualif/pointer.1.res.oracle | 3 +- .../wp/tests/wp_bts/oracle/bts0843.res.oracle | 3 +- .../tests/wp_bts/oracle/bts_1828.0.res.oracle | 3 +- .../tests/wp_bts/oracle/bts_1828.1.res.oracle | 6 +- .../wp_bts/oracle_qualif/bts0843.res.oracle | 3 +- .../oracle_qualif/bts_1828.0.res.oracle | 3 +- .../oracle_qualif/bts_1828.1.res.oracle | 6 +- .../oracle/frama_c_exo3_solved.old.res.oracle | 6 +- .../frama_c_exo3_solved.old.v2.res.oracle | 6 +- .../frama_c_exo3_solved.old.res.oracle | 12 +- .../frama_c_exo3_solved.old.v2.res.oracle | 12 +- .../alias_assigns_hypotheses.res.oracle | 39 +-- .../tests/wp_hoare/oracle/byref.1.res.oracle | 9 +- .../wp_hoare/oracle/dispatch_var.res.oracle | 6 +- .../oracle/dispatch_var2.0.res.oracle | 12 +- .../oracle/dispatch_var2.1.res.oracle | 12 +- .../wp_hoare/oracle/reference.res.oracle | 9 +- .../oracle/reference_and_struct.res.oracle | 8 +- .../oracle/reference_array.res.oracle | 8 +- .../wp_hoare/oracle/refguards.res.oracle | 18 +- .../alias_assigns_hypotheses.res.oracle | 39 +-- .../wp_hoare/oracle_qualif/byref.1.res.oracle | 9 +- .../oracle_qualif/dispatch_var.res.oracle | 6 +- .../oracle_qualif/dispatch_var2.0.res.oracle | 12 +- .../oracle_qualif/dispatch_var2.1.res.oracle | 12 +- .../oracle_qualif/reference.res.oracle | 9 +- .../reference_and_struct.res.oracle | 8 +- .../oracle_qualif/reference_array.res.oracle | 8 +- .../oracle_qualif/refguards.res.oracle | 18 +- .../tests/wp_plugin/oracle/dynamic.res.oracle | 12 +- .../wp_plugin/oracle/overassign.res.oracle | 6 +- .../wp/tests/wp_plugin/oracle/sep.res.oracle | 40 +-- .../wp_plugin/oracle/volatile.0.res.oracle | 3 +- .../wp_plugin/oracle/volatile.1.res.oracle | 3 +- .../oracle_qualif/dynamic.res.oracle | 12 +- .../oracle_qualif/overassign.res.oracle | 6 +- .../wp_typed/oracle/unit_ite.1.res.oracle | 3 +- .../wp_typed/oracle/unit_labels.1.res.oracle | 6 +- .../oracle/unit_loopscope.1.res.oracle | 3 +- .../wp_typed/oracle/user_injector.res.oracle | 9 +- .../wp_typed/oracle/user_swap.1.res.oracle | 6 +- .../oracle_qualif/unit_loopscope.1.res.oracle | 3 +- .../oracle_qualif/user_injector.0.res.oracle | 9 +- .../oracle_qualif/user_injector.1.res.oracle | 16 +- .../oracle_qualif/user_swap.1.res.oracle | 6 +- .../tests/wp_usage/oracle/caveat.1.res.oracle | 18 +- .../tests/wp_usage/oracle/caveat2.res.oracle | 6 +- .../wp_usage/oracle/caveat_range.res.oracle | 3 +- .../tests/wp_usage/oracle/global.1.res.oracle | 3 +- .../tests/wp_usage/oracle/global.2.res.oracle | 4 +- .../oracle/issue-189-bis.1.res.oracle | 6 +- .../wp_usage/oracle/issue-189.2.res.oracle | 4 +- .../wp_usage/oracle_qualif/caveat2.res.oracle | 6 +- .../oracle_qualif/caveat_range.res.oracle | 3 +- .../oracle_qualif/issue-189-bis.1.res.oracle | 6 +- 64 files changed, 518 insertions(+), 343 deletions(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index b97d05a8b64..f0d8d79fed9 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -40,13 +40,11 @@ let pp_param fmt = function (* -------------------------------------------------------------------------- *) open Cil_types -open Cil_datatype type zone = | Var of varinfo (* &x - the cell x *) | Ptr of varinfo (* p - the cell pointed by p *) | Arr of varinfo (* p+(..) - the cell and its neighbors pointed by p *) - | Term of term type partition = { globals : zone list ; (* [ &G , G[...], ... ] *) @@ -55,106 +53,6 @@ type partition = { assigned: identified_term list (* Must refer to pointed locations *) } -type clause = Valid of zone | Separated of zone list list - -(* -------------------------------------------------------------------------- *) - -let is_separated_true = function [] | [_] -> true | _ -> false - -(* -------------------------------------------------------------------------- *) -let pp_zone fmt = function - | Arr vi -> Format.fprintf fmt "%a+(..)" Varinfo.pretty vi - | Ptr vi -> Varinfo.pretty fmt vi - | Var vi -> Format.fprintf fmt "&%a" Varinfo.pretty vi - | Term t -> Format.fprintf fmt "%a" Cil_printer.pp_term t - -let pp_region fmt = function - | [] -> Format.pp_print_string fmt "\\empty" - | [z] -> pp_zone fmt z - | z::zs -> - Format.fprintf fmt "@[<hov 2>\\union(%a" pp_zone z ; - List.iter (fun z -> Format.fprintf fmt ",@,%a" pp_zone z) zs ; - Format.fprintf fmt ")@]" - -let pp_separation fmt = function - | [] | [_] -> Format.pp_print_string fmt "\\true" - | r::rs -> - Format.fprintf fmt "@[<hov 2>\\separated(%a" pp_region r ; - List.iter (fun r -> Format.fprintf fmt ",@,%a" pp_region r) rs ; - Format.fprintf fmt ")@]" - -let pp_clause fmt = function - | Separated sep -> Format.fprintf fmt "@ @[<hov 2>requires %a;@]" pp_separation sep - | Valid zone -> Format.fprintf fmt "@ @[<hov 2>requires \\valid(%a);@]" pp_zone zone - -(* -------------------------------------------------------------------------- *) -(* --- Memory Context --- *) -(* -------------------------------------------------------------------------- *) - -let rec ptr_of = function - | Ctype t -> Ctype (TPtr(t, [])) - | t when Logic_typing.is_set_type t -> - let t = Logic_typing.type_of_set_elem t in - Logic_const.make_set_type (ptr_of t) - | _ -> assert false - -let rec addr_of_lval ?loc term = - let typ = ptr_of term.term_type in - match term.term_node with - | TLval lv -> - Logic_utils.mk_logic_AddrOf ?loc lv typ - | TCastE (_, t) | TLogic_coerce (_, t) -> - addr_of_lval ?loc t - | Tif(c, t, e) -> - let t = addr_of_lval ?loc t in - let e = addr_of_lval ?loc e in - Logic_const.term ?loc (Tif(c, t, e)) typ - | Tat( _, _) -> - term - | Tunion l -> - let l = List.map (addr_of_lval ?loc) l in - Logic_const.term ?loc (Tunion l) typ - | Tinter l -> - let l = List.map (addr_of_lval ?loc) l in - Logic_const.term ?loc (Tinter l) typ - | Tcomprehension (t, qs, p) -> - let t = addr_of_lval ?loc t in - Logic_const.term ?loc (Tcomprehension (t,qs,p)) typ - | _ -> term - -let add_region r s = if r = [] then s else r::s - -let main_separation partition = - let separated = - List.rev @@ - add_region (List.rev partition.to_heap) @@ - add_region (List.rev partition.globals) @@ - List.map (fun z -> [z]) partition.context - in - Separated separated - -let assigns_separation partition = - if partition.globals = [] then [] - else - let assign_zone t = Term (addr_of_lval t.it_content) in - List.map - (fun t -> Separated ([[assign_zone t]] @ [ partition.globals ])) - partition.assigned - -let validity partition = - List.rev @@ List.map (fun z -> Valid z) partition.context - -let requires partition = - let ms = main_separation partition in - let ass_sep = assigns_separation partition in - let not_trivial_separation = function - | Separated s -> not (is_separated_true s) - | Valid _ -> false - in - let s = List.filter not_trivial_separation (ms :: ass_sep) in - let v = validity partition in - s @ v - (* -------------------------------------------------------------------------- *) (* --- Partition --- *) (* -------------------------------------------------------------------------- *) @@ -205,3 +103,189 @@ let assigned t w = { w with assigned = assigned } (* -------------------------------------------------------------------------- *) +(* ANNOTS *) +(* -------------------------------------------------------------------------- *) + +open Logic_const + + +let rec ptr_of = function + | Ctype t -> Ctype (TPtr(t, [])) + | t when Logic_typing.is_set_type t -> + let t = Logic_typing.type_of_set_elem t in + Logic_const.make_set_type (ptr_of t) + | _ -> assert false + +let rec addr_of_lval ?loc term = + let typ = ptr_of term.term_type in + match term.term_node with + | TLval lv -> + Logic_utils.mk_logic_AddrOf ?loc lv typ + | TCastE (_, t) | TLogic_coerce (_, t) -> + addr_of_lval ?loc t + | Tif(c, t, e) -> + let t = addr_of_lval ?loc t in + let e = addr_of_lval ?loc e in + Logic_const.term ?loc (Tif(c, t, e)) typ + | Tat( _, _) -> + term + | Tunion l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tunion l) typ + | Tinter l -> + let l = List.map (addr_of_lval ?loc) l in + Logic_const.term ?loc (Tinter l) typ + | Tcomprehension (t, qs, p) -> + let t = addr_of_lval ?loc t in + Logic_const.term ?loc (Tcomprehension (t,qs,p)) typ + | _ -> term + +let type_of_zone = function + | Ptr vi -> vi.vtype + | Var vi -> TPtr(vi.vtype, []) + | Arr vi when Cil.isPointerType vi.vtype -> vi.vtype + | Arr vi -> TPtr(Cil.typeOf_array_elem vi.vtype, []) + +let zone_to_term ?(to_char=false) loc zone = + let typ = Ctype (type_of_zone zone) in + let lval vi = TVar (Cil.cvar_to_lvar vi), TNoOffset in + let loc_range ptr = + if not to_char then ptr + else + let pointed = + match typ with + | (Ctype (TPtr (t, []))) -> t + | _ -> assert false (* typ has been generated by type_of_zone *) + in + let len = Logic_utils.expr_to_term (Cil.sizeOf ~loc pointed) in + let last = term (TBinOp(MinusA, len, tinteger ~loc 1)) len.term_type in + let range = trange ~loc (Some (tinteger ~loc 0), Some last) in + let ptr = Logic_utils.mk_cast ~loc Cil.charPtrType ptr in + term ~loc (TBinOp(PlusPI, ptr, range)) ptr.term_type + in + match zone with + | Var vi -> loc_range (term ~loc (TAddrOf(lval vi)) typ) + | Ptr vi -> loc_range (term ~loc (TLval(lval vi)) typ) + | Arr vi -> + let ptr = + if Cil.isArrayType vi.vtype + then term ~loc (TStartOf (lval vi)) typ + else term ~loc (TLval(lval vi)) typ + in + let ptr = + if not to_char then ptr + else Logic_utils.mk_cast ~loc Cil.charPtrType ptr + in + let range = trange ~loc (None, None) in + term ~loc (TBinOp(PlusPI, ptr, range)) ptr.term_type + +let region_to_term loc = function + | [] -> term ~loc Tempty_set (Ctype Cil.charPtrType) + | [z] -> zone_to_term loc z + | x :: tl as l -> + let fst = type_of_zone x in + let tl = List.map type_of_zone tl in + let to_char = not (List.for_all (Cil_datatype.Typ.equal fst) tl) in + let set_typ = + make_set_type (Ctype (if to_char then Cil.charPtrType else fst)) + in + term ~loc (Tunion (List.map (zone_to_term ~to_char loc) l)) set_typ + +let separated_list ?loc = function + | [] | [ _ ] -> ptrue + | l -> pseparated ?loc l + +let separated_from_term loc assigned l = + separated_list ~loc (assigned :: List.map (region_to_term loc) l) + +let separated_from_addr loc assigned = + separated_from_term loc (addr_of_lval ~loc assigned.it_content) + +let valid_region loc r = + let t = region_to_term loc r in + pvalid ~loc (here_label, t) + +let global_zones partition = + List.map (fun z -> [z]) partition.globals + +let context_zones partition = + List.map (fun z -> [z]) partition.context + +let heap_zones partition = + let comp a b = Cil_datatype.Typ.compare (type_of_zone a) (type_of_zone b) in + List.sort comp partition.to_heap + +(* Note that this function does not return separated zone lists, but well-typed + zone lists. +*) +let heaps partition = + let rec partition_by_type t acc l = + match l, acc with + | [], _ -> + acc + | x :: l, [] -> + partition_by_type (type_of_zone x) [[x]] l + | x :: l, p :: acc' when Cil_datatype.Typ.equal t (type_of_zone x) -> + partition_by_type t ((x :: p) :: acc') l + | x :: l, acc -> + partition_by_type (type_of_zone x) ([x] :: acc) l + in + partition_by_type Cil.voidType [] (heap_zones partition) + +let main_separation loc globals context heaps = + match heaps, context with + | [], [] -> + (* In this case, separation is completely trivial *) + [ ptrue ] + | [], context -> + let zones = globals @ context in + [ separated_list ~loc (List.map (region_to_term loc) zones) ] + | heaps, context -> + let for_typed_heap h = + let zones = h :: globals @ context in + separated_list ~loc (List.map (region_to_term loc) zones) + in + List.map for_typed_heap heaps + +let clauses_of_partition loc p = + let globals = global_zones p in + let filter p = not (Logic_utils.is_trivially_true p) in + let main_sep = + main_separation loc globals (context_zones p) (heaps p) + in + let assigns_sep = + List.map (fun t -> separated_from_addr loc t globals) p.assigned + in + let context_validity = + List.map (valid_region loc) (context_zones p) + in + let reqs = main_sep @ assigns_sep @ context_validity in + let reqs = List.filter filter reqs in + let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in + reqs, [] + +let emitter = + Emitter.(create "Wp.Hypotheses" [Funspec] ~correctness:[] ~tuning:[]) + +let get_behavior kf name partition = + let loc = Kernel_function.get_location kf in + let reqs,enss = clauses_of_partition loc partition in + let reqs = List.map Logic_const.new_predicate reqs in + let enss = List.map (fun p -> Normal, Logic_const.new_predicate p) enss in + match reqs,enss with + | [], [] -> None + | l1, l2 -> + Some { + b_name = name ; + b_requires = l1 ; + b_assumes = [] ; + b_post_cond = l2 ; + b_assigns = WritesAny ; + b_allocation = FreeAllocAny ; + b_extended = [] + } + +let add_behavior kf name partition = + match get_behavior kf name partition with + | None -> () + | Some bhv -> Annotations.add_behaviors emitter kf [bhv] diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index 96707953d64..45dc45afbea 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -32,15 +32,5 @@ val empty : partition val set : varinfo -> param -> partition -> partition val assigned : identified_term -> partition -> partition -type zone - -type clause = - | Valid of zone - | Separated of zone list list - -(** Build the separation clause from a partition, - including the clauses related to the pointer validity *) -val requires : partition -> clause list - -val pp_zone : Format.formatter -> zone -> unit -val pp_clause : Format.formatter -> clause -> unit +val add_behavior : kernel_function -> string -> partition -> unit +val get_behavior : kernel_function -> string -> partition -> behavior option diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index bb54e4da628..83a43cc7466 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -89,13 +89,11 @@ let wp_iter_model ?ip ?index job = Fmap.iter (fun kf ms -> Models.iter (fun m -> job kf m) ms) !pool end -let wp_print_memory_context kf m hyp fmt = +let wp_print_memory_context kf bhv fmt = begin let printer = new Printer.extensible_printer () in let pp_vdecl = printer#without_annot printer#vdecl in - Format.fprintf fmt - "@[<hv 0>@[<hv 3>/*@@@ behavior %s:" (WpContext.MODEL.id m) ; - List.iter (MemoryContext.pp_clause fmt) hyp ; + Format.fprintf fmt "@[<hv 0>@[<hv 3>/*@@@ %a" Cil_printer.pp_behavior bhv ; let vkf = Kernel_function.get_vi kf in Format.fprintf fmt "@ @]*/@]@\n@[<hov 2>%a;@]@\n" pp_vdecl vkf ; @@ -106,13 +104,16 @@ let wp_warn_memory_context () = wp_iter_model begin fun kf m -> let partition = WpContext.compute_hypotheses m kf in - let hyp = MemoryContext.requires partition in - if hyp <> [] then + let model = WpContext.MODEL.id m in + let hyp = MemoryContext.get_behavior kf model partition in + match hyp with + | None -> () + | Some bhv -> Wp_parameters.warning ~current:false "@[<hv 0>Memory model hypotheses for function '%s':@ %t@]" (Kernel_function.get_name kf) - (wp_print_memory_context kf m hyp) + (wp_print_memory_context kf bhv) end end diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle index 6d629988524..0c4bd8dfbdf 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle @@ -99,5 +99,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job': - /*@ behavior typed: requires \separated(&p,b+(..)); */ + /*@ behavior typed: + requires \separated(b + (..), &p); */ void job(int n, int *b); diff --git a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle index 8f21ca532c0..72d6142a7ae 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle @@ -1879,9 +1879,14 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'function': /*@ behavior typed: - requires \separated(x+(..), - \union(i8+(..),u8+(..),i16+(..),u16+(..),i32+(..),u32+(..), - i64+(..),u64+(..))); + requires \separated(i16 + (..), (char const *)x + (..)); + requires \separated(i32 + (..), (char const *)x + (..)); + requires \separated(i64 + (..), (char const *)x + (..)); + requires \separated(i8 + (..), (char const *)x + (..)); + requires \separated(u16 + (..), (char const *)x + (..)); + requires \separated(u32 + (..), (char const *)x + (..)); + requires \separated(u64 + (..), (char const *)x + (..)); + requires \separated(u8 + (..), (char const *)x + (..)); */ void function(signed char * /*[10]*/ i8, unsigned char * /*[10]*/ u8, short * /*[10]*/ i16, unsigned short * /*[10]*/ u16, diff --git a/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle index 1737e32302f..76387c61d81 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle @@ -236,8 +236,10 @@ Prove: false. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'compare': - /*@ behavior typed: requires \separated(&p,q+(..)); */ + /*@ behavior typed: + requires \separated(q + (..), &p); */ void compare(int *q); [wp] Warning: Memory model hypotheses for function 'absurd': - /*@ behavior typed: requires \separated(&p,q+(..)); */ + /*@ behavior typed: + requires \separated(q + (..), &p); */ void absurd(int *q); diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle index 1c72369eadb..a2e6ef5f8fb 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle @@ -21,5 +21,6 @@ job 6 3 9 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job': - /*@ behavior typed: requires \separated(&p,b+(..)); */ + /*@ behavior typed: + requires \separated(b + (..), &p); */ void job(int n, int *b); diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle index 89b1b1b5b97..992ef461134 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle @@ -53,9 +53,14 @@ [wp] Warning: Memory model hypotheses for function 'function': /*@ behavior typed: - requires \separated(x+(..), - \union(i8+(..),u8+(..),i16+(..),u16+(..),i32+(..),u32+(..), - i64+(..),u64+(..))); + requires \separated(i16 + (..), (char const *)x + (..)); + requires \separated(i32 + (..), (char const *)x + (..)); + requires \separated(i64 + (..), (char const *)x + (..)); + requires \separated(i8 + (..), (char const *)x + (..)); + requires \separated(u16 + (..), (char const *)x + (..)); + requires \separated(u32 + (..), (char const *)x + (..)); + requires \separated(u64 + (..), (char const *)x + (..)); + requires \separated(u8 + (..), (char const *)x + (..)); */ void function(signed char * /*[10]*/ i8, unsigned char * /*[10]*/ u8, short * /*[10]*/ i16, unsigned short * /*[10]*/ u16, diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle index 310d71f1258..e84a81d1246 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle @@ -28,5 +28,6 @@ absurd - - 2 0.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'absurd': - /*@ behavior typed_ref: requires \separated(&p,q+(..)); */ + /*@ behavior typed_ref: + requires \separated(q + (..), &p); */ void absurd(int *q); diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle index ee3c703ca33..89712b41fe4 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle @@ -28,5 +28,6 @@ absurd - - 2 0.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'absurd': - /*@ behavior typed: requires \separated(&p,q+(..)); */ + /*@ behavior typed: + requires \separated(q + (..), &p); */ void absurd(int *q); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle index e99403ea348..d68634ce45e 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle @@ -54,5 +54,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f3': - /*@ behavior typed: requires \separated(&p->a,&p); */ + /*@ behavior typed: + requires \separated(&p->a, &p); */ void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle index 0054a9afc53..66651f78d70 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle @@ -67,5 +67,6 @@ Prove: global(L_two_24) != one_0. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'global_frame': - /*@ behavior typed: requires \separated(&zero,one); */ + /*@ behavior typed: + requires \separated(one, &zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle index 3949d8d5a74..6a0f4dd76d0 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle @@ -48,8 +48,8 @@ Prove: global(L_two_24) != one_0. [wp] Warning: Memory model hypotheses for function 'global_frame': /*@ behavior typed_ref: - requires \separated(zero,one); - requires \valid(zero); - requires \valid(one); + requires \separated(one, zero); + requires \valid(one); + requires \valid(zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index 159f27542af..f2b4509858e 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -17,5 +17,6 @@ g3 1 2 3 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f3': - /*@ behavior typed: requires \separated(&p->a,&p); */ + /*@ behavior typed: + requires \separated(&p->a, &p); */ void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle index 24788faf50d..ebe06ce52f4 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle @@ -19,5 +19,6 @@ global_frame 3 - 5 60.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'global_frame': - /*@ behavior typed: requires \separated(&zero,one); */ + /*@ behavior typed: + requires \separated(one, &zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index f560c0a026a..b8015e5f58f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -21,8 +21,8 @@ [wp] Warning: Memory model hypotheses for function 'global_frame': /*@ behavior typed_ref: - requires \separated(zero,one); - requires \valid(zero); - requires \valid(one); + requires \separated(one, zero); + requires \valid(one); + requires \valid(zero); */ void global_frame(int *one, int arg); diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle index d0d68abc9ca..83c3ad493cf 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle @@ -56,8 +56,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle index 8b40acb3f43..406c46f42e2 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle @@ -57,8 +57,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 56be9acc1db..36e3c1f31d6 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -48,9 +48,9 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); [wp] Running WP plugin... @@ -116,8 +116,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index 0d2cb66d920..04523680472 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -49,9 +49,9 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); [wp] Running WP plugin... @@ -118,8 +118,8 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(v1,v2,a+(..)); - requires \valid(v1); - requires \valid(v2); + requires \separated(a + (..), v2, v1); + requires \valid(v1); + requires \valid(v2); */ void equal_elements(int *a, int *v1, int *v2); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle index c9a461392e7..60d04236d9a 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle @@ -197,58 +197,59 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'global_alias': /*@ behavior typed: - requires \separated(g_alias,\union(&g_alias,global+(..))); + requires \separated(g_alias, &g_alias, (int *)global + (..)); */ void global_alias(void); [wp] Warning: Memory model hypotheses for function 'global_no_alias': - /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + /*@ behavior typed: + requires \separated(g_alias, &g_alias); */ void global_no_alias(void); [wp] Warning: Memory model hypotheses for function 'formal_alias': - /*@ - behavior typed: - requires \separated(global+(..),f_alias); - requires \separated(f_alias,global+(..)); - */ + /*@ behavior typed: + requires \separated(f_alias, (int *)global + (..)); */ void formal_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'formal_alias_array': /*@ behavior typed: - requires \separated(global+(..),alias_array+(..)); - requires \separated(&(*alias_array)[0 .. 1],global+(..)); + requires \separated(&(*alias_array)[0 .. 1], (int *)global + (..)); + requires \separated(alias_array + (..), (int *)global + (..)); */ void formal_alias_array(int (*alias_array)[2]); [wp] Warning: Memory model hypotheses for function 'field_alias': /*@ behavior typed: - requires \separated(global+(..),x); - requires \separated(&x->x,global+(..)); + requires \separated(&x->x, (int *)global + (..)); + requires \separated(x, (int *)global + (..)); */ void field_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'field_range_alias': /*@ behavior typed: - requires \separated(global+(..),x+(..)); - requires \separated(&(x + (0 .. 3))->x,global+(..)); + requires \separated(&(x + (0 .. 3))->x, (int *)global + (..)); + requires \separated(x + (..), (int *)global + (..)); */ void field_range_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'set_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void set_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'comprehension_alias': /*@ behavior typed: - requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, - \union(&g_alias,global+(..))); + requires + \separated( + {alias | int *alias; alias ≡ \at(g_alias,Pre)}, &g_alias, + (int *)global + (..) + ); */ void comprehension_alias(void); [wp] Warning: Memory model hypotheses for function 'union_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle index 4720ded8277..051a94929b4 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle @@ -87,11 +87,14 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(r); */ + /*@ behavior typed_ref: + requires \valid(r); */ void f(int *r); [wp] Warning: Memory model hypotheses for function 'wrong_without_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int wrong_without_ref(int *q); [wp] Warning: Memory model hypotheses for function 'pointer': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int pointer(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle index f9c9e2a5b35..bb48a4672be 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle @@ -498,8 +498,10 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'ref_bd': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int ref_bd(int *q); [wp] Warning: Memory model hypotheses for function 'g': - /*@ behavior typed_ref: requires \valid(pg); */ + /*@ behavior typed_ref: + requires \valid(pg); */ int g(int *pg); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle index b128329870f..72989020ece 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle @@ -464,14 +464,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle index 9845add669a..181d3c1dad2 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle @@ -212,14 +212,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle index f5c773ac7bd..3eef87eaec3 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle @@ -143,11 +143,14 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'call_f2': - /*@ behavior typed_ref: requires \valid(ptr); */ + /*@ behavior typed_ref: + requires \valid(ptr); */ int call_f2(int *ptr, int y); [wp] Warning: Memory model hypotheses for function 'call_global': - /*@ behavior typed_ref: requires \valid(gl); */ + /*@ behavior typed_ref: + requires \valid(gl); */ int call_global(void); [wp] Warning: Memory model hypotheses for function 'write': - /*@ behavior typed_ref: requires \valid(pa); */ + /*@ behavior typed_ref: + requires \valid(pa); */ void write(int kb, int *pa); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle index 502ee3eec09..b68225c3d9a 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle @@ -253,8 +253,12 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(p); */ + /*@ behavior typed_ref: + requires \valid(p); */ void reset(struct T *p); [wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': - /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + /*@ + behavior typed_ref: + requires \separated(tps[9] + (0 .. 4), (struct T **)tps + (..)); + */ void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle index 8cdc9f4d9d2..aba051f764c 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle @@ -403,11 +403,15 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'load_1_5': - /*@ behavior typed_ref: requires \separated(reg_load+(..),lp+(..)); */ + /*@ + behavior typed_ref: + requires \separated(lp + (..), (int *)reg_load + (..)); + */ void load_1_5(int (*lp)[5]); [wp] Warning: Memory model hypotheses for function 'add_1_5': /*@ behavior typed_ref: - requires \separated(\union(reg_load+(..),reg_add+(..)),ap+(..)); + requires + \separated(ap + (..), (int *)reg_add + (..), (int *)reg_load + (..)); */ void add_1_5(int (*ap)[5]); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle index 25649f1ac96..615dc325426 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle @@ -72,24 +72,24 @@ Prove: d != c. [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_ref: - requires \separated(c,d,\union(a+(..),b+(..))); - requires \valid(c); - requires \valid(d); + requires \separated({a + (..), b + (..)}, d, c); + requires \valid(c); + requires \valid(d); */ void f(int *a, int *b, int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 'h': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void h(int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 's': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void s(int **c, int **d, int k); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle index f524e017b1a..c189e0e008e 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle @@ -52,58 +52,59 @@ [wp] Warning: Memory model hypotheses for function 'global_alias': /*@ behavior typed: - requires \separated(g_alias,\union(&g_alias,global+(..))); + requires \separated(g_alias, &g_alias, (int *)global + (..)); */ void global_alias(void); [wp] Warning: Memory model hypotheses for function 'global_no_alias': - /*@ behavior typed: requires \separated(g_alias,&g_alias); */ + /*@ behavior typed: + requires \separated(g_alias, &g_alias); */ void global_no_alias(void); [wp] Warning: Memory model hypotheses for function 'formal_alias': - /*@ - behavior typed: - requires \separated(global+(..),f_alias); - requires \separated(f_alias,global+(..)); - */ + /*@ behavior typed: + requires \separated(f_alias, (int *)global + (..)); */ void formal_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'formal_alias_array': /*@ behavior typed: - requires \separated(global+(..),alias_array+(..)); - requires \separated(&(*alias_array)[0 .. 1],global+(..)); + requires \separated(&(*alias_array)[0 .. 1], (int *)global + (..)); + requires \separated(alias_array + (..), (int *)global + (..)); */ void formal_alias_array(int (*alias_array)[2]); [wp] Warning: Memory model hypotheses for function 'field_alias': /*@ behavior typed: - requires \separated(global+(..),x); - requires \separated(&x->x,global+(..)); + requires \separated(&x->x, (int *)global + (..)); + requires \separated(x, (int *)global + (..)); */ void field_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'field_range_alias': /*@ behavior typed: - requires \separated(global+(..),x+(..)); - requires \separated(&(x + (0 .. 3))->x,global+(..)); + requires \separated(&(x + (0 .. 3))->x, (int *)global + (..)); + requires \separated(x + (..), (int *)global + (..)); */ void field_range_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'set_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void set_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'comprehension_alias': /*@ behavior typed: - requires \separated({alias | int *alias; alias ≡ \at(g_alias,Pre)}, - \union(&g_alias,global+(..))); + requires + \separated( + {alias | int *alias; alias ≡ \at(g_alias,Pre)}, &g_alias, + (int *)global + (..) + ); */ void comprehension_alias(void); [wp] Warning: Memory model hypotheses for function 'union_alias': /*@ behavior typed: - requires \separated(\union(global+(..),&g_alias),f_alias); - requires \separated({g_alias, f_alias},\union(&g_alias,global+(..))); + requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); + requires \separated(f_alias, &g_alias, (int *)global + (..)); */ void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle index fabfc588e61..0d4681981ee 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle @@ -28,11 +28,14 @@ global 2 - 2 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(r); */ + /*@ behavior typed_ref: + requires \valid(r); */ void f(int *r); [wp] Warning: Memory model hypotheses for function 'wrong_without_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int wrong_without_ref(int *q); [wp] Warning: Memory model hypotheses for function 'pointer': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int pointer(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle index 0824c5c95dd..179a9259950 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle @@ -101,8 +101,10 @@ array_in_struct_param 2 - 2 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'ref_bd': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int ref_bd(int *q); [wp] Warning: Memory model hypotheses for function 'g': - /*@ behavior typed_ref: requires \valid(pg); */ + /*@ behavior typed_ref: + requires \valid(pg); */ int g(int *pg); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle index c472b2c06f3..f2b9868fd88 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle @@ -51,14 +51,18 @@ call_param_ref 6 - 6 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle index 3996bedbab0..d23ba332da0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle @@ -51,14 +51,18 @@ call_param_ref 6 - 6 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(rp); */ + /*@ behavior typed_ref: + requires \valid(rp); */ void reset(int *rp); [wp] Warning: Memory model hypotheses for function 'incr': - /*@ behavior typed_ref: requires \valid(ip); */ + /*@ behavior typed_ref: + requires \valid(ip); */ void incr(int *ip); [wp] Warning: Memory model hypotheses for function 'load': - /*@ behavior typed_ref: requires \valid(lp); */ + /*@ behavior typed_ref: + requires \valid(lp); */ int load(int *lp); [wp] Warning: Memory model hypotheses for function 'call_param_ref': - /*@ behavior typed_ref: requires \valid(q); */ + /*@ behavior typed_ref: + requires \valid(q); */ int call_param_ref(int *q); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle index 4ff3c1673ec..e4be92ac66b 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle @@ -38,11 +38,14 @@ write 2 - 2 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'call_f2': - /*@ behavior typed_ref: requires \valid(ptr); */ + /*@ behavior typed_ref: + requires \valid(ptr); */ int call_f2(int *ptr, int y); [wp] Warning: Memory model hypotheses for function 'call_global': - /*@ behavior typed_ref: requires \valid(gl); */ + /*@ behavior typed_ref: + requires \valid(gl); */ int call_global(void); [wp] Warning: Memory model hypotheses for function 'write': - /*@ behavior typed_ref: requires \valid(pa); */ + /*@ behavior typed_ref: + requires \valid(pa); */ void write(int kb, int *pa); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index d7fdaedb3bd..7f79d288a41 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -51,8 +51,12 @@ call_array_in_struct_param 5 - 5 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_ref: requires \valid(p); */ + /*@ behavior typed_ref: + requires \valid(p); */ void reset(struct T *p); [wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': - /*@ behavior typed_ref: requires \separated(tps[9] + (0 .. 4),tps+(..)); */ + /*@ + behavior typed_ref: + requires \separated(tps[9] + (0 .. 4), (struct T **)tps + (..)); + */ void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index 72ab30d0d2f..cc9487f8d96 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -53,11 +53,15 @@ calls_on_array_dim_2 5 3 8 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'load_1_5': - /*@ behavior typed_ref: requires \separated(reg_load+(..),lp+(..)); */ + /*@ + behavior typed_ref: + requires \separated(lp + (..), (int *)reg_load + (..)); + */ void load_1_5(int (*lp)[5]); [wp] Warning: Memory model hypotheses for function 'add_1_5': /*@ behavior typed_ref: - requires \separated(\union(reg_load+(..),reg_add+(..)),ap+(..)); + requires + \separated(ap + (..), (int *)reg_add + (..), (int *)reg_load + (..)); */ void add_1_5(int (*ap)[5]); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle index b61a8f43c6a..82ba6e3fe6f 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle @@ -26,24 +26,24 @@ [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_ref: - requires \separated(c,d,\union(a+(..),b+(..))); - requires \valid(c); - requires \valid(d); + requires \separated({a + (..), b + (..)}, d, c); + requires \valid(c); + requires \valid(d); */ void f(int *a, int *b, int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 'h': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void h(int *c, int *d, int k); [wp] Warning: Memory model hypotheses for function 's': /*@ behavior typed_ref: - requires \separated(c,d); - requires \valid(c); - requires \valid(d); + requires \separated(d, c); + requires \valid(c); + requires \valid(d); */ void s(int **c, int **d, int k); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle index f61e601b4d2..6e4b15fb4d0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle @@ -374,14 +374,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'guarded_call': - /*@ behavior typed: requires \separated(&X,p); */ + /*@ behavior typed: + requires \separated(p, &X); */ void guarded_call(struct S *p); [wp] Warning: Memory model hypotheses for function 'behavior': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int behavior(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'some_behaviors': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int some_behaviors(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'missing_context': - /*@ behavior typed: requires \separated(&X1,p); */ + /*@ behavior typed: + requires \separated(p, &X1); */ int missing_context(int (*p)(void)); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle index e522e771289..c0547370f6f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle @@ -102,8 +102,10 @@ Prove: invalid(Malloc_0, shift_sint32(global(G_A_32), -5), 10). ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f1_ok': - /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + /*@ behavior typed: + requires \separated(p + (0 .. 9), &p); */ void f1_ok(void); [wp] Warning: Memory model hypotheses for function 'f2_ok': - /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + /*@ behavior typed: + requires \separated(p + (10 .. 19), &p); */ void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle index 9d7b81db6f6..62a03745ae2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle @@ -68,51 +68,51 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f2_p_a': - /*@ behavior typed_caveat: requires \separated(p,&a); requires \valid(p); */ + /*@ behavior typed_caveat: + requires \separated(&a, p); + requires \valid(p); */ void f2_p_a(int *p); [wp] Warning: Memory model hypotheses for function 'f3_p_ab': - /*@ - behavior typed_caveat: - requires \separated(p,\union(&a,&b)); - requires \valid(p); - */ + /*@ behavior typed_caveat: + requires \separated(&b, &a, p); + requires \valid(p); */ void f3_p_ab(int *p); [wp] Warning: Memory model hypotheses for function 'f4_pq_ab': /*@ behavior typed_caveat: - requires \separated(p,q,\union(&a,&b)); - requires \valid(p); - requires \valid(q); + requires \separated(&b, &a, q, p); + requires \valid(p); + requires \valid(q); */ void f4_pq_ab(int *p, int *q); [wp] Warning: Memory model hypotheses for function 'f5_pq': /*@ behavior typed_caveat: - requires \separated(p,q); - requires \valid(p); - requires \valid(q); + requires \separated(q, p); + requires \valid(p); + requires \valid(q); */ void f5_pq(int *p, int *q); [wp] Warning: Memory model hypotheses for function 'f6_Pa': /*@ behavior typed_caveat: - requires \separated(p+(..),&a); - requires \valid(p+(..)); + requires \separated(&a, p + (..)); + requires \valid(p + (..)); */ void f6_Pa(int *p, int k); [wp] Warning: Memory model hypotheses for function 'f7_pq_ad': /*@ behavior typed_caveat: - requires \separated(p,q,\union(&a,&d)); - requires \valid(p); - requires \valid(q); + requires \separated(&d, &a, q, p); + requires \valid(p); + requires \valid(q); */ void f7_pq_ad(int *p, int *q); [wp] Warning: Memory model hypotheses for function 'f8_pq_a': /*@ behavior typed_caveat: - requires \separated(p,q,&a); - requires \valid(p); - requires \valid(q); + requires \separated(&a, q, p); + requires \valid(p); + requires \valid(q); */ void f8_pq_a(int *p, int *q); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle index 0c06a8becec..8f8e6a453d9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle @@ -37,5 +37,6 @@ Prove: EqS1_st_v(w, w_1). ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job_struct_assigns': - /*@ behavior typed: requires \separated(&sv,p); */ + /*@ behavior typed: + requires \separated(p, &sv); */ void job_struct_assigns(struct st_v *p); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle index 64cb1c39940..129e94d6af2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle @@ -71,5 +71,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'job_struct_assigns': - /*@ behavior typed: requires \separated(&sv,p); */ + /*@ behavior typed: + requires \separated(p, &sv); */ void job_struct_assigns(struct st_v *p); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle index c38d5c4f213..a0f09e08be3 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle @@ -69,14 +69,18 @@ no_call 4 - 4 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'guarded_call': - /*@ behavior typed: requires \separated(&X,p); */ + /*@ behavior typed: + requires \separated(p, &X); */ void guarded_call(struct S *p); [wp] Warning: Memory model hypotheses for function 'behavior': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int behavior(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'some_behaviors': - /*@ behavior typed: requires \separated(&X1,p+(..)); */ + /*@ behavior typed: + requires \separated(p + (..), &X1); */ int some_behaviors(int (*p)(void)); [wp] Warning: Memory model hypotheses for function 'missing_context': - /*@ behavior typed: requires \separated(&X1,p); */ + /*@ behavior typed: + requires \separated(p, &X1); */ int missing_context(int (*p)(void)); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index 31cd7d9aaed..5222a717ce6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -29,8 +29,10 @@ f6_ko - - 2 0.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f1_ok': - /*@ behavior typed: requires \separated(p + (0 .. 9),&p); */ + /*@ behavior typed: + requires \separated(p + (0 .. 9), &p); */ void f1_ok(void); [wp] Warning: Memory model hypotheses for function 'f2_ok': - /*@ behavior typed: requires \separated(p + (10 .. 19),&p); */ + /*@ behavior typed: + requires \separated(p + (10 .. 19), &p); */ void f2_ok(void); diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle index 9976179a712..43877a40342 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle @@ -12,5 +12,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'check': - /*@ behavior typed_ref: requires \valid(p); */ + /*@ behavior typed_ref: + requires \valid(p); */ void check(int x, int *p); diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle index cba638b02bb..6759a580906 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle @@ -30,8 +30,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'duplet': /*@ behavior typed_ref: - requires \separated(pi,pj,a+(..)); - requires \valid(pi); - requires \valid(pj); + requires \separated(a + (..), pj, pi); + requires \valid(pi); + requires \valid(pj); */ void duplet(int *a, int *pi, int *pj); diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle index 6413e9d7d32..62ec7355781 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle @@ -19,5 +19,6 @@ Prove: false. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(written); */ + /*@ behavior typed_ref: + requires \valid(written); */ void f(unsigned int *written); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle index 3dd0d642f58..a07757a5ff9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle @@ -119,9 +119,10 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed: - requires \separated(\union(&seq,&service_cpt,service_id+(..), - service_result+(..)),error); - requires \separated(error, - \union(service_result+(..),service_id+(..),&service_cpt,&seq)); + requires + \separated( + error, (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq + ); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle index d4109c97637..c56fc78178c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle @@ -44,8 +44,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'swap': /*@ behavior typed_ref: - requires \separated(a,b); - requires \valid(a); - requires \valid(b); + requires \separated(b, a); + requires \valid(a); + requires \valid(b); */ void swap(int *a, int *b); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle index 58761bdefa3..7e327b11a78 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle @@ -16,5 +16,6 @@ f 1 - 2 50.0% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f': - /*@ behavior typed_ref: requires \valid(written); */ + /*@ behavior typed_ref: + requires \valid(written); */ void f(unsigned int *written); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index 510cdf0e651..1928fc98220 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -33,9 +33,10 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed: - requires \separated(\union(&seq,&service_cpt,service_id+(..), - service_result+(..)),error); - requires \separated(error, - \union(service_result+(..),service_id+(..),&service_cpt,&seq)); + requires + \separated( + error, (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq + ); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 3f861815767..dbb2487bebb 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -29,10 +29,16 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_ref: - requires \separated(error, - \union(&seq,&service_cpt,service_id+(..),service_result+(..))); - requires \separated(error, - \union(service_result+(..),service_id+(..),&service_cpt,&seq)); - requires \valid(error); + requires + \separated( + (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq, error + ); + requires + \separated( + error, (int *)service_result + (..), (int *)service_id + (..), + &service_cpt, &seq + ); + requires \valid(error); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index ce020046acf..6f039f366e4 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -20,8 +20,8 @@ [wp] Warning: Memory model hypotheses for function 'swap': /*@ behavior typed_ref: - requires \separated(a,b); - requires \valid(a); - requires \valid(b); + requires \separated(b, a); + requires \valid(a); + requires \valid(b); */ void swap(int *a, int *b); diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle index bf3ddd57997..99b18742b0c 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle @@ -72,24 +72,24 @@ Prove: P_OBS(x_2, x_3, x_4). [wp] Warning: Memory model hypotheses for function 'implicit': /*@ behavior typed_caveat: - requires \separated(a,r); - requires \valid(a); - requires \valid(r); + requires \separated(r, a); + requires \valid(a); + requires \valid(r); */ void implicit(struct S *a, int *r); [wp] Warning: Memory model hypotheses for function 'explicit': /*@ behavior typed_caveat: - requires \separated(a,r); - requires \valid(a); - requires \valid(r); + requires \separated(r, a); + requires \valid(a); + requires \valid(r); */ void explicit(struct S *a, int *r); [wp] Warning: Memory model hypotheses for function 'observer': /*@ behavior typed_caveat: - requires \separated(a,r); - requires \valid(a); - requires \valid(r); + requires \separated(r, a); + requires \valid(a); + requires \valid(r); */ void observer(struct S *a, int *r); diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle index e1c317646d5..234508ea4f7 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle @@ -101,8 +101,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_caveat: - requires \separated(p,b+(..)); - requires \valid(p); - requires \valid(b+(..)); + requires \separated(b + (..), p); + requires \valid(b + (..)); + requires \valid(p); */ void job(struct S *p, int n, int *b); diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle index 514fab0cd9f..200b214f0cc 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle @@ -156,5 +156,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_caveat: requires \valid(p+(..)); */ + /*@ behavior typed_caveat: + requires \valid(p + (..)); */ void reset(struct S *p); diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle index a6c3906898a..504e20e6bd6 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle @@ -21,5 +21,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'foo': - /*@ behavior typed: requires \separated(&GLOBAL,a); */ + /*@ behavior typed: + requires \separated(a, &GLOBAL); */ void foo(int *a); diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle index 33647c6dcb4..5d5c635c06b 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle @@ -21,5 +21,7 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'foo': - /*@ behavior typed_ref: requires \separated(a,&GLOBAL); requires \valid(a); */ + /*@ behavior typed_ref: + requires \separated(&GLOBAL, a); + requires \valid(a); */ void foo(int *a); diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle index f3a2767ec5c..967d775c75e 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle @@ -171,8 +171,8 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ behavior typed: - requires \separated(src,dst); - requires \valid(src); - requires \valid(dst); + requires \separated(dst, src); + requires \valid(dst); + requires \valid(src); */ void memcpy_context_vars(unsigned char *src, unsigned char *dst, int len); diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle index ec41c7f550d..5ce9a0dd10c 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle @@ -26,7 +26,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_caveat: - requires \separated(ptr,src); - requires \valid(ptr); + requires \separated(src, ptr); + requires \valid(ptr); */ void f(char *ptr, char const *src, unsigned int idx); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle index c46a68ad13b..e5abfd8d02a 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle @@ -24,8 +24,8 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_caveat: - requires \separated(p,b+(..)); - requires \valid(p); - requires \valid(b+(..)); + requires \separated(b + (..), p); + requires \valid(b + (..)); + requires \valid(p); */ void job(struct S *p, int n, int *b); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle index cf2d2ab507e..d985f8cbec7 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle @@ -24,5 +24,6 @@ reset 7 5 12 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'reset': - /*@ behavior typed_caveat: requires \valid(p+(..)); */ + /*@ behavior typed_caveat: + requires \valid(p + (..)); */ void reset(struct S *p); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle index e063c170d22..d3fa8c4754e 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle @@ -24,8 +24,8 @@ [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ behavior typed: - requires \separated(src,dst); - requires \valid(src); - requires \valid(dst); + requires \separated(dst, src); + requires \valid(dst); + requires \valid(src); */ void memcpy_context_vars(unsigned char *src, unsigned char *dst, int len); -- GitLab From efd4c806415a623ab2b08255de5a57be351d8e31 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 21 Jul 2020 16:25:09 +0200 Subject: [PATCH 054/255] [wp] Avoid separation hypotheses duplication --- src/plugins/wp/MemoryContext.ml | 4 +++- .../wp/tests/wp_bts/oracle/bts0843.res.oracle | 2 +- .../tests/wp_bts/oracle/bts_1828.1.res.oracle | 2 +- .../wp_bts/oracle_qualif/bts0843.res.oracle | 2 +- .../oracle_qualif/bts_1828.1.res.oracle | 2 +- .../oracle/frama_c_exo3_solved.old.res.oracle | 2 +- .../frama_c_exo3_solved.old.v2.res.oracle | 2 +- .../frama_c_exo3_solved.old.res.oracle | 4 ++-- .../frama_c_exo3_solved.old.v2.res.oracle | 4 ++-- .../alias_assigns_hypotheses.res.oracle | 20 +++++++++---------- .../oracle/reference_and_struct.res.oracle | 2 +- .../oracle/reference_array.res.oracle | 2 +- .../wp_hoare/oracle/refguards.res.oracle | 6 +++--- .../alias_assigns_hypotheses.res.oracle | 20 +++++++++---------- .../reference_and_struct.res.oracle | 2 +- .../oracle_qualif/reference_array.res.oracle | 2 +- .../oracle_qualif/refguards.res.oracle | 6 +++--- .../wp/tests/wp_plugin/oracle/sep.res.oracle | 14 ++++++------- .../wp_typed/oracle/unit_labels.1.res.oracle | 2 +- .../wp_typed/oracle/user_injector.res.oracle | 4 ++-- .../wp_typed/oracle/user_swap.1.res.oracle | 2 +- .../oracle_qualif/user_injector.0.res.oracle | 4 ++-- .../oracle_qualif/user_injector.1.res.oracle | 9 ++------- .../oracle_qualif/user_swap.1.res.oracle | 2 +- .../tests/wp_usage/oracle/caveat.1.res.oracle | 6 +++--- .../tests/wp_usage/oracle/caveat2.res.oracle | 2 +- .../tests/wp_usage/oracle/global.2.res.oracle | 2 +- .../oracle/issue-189-bis.1.res.oracle | 2 +- .../wp_usage/oracle/issue-189.2.res.oracle | 2 +- .../wp_usage/oracle_qualif/caveat2.res.oracle | 2 +- .../oracle_qualif/issue-189-bis.1.res.oracle | 2 +- 31 files changed, 68 insertions(+), 71 deletions(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index f0d8d79fed9..362570a9664 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -193,7 +193,9 @@ let region_to_term loc = function let separated_list ?loc = function | [] | [ _ ] -> ptrue - | l -> pseparated ?loc l + | l -> + let comp = Cil_datatype.Term.compare in + pseparated ?loc (List.sort comp l) let separated_from_term loc assigned l = separated_list ~loc (assigned :: List.map (region_to_term loc) l) diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle index d68634ce45e..6fe18cd9966 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle @@ -55,5 +55,5 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f3': /*@ behavior typed: - requires \separated(&p->a, &p); */ + requires \separated(&p, &p->a); */ void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle index 6a0f4dd76d0..04d57e17090 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle @@ -48,7 +48,7 @@ Prove: global(L_two_24) != one_0. [wp] Warning: Memory model hypotheses for function 'global_frame': /*@ behavior typed_ref: - requires \separated(one, zero); + requires \separated(zero, one); requires \valid(one); requires \valid(zero); */ diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index f2b4509858e..af4c7b91ddd 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -18,5 +18,5 @@ ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f3': /*@ behavior typed: - requires \separated(&p->a, &p); */ + requires \separated(&p, &p->a); */ void f3(void); diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index b8015e5f58f..7e368e5770a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -21,7 +21,7 @@ [wp] Warning: Memory model hypotheses for function 'global_frame': /*@ behavior typed_ref: - requires \separated(one, zero); + requires \separated(zero, one); requires \valid(one); requires \valid(zero); */ diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle index 83c3ad493cf..5976d3b8cb9 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle @@ -56,7 +56,7 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(a + (..), v2, v1); + requires \separated(v1, v2, a + (..)); requires \valid(v1); requires \valid(v2); */ diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle index 406c46f42e2..ea1e78b5835 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle @@ -57,7 +57,7 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(a + (..), v2, v1); + requires \separated(v1, v2, a + (..)); requires \valid(v1); requires \valid(v2); */ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 36e3c1f31d6..6d3d8657fd9 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -48,7 +48,7 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(a + (..), v2, v1); + requires \separated(v1, v2, a + (..)); requires \valid(v1); requires \valid(v2); */ @@ -116,7 +116,7 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(a + (..), v2, v1); + requires \separated(v1, v2, a + (..)); requires \valid(v1); requires \valid(v2); */ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index 04523680472..0eb2143d7b4 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -49,7 +49,7 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(a + (..), v2, v1); + requires \separated(v1, v2, a + (..)); requires \valid(v1); requires \valid(v2); */ @@ -118,7 +118,7 @@ [wp] Warning: Memory model hypotheses for function 'equal_elements': /*@ behavior typed_ref: - requires \separated(a + (..), v2, v1); + requires \separated(v1, v2, a + (..)); requires \valid(v1); requires \valid(v2); */ diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle index 60d04236d9a..b4fbe27e2e0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle @@ -197,7 +197,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'global_alias': /*@ behavior typed: - requires \separated(g_alias, &g_alias, (int *)global + (..)); + requires \separated(g_alias, (int *)global + (..), &g_alias); */ void global_alias(void); [wp] Warning: Memory model hypotheses for function 'global_no_alias': @@ -211,29 +211,29 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'formal_alias_array': /*@ behavior typed: - requires \separated(&(*alias_array)[0 .. 1], (int *)global + (..)); + requires \separated((int *)global + (..), &(*alias_array)[0 .. 1]); requires \separated(alias_array + (..), (int *)global + (..)); */ void formal_alias_array(int (*alias_array)[2]); [wp] Warning: Memory model hypotheses for function 'field_alias': /*@ behavior typed: - requires \separated(&x->x, (int *)global + (..)); + requires \separated((int *)global + (..), &x->x); requires \separated(x, (int *)global + (..)); */ void field_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'field_range_alias': /*@ behavior typed: - requires \separated(&(x + (0 .. 3))->x, (int *)global + (..)); + requires \separated((int *)global + (..), &(x + (0 .. 3))->x); requires \separated(x + (..), (int *)global + (..)); */ void field_range_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'set_alias': /*@ behavior typed: - requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); - requires \separated(f_alias, &g_alias, (int *)global + (..)); + requires \separated((int *)global + (..), &g_alias, {g_alias, f_alias}); + requires \separated(f_alias, (int *)global + (..), &g_alias); */ void set_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'comprehension_alias': @@ -241,15 +241,15 @@ Prove: true. behavior typed: requires \separated( - {alias | int *alias; alias ≡ \at(g_alias,Pre)}, &g_alias, - (int *)global + (..) + (int *)global + (..), &g_alias, + {alias | int *alias; alias ≡ \at(g_alias,Pre)} ); */ void comprehension_alias(void); [wp] Warning: Memory model hypotheses for function 'union_alias': /*@ behavior typed: - requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); - requires \separated(f_alias, &g_alias, (int *)global + (..)); + requires \separated((int *)global + (..), &g_alias, {g_alias, f_alias}); + requires \separated(f_alias, (int *)global + (..), &g_alias); */ void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle index b68225c3d9a..6759eb2c636 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle @@ -259,6 +259,6 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': /*@ behavior typed_ref: - requires \separated(tps[9] + (0 .. 4), (struct T **)tps + (..)); + requires \separated((struct T **)tps + (..), tps[9] + (0 .. 4)); */ void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle index aba051f764c..98a1e48694b 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle @@ -412,6 +412,6 @@ Prove: true. /*@ behavior typed_ref: requires - \separated(ap + (..), (int *)reg_add + (..), (int *)reg_load + (..)); + \separated(ap + (..), (int *)reg_load + (..), (int *)reg_add + (..)); */ void add_1_5(int (*ap)[5]); diff --git a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle index 615dc325426..884cf8a6f5c 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle @@ -72,7 +72,7 @@ Prove: d != c. [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_ref: - requires \separated({a + (..), b + (..)}, d, c); + requires \separated(c, d, {a + (..), b + (..)}); requires \valid(c); requires \valid(d); */ @@ -80,7 +80,7 @@ Prove: d != c. [wp] Warning: Memory model hypotheses for function 'h': /*@ behavior typed_ref: - requires \separated(d, c); + requires \separated(c, d); requires \valid(c); requires \valid(d); */ @@ -88,7 +88,7 @@ Prove: d != c. [wp] Warning: Memory model hypotheses for function 's': /*@ behavior typed_ref: - requires \separated(d, c); + requires \separated(c, d); requires \valid(c); requires \valid(d); */ diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle index c189e0e008e..35b2ee5a8b5 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle @@ -52,7 +52,7 @@ [wp] Warning: Memory model hypotheses for function 'global_alias': /*@ behavior typed: - requires \separated(g_alias, &g_alias, (int *)global + (..)); + requires \separated(g_alias, (int *)global + (..), &g_alias); */ void global_alias(void); [wp] Warning: Memory model hypotheses for function 'global_no_alias': @@ -66,29 +66,29 @@ [wp] Warning: Memory model hypotheses for function 'formal_alias_array': /*@ behavior typed: - requires \separated(&(*alias_array)[0 .. 1], (int *)global + (..)); + requires \separated((int *)global + (..), &(*alias_array)[0 .. 1]); requires \separated(alias_array + (..), (int *)global + (..)); */ void formal_alias_array(int (*alias_array)[2]); [wp] Warning: Memory model hypotheses for function 'field_alias': /*@ behavior typed: - requires \separated(&x->x, (int *)global + (..)); + requires \separated((int *)global + (..), &x->x); requires \separated(x, (int *)global + (..)); */ void field_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'field_range_alias': /*@ behavior typed: - requires \separated(&(x + (0 .. 3))->x, (int *)global + (..)); + requires \separated((int *)global + (..), &(x + (0 .. 3))->x); requires \separated(x + (..), (int *)global + (..)); */ void field_range_alias(struct X *x); [wp] Warning: Memory model hypotheses for function 'set_alias': /*@ behavior typed: - requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); - requires \separated(f_alias, &g_alias, (int *)global + (..)); + requires \separated((int *)global + (..), &g_alias, {g_alias, f_alias}); + requires \separated(f_alias, (int *)global + (..), &g_alias); */ void set_alias(int *f_alias); [wp] Warning: Memory model hypotheses for function 'comprehension_alias': @@ -96,15 +96,15 @@ behavior typed: requires \separated( - {alias | int *alias; alias ≡ \at(g_alias,Pre)}, &g_alias, - (int *)global + (..) + (int *)global + (..), &g_alias, + {alias | int *alias; alias ≡ \at(g_alias,Pre)} ); */ void comprehension_alias(void); [wp] Warning: Memory model hypotheses for function 'union_alias': /*@ behavior typed: - requires \separated({g_alias, f_alias}, &g_alias, (int *)global + (..)); - requires \separated(f_alias, &g_alias, (int *)global + (..)); + requires \separated((int *)global + (..), &g_alias, {g_alias, f_alias}); + requires \separated(f_alias, (int *)global + (..), &g_alias); */ void union_alias(int *f_alias); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index 7f79d288a41..757cef883b0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -57,6 +57,6 @@ [wp] Warning: Memory model hypotheses for function 'call_reset_5_tps': /*@ behavior typed_ref: - requires \separated(tps[9] + (0 .. 4), (struct T **)tps + (..)); + requires \separated((struct T **)tps + (..), tps[9] + (0 .. 4)); */ void call_reset_5_tps(void); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index cc9487f8d96..edfb3c339c7 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -62,6 +62,6 @@ /*@ behavior typed_ref: requires - \separated(ap + (..), (int *)reg_add + (..), (int *)reg_load + (..)); + \separated(ap + (..), (int *)reg_load + (..), (int *)reg_add + (..)); */ void add_1_5(int (*ap)[5]); diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle index 82ba6e3fe6f..beca524545c 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle @@ -26,7 +26,7 @@ [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_ref: - requires \separated({a + (..), b + (..)}, d, c); + requires \separated(c, d, {a + (..), b + (..)}); requires \valid(c); requires \valid(d); */ @@ -34,7 +34,7 @@ [wp] Warning: Memory model hypotheses for function 'h': /*@ behavior typed_ref: - requires \separated(d, c); + requires \separated(c, d); requires \valid(c); requires \valid(d); */ @@ -42,7 +42,7 @@ [wp] Warning: Memory model hypotheses for function 's': /*@ behavior typed_ref: - requires \separated(d, c); + requires \separated(c, d); requires \valid(c); requires \valid(d); */ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle index 62a03745ae2..c42d51cfe76 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle @@ -69,18 +69,18 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'f2_p_a': /*@ behavior typed_caveat: - requires \separated(&a, p); + requires \separated(p, &a); requires \valid(p); */ void f2_p_a(int *p); [wp] Warning: Memory model hypotheses for function 'f3_p_ab': /*@ behavior typed_caveat: - requires \separated(&b, &a, p); + requires \separated(p, &a, &b); requires \valid(p); */ void f3_p_ab(int *p); [wp] Warning: Memory model hypotheses for function 'f4_pq_ab': /*@ behavior typed_caveat: - requires \separated(&b, &a, q, p); + requires \separated(p, q, &a, &b); requires \valid(p); requires \valid(q); */ @@ -88,7 +88,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'f5_pq': /*@ behavior typed_caveat: - requires \separated(q, p); + requires \separated(p, q); requires \valid(p); requires \valid(q); */ @@ -96,14 +96,14 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'f6_Pa': /*@ behavior typed_caveat: - requires \separated(&a, p + (..)); + requires \separated(p + (..), &a); requires \valid(p + (..)); */ void f6_Pa(int *p, int k); [wp] Warning: Memory model hypotheses for function 'f7_pq_ad': /*@ behavior typed_caveat: - requires \separated(&d, &a, q, p); + requires \separated(p, q, &a, &d); requires \valid(p); requires \valid(q); */ @@ -111,7 +111,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'f8_pq_a': /*@ behavior typed_caveat: - requires \separated(&a, q, p); + requires \separated(p, q, &a); requires \valid(p); requires \valid(q); */ diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle index 6759a580906..e11c326de60 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle @@ -30,7 +30,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'duplet': /*@ behavior typed_ref: - requires \separated(a + (..), pj, pi); + requires \separated(pi, pj, a + (..)); requires \valid(pi); requires \valid(pj); */ diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle index a07757a5ff9..01aafec9e30 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle @@ -121,8 +121,8 @@ Prove: true. behavior typed: requires \separated( - error, (int *)service_result + (..), (int *)service_id + (..), - &service_cpt, &seq + error, (int *)service_id + (..), (int *)service_result + (..), &seq, + &service_cpt ); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle index c56fc78178c..14d31113393 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle @@ -44,7 +44,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'swap': /*@ behavior typed_ref: - requires \separated(b, a); + requires \separated(a, b); requires \valid(a); requires \valid(b); */ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index 1928fc98220..d75c812e601 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -35,8 +35,8 @@ behavior typed: requires \separated( - error, (int *)service_result + (..), (int *)service_id + (..), - &service_cpt, &seq + error, (int *)service_id + (..), (int *)service_result + (..), &seq, + &service_cpt ); */ int job(int a, int b, int *error); diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index dbb2487bebb..90efeb24fce 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -31,13 +31,8 @@ behavior typed_ref: requires \separated( - (int *)service_result + (..), (int *)service_id + (..), - &service_cpt, &seq, error - ); - requires - \separated( - error, (int *)service_result + (..), (int *)service_id + (..), - &service_cpt, &seq + error, (int *)service_id + (..), (int *)service_result + (..), &seq, + &service_cpt ); requires \valid(error); */ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index 6f039f366e4..8b1b07121dc 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -20,7 +20,7 @@ [wp] Warning: Memory model hypotheses for function 'swap': /*@ behavior typed_ref: - requires \separated(b, a); + requires \separated(a, b); requires \valid(a); requires \valid(b); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle index 99b18742b0c..bf777e68401 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle @@ -72,7 +72,7 @@ Prove: P_OBS(x_2, x_3, x_4). [wp] Warning: Memory model hypotheses for function 'implicit': /*@ behavior typed_caveat: - requires \separated(r, a); + requires \separated(a, r); requires \valid(a); requires \valid(r); */ @@ -80,7 +80,7 @@ Prove: P_OBS(x_2, x_3, x_4). [wp] Warning: Memory model hypotheses for function 'explicit': /*@ behavior typed_caveat: - requires \separated(r, a); + requires \separated(a, r); requires \valid(a); requires \valid(r); */ @@ -88,7 +88,7 @@ Prove: P_OBS(x_2, x_3, x_4). [wp] Warning: Memory model hypotheses for function 'observer': /*@ behavior typed_caveat: - requires \separated(r, a); + requires \separated(a, r); requires \valid(a); requires \valid(r); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle index 234508ea4f7..bb429c2780e 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle @@ -101,7 +101,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_caveat: - requires \separated(b + (..), p); + requires \separated(p, b + (..)); requires \valid(b + (..)); requires \valid(p); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle index 5d5c635c06b..4e060164a41 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle @@ -22,6 +22,6 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'foo': /*@ behavior typed_ref: - requires \separated(&GLOBAL, a); + requires \separated(a, &GLOBAL); requires \valid(a); */ void foo(int *a); diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle index 967d775c75e..bcd929e7df7 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle @@ -171,7 +171,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ behavior typed: - requires \separated(dst, src); + requires \separated(src, dst); requires \valid(dst); requires \valid(src); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle index 5ce9a0dd10c..557f81f473c 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle @@ -26,7 +26,7 @@ Prove: true. [wp] Warning: Memory model hypotheses for function 'f': /*@ behavior typed_caveat: - requires \separated(src, ptr); + requires \separated(ptr, src); requires \valid(ptr); */ void f(char *ptr, char const *src, unsigned int idx); diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle index e5abfd8d02a..f8365548e57 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle @@ -24,7 +24,7 @@ [wp] Warning: Memory model hypotheses for function 'job': /*@ behavior typed_caveat: - requires \separated(b + (..), p); + requires \separated(p, b + (..)); requires \valid(b + (..)); requires \valid(p); */ diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle index d3fa8c4754e..045de5e319b 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle @@ -24,7 +24,7 @@ [wp] Warning: Memory model hypotheses for function 'memcpy_context_vars': /*@ behavior typed: - requires \separated(dst, src); + requires \separated(src, dst); requires \valid(dst); requires \valid(src); */ -- GitLab From 656e89b24665789216774b8589806854af03b919 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 22 Jul 2020 10:46:16 +0200 Subject: [PATCH 055/255] [wp] Option: insert model hypotheses in contracts --- src/plugins/wp/MemoryContext.ml | 4 +- src/plugins/wp/register.ml | 23 +- .../tests/wp_hoare/alias_assigns_hypotheses.i | 5 + ... => alias_assigns_hypotheses.0.res.oracle} | 82 ++-- .../alias_assigns_hypotheses.1.res.oracle | 351 ++++++++++++++++++ src/plugins/wp/wp_parameters.ml | 11 + src/plugins/wp/wp_parameters.mli | 1 + 7 files changed, 429 insertions(+), 48 deletions(-) rename src/plugins/wp/tests/wp_hoare/oracle/{alias_assigns_hypotheses.res.oracle => alias_assigns_hypotheses.0.res.oracle} (87%) create mode 100644 src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 362570a9664..746e84c1cb6 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -194,8 +194,8 @@ let region_to_term loc = function let separated_list ?loc = function | [] | [ _ ] -> ptrue | l -> - let comp = Cil_datatype.Term.compare in - pseparated ?loc (List.sort comp l) + let comp = Cil_datatype.Term.compare in + pseparated ?loc (List.sort comp l) let separated_from_term loc assigned l = separated_list ~loc (assigned :: List.map (region_to_term loc) l) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index 83a43cc7466..c197451cd4c 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -109,14 +109,25 @@ let wp_warn_memory_context () = match hyp with | None -> () | Some bhv -> - Wp_parameters.warning - ~current:false - "@[<hv 0>Memory model hypotheses for function '%s':@ %t@]" - (Kernel_function.get_name kf) - (wp_print_memory_context kf bhv) + Wp_parameters.warning + ~current:false + "@[<hv 0>Memory model hypotheses for function '%s':@ %t@]" + (Kernel_function.get_name kf) + (wp_print_memory_context kf bhv) end end +let wp_insert_memory_context model = + begin + Globals.Functions.iter + begin fun kf -> + let hyp = WpContext.compute_hypotheses model kf in + let model_id = WpContext.MODEL.id model in + MemoryContext.add_behavior kf model_id hyp + end + end + + (* ------------------------------------------------------------------------ *) (* --- Printing informations --- *) (* ------------------------------------------------------------------------ *) @@ -802,6 +813,8 @@ let cmdline_run () = WpContext.on_context (computer#model,WpContext.Global) LogicBuiltins.dump (); end ; + if Wp_parameters.CheckModelHypotheses.get () then + wp_insert_memory_context computer#model ; Generator.compute_selection computer ~fct ~bhv ~prop () in if Wp_parameters.CachePrint.get () then diff --git a/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i b/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i index ff7d4fc75e4..d92187251b3 100644 --- a/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i +++ b/src/plugins/wp/tests/wp_hoare/alias_assigns_hypotheses.i @@ -1,3 +1,8 @@ +/* run.config + OPT: + OPT:-wp-no-warn-memory-model -wp-check-model-hypotheses -then -print +*/ + /* run.config_qualif DONT_RUN: */ diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle similarity index 87% rename from src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle rename to src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle index b4fbe27e2e0..4b800e90173 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle @@ -7,18 +7,18 @@ Function comprehension_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 85) in 'comprehension_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 90) in 'comprehension_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 86) in 'comprehension_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 91) in 'comprehension_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 84) in 'comprehension_alias': -Effect at line 88 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 89) in 'comprehension_alias': +Effect at line 93 Prove: true. ------------------------------------------------------------ @@ -26,18 +26,18 @@ Prove: true. Function field_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 54) in 'field_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 59) in 'field_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 55) in 'field_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 60) in 'field_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 53) in 'field_alias': -Effect at line 57 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 58) in 'field_alias': +Effect at line 62 Prove: true. ------------------------------------------------------------ @@ -45,18 +45,18 @@ Prove: true. Function field_range_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 66) in 'field_range_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 71) in 'field_range_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 67) in 'field_range_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 72) in 'field_range_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 65) in 'field_range_alias': -Effect at line 69 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 70) in 'field_range_alias': +Effect at line 74 Prove: true. ------------------------------------------------------------ @@ -64,18 +64,18 @@ Prove: true. Function formal_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 25) in 'formal_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 30) in 'formal_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 26) in 'formal_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 31) in 'formal_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 24) in 'formal_alias': -Effect at line 28 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 29) in 'formal_alias': +Effect at line 33 Prove: true. ------------------------------------------------------------ @@ -83,29 +83,29 @@ Prove: true. Function formal_alias_array ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 40) in 'formal_alias_array': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 45) in 'formal_alias_array': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 41) in 'formal_alias_array': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 46) in 'formal_alias_array': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 42) in 'formal_alias_array': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 47) in 'formal_alias_array': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 39) in 'formal_alias_array' (1/2): -Effect at line 44 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 44) in 'formal_alias_array' (1/2): +Effect at line 49 Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 39) in 'formal_alias_array' (2/2): -Effect at line 45 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 44) in 'formal_alias_array' (2/2): +Effect at line 50 Prove: true. ------------------------------------------------------------ @@ -113,13 +113,13 @@ Prove: true. Function formal_no_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 33) in 'formal_no_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 38) in 'formal_no_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 32) in 'formal_no_alias': -Effect at line 35 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 37) in 'formal_no_alias': +Effect at line 40 Prove: true. ------------------------------------------------------------ @@ -127,18 +127,18 @@ Prove: true. Function global_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 10) in 'global_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 15) in 'global_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 11) in 'global_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 16) in 'global_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 9) in 'global_alias': -Effect at line 13 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 14) in 'global_alias': +Effect at line 18 Prove: true. ------------------------------------------------------------ @@ -146,13 +146,13 @@ Prove: true. Function global_no_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 18) in 'global_no_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 23) in 'global_no_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 17) in 'global_no_alias': -Effect at line 20 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 22) in 'global_no_alias': +Effect at line 25 Prove: true. ------------------------------------------------------------ @@ -160,18 +160,18 @@ Prove: true. Function set_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 74) in 'set_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 79) in 'set_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 75) in 'set_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 80) in 'set_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 73) in 'set_alias': -Effect at line 77 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 78) in 'set_alias': +Effect at line 82 Prove: true. ------------------------------------------------------------ @@ -179,18 +179,18 @@ Prove: true. Function union_alias ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 95) in 'union_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 100) in 'union_alias': Prove: true. ------------------------------------------------------------ -Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 96) in 'union_alias': +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 101) in 'union_alias': Prove: true. ------------------------------------------------------------ -Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 94) in 'union_alias': -Effect at line 98 +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 99) in 'union_alias': +Effect at line 103 Prove: true. ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle new file mode 100644 index 00000000000..4eb7ef19181 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle @@ -0,0 +1,351 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function comprehension_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 90) in 'comprehension_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 91) in 'comprehension_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 89) in 'comprehension_alias': +Effect at line 93 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function field_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 59) in 'field_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 60) in 'field_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 58) in 'field_alias': +Effect at line 62 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function field_range_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 71) in 'field_range_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 72) in 'field_range_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 70) in 'field_range_alias': +Effect at line 74 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 30) in 'formal_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 31) in 'formal_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 29) in 'formal_alias': +Effect at line 33 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_alias_array +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 45) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 46) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 47) in 'formal_alias_array': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 44) in 'formal_alias_array' (1/2): +Effect at line 49 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 44) in 'formal_alias_array' (2/2): +Effect at line 50 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function formal_no_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 38) in 'formal_no_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 37) in 'formal_no_alias': +Effect at line 40 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function global_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 15) in 'global_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 16) in 'global_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 14) in 'global_alias': +Effect at line 18 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function global_no_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 23) in 'global_no_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 22) in 'global_no_alias': +Effect at line 25 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function set_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 79) in 'set_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 80) in 'set_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 78) in 'set_alias': +Effect at line 82 +Prove: true. + +------------------------------------------------------------ +------------------------------------------------------------ + Function union_alias +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 100) in 'union_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_hoare/alias_assigns_hypotheses.i, line 101) in 'union_alias': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_hoare/alias_assigns_hypotheses.i, line 99) in 'union_alias': +Effect at line 103 +Prove: true. + +------------------------------------------------------------ +/* Generated by Frama-C */ +struct X { + int x ; +}; +int global[1]; +int *g_alias; +/*@ requires \valid(g_alias); + ensures *g_alias ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns *g_alias; + + behavior typed: + requires \separated(g_alias, (int *)global + (..), &g_alias); + */ +void global_alias(void) +{ + *g_alias = 1; + return; +} + +/*@ requires \valid(g_alias); + ensures *g_alias ≡ 1; + assigns *g_alias; + + behavior typed: + requires \separated(g_alias, &g_alias); + */ +void global_no_alias(void) +{ + *g_alias = 1; + return; +} + +/*@ requires \valid(f_alias); + ensures *\old(f_alias) ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns *f_alias; + + behavior typed: + requires \separated(f_alias, (int *)global + (..)); + */ +void formal_alias(int *f_alias) +{ + *f_alias = 1; + return; +} + +/*@ requires \valid(f_alias); + ensures *\old(f_alias) ≡ 1; + assigns *f_alias; + */ +void formal_no_alias(int *f_alias) +{ + *f_alias = 1; + return; +} + +/*@ requires \valid(alias_array); + ensures (*\old(alias_array))[0] ≡ 1; + ensures (*\old(alias_array))[1] ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns (*alias_array)[0 .. 1]; + + behavior typed: + requires \separated((int *)global + (..), &(*alias_array)[0 .. 1]); + requires \separated(alias_array + (..), (int *)global + (..)); + */ +void formal_alias_array(int (*alias_array)[2]) +{ + (*alias_array)[0] = 1; + (*alias_array)[1] = 1; + return; +} + +/*@ requires \valid(x); + ensures \old(x)->x ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns x->x; + + behavior typed: + requires \separated((int *)global + (..), &x->x); + requires \separated(x, (int *)global + (..)); + */ +void field_alias(struct X *x) +{ + x->x = 1; + return; +} + +/*@ requires \valid(x); + ensures \old(x)->x ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns (x + (0 .. 3))->x; + + behavior typed: + requires \separated((int *)global + (..), &(x + (0 .. 3))->x); + requires \separated(x + (..), (int *)global + (..)); + */ +void field_range_alias(struct X *x) +{ + x->x = 1; + return; +} + +/*@ requires \valid(g_alias); + ensures *g_alias ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns {*g_alias, *f_alias}; + + behavior typed: + requires + \separated((int *)global + (..), &g_alias, {g_alias, f_alias}); + requires \separated(f_alias, (int *)global + (..), &g_alias); + */ +void set_alias(int *f_alias) +{ + *g_alias = 1; + return; +} + +/*@ requires \valid(g_alias); + ensures *g_alias ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns {*alias | int *alias; alias ≡ \at(g_alias,Pre)}; + + behavior typed: + requires + \separated( + (int *)global + (..), &g_alias, + {alias | int *alias; alias ≡ \at(g_alias,Pre)} + ); + */ +void comprehension_alias(void) +{ + *g_alias = 1; + return; +} + +/*@ requires \valid(g_alias); + ensures *g_alias ≡ 1; + ensures \old(global[0]) ≡ global[0]; + assigns {*g_alias, *f_alias}; + + behavior typed: + requires + \separated((int *)global + (..), &g_alias, {g_alias, f_alias}); + requires \separated(f_alias, (int *)global + (..), &g_alias); + */ +void union_alias(int *f_alias) +{ + *g_alias = 1; + return; +} + + diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 07700701b0d..9d1a47889cc 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -1040,6 +1040,17 @@ module MemoryContext = let help = "Warn Against Memory Model Hypotheses" end) +let () = Parameter_customize.set_group wp_po +let () = Parameter_customize.do_not_save () + +module CheckModelHypotheses = + False + (struct + let option_name = "-wp-check-model-hypotheses" + let help = "Insert memory model hypotheses in function contracts and \ + check them on call." + end) + let wkey_imprecise_hypotheses_assigns = register_warn_category "hypotheses:assigns" let () = set_warn_status wkey_imprecise_hypotheses_assigns Log.Winactive diff --git a/src/plugins/wp/wp_parameters.mli b/src/plugins/wp/wp_parameters.mli index c5cce1de8c7..5723c87072a 100644 --- a/src/plugins/wp/wp_parameters.mli +++ b/src/plugins/wp/wp_parameters.mli @@ -150,6 +150,7 @@ module Report: Parameter_sig.String_list module ReportJson: Parameter_sig.String module ReportName: Parameter_sig.String module MemoryContext: Parameter_sig.Bool +module CheckModelHypotheses: Parameter_sig.Bool module SmokeTests: Parameter_sig.Bool module SmokeDeadloop: Parameter_sig.Bool module SmokeDeadcode: Parameter_sig.Bool -- GitLab From f1a60164b52da4356b3351dc1eedfded74e60a15 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 22 Jul 2020 11:12:46 +0200 Subject: [PATCH 056/255] [wp] Hypotheses: fixes assigned via pointer --- src/plugins/wp/MemoryContext.ml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 746e84c1cb6..783a9ff3a16 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -89,12 +89,17 @@ let set x p w = let assigned t w = let rec assigned_via_pointer t = match t.term_node with - | TLval (TMem _, _) -> true - | Tif (_, t, _) | Tat (t, _) + | TLval (TMem _, _) -> + true | TCastE (_, t) | TLogic_coerce (_, t) - | Tunion (t :: _) | Tinter (t :: _) - | Tcomprehension(t, _, _) -> assigned_via_pointer t - | _ -> false + | Tcomprehension(t, _, _) | Tat (t, _) -> + assigned_via_pointer t + | Tunion l | Tinter l -> + List.exists assigned_via_pointer l + | Tif (_, t1, t2) -> + assigned_via_pointer t1 || assigned_via_pointer t2 + | _ -> + false in let assigned = if assigned_via_pointer t.it_content then t :: w.assigned -- GitLab From 6742ab9829ef0ea725d534ae198e7909372e43c8 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 27 Jul 2020 16:14:47 +0200 Subject: [PATCH 057/255] [wp] Moves some MemoryContext features --- src/plugins/wp/MemVar.ml | 14 ------ src/plugins/wp/MemoryContext.ml | 74 ++++++++++++++++++-------------- src/plugins/wp/MemoryContext.mli | 1 - 3 files changed, 42 insertions(+), 47 deletions(-) diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index 7d07665c6be..e3f2c8292be 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -58,20 +58,6 @@ struct | WpContext.Kf f -> Some f, WpStrategy.is_main_init f in let w = ref p in V.iter ?kf ~init (fun vi -> w := MemoryContext.set vi (V.param vi) !w) ; - let add_assign kf _emitter = function - | WritesAny -> - Wp_parameters.warning - ~wkey:Wp_parameters.wkey_imprecise_hypotheses_assigns - "No assigns for function '%a', %s hypotheses will be imprecise" - Kernel_function.pretty kf datatype - | Writes l -> - List.iter (fun (e,_ds) -> w := MemoryContext.assigned e !w) l - in - begin match kf with - | None -> () - | Some kf -> - Annotations.iter_assigns (add_assign kf) kf Cil.default_behavior_name - end ; M.hypotheses !w (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 783a9ff3a16..7afa6608bce 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -50,7 +50,6 @@ type partition = { globals : zone list ; (* [ &G , G[...], ... ] *) to_heap : zone list ; (* [ p, ... ] *) context : zone list ; (* [ p+(..), ... ] *) - assigned: identified_term list (* Must refer to pointed locations *) } (* -------------------------------------------------------------------------- *) @@ -61,7 +60,6 @@ let empty = { globals = [] ; context = [] ; to_heap = [] ; - assigned = [] ; } let set x p w = @@ -86,27 +84,6 @@ let set x p w = { w with to_heap = z :: w.to_heap } else w -let assigned t w = - let rec assigned_via_pointer t = - match t.term_node with - | TLval (TMem _, _) -> - true - | TCastE (_, t) | TLogic_coerce (_, t) - | Tcomprehension(t, _, _) | Tat (t, _) -> - assigned_via_pointer t - | Tunion l | Tinter l -> - List.exists assigned_via_pointer l - | Tif (_, t1, t2) -> - assigned_via_pointer t1 || assigned_via_pointer t2 - | _ -> - false - in - let assigned = - if assigned_via_pointer t.it_content then t :: w.assigned - else w.assigned - in - { w with assigned = assigned } - (* -------------------------------------------------------------------------- *) (* ANNOTS *) (* -------------------------------------------------------------------------- *) @@ -254,14 +231,48 @@ let main_separation loc globals context heaps = in List.map for_typed_heap heaps -let clauses_of_partition loc p = +let assigned_locations kf filter = + let add_from l (e, _ds) = + if filter e.it_content then e :: l else l + in + let add_assign kf _emitter assigns l = match assigns with + | WritesAny -> + Wp_parameters.warning + ~wkey:Wp_parameters.wkey_imprecise_hypotheses_assigns ~once:true + "No assigns for function '%a', model hypotheses will be imprecise" + Kernel_function.pretty kf ; + l + | Writes froms -> List.fold_left add_from l froms + in + Annotations.fold_assigns (add_assign kf) kf Cil.default_behavior_name [] + +let assigned_via_pointers kf = + let rec assigned_via_pointer t = + match t.term_node with + | TLval (TMem _, _) -> + true + | TCastE (_, t) | TLogic_coerce (_, t) + | Tcomprehension(t, _, _) | Tat (t, _) -> + assigned_via_pointer t + | Tunion l | Tinter l -> + List.exists assigned_via_pointer l + | Tif (_, t1, t2) -> + assigned_via_pointer t1 || assigned_via_pointer t2 + | _ -> + false + in + assigned_locations kf assigned_via_pointer + +let clauses_of_partition kf loc p = let globals = global_zones p in let filter p = not (Logic_utils.is_trivially_true p) in let main_sep = main_separation loc globals (context_zones p) (heaps p) in let assigns_sep = - List.map (fun t -> separated_from_addr loc t globals) p.assigned + List.map + (fun t -> separated_from_addr loc t globals) + (assigned_via_pointers kf) in let context_validity = List.map (valid_region loc) (context_zones p) @@ -269,24 +280,23 @@ let clauses_of_partition loc p = let reqs = main_sep @ assigns_sep @ context_validity in let reqs = List.filter filter reqs in let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in - reqs, [] + reqs let emitter = Emitter.(create "Wp.Hypotheses" [Funspec] ~correctness:[] ~tuning:[]) let get_behavior kf name partition = let loc = Kernel_function.get_location kf in - let reqs,enss = clauses_of_partition loc partition in + let reqs = clauses_of_partition kf loc partition in let reqs = List.map Logic_const.new_predicate reqs in - let enss = List.map (fun p -> Normal, Logic_const.new_predicate p) enss in - match reqs,enss with - | [], [] -> None - | l1, l2 -> + match reqs with + | [] -> None + | l1 -> Some { b_name = name ; b_requires = l1 ; b_assumes = [] ; - b_post_cond = l2 ; + b_post_cond = [] ; b_assigns = WritesAny ; b_allocation = FreeAllocAny ; b_extended = [] diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index 45dc45afbea..6c406b1aab8 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -30,7 +30,6 @@ type partition val empty : partition val set : varinfo -> param -> partition -> partition -val assigned : identified_term -> partition -> partition val add_behavior : kernel_function -> string -> partition -> unit val get_behavior : kernel_function -> string -> partition -> behavior option -- GitLab From c29df18276bda2aa150857bd3451af6a7e7cbc0b Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 28 Jul 2020 07:53:51 +0200 Subject: [PATCH 058/255] [wp] Prepare ChangeLog for hypotheses --- src/plugins/wp/Changelog | 3 +++ src/plugins/wp/register.ml | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index 7f362c71486..5a34b53a2bd 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -24,6 +24,9 @@ Plugin WP <next-release> ######################### +- WP [2020-XX-XX] New experimental option: -wp-check-model-hypotheses + Generates requires in contracts for model hypotheses +- WP [2020-XX-XX] Hypotheses: assigned memory locations - WP [2020-07-06] Removed debug keys "no-xxx-info" (subsumed by "shell") - WP [2020-07-06] Option -wp-cache-env now defaults to false - WP [2020-07-06] New option -wp-cache-print diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index c197451cd4c..ca36e3b3658 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -127,7 +127,6 @@ let wp_insert_memory_context model = end end - (* ------------------------------------------------------------------------ *) (* --- Printing informations --- *) (* ------------------------------------------------------------------------ *) -- GitLab From 74eabf816d25701ccb32594df9ce26b4ec5b8b4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Mon, 31 Aug 2020 15:21:34 +0200 Subject: [PATCH 059/255] [Eva] Updates the list of correctnes parameters from the kernel. --- src/plugins/value/value_parameters.ml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 7ba367b5f51..70fd2b157c3 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -25,6 +25,7 @@ let kernel_parameters_correctness = [ Kernel.MainFunction.parameter; Kernel.LibEntry.parameter; Kernel.AbsoluteValidRange.parameter; + Kernel.InitializedPaddingLocals.parameter; Kernel.SafeArrays.parameter; Kernel.UnspecifiedAccess.parameter; Kernel.SignedOverflow.parameter; @@ -33,6 +34,10 @@ let kernel_parameters_correctness = [ Kernel.RightShiftNegative.parameter; Kernel.SignedDowncast.parameter; Kernel.UnsignedDowncast.parameter; + Kernel.PointerDowncast.parameter; + Kernel.SpecialFloat.parameter; + Kernel.InvalidBool.parameter; + Kernel.InvalidPointer.parameter; ] let parameters_correctness = ref Typed_parameter.Set.empty -- GitLab From 2e05a7701a43f891978645223fb83c557cb959f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 1 Sep 2020 09:19:29 +0200 Subject: [PATCH 060/255] [Eva] Fixes correctness and precision dependencies for some Eva parameters. --- src/plugins/value/value_parameters.ml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 70fd2b157c3..353dd6bb25c 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -911,7 +911,7 @@ module BuiltinsOverrides = Fall back to <f> if <ffc> cannot handle its arguments." let default = Kernel_function.Map.empty end) -let () = add_precision_dep BuiltinsOverrides.parameter +let () = add_correctness_dep BuiltinsOverrides.parameter (* Exported in Eva.mli. *) let use_builtin key name = @@ -987,7 +987,7 @@ module UsePrototype = let help = "Use the ACSL specification of the functions instead of \ their definitions" end) -let () = add_precision_dep UsePrototype.parameter +let () = add_correctness_dep UsePrototype.parameter let () = Parameter_customize.set_group precision_tuning module SkipLibcSpecs = @@ -1259,6 +1259,7 @@ module AllocReturnsNull= let help = "Memory allocation built-ins (malloc, calloc, realloc) are \ modeled as nondeterministically returning a null pointer" end) +let () = add_correctness_dep AllocReturnsNull.parameter let () = Parameter_customize.set_group malloc module MallocLevel = @@ -1271,6 +1272,7 @@ module MallocLevel = besides the initial one, for each callstack (defaults to 0)" end) let () = MallocLevel.set_range 0 max_int +let () = add_precision_dep MallocLevel.parameter (* -------------------------------------------------------------------------- *) (* --- Deprecated aliases --- *) -- GitLab From 78c55ade7c7e6c0fd5e94fe51ef86a0f39c9f05c Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 7 Sep 2020 15:33:54 +0200 Subject: [PATCH 061/255] [wp] check-model-hypotheses only on selected functions --- src/plugins/wp/register.ml | 4 ++-- src/plugins/wp/wp_parameters.ml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index ca36e3b3658..580ac961046 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -119,7 +119,7 @@ let wp_warn_memory_context () = let wp_insert_memory_context model = begin - Globals.Functions.iter + Wp_parameters.iter_fct begin fun kf -> let hyp = WpContext.compute_hypotheses model kf in let model_id = WpContext.MODEL.id model in @@ -813,7 +813,7 @@ let cmdline_run () = LogicBuiltins.dump (); end ; if Wp_parameters.CheckModelHypotheses.get () then - wp_insert_memory_context computer#model ; + wp_insert_memory_context computer#model fct ; Generator.compute_selection computer ~fct ~bhv ~prop () in if Wp_parameters.CachePrint.get () then diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 9d1a47889cc..9c0f2b0d050 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -1048,7 +1048,7 @@ module CheckModelHypotheses = (struct let option_name = "-wp-check-model-hypotheses" let help = "Insert memory model hypotheses in function contracts and \ - check them on call." + check them on call. (experimental)" end) let wkey_imprecise_hypotheses_assigns = -- GitLab From 73e7034d6dc01bd01cd6db782830972e8232a554 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 7 Sep 2020 15:39:29 +0200 Subject: [PATCH 062/255] [Slicing] update changelog --- Changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelog b/Changelog index ca81d8698f7..ee5fa2758a2 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,7 @@ Open Source Release <next-release> ################################## +-* Slicing [2020-09-07] Better handling of invalid command line options. - Eva [2020-07-27] Improved automatic loop unroll (-eva-auto-loop-unroll option) on loops with several exit conditions, conditions using equality operators, temporary variables introduced by the Frama-C -- GitLab From 34a2b354ba06cc09a3e84f56eb820bab0511c878 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 7 Sep 2020 15:47:13 +0200 Subject: [PATCH 063/255] [wp] Clarifies some functions in MemoryContext --- src/plugins/wp/MemoryContext.ml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 7afa6608bce..2904da424d0 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -179,12 +179,9 @@ let separated_list ?loc = function let comp = Cil_datatype.Term.compare in pseparated ?loc (List.sort comp l) -let separated_from_term loc assigned l = +let term_separated_from_regions loc assigned l = separated_list ~loc (assigned :: List.map (region_to_term loc) l) -let separated_from_addr loc assigned = - separated_from_term loc (addr_of_lval ~loc assigned.it_content) - let valid_region loc r = let t = region_to_term loc r in pvalid ~loc (here_label, t) @@ -265,20 +262,20 @@ let assigned_via_pointers kf = let clauses_of_partition kf loc p = let globals = global_zones p in - let filter p = not (Logic_utils.is_trivially_true p) in let main_sep = main_separation loc globals (context_zones p) (heaps p) in let assigns_sep = + let addr_of t = addr_of_lval ~loc t.it_content in List.map - (fun t -> separated_from_addr loc t globals) + (fun t -> term_separated_from_regions loc (addr_of t) globals) (assigned_via_pointers kf) in let context_validity = List.map (valid_region loc) (context_zones p) in let reqs = main_sep @ assigns_sep @ context_validity in - let reqs = List.filter filter reqs in + let reqs = List.filter (fun p -> not(Logic_utils.is_trivially_true p)) reqs in let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in reqs -- GitLab From 5bcef7510d2db137fb96e512819173166fb6c1e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Mon, 7 Sep 2020 16:49:43 +0200 Subject: [PATCH 064/255] Updates the Changelog. --- Changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Changelog b/Changelog index ee5fa2758a2..d27b67829d7 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,8 @@ Open Source Release <next-release> ################################## +- Eva [2020-09-07] Deprecates legacy options aliases -val-* in favor + of option names -eva-*. -* Slicing [2020-09-07] Better handling of invalid command line options. - Eva [2020-07-27] Improved automatic loop unroll (-eva-auto-loop-unroll option) on loops with several exit conditions, conditions using -- GitLab From e590d32f230762c0184f4b14dc5bd62eea4dfc01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 4 Sep 2020 17:26:52 +0200 Subject: [PATCH 065/255] [Inout] Completely remove option -inout-callwise, which is always active. --- .../plugin_entry_points/db.mli | 3 +- src/plugins/inout/inout_parameters.ml | 15 -- src/plugins/inout/inout_parameters.mli | 1 - src/plugins/inout/operational_inputs.ml | 131 ++++++++---------- src/plugins/value/value_parameters.ml | 11 +- tests/builtins/realloc2.c | 2 +- 6 files changed, 64 insertions(+), 99 deletions(-) diff --git a/src/kernel_services/plugin_entry_points/db.mli b/src/kernel_services/plugin_entry_points/db.mli index 360b783ab48..30c474f13e5 100644 --- a/src/kernel_services/plugin_entry_points/db.mli +++ b/src/kernel_services/plugin_entry_points/db.mli @@ -1317,8 +1317,7 @@ module Operational_inputs : sig val get_internal_precise: (?stmt:stmt -> kernel_function -> Inout_type.t) ref (** More precise version of [get_internal] function. If [stmt] is specified, and is a possible call to the given kernel_function, - returns the operational inputs for this call (if option -inout-callwise - has been set). *) + returns the operational inputs for this call. *) (**/**) (* Internal use *) diff --git a/src/plugins/inout/inout_parameters.ml b/src/plugins/inout/inout_parameters.ml index d40e57102ef..eef83915883 100644 --- a/src/plugins/inout/inout_parameters.ml +++ b/src/plugins/inout/inout_parameters.ml @@ -77,21 +77,6 @@ module ForceInout = let help = "Compute operational inputs, an over-approximation of the set of locations whose initial value is used; and the sure outputs, an under-approximation of the set of the certainly written locations" end) -(* Remove in Frama-C Chlorine *) -let () = Parameter_customize.is_invisible () -module ForceCallwiseInout = - True - (struct - let option_name = "-inout-callwise" - let help = "Compute callsite-wide operational inputs; this results in more precise results for -inout and -out options" - end) -let () = - ForceCallwiseInout.add_update_hook - (fun _ new_ -> - if not new_ then - Kernel.abort "@[option -inout-callwise can no longer be unset.@]") - - module ForceInoutExternalWithFormals = False (struct diff --git a/src/plugins/inout/inout_parameters.mli b/src/plugins/inout/inout_parameters.mli index 3f5390706a6..d59478b1bb4 100644 --- a/src/plugins/inout/inout_parameters.mli +++ b/src/plugins/inout/inout_parameters.mli @@ -28,7 +28,6 @@ module ForceExternalOut: Parameter_sig.Bool module ForceInput: Parameter_sig.Bool module ForceInputWithFormals: Parameter_sig.Bool module ForceInout: Parameter_sig.Bool -module ForceCallwiseInout: Parameter_sig.Bool module ForceInoutExternalWithFormals: Parameter_sig.Bool module ForceDeref: Parameter_sig.Bool diff --git a/src/plugins/inout/operational_inputs.ml b/src/plugins/inout/operational_inputs.ml index 777c7ce0892..f1c1fe4aa45 100644 --- a/src/plugins/inout/operational_inputs.ml +++ b/src/plugins/inout/operational_inputs.ml @@ -215,16 +215,14 @@ module Internals = module CallsiteHash = Value_types.Callsite.Hashtbl (* Results of an an entire call, represented by a pair (stmt, kernel_function). - This table is filled by the [-inout-callwise] option, or for functions for - which only the specification is used. *) +*) module CallwiseResults = State_builder.Hashtbl (Value_types.Callsite.Hashtbl) (Inout_type) (struct let size = 17 - let dependencies = [Internals.self; - Inout_parameters.ForceCallwiseInout.self] + let dependencies = [Internals.self] let name = "Inout.Operational_inputs.CallwiseResults" end) @@ -565,10 +563,6 @@ let extract_inout_from_froms froms = module Callwise = struct - let compute_callwise () = - Inout_parameters.ForceCallwiseInout.get () || - Dynamic.Parameter.Bool.get "-memexec-all" () - let merge_call_in_local_table call local_table v = let prev = try CallsiteHash.find local_table call @@ -600,41 +594,39 @@ module Callwise = struct let call_inout_stack = ref [] let call_for_callwise_inout (call_type, state, call_stack) = - if compute_callwise () then begin - let (current_function, ki as call_site) = List.hd call_stack in - let merge_inout inout = - if ki = Kglobal - then merge_call_in_global_tables call_site inout - else - let _above_function, table = - try List.hd !call_inout_stack - with Failure _ -> assert false - in - merge_call_in_local_table call_site table inout - in - match call_type with - | `Builtin {Value_types.c_from = Some (froms,sure_out) } -> - let in_, out_ = extract_inout_from_froms froms in - let inout = { - over_inputs_if_termination = in_; - over_inputs = in_; - over_logic_inputs = Zone.bottom; - over_outputs_if_termination = out_ ; - over_outputs = out_; - under_outputs_if_termination = sure_out; - } in - merge_inout inout - | `Def | `Memexec -> - let table_current_function = CallsiteHash.create 7 in - call_inout_stack := - (current_function, table_current_function) :: !call_inout_stack - | `Spec spec -> - let inout =compute_using_given_spec_state state spec current_function in - merge_inout inout - | `Builtin { Value_types.c_from = None } -> - let inout = compute_using_prototype_state state current_function in - merge_inout inout - end;; + let (current_function, ki as call_site) = List.hd call_stack in + let merge_inout inout = + if ki = Kglobal + then merge_call_in_global_tables call_site inout + else + let _above_function, table = + try List.hd !call_inout_stack + with Failure _ -> assert false + in + merge_call_in_local_table call_site table inout + in + match call_type with + | `Builtin {Value_types.c_from = Some (froms,sure_out) } -> + let in_, out_ = extract_inout_from_froms froms in + let inout = { + over_inputs_if_termination = in_; + over_inputs = in_; + over_logic_inputs = Zone.bottom; + over_outputs_if_termination = out_ ; + over_outputs = out_; + under_outputs_if_termination = sure_out; + } in + merge_inout inout + | `Def | `Memexec -> + let table_current_function = CallsiteHash.create 7 in + call_inout_stack := + (current_function, table_current_function) :: !call_inout_stack + | `Spec spec -> + let inout =compute_using_given_spec_state state spec current_function in + merge_inout inout + | `Builtin { Value_types.c_from = None } -> + let inout = compute_using_prototype_state state current_function in + merge_inout inout module MemExec = @@ -711,31 +703,30 @@ module Callwise = struct Computer.end_dataflow () let record_for_callwise_inout ((call_stack: Db.Value.callstack), value_res) = - if compute_callwise () then - let inout = match value_res with - | Value_types.Normal (states, _after_states) - | Value_types.NormalStore ((states, _after_states), _) -> - let kf, _ = List.hd call_stack in - let inout = - try - if !Db.Value.no_results (Kernel_function.get_definition kf) then - top - else - compute_call_from_value_states kf call_stack (Lazy.force states) - with Kernel_function.No_Definition -> top - in - (match value_res with - | Value_types.NormalStore (_, memexec_counter) -> - MemExec.replace memexec_counter inout - | _ -> ()); - inout - - | Value_types.Reuse counter -> - MemExec.find counter - in - Db.Operational_inputs.Record_Inout_Callbacks.apply - (call_stack, inout); - end_record call_stack inout + let inout = match value_res with + | Value_types.Normal (states, _after_states) + | Value_types.NormalStore ((states, _after_states), _) -> + let kf, _ = List.hd call_stack in + let inout = + try + if !Db.Value.no_results (Kernel_function.get_definition kf) then + top + else + compute_call_from_value_states kf call_stack (Lazy.force states) + with Kernel_function.No_Definition -> top + in + (match value_res with + | Value_types.NormalStore (_, memexec_counter) -> + MemExec.replace memexec_counter inout + | _ -> ()); + inout + + | Value_types.Reuse counter -> + MemExec.find counter + in + Db.Operational_inputs.Record_Inout_Callbacks.apply + (call_stack, inout); + end_record call_stack inout (* Register our callbacks inside the value analysis *) @@ -816,8 +807,8 @@ let get_internal = Internals.memo (fun kf -> !Db.Value.compute (); - try Internals.find kf (* If [-inout-callwise] is set, the results may - have been computed by the call to Value.compute *) + try Internals.find kf (* The results may have been computed by the call + to Value.compute *) with | Not_found -> if!Db.Value.use_spec_instead_of_definition kf then diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 353dd6bb25c..1446dd8d796 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -1016,19 +1016,10 @@ module MemExecAll = (struct let option_name = "-eva-memexec" let help = "Speed up analysis by not recomputing functions already \ - analyzed in the same context. Forces -inout-callwise. \ + analyzed in the same context. \ Callstacks for which the analysis has not been recomputed \ are incorrectly shown as dead in the GUI." end) -let () = - MemExecAll.add_set_hook - (fun _bold bnew -> - if bnew then - try - Dynamic.Parameter.Bool.set "-inout-callwise" true - with Dynamic.Unbound_value _ | Dynamic.Incompatible_type _ -> - abort "Cannot set option -eva-memexec. Is plugin Inout registered?" - ) let () = Parameter_customize.set_group precision_tuning module ArrayPrecisionLevel = diff --git a/tests/builtins/realloc2.c b/tests/builtins/realloc2.c index 6614f80f06f..3636bd1ea2a 100644 --- a/tests/builtins/realloc2.c +++ b/tests/builtins/realloc2.c @@ -1,5 +1,5 @@ /* run.config* - STDOPT: #"-eva-mlevel 0 -inout-callwise -inout-no-print " + STDOPT: #"-eva-mlevel 0 -inout-no-print " */ #include <stdlib.h> -- GitLab From 0b7f5a9305d09706929f4abf272b2ad8ee94a9e1 Mon Sep 17 00:00:00 2001 From: Romain Maliach-Auguste <romain.maliach-auguste@cea.fr> Date: Tue, 8 Sep 2020 15:13:58 +0200 Subject: [PATCH 066/255] typo in command given in the manual --- doc/userman/user-start.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/userman/user-start.tex b/doc/userman/user-start.tex index 099980681bb..abb1fbebdaf 100644 --- a/doc/userman/user-start.tex +++ b/doc/userman/user-start.tex @@ -266,7 +266,7 @@ content of the file to \texttt{\~{}/.bash\_completion} \item You can \texttt{source} the file, e.g. from your \texttt{.bashrc} with the following command: \begin{verbatim} -source $(frama-c -print-share-path)/.autocomplete_frama-c || true +source $(frama-c -print-share-path)/autocomplete_frama-c || true \end{verbatim} \end{itemize} -- GitLab From 9e6585935f448ae560727f6e53150ce3bd033cc6 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 8 Sep 2020 15:44:46 +0200 Subject: [PATCH 067/255] [Analysis-scripts] remove obsolete option --- share/analysis-scripts/analysis.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/share/analysis-scripts/analysis.mk b/share/analysis-scripts/analysis.mk index e732240db26..068fe3b20cf 100644 --- a/share/analysis-scripts/analysis.mk +++ b/share/analysis-scripts/analysis.mk @@ -118,7 +118,7 @@ EVAFLAGS ?= \ -eva-print-callstacks -eva-warn-key alarm=inactive \ -no-deps-print -no-calldeps-print \ -eva-warn-key garbled-mix \ - -memexec-all -calldeps -permissive -from-verbose 0 \ + -calldeps -permissive -from-verbose 0 \ $(if $(EVABUILTINS), -eva-builtin=$(call fc_list,$(EVABUILTINS)),) \ $(if $(EVAUSESPECS), -eva-use-spec $(call fc_list,$(EVAUSESPECS)),) FCFLAGS ?= -- GitLab From 01c1286fb1f6e62717673f99a5eb98e6dc537059 Mon Sep 17 00:00:00 2001 From: Romain Maliach-Auguste <romain.maliach-auguste@cea.fr> Date: Tue, 8 Sep 2020 15:52:56 +0200 Subject: [PATCH 068/255] Recommend sourcing autocompletion with frama-c-config --- doc/userman/user-start.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/userman/user-start.tex b/doc/userman/user-start.tex index abb1fbebdaf..0822ca20404 100644 --- a/doc/userman/user-start.tex +++ b/doc/userman/user-start.tex @@ -266,7 +266,7 @@ content of the file to \texttt{\~{}/.bash\_completion} \item You can \texttt{source} the file, e.g. from your \texttt{.bashrc} with the following command: \begin{verbatim} -source $(frama-c -print-share-path)/autocomplete_frama-c || true +source $(frama-c-config -share)/autocomplete_frama-c || true \end{verbatim} \end{itemize} -- GitLab From 962e8d6501f889d723ce732106db2885e828987b Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 21 Aug 2020 16:58:23 +0200 Subject: [PATCH 069/255] [Kernel] refactor file.ml and add option -print-cpp-commands --- src/kernel_services/ast_queries/file.ml | 58 ++++++++++++------- .../plugin_entry_points/kernel.ml | 11 ++++ .../plugin_entry_points/kernel.mli | 3 + 3 files changed, 52 insertions(+), 20 deletions(-) diff --git a/src/kernel_services/ast_queries/file.ml b/src/kernel_services/ast_queries/file.ml index 319f65e11a9..5e18e6c1492 100644 --- a/src/kernel_services/ast_queries/file.ml +++ b/src/kernel_services/ast_queries/file.ml @@ -410,7 +410,7 @@ let safe_remove_file (f : Datatype.Filepath.t) = if not (Kernel.is_debug_key_enabled Kernel.dkey_parser) then Extlib.safe_remove (f :> string) -let build_cpp_cmd cmdl supp_args in_file out_file = +let replace_in_cpp_cmd cmdl supp_args in_file out_file = (* using Filename.quote for filenames which contain space or shell metacharacters *) let in_file = Filename.quote in_file @@ -428,16 +428,10 @@ let build_cpp_cmd cmdl supp_args in_file out_file = ignore (Str.search_forward regexp cmdl 0); (* Try to find one match *) Str.global_substitute regexp substitute cmdl with Not_found -> - Format.sprintf "%s %s -o %s %s" cmdl supp_args out_file in_file + Format.sprintf "%s %s %s -o %s" cmdl supp_args in_file out_file -let parse_cabs = function - | NoCPP f -> - if not (Sys.file_exists (f:>string)) then - Kernel.abort "preprocessed file %a does not exist" - Filepath.Normalized.pretty f; - Kernel.feedback "Parsing %a (no preprocessing)" - Datatype.Filepath.pretty f; - Frontc.parse f () +let build_cpp_cmd = function + | NoCPP _ | External _ -> None | NeedCPP (f, cmdl, is_gnu_like) -> if not (Sys.file_exists (f :> string)) then Kernel.abort "source file %a does not exist" @@ -525,12 +519,24 @@ let parse_cabs = function (Kernel.CppExtraArgs.get () @ extra_args @ supported_cpp_arch_args) include_args define_args in + let cpp_command = replace_in_cpp_cmd cmdl supp_args (f:>string) (ppf:>string) in Kernel.feedback ~dkey:Kernel.dkey_pp - "@{<i>preprocessing@} with \"%s %s %a\"" - cmdl supp_args Filepath.Normalized.pretty f; + "@{<i>preprocessing@} with \"%s\"" + cpp_command; + Some (cpp_command, ppf, supported_cpp_arch_args) + +let parse_cabs cpp_command_no_output = function + | NoCPP f -> + if not (Sys.file_exists (f:>string)) then + Kernel.abort "preprocessed file %a does not exist" + Filepath.Normalized.pretty f; + Kernel.feedback "Parsing %a (no preprocessing)" + Datatype.Filepath.pretty f; + Frontc.parse f () + | NeedCPP (f, cmdl, is_gnu_like) -> + let cpp_command, ppf, supported_cpp_arch_args = Extlib.the cpp_command_no_output in Kernel.feedback "Parsing %a (with preprocessing)" Datatype.Filepath.pretty f; - let cpp_command = build_cpp_cmd cmdl supp_args (f:>string) (ppf:>string) in if Sys.command cpp_command <> 0 then begin safe_remove_file ppf; let possible_cause = @@ -579,7 +585,7 @@ let parse_cabs = function in let ppf' = try Logic_preprocess.file ".c" - (build_cpp_cmd cmdl pp_annot_supp_args) + (replace_in_cpp_cmd cmdl pp_annot_supp_args) (ppf : Filepath.Normalized.t :> string) with Sys_error _ as e -> safe_remove_file ppf; @@ -607,9 +613,10 @@ let parse_cabs = function "could not find a suitable plugin for parsing %a." Filepath.Normalized.pretty f -let to_cil_cabs f = +let to_cil_cabs cpp_cmds_and_args f = try - let a,c = parse_cabs f in + let cpp_command = List.assoc f cpp_cmds_and_args in + let a,c = parse_cabs cpp_command f in Kernel.debug ~dkey:Kernel.dkey_file_print_one "result of parsing %s:@\n%a" (get_name f) Cil_printer.pp_file a; if Errorloc.had_errors () then raise Exit; @@ -630,7 +637,7 @@ let to_cil_cabs f = let () = let handle f = let preprocess = - build_cpp_cmd (fst (get_preprocessor_command ())) "-nostdinc" + replace_in_cpp_cmd (fst (get_preprocessor_command ())) "-nostdinc" in let ppf = try Logic_preprocess.file ".c" preprocess f @@ -667,12 +674,12 @@ let isRoot g = keepTypes | _ -> false -let files_to_cabs_cil files = +let files_to_cabs_cil files cpp_commands = Kernel.feedback ~level:2 "parsing"; (* Parsing and merging must occur in the very same order. Otherwise the order of files on the command line will not be consistently handled. *) - let cil_cabs = List.fold_left (fun acc f -> to_cil_cabs f :: acc) [] files in + let cil_cabs = List.fold_left (fun acc f -> to_cil_cabs cpp_commands f :: acc) [] files in let cil_files, cabs_files = List.split cil_cabs in (* fold_left reverses the list order. This is an issue with pre-registered files. *) @@ -1601,7 +1608,18 @@ let init_cil () = let prepare_from_c_files () = init_cil (); let files = Files.get () in (* Allow pre-registration of prolog files *) - let cil, cabs_files = files_to_cabs_cil files in + let cpp_commands = List.map (fun f -> (f, build_cpp_cmd f)) files in + if Kernel.PrintCppCommands.get () then begin + List.iter (fun (_f, opt_cpp_cmd) -> + match opt_cpp_cmd with + | None -> () + | Some (cpp_cmd, _ppf, _) -> + Kernel.result + "Preprocessing command:@.%s" cpp_cmd + ) cpp_commands; + raise Cmdline.Exit + end; + let cil, cabs_files = files_to_cabs_cil files cpp_commands in prepare_cil_file cil; (* prepare_cil_file may call syntactic transformers, that will ultimately reset the untyped AST. Restore it here. *) diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 0d5cfc8f14b..c8b9a0504ac 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -1002,6 +1002,17 @@ module CppGnuLike = have pre-processing issues with a custom pre-processor." end) +let () = Parameter_customize.set_group parsing +let () = Parameter_customize.do_not_reset_on_copy () +module PrintCppCommands = + False + (struct + let module_name = "PrintCppCommands" + let option_name = "-print-cpp-commands" + let help = "prints the preprocessing command(s) used by Frama-C \ + and exits." + end) + let () = Parameter_customize.set_group parsing let () = Parameter_customize.do_not_reset_on_copy () module FramaCStdLib = diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index 1a79a063bcc..d96de699742 100644 --- a/src/kernel_services/plugin_entry_points/kernel.mli +++ b/src/kernel_services/plugin_entry_points/kernel.mli @@ -394,6 +394,9 @@ module CppExtraArgsPerFile: Parameter_sig.Filepath_map with type value = string module CppGnuLike: Parameter_sig.Bool (** Behavior of option "-cpp-frama-c-compliant" *) +module PrintCppCommands: Parameter_sig.Bool +(** Behavior of option "-print-cpp-commands" *) + module FramaCStdLib: Parameter_sig.Bool (** Behavior of option "-frama-c-stdlib" *) -- GitLab From 51f3cfcb74bc1ed397e5e15e303164653714ed60 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 7 Sep 2020 17:15:04 +0200 Subject: [PATCH 070/255] [Kernel] add test for -print-cpp-commands --- tests/syntax/cpp-command.c | 3 ++- tests/syntax/oracle/cpp-command.4.res.oracle | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 tests/syntax/oracle/cpp-command.4.res.oracle diff --git a/tests/syntax/cpp-command.c b/tests/syntax/cpp-command.c index e3f75a6e3fc..8032aac2c72 100644 --- a/tests/syntax/cpp-command.c +++ b/tests/syntax/cpp-command.c @@ -1,7 +1,8 @@ /* run.config* - FILTER: sed 's:/\(tmp\|var\|build\)/[^ ]*\.i:/tmp/FILE.i:g' + FILTER: sed "s:/\(tmp\|var\|build\)/[^ ]*\.i:/tmp/FILE.i:g; s:$PWD/::" OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo [\$(basename '%1') \$(basename '%1') \$(basename '%i') \$(basename '%input')] ['%2' '%2' '%o' '%output'] ['%args']" OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %%1 = \$(basename '%1') %%2 = '%2' %%args = '%args'" OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "printf \"%s\" \"using \\% has no effect : \$(basename \"\%input\")\"" OPT: -no-autoload-plugins -cpp-frama-c-compliant -cpp-command "echo %var is not an interpreted placeholder" + OPT: -no-autoload-plugins -print-cpp-commands */ diff --git a/tests/syntax/oracle/cpp-command.4.res.oracle b/tests/syntax/oracle/cpp-command.4.res.oracle new file mode 100644 index 00000000000..bce7863f910 --- /dev/null +++ b/tests/syntax/oracle/cpp-command.4.res.oracle @@ -0,0 +1,2 @@ +[kernel] Preprocessing command: + gcc -E -C -I. -I./share/libc -D__FRAMAC__ -D__FC_MACHDEP_X86_32 -dD -nostdinc -m32 'tests/syntax/cpp-command.c' -o '/tmp/FILE.i' -- GitLab From 656b14adf2c08d9a86ea9b09de49d3ff6c827224 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 1 Sep 2020 10:46:07 +0200 Subject: [PATCH 071/255] [Kernel] document option -print-cpp-commands --- doc/userman/user-changes.tex | 5 + doc/userman/user-sources.tex | 46 +- man/frama-c.1 | 786 +++++++++++++---------------------- man/frama-c.1.header | 2 +- man/frama-c.1.md | 3 + 5 files changed, 325 insertions(+), 517 deletions(-) diff --git a/doc/userman/user-changes.tex b/doc/userman/user-changes.tex index a688b58cb2e..de091b1c3a4 100644 --- a/doc/userman/user-changes.tex +++ b/doc/userman/user-changes.tex @@ -5,6 +5,11 @@ release. First we list changes of the last release. \section*{\nextframacversion} +\begin{itemize} +\item \textbf{Preparing the Sources:} added option + \texttt{-print-cpp-commands}. +\end{itemize} + \section*{21.0 (Scandium)} \begin{itemize} diff --git a/doc/userman/user-sources.tex b/doc/userman/user-sources.tex index 030d362f6f8..0bb8b4360ed 100644 --- a/doc/userman/user-sources.tex +++ b/doc/userman/user-sources.tex @@ -29,34 +29,38 @@ in the figure. Note that some plug-ins, such as \textsf{Variadic} (described in chapter~\ref{user-variadic}), perform further AST transformations before most analyses are run. -\section{Pre-processing the Source Files}\label{sec:preprocessing} +\section{Preprocessing the Source Files}\label{sec:preprocessing} The list of files to analyze must be provided on the command line, or chosen interactively in the GUI. Files with the suffix -{\tt .i} are assumed to be already pre-processed \C files. \FramaC -pre-processes the other files with the following command. +{\tt .i} are assumed to be already preprocessed \C files. \FramaC +preprocesses {\tt .c} and {\tt .h} files with the following basic command: \begin{shell} \$ gcc -C -E -I . \end{shell} +Plus some architecture-dependent flags. The {\em exact} preprocessing command +line can be obtained via options \texttt{-kernel-msg-key pp} and +\optiondef{-}{print-cpp-commands} (the latter exits \FramaC after printing). Option \optiondef{-}{cpp-extra-args} can be used to add arguments to the -default pre-processing command, typically via the inclusion of defines +default preprocessing command, typically via the inclusion of defines (\texttt{-D} switches) and header directories (\texttt{-I} switches), as in \texttt{-cpp-extra-args="-DDEBUG -DARCH=ia32 -I./headers"}. You can also add arguments on a per-file basis, using option \optiondef{-}{cpp-extra-args-per-file}. -If you need to, you can also {\em replace} the pre-processing command +If you need to, you can also {\em replace} the preprocessing command entirely with option \optiondef{-}{cpp-command}. Placeholders (see below) can be used for advanced commands. -If no placeholders are used, the pre-processor is invoked in the +If no placeholders are used, the preprocessor is invoked in the following way. \begin{commands} -\texttt{<cmd> <args> -o <output file> <input file>} +\texttt{<cmd> <args> <input file> -o <output file>} \end{commands} -In this command, \texttt{<output file>} is chosen by \FramaC while -\texttt{<input file>} is one of the filenames provided by the user. +In this command, \texttt{<output file>} is a temporary filename chosen by +\FramaC while \texttt{<input file>} is one of the filenames provided by the +user. For commands which do not follow this pattern, it is also possible to use the following placeholders: @@ -103,29 +107,29 @@ are ignored. Also note that the use of the database simply adds flags be specified by the user. In all of the above cases, -\acsl annotations are pre-processed by default (option \optiondef{-}{pp-annot} -is set by default). Unless a custom pre-processor is specified +\acsl annotations are preprocessed by default (option \optiondef{-}{pp-annot} +is set by default). Unless a custom preprocessor is specified (via \optionuse{-}{cpp-frama-c-compliant}), \FramaC considers that \gcc is -installed and uses it as pre-processor. -If you do \emph{not} want annotations to be pre-processed, you need to pass +installed and uses it as preprocessor. +If you do \emph{not} want annotations to be preprocessed, you need to pass option \texttt{-no-pp-annot} to \FramaC. Note that some headers in the standard C library provided with \FramaC (described below) use such annotations, therefore it might be necessary to disable inclusion of such headers. -Also note that ACSL annotations are pre-processed separately from the C +Also note that ACSL annotations are preprocessed separately from the C code in a second pass, and that arguments given as \texttt{-cpp-extra-args} are -\emph{not} given to the second pass of pre-processing. Instead, +\emph{not} given to the second pass of preprocessing. Instead, \texttt{-pp-annot} relies on the ability of \gcc to output all macro definitions (including those given with \texttt{-D}) in the -pre-processed file. In particular, \texttt{-cpp-extra-args} must be +preprocessed file. In particular, \texttt{-cpp-extra-args} must be used if you are including header files who behave differently depending on the number of times they are included. In addition, files having the suffix \texttt{.ci} will be considered as needing preprocessing for ACSL annotations only. Those files may contain -\texttt{\#define} directives and annotations are pre-processed as explained in +\texttt{\#define} directives and annotations are preprocessed as explained in the previous paragraph. This allows to have macros in ACSL annotations while -using a non-GNU-like pre-processor. +using a non-GNU-like preprocessor. \begin{important} An experimental, incomplete, C standard library is bundled with \FramaC and installed @@ -143,7 +147,7 @@ using a non-GNU-like pre-processor. \section{Merging the Source Code files} -After pre-processing, \FramaC parses, type-checks and links the source +After preprocessing, \FramaC parses, type-checks and links the source code. It also performs these operations for the \acsl annotations optionally present in the program. Together, these steps form the \emph{merging} phase of the creation of an analysis project. @@ -347,7 +351,7 @@ supported are typedefs redefinition. a certain number of C macros. They are summarized below. \begin{description} -\item \textttdef{\_\_FRAMAC\_\_}: defined to 1 during pre-processing by \FramaC, +\item \textttdef{\_\_FRAMAC\_\_}: defined to 1 during preprocessing by \FramaC, as if the user had added \texttt{-D\_\_FRAMAC\_\_} to the command line. Useful for conditional compilation and detection of an execution by \FramaC. @@ -465,7 +469,7 @@ preparation itself succeeds, by running \FramaC without any option. \$ frama-c <input files> \end{shell} -If you need to use other options for pre-processing or normalizing the source +If you need to use other options for preprocessing or normalizing the source code, you can use the option \optiondef{-}{typecheck} for the same purpose. For instance: \begin{shell} diff --git a/man/frama-c.1 b/man/frama-c.1 index 66cfcd0fea3..6eb485315a7 100644 --- a/man/frama-c.1 +++ b/man/frama-c.1 @@ -25,45 +25,45 @@ .\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file .\" and run `make man/frama-c.1`. -.TH FRAMA-C 1 2020-04-02 +.TH FRAMA-C 1 2020-09-01 .SH NAME .PP -frama\-c[.byte] \- a static analyzer for C programs +frama-c[.byte] - a static analyzer for C programs .PP -frama\-c\-gui[.byte] \- the graphical interface of frama\-c +frama-c-gui[.byte] - the graphical interface of frama-c .SH SYNOPSIS .PP -\f[B]frama\-c\f[] [ \f[I]options\f[] ] \f[I]files\f[] +\f[B]frama-c\f[R] [ \f[I]options\f[R] ] \f[I]files\f[R] .SH DESCRIPTION .PP -\f[B]frama\-c\f[] is a suite of tools dedicated to the analysis of +\f[B]frama-c\f[R] is a suite of tools dedicated to the analysis of source code written in C. It gathers several analysis techniques in a single collaborative framework. This framework can be extended by additional plugins placed in the -\f[B]$FRAMAC_PLUGIN\f[] directory. +\f[B]$FRAMAC_PLUGIN\f[R] directory. The command .RS .PP -frama\-c \-\-plugins +frama-c --plugins .RE .PP will provide the full list of the plugins that are currently installed. .PP -\f[B]frama\-c\-gui\f[] is the graphical user interface of -\f[B]frama\-c\f[]. -It features the same options as the command\-line version. +\f[B]frama-c-gui\f[R] is the graphical user interface of +\f[B]frama-c\f[R]. +It features the same options as the command-line version. .PP -\f[B]frama\-c.byte\f[] and \f[B]frama\-c\-gui.byte\f[] are the OCaml -bytecode versions of the command\-line and graphical user interface +\f[B]frama-c.byte\f[R] and \f[B]frama-c-gui.byte\f[R] are the OCaml +bytecode versions of the command-line and graphical user interface respectively. .PP -By default, Frama\-C recognizes \f[I].c\f[] files as C files needing -pre\-processing and \f[I].i\f[] files as C files having been already -pre\-processed. +By default, Frama-C recognizes \f[I].c\f[R] files as C files needing +pre-processing and \f[I].i\f[R] files as C files having been already +pre-processed. Some plugins may extend the list of recognized files. -Pre\-processing can be customized through the \f[B]\-cpp\-command\f[] -and \f[B]\-cpp\-extra\-args\f[] options. +Pre-processing can be customized through the \f[B]-cpp-command\f[R] and +\f[B]-cpp-extra-args\f[R] options. .SH OPTIONS .SS Syntax .PP @@ -71,738 +71,553 @@ Options taking an additional parameter can also be written under the form .RS .PP -\-\f[I]option\f[]=\f[I]param\f[] +-\f[I]option\f[R]=\f[I]param\f[R] .RE .PP -This form is mandatory when \f[I]param\f[] starts with a dash (`\-'). +This form is mandatory when \f[I]param\f[R] starts with a dash (`-'). .PP Most options that take no parameter have a corresponding .RS .PP -\-no\-\f[I]option\f[] +-no-\f[I]option\f[R] .RE .PP option which has the opposite effect. .SS Help options .TP -.B \-help +.B -help gives a short usage notice. -.RS -.RE .TP -.B \-kernel\-help -prints the list of options recognized by Frama\-C's kernel -.RS -.RE +.B -kernel-help +prints the list of options recognized by Frama-C\[cq]s kernel .TP -.B \-explain +.B -explain prints a help message for each other option given on the command line -.RS -.RE .TP -.B \-verbose \f[I]n\f[] +.B -verbose \f[I]n\f[R] sets verbosity level. Defaults to 1. Setting it to 0 will output less progress messages. -This level can also be set on a per\-\f[I]plugin\f[] basis, with option -\-\f[I]plugin\f[]\-\f[B]verbose\f[] \f[I]n\f[]. +This level can also be set on a per-\f[I]plugin\f[R] basis, with option +-\f[I]plugin\f[R]-\f[B]verbose\f[R] \f[I]n\f[R]. Verbosity level of the kernel can be controlled with option -\f[B]\-kernel\-verbose\f[] \f[I]n\f[]. -.RS -.RE +\f[B]-kernel-verbose\f[R] \f[I]n\f[R]. .TP -.B \-debug \f[I]n\f[] +.B -debug \f[I]n\f[R] sets debugging level. Defaults to 0, meaning no debugging messages. -This option has the same per\-plugin (and kernel) specializations as -\f[B]\-verbose\f[]. -.RS -.RE +This option has the same per-plugin (and kernel) specializations as +\f[B]-verbose\f[R]. .TP -.B \-quiet +.B -quiet sets verbosity and debugging level to 0. -.RS -.RE -.SS Options controlling Frama\-C's kernel +.SS Options controlling Frama-C\[cq]s kernel .TP -.B \-absolute\-valid\-range \f[I]min\-max\f[] -considers that all numerical addresses in the range \f[I]min\-max\f[] +.B -absolute-valid-range \f[I]min-max\f[R] +considers that all numerical addresses in the range \f[I]min-max\f[R] are valid. Bounds are parsed as OCaml integer constants. By default, all numerical addresses are considered invalid. -.RS -.RE .TP -.B \-add\-path \f[I]p1[,p2[\&...,pn]]\f[] -adds directories \f[I]p1\f[] through \f[I]pn\f[] to the list of +.B -add-path \f[I]p1[,p2[\&...,pn]]\f[R] +adds directories \f[I]p1\f[R] through \f[I]pn\f[R] to the list of directories in which plugins are searched. -.RS -.RE .TP -.B [\-no]\-aggressive\-merging +.B [-no]-aggressive-merging merges function definitions modulo renaming. Defaults to no. -.RS -.RE .TP -.B [\-no]\-allow\-duplication +.B [-no]-allow-duplication allows duplication of small blocks during normalization of tests and loops. Otherwise, normalization uses labels and gotos. -Bigger blocks and blocks with non\-trivial control flow are never +Bigger blocks and blocks with non-trivial control flow are never duplicated. Defaults to yes. -.RS -.RE .TP -.B [\-no]\-annot +.B [-no]-annot reads ACSL annotations. This is the default. -Annotations are pre\-processed by default. -Use \-no\-pp\-annot if you don't want to expand macros in annotations. -.RS -.RE +Annotations are pre-processed by default. +Use -no-pp-annot if you don\[cq]t want to expand macros in annotations. .TP -.B \-big\-ints\-hex \f[I]max\f[] -integers larger than \f[I]max\f[] are displayed in hexadecimal (by +.B -big-ints-hex \f[I]max\f[R] +integers larger than \f[I]max\f[R] are displayed in hexadecimal (by default, all integers are displayed in decimal). -.RS -.RE .TP -.B \-check +.B -check performs integrity checks on the internal AST (for developers only). -.RS -.RE .TP -.B [\-no]\-asm\-contracts -generates contracts for assembly code written according to gcc's +.B [-no]-asm-contracts +generates contracts for assembly code written according to gcc\[cq]s extended syntax. Defaults to yes. -.RS -.RE .TP -.B [\-no]\-asm\-contracts\-auto\-validate +.B [-no]-asm-contracts-auto-validate automatically marks contracts generated from asm as valid. Defaults to no. -.RS -.RE .TP -.B \-c11 +.B -c11 enables (partial) C11 compatibility, e.g.\ typedef redefinitions. Defaults to no. -.RS -.RE .TP -.B [\-no]\-collapse\-call\-cast +.B [-no]-collapse-call-cast allows implicit cast between the value returned by a function and the lvalue it is assigned to. Otherwise, a temporary variable is used and the cast is made explicit. Defaults to yes. -.RS -.RE .TP -.B [\-no]\-constfold +.B [-no]-constfold folds all syntactically constant expressions in the code before analyses. Defaults to no. -.RS -.RE .TP -.B \-const\-readonly +.B -const-readonly variables with const qualifier must be actually constant. Defaults to yes. -The opposite option is \f[B]\-unsafe\-writable\f[]. -.RS -.RE +The opposite option is \f[B]-unsafe-writable\f[R]. .TP -.B [\-no]\-continue\-annot\-error -when analyzing an annotation, the default behavior (the \f[B]\-no\f[] +.B [-no]-continue-annot-error +when analyzing an annotation, the default behavior (the \f[B]-no\f[R] version of this option) when a typechecking error occurs is to reject the source file as is the case for typechecking errors within the C code. With this option on, the typechecker will only output a warning and -discard the annotation but typeâ€checking will continue (errors in C code -are still fatal, though). +discard the annotation but type\[hy]checking will continue (errors in C +code are still fatal, though). .PD 0 .P .PD -\f[B]Deprecated\f[]: use \f[B]\-kernel\-warn\-key annot\-error\f[] +\f[B]Deprecated\f[R]: use \f[B]-kernel-warn-key annot-error\f[R] instead. -.RS -.RE .TP -.B \-cpp\-command \f[I]cmd\f[] -uses \f[I]cmd\f[] as the command to pre\-process C files. -Defaults to the \f[B]CPP\f[] environment variable or to -.RS -.RE +.B -cpp-command \f[I]cmd\f[R] +uses \f[I]cmd\f[R] as the command to pre-process C files. +Defaults to the \f[B]CPP\f[R] environment variable or to .RS .PP -gcc \-C \-E \-I. +gcc -C -E -I. .RE .PP if it is not set. If unset, the command is built as follows: .RS .PP -CPP \-o +CPP -o .RE .PP -\f[I]%1\f[] and \f[I]%2\f[] can be used into the \f[B]CPP\f[] string to -mark the position of \f[I]\f[] and \f[I]\f[] respectively. +\f[I]%1\f[R] and \f[I]%2\f[R] can be used into the \f[B]CPP\f[R] string +to mark the position of \f[I]\f[R] and \f[I]\f[R] respectively. Note that this option is often better replaced by -\f[B]\-cpp\-extra\-args\f[]. +\f[B]-cpp-extra-args\f[R]. .TP -.B \-cpp\-extra\-args \f[I]args\f[] -gives additional arguments to the pre\-processor. -Pre\-processing annotations is done in two separate pre\-processing +.B -cpp-extra-args \f[I]args\f[R] +gives additional arguments to the pre-processor. +Pre-processing annotations is done in two separate pre-processing stages. The first one is a normal pass on the C code which retains macro definitions. These are then used in the second pass during which annotations are -pre\-processed. -\f[I]args\f[] are used only for the first pass, so that arguments that +pre-processed. +\f[I]args\f[R] are used only for the first pass, so that arguments that should not be used twice (such as additional include directives or macro -definitions) must thus go there instead of \f[B]\-cpp\-command\f[]. -.RS -.RE +definitions) must thus go there instead of \f[B]-cpp-command\f[R]. .TP -.B \-cpp\-extra\-args\-per\-file \f[I]file1:args1,\&...,filen:argsn\f[] -like \f[B]\-cpp\-extra\-args\f[], but the arguments only apply to the +.B -cpp-extra-args-per-file \f[I]file1:args1,\&...,filen:argsn\f[R] +like \f[B]-cpp-extra-args\f[R], but the arguments only apply to the specified files. -.RS -.RE .TP -.B [\-no]\-cpp\-frama\-c\-compliant -indicates that the chosen preprocessor complies to some Frama\-C +.B [-no]-cpp-frama-c-compliant +indicates that the chosen preprocessor complies to some Frama-C requirements, such as accepting the same set of options as GNU cpp, and -accepting architecture\-specific options such as \-m32/\-m64. +accepting architecture-specific options such as -m32/-m64. Default values depend on the installed preprocessor at configure time. -See also \f[B]\-pp\-annot\f[]. -.RS -.RE +See also \f[B]-pp-annot\f[R]. .TP -.B [\-no]\-autoload\-plugins +.B [-no]-autoload-plugins when on, load all the dynamic plugins found in the search path (see -\f[B]\-print\-plugin\-path\f[] for more information on the default -search path). -Otherwise, only plugins requested by \f[B]\-load\-module\f[] will be +\f[B]-print-plugin-path\f[R] for more information on the default search +path). +Otherwise, only plugins requested by \f[B]-load-module\f[R] will be loaded. Defaults to on. -.RS -.RE .TP -.B \-enums \f[I]repr\f[] +.B -enums \f[I]repr\f[R] choose the way the representation of enumerated types is determined. -\f[B]frama\-c \-enums help\f[] gives the list of available options. -Default is \f[B]gcc\-enums\f[]. -.RS -.RE +\f[B]frama-c -enums help\f[R] gives the list of available options. +Default is \f[B]gcc-enums\f[R]. .TP -.B \-float\-digits \f[I]n\f[] -when outputting floating\-point numbers, display \f[I]n\f[] digits. +.B -float-digits \f[I]n\f[R] +when outputting floating-point numbers, display \f[I]n\f[R] digits. Defaults to 12. -.RS -.RE .TP -.B \-float\-flush\-to\-zero +.B -float-flush-to-zero floating point operations flush to zero. -.RS -.RE .TP -.B \-float\-hex +.B -float-hex display floats as hexadecimal. -.RS -.RE .TP -.B \-float\-normal +.B -float-normal display floats with the standard OCaml routine. -.RS -.RE .TP -.B \-float\-relative -display float intervals as [ \f[I]lower_bound\f[]++\f[I]width\f[] ]. -.RS -.RE +.B -float-relative +display float intervals as [ \f[I]lower_bound\f[R]++\f[I]width\f[R] ]. .TP -.B [\-no]\-frama\-c\-stdlib -adds \f[B]\-I$FRAMAC_SHARE/libc\f[] to the options given to the cpp +.B [-no]-frama-c-stdlib +adds \f[B]-I$FRAMAC_SHARE/libc\f[R] to the options given to the cpp command. -If \f[B]\-cpp\-frama\-c\-compliant\f[] is not false, also adds -\f[B]\-nostdinc\f[] to prevent an inconsistent mix of system and -Frama\-C header files. +If \f[B]-cpp-frama-c-compliant\f[R] is not false, also adds +\f[B]-nostdinc\f[R] to prevent an inconsistent mix of system and Frama-C +header files. Defaults to yes. -.RS -.RE .TP -.B \-implicit\-function\-declaration \f[I]action\f[] +.B -implicit-function-declaration \f[I]action\f[R] warns or aborts when a function is called before it has been declared. -\f[I]action\f[] can be one of \f[B]ignore\f[], \f[B]warn\f[], or -\f[B]error\f[]. -Defaults to \f[B]warn\f[]. +\f[I]action\f[R] can be one of \f[B]ignore\f[R], \f[B]warn\f[R], or +\f[B]error\f[R]. +Defaults to \f[B]warn\f[R]. .PD 0 .P .PD -\f[B]Deprecated\f[]: use \f[B]\-kernel\-warn\-key -typing:implicit\-function\-declaration\f[] instead. -.RS -.RE +\f[B]Deprecated\f[R]: use \f[B]-kernel-warn-key +typing:implicit-function-declaration\f[R] instead. .TP -.B \-initialized\-padding\-locals +.B -initialized-padding-locals implicit initialization of locals sets padding bits to 0. If false, padding bits are left uninitialized. Defaults to yes. -.RS -.RE .TP -.B \-inline\-calls \f[I]f1,\&...,fn\f[] -syntactically inlines calls to functions \f[I]f1,\&...,fn\f[]. -Use \f[B]\@inline\f[] to select all functions with attribute -\f[I]inline\f[]. +.B -inline-calls \f[I]f1,\&...,fn\f[R] +syntactically inlines calls to functions \f[I]f1,\&...,fn\f[R]. +Use \f[B]\[at]inline\f[R] to select all functions with attribute +\f[I]inline\f[R]. Recursive functions are inlined only at the first level. Calls via function pointers are not inlined. -.RS -.RE .TP -.B \-journal\-disable +.B -journal-disable do not output a journal of the current session. -See \f[B]\-journal\-enable\f[]. -.RS -.RE +See \f[B]-journal-enable\f[R]. .TP -.B \-journal\-enable +.B -journal-enable on by default, dumps a journal of all the actions performed during the -current Frama\-C session in the form of an OCaml script that can be -replayed with \f[B]\-load\-script\f[]. -The name of the script can be set with the \f[B]\-journal\-name\f[] +current Frama-C session in the form of an OCaml script that can be +replayed with \f[B]-load-script\f[R]. +The name of the script can be set with the \f[B]-journal-name\f[R] option. -.RS -.RE .TP -.B \-journal\-name \f[I]name\f[] -sets the name of the journal file (without the \f[I].ml\f[] extension). -Defaults to \f[B]frama_c_journal\f[]. -.RS -.RE +.B -journal-name \f[I]name\f[R] +sets the name of the journal file (without the \f[I].ml\f[R] extension). +Defaults to \f[B]frama_c_journal\f[R]. .TP -.B \-json\-compilation\-database \f[I]path\f[] -use \f[I]path\f[] as a JSON compilation database (see +.B -json-compilation-database \f[I]path\f[R] +use \f[I]path\f[R] as a JSON compilation database (see <https://clang.llvm.org/docs/JSONCompilationDatabase.html> for more -information): each file preprocessed by Frama\-C will include -corresponding \f[B]\-I\f[] and \f[B]\-D\f[] flags according to the -specifications in \f[I]path\f[]. -If \f[I]path\f[] is a directory, use -\f[B]<path>/compile_commands.json\f[]. +information): each file preprocessed by Frama-C will include +corresponding \f[B]-I\f[R] and \f[B]-D\f[R] flags according to the +specifications in \f[I]path\f[R]. +If \f[I]path\f[R] is a directory, use +\f[B]<path>/compile_commands.json\f[R]. Disabled by default. -.RS -.RE .TP -.B [\-no]\-keep\-comments -tries to preserve comments when pretty\-printing the source code. +.B [-no]-keep-comments +tries to preserve comments when pretty-printing the source code. Defaults to no. -.RS -.RE .TP -.B [\-no]\-keep\-switch -when \f[B]\-simplify\-cfg\f[] is set, keeps switch statements. +.B [-no]-keep-switch +when \f[B]-simplify-cfg\f[R] is set, keeps switch statements. Defaults to no. -.RS -.RE .TP -.B \-keep\-unused\-specified\-functions -see \f[B]\-remove\-unused\-specified\-functions\f[]. -.RS -.RE +.B -keep-unused-specified-functions +see \f[B]-remove-unused-specified-functions\f[R]. .TP -.B \-keep\-unused\-types -see \f[B]\-remove\-unused\-types\f[]. -.RS -.RE +.B -keep-unused-types +see \f[B]-remove-unused-types\f[R]. .TP -.B \-kernel\-log \f[I]kind:file\f[] -copies log messages from the Frama\-C's kernel to file. -\f[I]kind\f[] specifies which kinds of messages to be copied (e.g. -\f[B]w\f[] for warnings, \f[B]e\f[] for errors, etc.). -See \f[B]\-kernel\-help\f[] for more details. -Can also be set on a per\-plugin basis, with option -\-\f[I]<plugin>\f[]\-\f[B]log\f[]. -.RS -.RE +.B -kernel-log \f[I]kind:file\f[R] +copies log messages from the Frama-C\[cq]s kernel to file. +\f[I]kind\f[R] specifies which kinds of messages to be copied +(e.g.\ \f[B]w\f[R] for warnings, \f[B]e\f[R] for errors, etc.). +See \f[B]-kernel-help\f[R] for more details. +Can also be set on a per-plugin basis, with option +-\f[I]<plugin>\f[R]-\f[B]log\f[R]. .TP -.B \-kernel\-msg\-key \f[I]k1,\&...,kn\f[] +.B -kernel-msg-key \f[I]k1,\&...,kn\f[R] controls the emission of messages based on categories. -Use \f[B]\-kernel\-msg\-key help\f[] to get a list of available -categories, and \f[B]\-kernel\-msg\-key=\[lq]*\[rq]\f[] to control all +Use \f[B]-kernel-msg-key help\f[R] to get a list of available +categories, and \f[B]-kernel-msg-key=\[lq]*\[rq]\f[R] to control all categories. -To disable a category, add a \f[B]\-\f[] before its name; to enable a -category, simply add its name, with an optional \f[B]+\f[] before it. -For instance, \f[B]\-kernel\-msg\-key=\-k1,k2\f[] will disable messages -from category \f[B]k1\f[] and enable those from category \f[B]k2\f[]. -Can also be set on a per\-plugin basis, with option -\-\f[I]<plugin>\f[]\-\f[B]msg\-key\f[]. +To disable a category, add a \f[B]-\f[R] before its name; to enable a +category, simply add its name, with an optional \f[B]+\f[R] before it. +For instance, \f[B]-kernel-msg-key=-k1,k2\f[R] will disable messages +from category \f[B]k1\f[R] and enable those from category \f[B]k2\f[R]. +Can also be set on a per-plugin basis, with option +-\f[I]<plugin>\f[R]-\f[B]msg-key\f[R]. Note that each plugin has its own set of categories. -.RS -.RE .TP -.B \-kernel\-warn\-key \f[I]k1=a1,\&...,kn=an\f[] +.B -kernel-warn-key \f[I]k1=a1,\&...,kn=an\f[R] controls the emission of warnings based on categories: for each warning -category \f[I]k\f[], associate action \f[I]a\f[]. -Use \f[B]\-kernel\-warn\-key help\f[] to get a list of available warning +category \f[I]k\f[R], associate action \f[I]a\f[R]. +Use \f[B]-kernel-warn-key help\f[R] to get a list of available warning categories and their currently associated actions. -The following actions can be set per category: \f[B]active\f[] (warn), -\f[B]feedback\f[], \f[B]error\f[], \f[B]abort\f[], \f[B]once\f[], -\f[B]feedback\-once\f[], \f[B]err\-once\f[]. -Omitting the action is equivalent to setting it to \f[B]active\f[]. -Warning categories can also be set on a per\-plugin basis, with option -\-\f[I]<plugin>\f[]\f[B]\-warn\-key\f[]. -.RS -.RE -.TP -.B [\-no]\-lib\-entry +The following actions can be set per category: \f[B]active\f[R] (warn), +\f[B]feedback\f[R], \f[B]error\f[R], \f[B]abort\f[R], \f[B]once\f[R], +\f[B]feedback-once\f[R], \f[B]err-once\f[R]. +Omitting the action is equivalent to setting it to \f[B]active\f[R]. +Warning categories can also be set on a per-plugin basis, with option +-\f[I]<plugin>\f[R]\f[B]-warn-key\f[R]. +.TP +.B [-no]-lib-entry indicates that the entry point is called during program execution. This implies in particular that global variables cannot be assumed to have their initial values. -The default is \f[B]\-no\-lib\-entry\f[]: the entry point is also the +The default is \f[B]-no-lib-entry\f[R]: the entry point is also the starting point of the program and globals have their initial value. -.RS -.RE .TP -.B \-load \f[I]file\f[] -loads the (previously saved) state contained in \f[I]file\f[]. -.RS -.RE +.B -load \f[I]file\f[R] +loads the (previously saved) state contained in \f[I]file\f[R]. .TP -.B \-load\-module \f[I]SPEC\f[] -dynamically load OCaml plug\-ins, modules and scripts. -Each \f[I]SPEC\f[] can be an OCaml source or object file, with or +.B -load-module \f[I]SPEC\f[R] +dynamically load OCaml plug-ins, modules and scripts. +Each \f[I]SPEC\f[R] can be an OCaml source or object file, with or without extension, or a Findlib package. Loading order is preserved and additional dependencies can be listed in -*\f[B].depend\f[] files. -.RS -.RE +*\f[B].depend\f[R] files. .TP -.B \-load\-script \f[I]SPEC\f[] -alias for option \f[B]\-load\-module\f[]. -.RS -.RE +.B -load-script \f[I]SPEC\f[R] +alias for option \f[B]-load-module\f[R]. .TP -.B \-machdep \f[I]machine\f[] -uses \f[I]machine\f[] as the current machine\-dependent configuration +.B -machdep \f[I]machine\f[R] +uses \f[I]machine\f[R] as the current machine-dependent configuration (size of the various integer types, endiandness, \&...). The list of currently supported machines is available through option -\f[I]\-machdep help\f[]. -Default is \f[B]x86_32\f[]. -.RS -.RE +\f[I]-machdep help\f[R]. +Default is \f[B]x86_32\f[R]. .TP -.B \-main \f[I]f\f[] -sets \f[I]f\f[] as the entry point of the analysis. -Defaults to \f[B]main\f[]. +.B -main \f[I]f\f[R] +sets \f[I]f\f[R] as the entry point of the analysis. +Defaults to \f[B]main\f[R]. By default, it is considered as the starting point of the program under analysis. -Use \f[B]\-lib\-entry\f[] if \f[I]f\f[] is supposed to be called in the +Use \f[B]-lib-entry\f[R] if \f[I]f\f[R] is supposed to be called in the middle of an execution. -.RS -.RE .TP -.B \-obfuscate +.B -obfuscate prints an obfuscated version of the code (where original identifiers are replaced by meaningless ones) and exits. The correspondence table between original and new symbols is kept at the beginning of the result. -.RS -.RE .TP -.B \-ocode \f[I]file\f[] -redirects pretty\-printed code to \f[I]file\f[] instead of standard +.B -ocode \f[I]file\f[R] +redirects pretty-printed code to \f[I]file\f[R] instead of standard output. -.RS -.RE .TP -.B [\-no]\-orig\-name +.B [-no]-orig-name During the normalization phase, some variables may get renamed when -different variables with the same name can co\-exist (e.g.\ a global +different variables with the same name can co-exist (e.g.\ a global variable and a formal parameter). When this option is on, a message is printed each time this occurs. Defaults to no. -.RS -.RE .TP -.B [\-no]\-pp\-annot -pre\-processes annotations. +.B [-no]-pp-annot +pre-processes annotations. This is currently only possible when using gcc (or GNU cpp) -pre\-processor. -The default is to pre\-process annotations when the default -pre\-processor is identified as GNU or GNU\-like. -See also \f[B]\-cpp\-frama\-c\-compliant\f[]. -.RS -.RE +pre-processor. +The default is to pre-process annotations when the default pre-processor +is identified as GNU or GNU-like. +See also \f[B]-cpp-frama-c-compliant\f[R]. .TP -.B [\-no]\-print -pretty\-prints the source code as normalized by CIL. +.B [-no]-print +pretty-prints the source code as normalized by CIL. Defaults to no. -.RS -.RE .TP -.B [\-no]\-print\-libc -expands \f[B]#include\f[] directives in the pretty\-printed CIL code for -files in the Frama\-C standard library. +.B -print-cpp-commands +outputs the preprocessing commands for all input files. +.TP +.B [-no]-print-libc +expands \f[B]#include\f[R] directives in the pretty-printed CIL code for +files in the Frama-C standard library. Defaults to no. -.RS -.RE .TP -.B \-print\-libpath -outputs the directory where the Frama\-C kernel library is installed. -.RS -.RE +.B -print-libpath +outputs the directory where the Frama-C kernel library is installed. .TP -.B \-print\-path -alias of \f[B]\-print\-share\-path\f[]. -.RS -.RE +.B -print-path +alias of \f[B]-print-share-path\f[R]. .TP -.B \-print\-plugin\-path -outputs the directory where Frama\-C searches its plugins (can be -overridden by the \f[B]FRAMAC_PLUGIN\f[] variable and the -\f[B]\-add\-path\f[] option). -.RS -.RE +.B -print-plugin-path +outputs the directory where Frama-C searches its plugins (can be +overridden by the \f[B]FRAMAC_PLUGIN\f[R] variable and the +\f[B]-add-path\f[R] option). .TP -.B \-print\-share\-path -outputs the directory where Frama\-C stores its data (can be overridden -by the \f[B]FRAMAC_SHARE\f[] variable). -.RS -.RE +.B -print-share-path +outputs the directory where Frama-C stores its data (can be overridden +by the \f[B]FRAMAC_SHARE\f[R] variable). .TP -.B [\-no]\-remove\-exn +.B [-no]-remove-exn transforms throw and try/catch statements into normal C functions. Defaults to no, unless the input source language has an exception mechanism. -.RS -.RE .TP -.B \-remove\-inlined \f[I]f1,\&...,fn\f[] -removes inlined functions \f[I]f1,\&...,fn\f[] from the AST, which must -have been given to \f[B]\-inline\-calls\f[]. +.B -remove-inlined \f[I]f1,\&...,fn\f[R] +removes inlined functions \f[I]f1,\&...,fn\f[R] from the AST, which must +have been given to \f[B]-inline-calls\f[R]. Note: this option does not check if the given functions were fully inlined. -.RS -.RE .TP -.B \-remove\-projects \f[I]p1,\&...,pn\f[] -removes the given projects \f[I]p1,\&...,pn\f[]. -\f[B]\@all_but_current\f[] removes all projects but the current one. -.RS -.RE +.B -remove-projects \f[I]p1,\&...,pn\f[R] +removes the given projects \f[I]p1,\&...,pn\f[R]. +\f[B]\[at]all_but_current\f[R] removes all projects but the current one. .TP -.B \-remove\-unused\-specified\-functions +.B -remove-unused-specified-functions keeps function prototypes that have an ACSL specification but are not used in the code. This is the default. -Functions having the attribute \f[B]FRAMAC_BUILTIN\f[] are always kept. -.RS -.RE +Functions having the attribute \f[B]FRAMAC_BUILTIN\f[R] are always kept. .TP -.B \-remove\-unused\-types +.B -remove-unused-types remove types and struct/union/enum declarations that are not referenced anywhere else in the code. This is the default. -Use \f[B]\-keep\-unused\-types\f[] to keep these definitions. -.RS -.RE +Use \f[B]-keep-unused-types\f[R] to keep these definitions. .TP -.B \-safe\-arrays +.B -safe-arrays for multidimensional arrays or arrays that are fields inside structs, assumes that all accesses must be in bound (set by default). -The opposite option is \f[B]\-unsafe\-arrays\f[]. -.RS -.RE +The opposite option is \f[B]-unsafe-arrays\f[R]. .TP -.B \-save \f[I]file\f[] -saves Frama\-C's state into \f[I]file\f[] after analyses have taken +.B -save \f[I]file\f[R] +saves Frama-C\[cq]s state into \f[I]file\f[R] after analyses have taken place. -.RS -.RE .TP -.B \-session \f[I]s\f[] -sets \f[I]s\f[] as the directory in which session files are searched. -.RS -.RE +.B -session \f[I]s\f[R] +sets \f[I]s\f[R] as the directory in which session files are searched. .TP -.B [\-no]\-set\-project\-as\-default +.B [-no]-set-project-as-default the current project becomes the default one (and so future -\f[B]\-then\f[] sequences are applied on it). +\f[B]-then\f[R] sequences are applied on it). Defaults to no. -.RS -.RE .TP -.B [\-no]\-simplify\-cfg -removes \f[B]break\f[], \f[B]continue\f[] and \f[B]switch\f[] statements -before analyses. +.B [-no]-simplify-cfg +removes \f[B]break\f[R], \f[B]continue\f[R] and \f[B]switch\f[R] +statements before analyses. Defaults to no. -.RS -.RE .TP -.B [\-no]\-simplify\-trivial\-loops -simplifies trivial loops such as \f[B]do \&... while (0)\f[] loops. +.B [-no]-simplify-trivial-loops +simplifies trivial loops such as \f[B]do \&... while (0)\f[R] loops. Defaults to yes. -.RS -.RE .TP -.B \-then -allows one to compose analyses: a first run of Frama\-C will occur with -the options before \f[B]\-then\f[] and a second run will be done with -the options after \f[B]\-then\f[] on the current project from the first +.B -then +allows one to compose analyses: a first run of Frama-C will occur with +the options before \f[B]-then\f[R] and a second run will be done with +the options after \f[B]-then\f[R] on the current project from the first run. -.RS -.RE .TP -.B \-then\-last -like \f[B]\-then\f[], but the second group of actions is executed on the +.B -then-last +like \f[B]-then\f[R], but the second group of actions is executed on the last project created by a program transformer. -.RS -.RE .TP -.B \-then\-on \f[I]prj\f[] -similar to \f[B]\-then\f[] except that the second run is performed in -project \f[I]prj\f[]. -If no such project exists, Frama\-C exits with an error. -.RS -.RE +.B -then-on \f[I]prj\f[R] +similar to \f[B]-then\f[R] except that the second run is performed in +project \f[I]prj\f[R]. +If no such project exists, Frama-C exits with an error. .TP -.B \-then\-replace -like \f[B]\-then\-last\f[], but also removes the previous current +.B -then-replace +like \f[B]-then-last\f[R], but also removes the previous current project. -.RS -.RE .TP -.B \-time \f[I]file\f[] -appends user time and date in the given file when Frama\-C exits. -.RS -.RE +.B -time \f[I]file\f[R] +appends user time and date in the given file when Frama-C exits. .TP -.B \-typecheck +.B -typecheck forces typechecking of the source files. This option is only relevant if no further analysis is requested (as typechecking will implicitly occur before the analysis is launched). -.RS -.RE .TP -.B \-ulevel \f[I]n\f[] -syntactically unroll loops \f[I]n\f[] times before the analysis. +.B -ulevel \f[I]n\f[R] +syntactically unroll loops \f[I]n\f[R] times before the analysis. This can be quite costly and some plugins (e.g.\ Eva) provide more efficient ways to perform the same thing. See their respective manuals for more information. -This can also be activated on a per\-loop basis via the \f[B]loop pragma -unroll \f[] directive. -A negative value for \f[I]n\f[] will inhibit such pragmas. -.RS -.RE +This can also be activated on a per-loop basis via the \f[B]loop pragma +unroll \f[R] directive. +A negative value for \f[I]n\f[R] will inhibit such pragmas. .TP -.B [\-no]\-ulevel\-force -ignores \f[B]UNROLL\f[] loop pragmas disabling unrolling. -.RS -.RE +.B [-no]-ulevel-force +ignores \f[B]UNROLL\f[R] loop pragmas disabling unrolling. .PP -[\-no]\-unicode outputs ACSL formulas with UTF\-8 characters. +[-no]-unicode outputs ACSL formulas with UTF-8 characters. This is the default. -When given the \f[B]\-no\-unicode\f[] option, Frama\-C will use the -ASCII version instead. +When given the \f[B]-no-unicode\f[R] option, Frama-C will use the ASCII +version instead. See the ACSL manual for the correspondence. .TP -.B \-unsafe\-arrays -see \f[B]\-safe\-arrays\f[]. -.RS -.RE +.B -unsafe-arrays +see \f[B]-safe-arrays\f[R]. .TP -.B [\-no]\-unspecified\-access +.B [-no]-unspecified-access checks that read/write accesses occurring in an unspecified order -(according to the C standard's notion of sequence points) are performed -on separate locations. -With \f[B]\-no\-unspecified\-access\f[], assumes that it is always the +(according to the C standard\[cq]s notion of sequence points) are +performed on separate locations. +With \f[B]-no-unspecified-access\f[R], assumes that it is always the case (this is the default). -.RS -.RE .TP -.B \-version -outputs the version string of Frama\-C. -.RS -.RE +.B -version +outputs the version string of Frama-C. .TP -.B \-warn\-decimal\-float \f[I]freq\f[] -warns when a floating\-point constant cannot be exactly represented +.B -warn-decimal-float \f[I]freq\f[R] +warns when a floating-point constant cannot be exactly represented (e.g.\ 0.1). -\f[I]freq\f[] can be one of \f[B]none\f[], \f[B]once\f[], or -\f[B]all\f[]. +\f[I]freq\f[R] can be one of \f[B]none\f[R], \f[B]once\f[R], or +\f[B]all\f[R]. .PD 0 .P .PD -\f[B]Deprecated\f[]: use \f[B]\-kernel\-warn\-key -parser:decimal\-float=once\f[] (and variants) instead. -.RS -.RE +\f[B]Deprecated\f[R]: use \f[B]-kernel-warn-key +parser:decimal-float=once\f[R] (and variants) instead. .TP -.B [\-no]\-warn\-invalid\-pointer +.B [-no]-warn-invalid-pointer generate alarms for invalid pointer arithmetic. Defaults to no. -.RS -.RE .TP -.B [\-no]\-warn\-left\-shift\-negative +.B [-no]-warn-left-shift-negative generate alarms for signed left shifts on negative values. Defaults to yes. -.RS -.RE .TP -.B [\-no]\-warn\-right\-shift\-negative +.B [-no]-warn-right-shift-negative generate alarms for signed right shifts on negative values. Defaults to no. -.RS -.RE .TP -.B [\-no]\-warn\-pointer\-downcast +.B [-no]-warn-pointer-downcast generates alarms when the downcast of a pointer may exceed the destination range. Defaults to yes. -.RS -.RE .TP -.B [\-no]\-warn\-signed\-downcast +.B [-no]-warn-signed-downcast generates alarms when signed downcasts may exceed the destination range. Defaults to no. -.RS -.RE .TP -.B [\-no]\-warn\-signed\-overflow +.B [-no]-warn-signed-overflow generates alarms for signed operations that overflow. Defaults to yes. -.RS -.RE .TP -.B [\-no]\-warn\-unsigned\-downcast +.B [-no]-warn-unsigned-downcast generates alarms when unsigned downcasts may exceed the destination range. Defaults to no. -.RS -.RE .TP -.B [\-no]\-warn\-unsigned\-overflow +.B [-no]-warn-unsigned-overflow generates alarms for unsigned operations that overflow. Defaults to no. -.RS -.RE .TP -.B [\-no]\-warn\-invalid\-bool +.B [-no]-warn-invalid-bool generates alarms for reads of trap representations of _Bool lvalues. Defaults to yes. -.RS -.RE -.SS Plugin\-specific options +.SS Plugin-specific options .PP For each plugin, the command .RS .PP -frama\-c \-plugin\-help +frama-c -plugin-help .RE .PP will give the list of options that are specific to the plugin. @@ -810,64 +625,45 @@ will give the list of options that are specific to the plugin. .TP .B 0 Successful execution -.RS -.RE .TP .B 1 Invalid user input -.RS -.RE .TP .B 2 User interruption (kill or equivalent) -.RS -.RE .TP .B 3 Unimplemented feature -.RS -.RE .TP .B 4 5 6 Internal error -.RS -.RE .TP .B 125 Unknown error -.RS -.RE .PP Exit statuses greater than 2 can be considered as a bug (or a feature -request for the case of exit status 3) and may be reported on Frama\-C's -BTS (see below). +request for the case of exit status 3) and may be reported on +Frama-C\[cq]s BTS (see below). .SH ENVIRONMENT VARIABLES .PP -It is possible to control the places where Frama\-C looks for its files +It is possible to control the places where Frama-C looks for its files through the following variables. .TP .B FRAMAC_LIB -The directory where kernel's compiled interfaces are installed. -.RS -.RE +The directory where kernel\[cq]s compiled interfaces are installed. .TP .B FRAMAC_PLUGIN -The directory where Frama\-C can find standard plugins. -If you wish to have plugins in several places, use \f[B]\-add\-path\f[] +The directory where Frama-C can find standard plugins. +If you wish to have plugins in several places, use \f[B]-add-path\f[R] instead. -.RS -.RE .TP .B FRAMAC_SHARE -The directory where Frama\-C data (e.g.\ its version of the standard +The directory where Frama-C data (e.g.\ its version of the standard library) is installed. -.RS -.RE .SH SEE ALSO .PP -Frama\-C user manual: -http://frama\-c.com/download/frama\-c\-user\-manual.pdf +Frama-C user manual: http://frama-c.com/download/frama-c-user-manual.pdf .PP -Frama\-C homepage: http://frama\-c.com +Frama-C homepage: http://frama-c.com .PP -Frama\-C BTS: http://bts.frama\-c.com +Frama-C BTS: http://bts.frama-c.com diff --git a/man/frama-c.1.header b/man/frama-c.1.header index 2bc62cfc517..0f53666d7fe 100644 --- a/man/frama-c.1.header +++ b/man/frama-c.1.header @@ -25,4 +25,4 @@ .\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file .\" and run `make man/frama-c.1`. -.TH FRAMA-C 1 2020-05-26 +.TH FRAMA-C 1 2020-09-01 diff --git a/man/frama-c.1.md b/man/frama-c.1.md index 396cf3138d6..35111cfa6e8 100644 --- a/man/frama-c.1.md +++ b/man/frama-c.1.md @@ -333,6 +333,9 @@ See also **-cpp-frama-c-compliant**. [-no]-print : pretty-prints the source code as normalized by CIL. Defaults to no. +-print-cpp-commands +: outputs the preprocessing commands for all input files. + [-no]-print-libc : expands **#include** directives in the pretty-printed CIL code for files in the Frama-C standard library. Defaults to no. -- GitLab From 9f7e74e1c586c9abe2152ed5f83c1122a4020aa7 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 8 Sep 2020 17:23:32 +0200 Subject: [PATCH 072/255] [scripts] prefer explicit FRAMAC variable over default frama-c in PATH --- share/analysis-scripts/make_template.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/share/analysis-scripts/make_template.py b/share/analysis-scripts/make_template.py index 504043a6ebf..6cbab8c30ca 100755 --- a/share/analysis-scripts/make_template.py +++ b/share/analysis-scripts/make_template.py @@ -44,13 +44,13 @@ if len(sys.argv) > 2: print(" creates a Frama-C makefile in [dir] (default: .frama-c)") sys.exit(1) -framac_in_path = True -framac = shutil.which("frama-c") -if not framac: - framac_in_path = False - if os.environ.get("FRAMAC"): - framac = os.environ["FRAMAC"] - else: +framac_in_path = False +if os.environ.get("FRAMAC"): + framac = os.environ["FRAMAC"] +if not framac or not os.path.isfile(framac): + framac_in_path = True + framac = shutil.which("frama-c") + if not framac: sys.exit("error: frama-c must be in the PATH, "\ "or in environment variable FRAMAC") -- GitLab From 7da3ef67ff630d429fa280a58d0e2ae968621174 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 8 Sep 2020 17:36:11 +0200 Subject: [PATCH 073/255] [Markdown-report] fix typo in help message --- src/plugins/markdown-report/mdr_params.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/markdown-report/mdr_params.ml b/src/plugins/markdown-report/mdr_params.ml index b63ea6261a1..ce052fa96fd 100644 --- a/src/plugins/markdown-report/mdr_params.ml +++ b/src/plugins/markdown-report/mdr_params.ml @@ -46,7 +46,7 @@ struct let option_name = "-mdr-out" let arg_name = "f" let default = "report" - let help = "sets the name of the output file to <f>.@ \ + let help = "sets the name of the output file to <f>. \ If <f> has no extension, it is chosen automatically based on \ the report kind" end) -- GitLab From 1f158b32f8ad0f3b7dbfdf111af28724e1d3bd85 Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Thu, 3 Sep 2020 14:52:23 +0200 Subject: [PATCH 074/255] Create a new attribute __fc_inlined --- src/kernel_services/ast_printing/cil_printer.ml | 1 + src/kernel_services/ast_queries/cil.ml | 5 +++++ src/kernel_services/ast_queries/cil.mli | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml index 4d3312bae11..28adfb71881 100644 --- a/src/kernel_services/ast_printing/cil_printer.ml +++ b/src/kernel_services/ast_printing/cil_printer.ml @@ -93,6 +93,7 @@ let () = register_shallow_attribute Cil.frama_c_ghost_else let () = register_shallow_attribute Cil.frama_c_ghost_formal let () = register_shallow_attribute Cil.frama_c_mutable let () = register_shallow_attribute Cil.frama_c_init_obj +let () = register_shallow_attribute Cil.frama_c_inlined let keep_attr = function | Attr _ as a -> not (List.mem (Cil.attributeName a) !reserved_attributes) diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index 6448005f8a5..6ec527773bd 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -605,6 +605,11 @@ let () = registerAttribute frama_c_mutable (AttrName false) let () = registerAttribute (Extlib.strip_underscore frama_c_mutable) (AttrName false) +let frama_c_inlined = "__fc_inlined" +let () = registerAttribute frama_c_inlined (AttrName false) +let () = + registerAttribute (Extlib.strip_underscore frama_c_inlined) (AttrName false) + let unrollType (t: typ) : typ = let rec withAttrs (al: attributes) (t: typ) : typ = match t with diff --git a/src/kernel_services/ast_queries/cil.mli b/src/kernel_services/ast_queries/cil.mli index 64a5b55a779..df110d9e57e 100644 --- a/src/kernel_services/ast_queries/cil.mli +++ b/src/kernel_services/ast_queries/cil.mli @@ -1248,6 +1248,11 @@ val frama_c_init_obj: string *) val frama_c_mutable: string +(** A block marked with this attribute is known to be inlined, i.e. + it replaces a call to an inline function. +*) +val frama_c_inlined: string + (** [true] if the given lval is allowed to be assigned to thanks to a [frama_c_init_obj] or a [frama_c_mutable] attribute. *) -- GitLab From 53e237819766e6981a9d83e14c2f3b5d20b99cf9 Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Thu, 3 Sep 2020 14:52:49 +0200 Subject: [PATCH 075/255] Mark inlined block as such using __fc_inlined --- src/kernel_services/ast_transformations/inline.ml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/kernel_services/ast_transformations/inline.ml b/src/kernel_services/ast_transformations/inline.ml index b50798b0e70..2c815da3e97 100644 --- a/src/kernel_services/ast_transformations/inline.ml +++ b/src/kernel_services/ast_transformations/inline.ml @@ -260,6 +260,9 @@ let inliner functions_to_inline = object (self) (Extlib.the self#current_kf) callee return_aux args in + let fun_name = Kernel_function.get_name callee in + let new_attribute = (Attr (Cil.frama_c_inlined,[AStr fun_name])) in + block.battrs <- Cil.addAttribute new_attribute block.battrs; let skind = if needs_assign then begin match return_aux, return with -- GitLab From dd66b3c9750c1888314595ee79a8d69b2a01c23b Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 8 Sep 2020 16:29:35 +0200 Subject: [PATCH 076/255] [tests] test for new __fc_inlined__ attribute --- tests/syntax/inline_calls.i | 2 +- tests/syntax/oracle/inline_calls.0.res.oracle | 72 +++++++++++-------- 2 files changed, 42 insertions(+), 32 deletions(-) diff --git a/tests/syntax/inline_calls.i b/tests/syntax/inline_calls.i index 6c24ee22069..a71073677d1 100644 --- a/tests/syntax/inline_calls.i +++ b/tests/syntax/inline_calls.i @@ -1,5 +1,5 @@ /* run.config - STDOPT: +"-inline-calls @all" + STDOPT: +"-inline-calls @all -kernel-msg-key printer:attrs" STDOPT: +"-inline-calls @inline" STDOPT: +"-inline-calls @inline -remove-inlined @inline" */ diff --git a/tests/syntax/oracle/inline_calls.0.res.oracle b/tests/syntax/oracle/inline_calls.0.res.oracle index 9a39abc4f7c..fd9c8a925f5 100644 --- a/tests/syntax/oracle/inline_calls.0.res.oracle +++ b/tests/syntax/oracle/inline_calls.0.res.oracle @@ -23,7 +23,7 @@ int g(void) if (v) { int tmp; { - int __retres_5; + /* __blockattribute__(____fc_inlined__("f")) */int __retres_5; __retres_5 = 2; tmp = __retres_5; } @@ -33,7 +33,7 @@ int g(void) else { int tmp_0; { - int __retres_6; + /* __blockattribute__(____fc_inlined__("in_f__fc_inline")) */int __retres_6; __retres_6 = 3; tmp_0 = __retres_6; } @@ -47,11 +47,11 @@ int h(void) { int tmp; { - int __retres; + /* __blockattribute__(____fc_inlined__("g")) */int __retres; if (v) { int tmp_3; { - int __retres_5; + /* __blockattribute__(____fc_inlined__("f")) */int __retres_5; __retres_5 = 2; tmp_3 = __retres_5; } @@ -61,6 +61,7 @@ int h(void) else { int tmp_0; { + /* __blockattribute__(____fc_inlined__("in_f__fc_inline")) */ int __retres_6; __retres_6 = 3; tmp_0 = __retres_6; @@ -90,8 +91,8 @@ int rec(int x_0) goto return_label; } { - int __retres_7; - int tmp_6; + /* __blockattribute__(____fc_inlined__("rec")) */int __retres_7; + int tmp_6; int x_0_5 = x_0 - 1; if (x_0_5 < 0) { __retres_7 = x_0_5; @@ -116,7 +117,7 @@ int f1(int a) if (nondet) { int __inline_tmp; { - int a_5 = 1; + /* __blockattribute__(____fc_inlined__("g1")) */int a_5 = 1; if (nondet) g1(4); __inline_tmp = a_5; } @@ -125,12 +126,12 @@ int f1(int a) if (nondet) { int __inline_tmp_6; { - int __retres_9; + /* __blockattribute__(____fc_inlined__("f1")) */int __retres_9; int a_8 = 2; if (nondet) { int __inline_tmp_10; { - int a_5_11 = 1; + /* __blockattribute__(____fc_inlined__("g1")) */int a_5_11 = 1; if (nondet) g1(4); __inline_tmp_10 = a_5_11; } @@ -155,7 +156,7 @@ int g1(int a) if (nondet) { int __inline_tmp; { - int a_4 = 4; + /* __blockattribute__(____fc_inlined__("g1")) */int a_4 = 4; if (nondet) { int __inline_tmp_5; g1(4); @@ -173,23 +174,23 @@ int main(void) int __inline_tmp; int tmp_1; { - int __retres; + /* __blockattribute__(____fc_inlined__("i")) */int __retres; /*@ assert i: \true; */ ; __retres = 0; __inline_tmp = __retres; } int local_init = __inline_tmp; { - int __retres_10; - int tmp; + /* __blockattribute__(____fc_inlined__("rec")) */int __retres_10; + int tmp; int x_0 = local_init; if (x_0 < 0) { __retres_10 = x_0; goto return_label; } { - int __retres_7; - int tmp_6; + /* __blockattribute__(____fc_inlined__("rec")) */int __retres_7; + int tmp_6; int x_0_5 = x_0 - 1; if (x_0_5 < 0) { __retres_7 = x_0_5; @@ -204,12 +205,12 @@ int main(void) } int t = __inline_tmp_8; { - int __retres_13; + /* __blockattribute__(____fc_inlined__("f1")) */int __retres_13; int a = 2; if (nondet) { int __inline_tmp_14; { - int a_5 = 1; + /* __blockattribute__(____fc_inlined__("g1")) */int a_5 = 1; if (nondet) g1(4); __inline_tmp_14 = a_5; } @@ -218,12 +219,13 @@ int main(void) if (nondet) { int __inline_tmp_6; { - int __retres_9; + /* __blockattribute__(____fc_inlined__("f1")) */int __retres_9; int a_8 = 2; if (nondet) { int __inline_tmp_10; { - int a_5_11 = 1; + /* __blockattribute__(____fc_inlined__("g1")) */int a_5_11 = + 1; if (nondet) g1(4); __inline_tmp_10 = a_5_11; } @@ -243,13 +245,13 @@ int main(void) __inline_tmp_11 = __retres_13; } { - int tmp_15; + /* __blockattribute__(____fc_inlined__("h")) */int tmp_15; { - int __retres_16; + /* __blockattribute__(____fc_inlined__("g")) */int __retres_16; if (v) { int tmp_3; { - int __retres_5; + /* __blockattribute__(____fc_inlined__("f")) */int __retres_5; __retres_5 = 2; tmp_3 = __retres_5; } @@ -259,6 +261,7 @@ int main(void) else { int tmp_0; { + /* __blockattribute__(____fc_inlined__("in_f__fc_inline")) */ int __retres_6; __retres_6 = 3; tmp_0 = __retres_6; @@ -285,8 +288,10 @@ int with_static(void) int call_with_static(void) { int tmp; - with_static_count ++; - tmp = with_static_count; + { + /* __blockattribute__(____fc_inlined__("with_static")) */with_static_count ++; + tmp = with_static_count; + } return tmp; } @@ -300,7 +305,8 @@ void builtin_acsl(void) void call_builtin_acsl(void) { { - float g_0 = 0.f; + /* __blockattribute__(____fc_inlined__("builtin_acsl")) */float g_0 = + 0.f; /*@ assert ¬\is_NaN(g_0); */ ; ; } @@ -315,8 +321,10 @@ void f_slevel(void) void call_f_slevel(void) { - /*@ slevel 0; */ ; - ; + { + /* __blockattribute__(____fc_inlined__("f_slevel")) *//*@ slevel 0; */ ; + ; + } return; } @@ -330,10 +338,12 @@ void post_decl(void); void middle_decl(void) { - x ++; - y ++; - post_decl(); - ; + { + /* __blockattribute__(____fc_inlined__("pre_decl")) */x ++; + y ++; + post_decl(); + ; + } return; } -- GitLab From e87f3392e0d1d8d381101f5e27c2697991463004 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@cea.fr> Date: Tue, 8 Sep 2020 18:21:13 +0200 Subject: [PATCH 077/255] Update Changelog --- Changelog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Changelog b/Changelog index d27b67829d7..bae7947a32b 100644 --- a/Changelog +++ b/Changelog @@ -16,7 +16,8 @@ ################################## Open Source Release <next-release> ################################## - +- Kernel [2020-09-08] Add option -print-cpp-commands, to print the + preprocessing commands used by Frama-C. - Eva [2020-09-07] Deprecates legacy options aliases -val-* in favor of option names -eva-*. -* Slicing [2020-09-07] Better handling of invalid command line options. -- GitLab From 2121cbb331ca5b0973d6e83bb4b3650cccaee748 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 8 Sep 2020 18:09:24 +0200 Subject: [PATCH 078/255] [Doc] add mention to SARIF output in userman --- doc/userman/user-changes.tex | 2 ++ doc/userman/user-report.tex | 42 ++++++++++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/doc/userman/user-changes.tex b/doc/userman/user-changes.tex index de091b1c3a4..ae1a9e54c79 100644 --- a/doc/userman/user-changes.tex +++ b/doc/userman/user-changes.tex @@ -8,6 +8,8 @@ release. First we list changes of the last release. \begin{itemize} \item \textbf{Preparing the Sources:} added option \texttt{-print-cpp-commands}. +\item \textbf{Reports:} add section about SARIF output + (via \textsf{Markdown Report}). \end{itemize} \section*{21.0 (Scandium)} diff --git a/doc/userman/user-report.tex b/doc/userman/user-report.tex index 79f1b91be3e..10effa4444d 100644 --- a/doc/userman/user-report.tex +++ b/doc/userman/user-report.tex @@ -19,6 +19,13 @@ It provides the following features, which we detail in turn: \item Make Frama-C exit with a non-null status code on some classified warning or error. \end{itemize} +\FramaC has recently earned the ability to output data in the SARIF% +\footnote{Static Analysis Results Interchange Format, +\url{https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sarif}} format. +This is performed by the \textsf{Markdown Report} plug-in, described in +section~\ref{sarif}. + + %% -------------------------------------------------------------------------- %% --- Textual Report %% -------------------------------------------------------------------------- @@ -245,3 +252,38 @@ each one following the format given in Figure~\ref{report-classified-event}. warnings (default is: \verb+'REVIEW'+) \end{description} +\section{SARIF Output via the Markdown Report Plug-in}\label{sarif} + +SARIF is a JSON-based standard output format for static analysis results. +It is currently supported by \FramaC in its version 2.1.0. +Some IDEs, such as Visual Code, contain plug-ins which allow importing SARIF +reports. A few Microsoft tools and libraries related to SARIF are available +at \url{https://sarifweb.azurewebsites.net/}. Microsoft also publishes +command-line tools for SARIF, made available via NPM packages and .Net Core +applications. + +\subsection{Prerequisites} + +SARIF output is produced by the \textsf{Markdown Report} (MdR) plug-in. +The plug-in is distributed with \FramaC, but it depends on optional +features, namely the \texttt{opam} package \texttt{ppx\_deriving\_yojson}, +so it may not be available in every \FramaC installation. + +When installing \FramaC via opam, include the optional dependency +\texttt{ppx\_deriving\_yojson} to ensure MdR will be available. +Note that MdR has other features and output formats, which are not described +here. + +\subsection{Generating a SARIF Report} + +To enable generation of a SARIF report, use option \texttt{-mdr-gen sarif}. +It will produce a JSON file (by default, \texttt{report.sarif}) with an entry +for each ACSL property. + +You can change the output file name with option \texttt{-mdr-out <f>}. + +Note that there are no filtering options in the SARIF output; it is up to the +tools importing the file to decide which information to sort, filter, and +display. + +For more details about \textsf{Markdown Report}, use option \texttt{-mdr-help.} -- GitLab From 83b00eb90adaa7dc9c0e20d64a137167feab31dd Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 30 Jul 2020 14:28:14 +0200 Subject: [PATCH 079/255] [Makefile] remove duplicate rule and fix typo --- Makefile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 31c65947753..46cd5d27563 100644 --- a/Makefile +++ b/Makefile @@ -2409,12 +2409,9 @@ else DISTRIB_HEADERS:=open-source # for checking that distributed files aren't under proprietary licence. DISTRIB_PROPRIETARY_HEADERS:=$(CEA_PROPRIETARY_HEADERS) -# DISTRIB_TESTS contents files that can be distributed without header checking +# DISTRIB_TESTS contains files that can be distributed without header checking DISTRIB_TESTS:=$(filter-out $(CEA_PROPRIETARY_FILES) ,\ $(DISTRIB_TESTS)) -# DISTRIB_FILES contents files that can be distributed with header checking -DISTRIB_FILES:=$(filter-out $(CEA_PROPRIETARY_FILES) ,\ - $(DISTRIB_FILES)) endif # Set some variables for `headers`target. -- GitLab From e724c45ed3c33ad16a9525dd44a1c9c92217876f Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 30 Jul 2020 14:27:56 +0200 Subject: [PATCH 080/255] [tests] conditionally disable tests requiring Python 3.6 --- configure.in | 26 ++++++++++++++++++++++++++ share/Makefile.config.in | 11 +++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/configure.in b/configure.in index 3f792af4a5f..ba6d68bb09d 100644 --- a/configure.in +++ b/configure.in @@ -397,6 +397,31 @@ else HAS_LANDMARKS="no" fi +# Python 3 (for analysis-scripts) +######## + +AC_MSG_CHECKING(for python3) + +PYTHON3_VERSION=$(python3 --version 2>/dev/null || echo "") +if test -z "$PYTHON3_VERSION" ; then + AC_MSG_RESULT(not found. Some non-regression tests will be disabled.) + HAS_PYTHON36="no" +else + AC_MSG_RESULT(found) + AC_MSG_CHECKING(for python3 >= 3.6) + PYTHON3_VERSION=$(echo "$PYTHON3_VERSION" | cut -d' ' -f2-) + case $PYTHON3_VERSION in + 2.*|3.[[0-5]].*) + AC_MSG_RESULT(found $PYTHON3_VERSION (too old); some non-regression tests will be disabled) + HAS_PYTHON36="no" + ;; + *) + AC_MSG_RESULT(ok) + HAS_PYTHON36="yes" + ;; + esac +fi + ############ # Platform # ############ @@ -978,6 +1003,7 @@ AC_SUBST(DEVELOPMENT) AC_SUBST(HAS_APRON) AC_SUBST(HAS_MPFR) AC_SUBST(HAS_LANDMARKS) +AC_SUBST(HAS_PYTHON36) AC_SUBST(LABLGTK_VERSION) AC_SUBST(OCAMLBEST) AC_SUBST(OCAMLVERSION) diff --git a/share/Makefile.config.in b/share/Makefile.config.in index 0739e3cef9c..6f266c9ff6d 100644 --- a/share/Makefile.config.in +++ b/share/Makefile.config.in @@ -128,6 +128,9 @@ HAS_MPFR ?=@HAS_MPFR@ # landmarks HAS_LANDMARKS ?=@HAS_LANDMARKS@ +# python 3.6 +HAS_PYTHON36 ?=@HAS_PYTHON36@ + ########################## # Miscellaneous commands # ########################## @@ -157,8 +160,12 @@ HAVE_BUILTIN_VA_LIST ?=@HAVE_BUILTIN_VA_LIST@ # Non-plugin test directories containing some ML files to compile TEST_DIRS_AS_PLUGIN:=\ dynamic dynamic_plugin journal saveload spec misc syntax cil \ - pretty_printing builtins libc value fc_script -TEST_DIRS_AS_PLUGIN+=jcdb + pretty_printing builtins libc value + +ifeq ($(HAS_PYTHON36),yes) +TEST_DIRS_AS_PLUGIN+= fc_script jcdb +endif + PLUGIN_TESTS_LIST+=$(TEST_DIRS_AS_PLUGIN) ########################## -- GitLab From ac162941ae03a4b21ed89a2542e5de73a14c40a5 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 9 Sep 2020 15:35:29 +0200 Subject: [PATCH 081/255] [wp] Test for unsupported step limit --- src/plugins/wp/tests/wp_plugin/no_step_limit.conf | 13 +++++++++++++ src/plugins/wp/tests/wp_plugin/no_step_limit.i | 10 ++++++++++ .../oracle_qualif/no_step_limit.res.oracle | 8 ++++++++ 3 files changed, 31 insertions(+) create mode 100644 src/plugins/wp/tests/wp_plugin/no_step_limit.conf create mode 100644 src/plugins/wp/tests/wp_plugin/no_step_limit.i create mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle diff --git a/src/plugins/wp/tests/wp_plugin/no_step_limit.conf b/src/plugins/wp/tests/wp_plugin/no_step_limit.conf new file mode 100644 index 00000000000..8431029cc72 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/no_step_limit.conf @@ -0,0 +1,13 @@ +[main] +default_editor = "editor %f" +magic = 14 +memlimit = 1000 +running_provers_max = 2 +timelimit = 5 + +[prover] +command = "alt-ergo -timelimit %t %f" +driver = "alt_ergo_2_2_0" +in_place = false +interactive = false +name = "no-steps" diff --git a/src/plugins/wp/tests/wp_plugin/no_step_limit.i b/src/plugins/wp/tests/wp_plugin/no_step_limit.i new file mode 100644 index 00000000000..2d5745aa584 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/no_step_limit.i @@ -0,0 +1,10 @@ +/* run.config + DONTRUN: +*/ +/* run.config_qualif + CMD: WHY3CONFIG=@PTEST_DIR@/@PTEST_NAME@.conf @frama-c@ + OPT: -wp -wp-prover no-steps -wp-steps 10 -wp-msg-key shell +*/ +/*@ + lemma truc: \false ; +*/ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle new file mode 100644 index 00000000000..0aeeeccf367 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle @@ -0,0 +1,8 @@ +# frama-c -wp -wp-steps 10 [...] +[kernel] Parsing tests/wp_plugin/no_step_limit.i (no preprocessing) +[wp] Running WP plugin... +[wp] 1 goal scheduled +[wp] Warning: no-steps does not support steps limit (ignored option) +[wp] [no-steps] Goal typed_lemma_truc : Unsuccess +[wp] Proved goals: 0 / 1 + no-steps: 0 (unsuccess: 1) -- GitLab From d85df10533ddd6b187eb7eefcf09d6abb061eb01 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 9 Sep 2020 15:35:48 +0200 Subject: [PATCH 082/255] [wp] Ignore unsupported step limit --- src/plugins/wp/ProverWhy3.ml | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 2d9a6ce177b..244ed12a218 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1206,14 +1206,26 @@ let call_prover prover_config ~timeout ~steplimit drv prover task = Why3.Call_provers.limit_time = Why3.Opt.get_def def.limit_time timeout; Why3.Call_provers.limit_steps = Why3.Opt.get_def def.limit_time steps; } in - let command = Why3.Whyconf.get_complete_command prover_config - ~with_steps:(steps<>None) in + let with_steps = match steps, prover_config.Why3.Whyconf.command_steps with + | None, _ -> false + | Some _, Some _ -> true + | Some _, None -> + Wp_parameters.warning ~once:true ~current:false + "%a does not support steps limit (ignored option)" + Why3.Whyconf.print_prover prover ; + false + in + let command = Why3.Whyconf.get_complete_command prover_config ~with_steps in let call = Why3.Driver.prove_task_prepared ~command ~limit drv task in - Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %i steps@." + let pp_steps fmt s = + if with_steps then Format.fprintf fmt "%i steps" (Why3.Opt.get_def (-1) s) + else Format.fprintf fmt "" + in + Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %a@." Why3.Whyconf.print_prover prover (Why3.Opt.get_def (-1) timeout) - (Why3.Opt.get_def (-1) steps); + pp_steps steps ; let timeout = match timeout with None -> 0 | Some tlimit -> tlimit in let pcall = { call ; prover ; -- GitLab From 1328d6f4f3dbe52f470a379deedca2d965d0ebf2 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 10 Jul 2020 22:26:54 +0200 Subject: [PATCH 083/255] [Dev] improve Docker files with best practices; add file for dev version --- devel_tools/docker/frama-c.20.0/Dockerfile | 22 +++++--- devel_tools/docker/frama-c.21.0/Dockerfile | 23 +++++--- devel_tools/docker/frama-c.21.1/Dockerfile | 23 +++++--- devel_tools/docker/frama-c.dev/Dockerfile | 65 ++++++++++++++++++++++ 4 files changed, 111 insertions(+), 22 deletions(-) create mode 100644 devel_tools/docker/frama-c.dev/Dockerfile diff --git a/devel_tools/docker/frama-c.20.0/Dockerfile b/devel_tools/docker/frama-c.20.0/Dockerfile index d73738fb950..66dcd40c025 100644 --- a/devel_tools/docker/frama-c.20.0/Dockerfile +++ b/devel_tools/docker/frama-c.20.0/Dockerfile @@ -1,7 +1,11 @@ FROM debian:sid as base -RUN apt update -RUN apt install opam -y +RUN apt-get update && apt-get install -y \ + cvc4 \ + opam \ + z3 \ + && rm -rf /var/lib/apt/lists/* + RUN opam init --disable-sandboxing --compiler=ocaml-base-compiler.4.05.0 -y # "RUN eval $(opam env)" does not work, so we manually set its variables @@ -11,11 +15,10 @@ ENV OCAML_TOPLEVEL_PATH "/root/.opam/ocaml-base-compiler.4.05.0/lib/toplevel" ENV MANPATH "$MANPATH:/root/.opam/ocaml-base-compiler.4.05.0/man" ENV PATH "/root/.opam/ocaml-base-compiler.4.05.0/bin:$PATH" -RUN opam update -y -RUN opam install depext -y +RUN opam update -y && opam install depext -y # Install packages from reference configuration -RUN opam depext --install -y \ +RUN apt-get update && opam update -y && opam depext --install -y --verbose \ alt-ergo.2.0.0 \ apron.20160125 \ conf-graphviz.0.1 \ @@ -26,7 +29,8 @@ RUN opam depext --install -y \ why3.1.2.0 \ yojson.1.7.0 \ zarith.1.9.1 \ - --verbose # intentionally left as last line in this RUN command + && rm -rf /var/lib/apt/lists/* + RUN why3 config --detect-provers # with_source: keep Frama-C sources @@ -47,12 +51,14 @@ RUN cd /root && \ ARG with_test=no RUN if [ "${with_test}" != "no" ]; then \ - opam depext --install -y \ + apt-get update && \ + opam update -y && opam depext --install -y \ conf-python-3.1.0.0 \ conf-time.1 \ --verbose \ && \ - apt install python -y && \ + apt-get install python -y && \ + rm -rf /var/lib/apt/lists/* && \ cd /root/frama-c-* && \ make tests; \ fi diff --git a/devel_tools/docker/frama-c.21.0/Dockerfile b/devel_tools/docker/frama-c.21.0/Dockerfile index 3a615a7bf0f..472d6dce9eb 100644 --- a/devel_tools/docker/frama-c.21.0/Dockerfile +++ b/devel_tools/docker/frama-c.21.0/Dockerfile @@ -1,7 +1,11 @@ FROM debian:sid as base -RUN apt update -RUN apt install opam -y +RUN apt-get update && apt-get install -y \ + cvc4 \ + opam \ + z3 \ + && rm -rf /var/lib/apt/lists/* + RUN opam init --disable-sandboxing --compiler=ocaml-base-compiler.4.07.1 -y # "RUN eval $(opam env)" does not work, so we manually set its variables @@ -11,11 +15,10 @@ ENV OCAML_TOPLEVEL_PATH "/root/.opam/ocaml-base-compiler.4.07.1/lib/toplevel" ENV MANPATH "$MANPATH:/root/.opam/ocaml-base-compiler.4.07.1/man" ENV PATH "/root/.opam/ocaml-base-compiler.4.07.1/bin:$PATH" -RUN opam update -y -RUN opam install depext -y +RUN opam update -y && opam install depext -y # Install packages from reference configuration -RUN opam depext --install -y \ +RUN apt-get update && opam update -y && opam depext --install -y --verbose \ alt-ergo.2.0.0 \ apron.v0.9.12 \ conf-graphviz.0.1 \ @@ -27,7 +30,11 @@ RUN opam depext --install -y \ yojson.1.7.0 \ zarith.1.9.1 \ zmq.5.1.3 \ - --verbose # intentionally left as last line in this RUN command + && rm -rf /var/lib/apt/lists/* + +# Install non-OCaml solvers +RUN apt install z3 cvc4 -y + RUN why3 config --full-config # with_source: keep Frama-C sources @@ -48,11 +55,13 @@ RUN cd /root && \ ARG with_test=no RUN if [ "${with_test}" != "no" ]; then \ - opam depext --install -y \ + apt-get update && \ + opam update -y && opam depext --install -y \ conf-python-3.1.0.0 \ conf-time.1 \ --verbose \ && \ + rm -rf /var/lib/apt/lists/* && \ cd /root/frama-c-* && \ make tests; \ fi diff --git a/devel_tools/docker/frama-c.21.1/Dockerfile b/devel_tools/docker/frama-c.21.1/Dockerfile index 8852ac14805..c37b6441aa8 100644 --- a/devel_tools/docker/frama-c.21.1/Dockerfile +++ b/devel_tools/docker/frama-c.21.1/Dockerfile @@ -1,7 +1,11 @@ FROM debian:sid as base -RUN apt update -RUN apt install opam -y +RUN apt-get update && apt-get install -y \ + cvc4 \ + opam \ + z3 \ + && rm -rf /var/lib/apt/lists/* + RUN opam init --disable-sandboxing --compiler=ocaml-base-compiler.4.07.1 -y # "RUN eval $(opam env)" does not work, so we manually set its variables @@ -11,11 +15,10 @@ ENV OCAML_TOPLEVEL_PATH "/root/.opam/ocaml-base-compiler.4.07.1/lib/toplevel" ENV MANPATH "$MANPATH:/root/.opam/ocaml-base-compiler.4.07.1/man" ENV PATH "/root/.opam/ocaml-base-compiler.4.07.1/bin:$PATH" -RUN opam update -y -RUN opam install depext -y +RUN opam update -y && opam install depext -y # Install packages from reference configuration -RUN opam depext --install -y \ +RUN apt-get update && opam update -y && opam depext --install -y --verbose \ alt-ergo.2.0.0 \ apron.v0.9.12 \ conf-graphviz.0.1 \ @@ -27,7 +30,11 @@ RUN opam depext --install -y \ yojson.1.7.0 \ zarith.1.9.1 \ zmq.5.1.3 \ - --verbose # intentionally left as last line in this RUN command + && rm -rf /var/lib/apt/lists/* + +# Install non-OCaml solvers +RUN apt install z3 cvc4 -y + RUN why3 config --full-config # with_source: keep Frama-C sources @@ -48,11 +55,13 @@ RUN cd /root && \ ARG with_test=no RUN if [ "${with_test}" != "no" ]; then \ - opam depext --install -y \ + apt-get update && \ + opam update -y && opam depext --install -y \ conf-python-3.1.0.0 \ conf-time.1 \ --verbose \ && \ + rm -rf /var/lib/apt/lists/* && \ cd /root/frama-c-* && \ make tests; \ fi diff --git a/devel_tools/docker/frama-c.dev/Dockerfile b/devel_tools/docker/frama-c.dev/Dockerfile new file mode 100644 index 00000000000..aa819b0a661 --- /dev/null +++ b/devel_tools/docker/frama-c.dev/Dockerfile @@ -0,0 +1,65 @@ +FROM debian:sid as base + +RUN apt-get update && apt-get install -y \ + cvc4 \ + opam \ + z3 \ + && rm -rf /var/lib/apt/lists/* + +RUN opam init --disable-sandboxing --compiler=ocaml-base-compiler.4.08.1 -y + +# "RUN eval $(opam env)" does not work, so we manually set its variables +ENV OPAM_SWITCH_PREFIX "/root/.opam/ocaml-base-compiler.4.08.1" +ENV CAML_LD_LIBRARY_PATH "/root/.opam/ocaml-base-compiler.4.08.1/lib/stublibs:/root/.opam/ocaml-base-compiler.4.08.1/lib/ocaml/stublibs:/root/.opam/ocaml-base-compiler.4.08.1/lib/ocaml" +ENV OCAML_TOPLEVEL_PATH "/root/.opam/ocaml-base-compiler.4.08.1/lib/toplevel" +ENV MANPATH "$MANPATH:/root/.opam/ocaml-base-compiler.4.08.1/man" +ENV PATH "/root/.opam/ocaml-base-compiler.4.08.1/bin:$PATH" + +RUN opam update -y && opam install depext -y + +# Install packages from reference configuration +RUN apt-get update && opam update -y && opam depext --install -y --verbose \ + alt-ergo.2.0.0 \ + apron.v0.9.12 \ + conf-graphviz.0.1 \ + mlgmpidl.1.2.12 \ + ocamlfind.1.8.1 \ + ocamlgraph.1.8.8 \ + ppx_deriving_yojson.3.5.2 \ + why3.1.3.1 \ + yojson.1.7.0 \ + zarith.1.9.1 \ + zmq.5.1.3 \ + && rm -rf /var/lib/apt/lists/* + +# Install non-OCaml solvers +RUN apt install z3 cvc4 -y + +RUN why3 config --full-config + +# with_source: keep Frama-C sources +ARG with_source=no + +RUN cd /root && \ + git clone https://git.frama-c.com/pub/frama-c.git && \ + (cd frama-c && \ + autoconf && ./configure --disable-gui && \ + make -j && \ + make install \ + ) && \ + [ "${with_source}" != "no" ] || rm -rf frama-c + +# with_test: run Frama-C tests; requires "with_source=yes" +ARG with_test=no + +RUN if [ "${with_test}" != "no" ]; then \ + apt-get update && \ + opam update -y && opam depext --install -y \ + conf-python-3.1.0.0 \ + conf-time.1 \ + --verbose \ + && \ + rm -rf /var/lib/apt/lists/* && \ + cd /root/frama-c && \ + make tests; \ + fi -- GitLab From 3486b24ded74e7a35d5b9ecd5b9bb51167104e98 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 4 Sep 2020 09:20:39 +0200 Subject: [PATCH 084/255] [kernel] add support in the AST to identify check-and-forget annotations this is a generalization of `check` vs. `assert` to other annotations. Not all annotations are relevant though. Currently, there are more annotation nodes in the AST that can have a flag `{ tp_only_check }` than was deemed useful in pub/frama-c#25, but said flag can in fact safely be ignored. Moreover, this commit only add this flag in the AST, but provides no further mean to set it to true except for the original `check` keyword (i.e. on `AAssert`). The parser and the behavior of the plugins that can handle the flag will be updated in subsequent commits --- src/kernel_internals/typing/cabs2cil.ml | 12 +++- src/kernel_internals/typing/cfg.ml | 15 +++-- src/kernel_internals/typing/oneret.ml | 7 +- src/kernel_internals/typing/unroll_loops.ml | 2 +- src/kernel_services/analysis/exn_flow.ml | 2 +- .../analysis/interpreted_automata.ml | 13 ++-- src/kernel_services/analysis/logic_interp.ml | 8 +-- src/kernel_services/ast_data/alarms.ml | 3 +- src/kernel_services/ast_data/annotations.ml | 17 +++-- src/kernel_services/ast_data/cil_types.mli | 24 ++++--- src/kernel_services/ast_data/property.ml | 47 +++++++------ .../ast_printing/cil_printer.ml | 18 ++--- .../ast_printing/cil_types_debug.ml | 26 +++++--- .../ast_printing/description.ml | 59 +++++++++-------- src/kernel_services/ast_printing/printer.ml | 1 + .../ast_printing/printer_api.mli | 2 + .../ast_printing/printer_builder.ml | 2 + src/kernel_services/ast_queries/cil.ml | 15 +++-- .../ast_queries/cil_datatype.ml | 20 +++++- .../ast_queries/cil_datatype.mli | 1 + src/kernel_services/ast_queries/filecheck.ml | 2 +- .../ast_queries/logic_const.ml | 9 ++- .../ast_queries/logic_const.mli | 15 ++++- .../ast_queries/logic_typing.ml | 12 ++-- .../ast_queries/logic_utils.ml | 23 ++++--- .../ast_transformations/filter.ml | 22 +++++-- src/plugins/aorai/aorai_utils.ml | 1 + src/plugins/aorai/aorai_visitors.ml | 1 + .../e-acsl/src/code_generator/logic_array.ml | 2 +- .../e-acsl/src/code_generator/translate.ml | 27 ++++---- src/plugins/gui/property_navigator.ml | 6 +- src/plugins/inout/operational_inputs.ml | 4 +- src/plugins/instantiate/stdlib/basic_alloc.ml | 1 + src/plugins/obfuscator/obfuscate.ml | 7 +- src/plugins/scope/datascope.ml | 20 +++--- src/plugins/server/kernel_properties.ml | 4 +- src/plugins/value/alarmset.ml | 5 +- src/plugins/value/domains/traces_domain.ml | 3 +- src/plugins/value/engine/transfer_logic.ml | 13 ++-- src/plugins/value/gui_files/gui_red.ml | 7 +- src/plugins/value/gui_files/register_gui.ml | 14 ++-- src/plugins/value/legacy/eval_annots.ml | 10 +-- src/plugins/wp/LogicUsage.ml | 2 +- src/plugins/wp/Splitter.ml | 5 +- src/plugins/wp/StmtSemantics.ml | 10 +-- src/plugins/wp/wpAnnot.ml | 66 ++++++++++--------- src/plugins/wp/wpPropId.ml | 16 +++-- src/plugins/wp/wpReached.ml | 5 +- src/plugins/wp/wpo.ml | 3 +- 49 files changed, 361 insertions(+), 248 deletions(-) diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml index 209aed920b7..e0367a710bf 100644 --- a/src/kernel_internals/typing/cabs2cil.ml +++ b/src/kernel_internals/typing/cabs2cil.ml @@ -8890,9 +8890,14 @@ and createLocal ghost ((_, sto, _, _) as specs) Logic_const.prel ~loc:castloc (Rle, talloca_size, max_bound) in let alloca_bounds = Logic_const.pand ~loc:castloc (pos_size, max_size) in - let alloca_bounds = { alloca_bounds with pred_name = ["alloca_bounds"] } in + let alloca_bounds = + { alloca_bounds with pred_name = ["alloca_bounds"] } + in + let alloca_bounds = + Logic_const.toplevel_predicate alloca_bounds + in let annot = - Logic_const.new_code_annotation (AAssert ([], Assert, alloca_bounds)) + Logic_const.new_code_annotation (AAssert ([], alloca_bounds)) in (mkStmtOneInstr ~ghost ~valid_sid (Code_annot (annot, castloc)), @@ -9414,9 +9419,10 @@ and doDecl local_env (isglobal: bool) : A.definition -> chunk = function [\assert \false]*) let pfalse = Logic_const.unamed ~loc Pfalse in let pfalse = { pfalse with pred_name = ["missing_return"] } in + let pfalse = Logic_const.toplevel_predicate pfalse in let assert_false () = let annot = - Logic_const.new_code_annotation (AAssert ([], Assert, pfalse)) + Logic_const.new_code_annotation (AAssert ([], pfalse)) in Cil.mkStmt ~ghost ~valid_sid (Instr(Code_annot(annot,loc))) in diff --git a/src/kernel_internals/typing/cfg.ml b/src/kernel_internals/typing/cfg.ml index 1ffc5c6b32b..3438e59ff51 100644 --- a/src/kernel_internals/typing/cfg.ml +++ b/src/kernel_internals/typing/cfg.ml @@ -360,7 +360,8 @@ let xform_switch_block ?(keepSwitch=false) b = let () = Stack.push (Stack.create()) continues_stack in let assert_of_clause f ca = match ca.annot_content with - | AAssert _ | AInvariant _ | AVariant _ | AAssigns _ | AAllocation _ | APragma _ | AExtended _ -> Logic_const.ptrue + | AAssert _ | AInvariant _ | AVariant _ + | AAssigns _ | AAllocation _ | APragma _ | AExtended _ -> Logic_const.ptrue | AStmtSpec (_bhv,s) -> let open Logic_const in List.fold_left @@ -371,8 +372,8 @@ let xform_switch_block ?(keepSwitch=false) b = (pands (List.map (fun p -> - pold ~loc:p.ip_content.pred_loc - (Logic_const.pred_of_id_pred p)) + let p = Logic_const.pred_of_id_pred p in + pold ~loc:p.pred_loc p) bhv.b_assumes), pands (List.fold_left @@ -478,8 +479,9 @@ let xform_switch_block ?(keepSwitch=false) b = xform_switch_stmt rest break_dest cont_dest label_index 0 | p -> + let p = Logic_const.toplevel_predicate p in let a = - Logic_const.new_code_annotation (AAssert ([], Assert, p)) + Logic_const.new_code_annotation (AAssert ([], p)) in let assertion = mkStmt (Instr(Code_annot(a,l))) in popn popstack; @@ -501,9 +503,8 @@ let xform_switch_block ?(keepSwitch=false) b = xform_switch_stmt rest break_dest cont_dest label_index 0 | p -> - let a = - Logic_const.new_code_annotation (AAssert ([], Assert, p)) - in + let p = Logic_const.toplevel_predicate p in + let a = Logic_const.new_code_annotation (AAssert ([], p)) in let assertion = mkStmt (Instr(Code_annot(a,l))) in popn popstack; assertion :: s :: diff --git a/src/kernel_internals/typing/oneret.ml b/src/kernel_internals/typing/oneret.ml index f41401c9a7e..164f5b48e78 100644 --- a/src/kernel_internals/typing/oneret.ml +++ b/src/kernel_internals/typing/oneret.ml @@ -235,8 +235,8 @@ let oneret ?(callback: callback option) (f: fundec) : unit = (pands (List.map (fun p -> - pold ~loc:p.ip_content.pred_loc - (Logic_const.pred_of_id_pred p)) + let p = Logic_const.pred_of_id_pred p in + pold ~loc:p.pred_loc p) bhv.b_assumes), pands (List.fold_left @@ -381,7 +381,8 @@ let oneret ?(callback: callback option) (f: fundec) : unit = match !returns_assert with | { pred_content = Ptrue } -> [s; sg] | p -> - let a = Logic_const.new_code_annotation (AAssert ([],Assert,p)) in + let p = Logic_const.toplevel_predicate p in + let a = Logic_const.new_code_annotation (AAssert ([],p)) in let sta = mkStmt (Instr (Code_annot (a,loc))) in if callback<>None then ( let gclause = sta , a in diff --git a/src/kernel_internals/typing/unroll_loops.ml b/src/kernel_internals/typing/unroll_loops.ml index fc2af50b9c1..e73b70a19d7 100644 --- a/src/kernel_internals/typing/unroll_loops.ml +++ b/src/kernel_internals/typing/unroll_loops.ml @@ -684,7 +684,7 @@ class do_it global_find_init ((force:bool),(times:int)) = object(self) | Some emitter -> let annot = Logic_const.new_code_annotation - (AInvariant ([],true,Logic_const.pfalse)) + (AInvariant ([],true,Logic_const.(toplevel_predicate pfalse))) in Annotations.add_code_annot emitter ~kf:(Extlib.the self#current_kf) sloop annot; diff --git a/src/kernel_services/analysis/exn_flow.ml b/src/kernel_services/analysis/exn_flow.ml index f31a727c802..e6badcad629 100644 --- a/src/kernel_services/analysis/exn_flow.ml +++ b/src/kernel_services/analysis/exn_flow.ml @@ -660,7 +660,7 @@ class erase_exn = we haven't seen an uncaught exception anyway. *) | Exits | Breaks | Continues -> orig | Returns | Normal -> - let loc = pred.ip_content.pred_loc in + let loc = (Logic_const.pred_of_id_pred pred).pred_loc in let p = self#pred_uncaught_flag loc false in let pred' = Logic_const.pred_of_id_pred pred in (kind, diff --git a/src/kernel_services/analysis/interpreted_automata.ml b/src/kernel_services/analysis/interpreted_automata.ml index ae1d5a4f3cf..32a98309ead 100644 --- a/src/kernel_services/analysis/interpreted_automata.ml +++ b/src/kernel_services/analysis/interpreted_automata.ml @@ -204,7 +204,7 @@ let variant_predicate stmt v = Logic_const.pand ~loc (pred1, pred2) let supported_annotation annot = match annot.annot_content with - | AAssert ([], _, _) + | AAssert ([], _) | AInvariant ([], _, _) | AVariant (_, None) -> true | _ -> false (* TODO *) @@ -214,9 +214,9 @@ let code_annot = Annotations.code_annot ~filter:supported_annotation let make_annotation kf stmt annot labels = let kind, pred = match annot.annot_content with - | AAssert ([], Cil_types.Assert, pred) -> Assert, pred - | AAssert ([], Cil_types.Check, pred) -> Check, pred - | AInvariant ([], _, pred) -> Invariant, pred + | AAssert ([], {tp_only_check = false; tp_statement = pred}) -> Assert, pred + | AAssert ([], {tp_only_check = true; tp_statement = pred}) -> Check, pred + | AInvariant ([], _, pred) -> Invariant, pred.tp_statement | AVariant (v, None) -> Assert, variant_predicate stmt v | _ -> assert false in @@ -552,7 +552,10 @@ let build_automaton ~annotations kf = let bind_labels (v1, edge, v2) = match edge.edge_transition with | Prop (annot, stmt) -> - let l = Cil.extract_labels_from_pred annot.predicate.ip_content in + let l = + Cil.extract_labels_from_pred + (Logic_const.pred_of_id_pred annot.predicate) + in let bind label map = try let vertex = match label with diff --git a/src/kernel_services/analysis/logic_interp.ml b/src/kernel_services/analysis/logic_interp.ml index ca8044ead8d..5235e6aec14 100644 --- a/src/kernel_services/analysis/logic_interp.ml +++ b/src/kernel_services/analysis/logic_interp.ml @@ -947,17 +947,17 @@ to function contracts." (* to preserve the effect of the statement *) pragmas := { !pragmas with stmt = Stmt.Set.add ki !pragmas.stmt} - | AAssert (_behav,_,pred) -> + | AAssert (_behav,pred) -> (* to preserve the interpretation of the assertion *) - get_zone_from_pred ki pred; + get_zone_from_pred ki pred.tp_statement; | AInvariant (_behav,true,pred) -> (* loop invariant *) (* WARNING this is obsolete *) (* [JS 2010/09/02] TODO: so what is the right way to do? *) (* to preserve the interpretation of the loop invariant *) - get_zone_from_pred (Extlib.the loop_body_opt) pred; + get_zone_from_pred (Extlib.the loop_body_opt) pred.tp_statement; | AInvariant (_behav,false,pred) -> (* code invariant *) (* to preserve the interpretation of the code invariant *) - get_zone_from_pred ki pred; + get_zone_from_pred ki pred.tp_statement; | AVariant (term,_) -> (* to preserve the interpretation of the variant *) get_zone_from_term (Extlib.the loop_body_opt) term; diff --git a/src/kernel_services/ast_data/alarms.ml b/src/kernel_services/ast_data/alarms.ml index 5635f1b1469..0785ae1209c 100644 --- a/src/kernel_services/ast_data/alarms.ml +++ b/src/kernel_services/ast_data/alarms.ml @@ -705,7 +705,8 @@ let to_annot_aux kinstr ?(loc=Kinstr.loc kinstr) alarm = (* Kernel.debug "registering alarm %a" D.pretty alarm;*) let add alarm = let pred = create_predicate ~loc alarm in - Logic_const.new_code_annotation (AAssert([], Assert, pred)) + let pred = Logic_const.toplevel_predicate pred in + Logic_const.new_code_annotation (AAssert([], pred)) in try let by_emitter = State.find kinstr in diff --git a/src/kernel_services/ast_data/annotations.ml b/src/kernel_services/ast_data/annotations.ml index 01dde03fd64..67a7a15ad9a 100644 --- a/src/kernel_services/ast_data/annotations.ml +++ b/src/kernel_services/ast_data/annotations.ml @@ -739,13 +739,16 @@ let extend_name e pred = if Emitter.equal e Emitter.end_user || Emitter.equal e Emitter.kernel then pred else - let names = pred.pred_name in + let names = pred.tp_statement.pred_name in let s = Emitter.get_name e in if (List.mem s names) || let acsl_identifier_regexp = Str.regexp "^\\([\\][_a-zA-Z]\\|[_a-zA-Z]\\)[0-9_a-zA-Z]*$" in not (Str.string_match acsl_identifier_regexp s 0) - then pred else { pred with pred_name = s :: names } + then pred + else + { pred with + tp_statement = { pred.tp_statement with pred_name = s :: names }} (** {3 Adding subparts of a function contract} *) @@ -1147,8 +1150,8 @@ let add_code_annot ?(keep_empty=true) emitter ?kf stmt ca = Code_annots.add stmt tbl in match ca.annot_content with - | AAssert(l, kind, p) -> - let a = { ca with annot_content=AAssert(l,kind,extend_name emitter p) } in + | AAssert(l, p) -> + let a = { ca with annot_content=AAssert(l,extend_name emitter p) } in fill_tables a (Property.ip_of_code_annot kf stmt a) | AInvariant(l, b, p) -> let a={ca with annot_content=AInvariant(l,b,extend_name emitter p)} in @@ -1283,11 +1286,13 @@ let add_code_annot ?(keep_empty=true) emitter ?kf stmt ca = fill_tables ca (Property.ip_of_code_annot kf stmt ca) let add_assert e ?kf stmt a = - let a = Logic_const.new_code_annotation (AAssert ([],Assert,a)) in + let a = Logic_const.toplevel_predicate ~only_check:false a in + let a = Logic_const.new_code_annotation (AAssert ([],a)) in add_code_annot e ?kf stmt a let add_check e ?kf stmt a = - let a = Logic_const.new_code_annotation (AAssert ([],Check,a)) in + let a = Logic_const.toplevel_predicate ~only_check:true a in + let a = Logic_const.new_code_annotation (AAssert ([],a)) in add_code_annot e ?kf stmt a (** {3 Adding globals} *) diff --git a/src/kernel_services/ast_data/cil_types.mli b/src/kernel_services/ast_data/cil_types.mli index 386affd6ea5..48697d89dc5 100644 --- a/src/kernel_services/ast_data/cil_types.mli +++ b/src/kernel_services/ast_data/cil_types.mli @@ -1590,7 +1590,17 @@ and predicate_node = create fresh predicates *) and identified_predicate = { ip_id: int; (** identifier *) - ip_content: predicate; (** the predicate itself*) + ip_content: toplevel_predicate; (** the predicate itself*) +} + +(** main statement of an annotation. *) +and toplevel_predicate = { + tp_only_check: bool; + (** whether the annotation is only used to check that [ip_content] holds, but + stays invisible for other verification tasks (see description of ACSL's + check keyword). + *) + tp_statement: predicate; } (** predicates with a location and an optional list of names *) @@ -1745,17 +1755,11 @@ and pragma = | Slice_pragma of slice_pragma | Impact_pragma of impact_pragma -(** Kind of an assertion: - - an assert is both evaluated and used as hypothesis afterwards; - - a check is only evaluated, but is not used as an hypothesis: it does not - affect the analyses. *) -and assertion_kind = Assert | Check - (** all annotations that can be found in the code. This type shares the name of its constructors with {!Logic_ptree.code_annot}. *) and code_annotation_node = - | AAssert of string list * assertion_kind * predicate + | AAssert of string list * toplevel_predicate (** assertion to be checked. The list of strings is the list of behaviors to which this assertion applies. *) @@ -1763,7 +1767,7 @@ and code_annotation_node = (** statement contract (potentially restricted to some enclosing behaviors). *) - | AInvariant of string list * bool * predicate + | AInvariant of string list * bool * toplevel_predicate (** loop/code invariant. The list of strings is the list of behaviors to which this invariant applies. The boolean flag is true for normal loop invariants and false for invariant-as-assertions. *) @@ -1814,7 +1818,7 @@ and global_annotation = | Dtype of logic_type_info * location (** declaration of a logic type. *) | Dlemma of string * bool * logic_label list * string list * - predicate * attributes * location + toplevel_predicate * attributes * location (** definition of a lemma. The boolean flag is [true] if the property should be taken as an axiom and [false] if it must be proved. *) | Dinvariant of logic_info * location diff --git a/src/kernel_services/ast_data/property.ml b/src/kernel_services/ast_data/property.ml index 7edb1e01b55..4403e5e4eef 100644 --- a/src/kernel_services/ast_data/property.ml +++ b/src/kernel_services/ast_data/property.ml @@ -272,7 +272,7 @@ let get_kf = function | IPTypeInvariant _ | IPGlobalInvariant _ -> None let rec get_names = function - | IPPredicate ip -> ip.ip_pred.ip_content.pred_name + | IPPredicate ip -> (Logic_const.pred_of_id_pred ip.ip_pred).pred_name | IPExtended { ie_ext = {ext_name = name} } | IPAxiom { il_name = name } | IPAxiomatic { iax_name = name } @@ -285,8 +285,8 @@ let rec get_names = function | IPCodeAnnot annot -> begin match annot.ica_ca.annot_content with - | AAssert (_, _, pred) - | AInvariant (_, _, pred) -> pred.pred_name + | AAssert (_, pred) + | AInvariant (_, _, pred) -> pred.tp_statement.pred_name | _ -> [] end | IPComplete _ | IPDisjoint _ | IPAllocation _ @@ -302,7 +302,7 @@ let loc_of_loc_o = function | OLGlob loc -> loc let rec location = function - | IPPredicate {ip_pred} -> ip_pred.ip_content.pred_loc + | IPPredicate {ip_pred} -> (Logic_const.pred_of_id_pred ip_pred).pred_loc | IPBehavior {ib_kf=kf; ib_kinstr=ki} | IPComplete {ic_kf=kf; ic_kinstr=ki} | IPDisjoint {ic_kf=kf; ic_kinstr=ki} @@ -709,9 +709,10 @@ include Datatype.Make_with_collections end) let rec short_pretty fmt p = match p with - | IPPredicate {ip_pred={ip_content={pred_name=name::_}}} -> - Format.pp_print_string fmt name - | IPPredicate _ -> pretty fmt p + | IPPredicate {ip_pred} -> + (match (Logic_const.pred_of_id_pred ip_pred).pred_name with + | name :: _ -> Format.pp_print_string fmt name + | [] -> pretty fmt p) | IPExtended {ie_ext={ext_name}} -> Format.pp_print_string fmt ext_name | IPAxiom {il_name=n} | IPLemma {il_name=n} | IPTypeInvariant {iti_name=n} | IPGlobalInvariant {igi_name=n} @@ -725,9 +726,11 @@ let rec short_pretty fmt p = match p with | IPDisjoint {ic_kf} -> Format.fprintf fmt "disjoint clause in function %a" Kernel_function.pretty ic_kf - | IPCodeAnnot {ica_ca={annot_content=AAssert (_, _, {pred_name=name::_})}} - | IPCodeAnnot {ica_ca={annot_content=AInvariant (_, _, {pred_name=name::_})}} -> - Format.pp_print_string fmt name + | IPCodeAnnot {ica_ca={annot_content=AAssert (_, {tp_statement})}} + | IPCodeAnnot {ica_ca={annot_content=AInvariant (_, _, {tp_statement})}} -> + (match tp_statement.pred_name with + | name :: _ -> Format.pp_print_string fmt name + | [] -> pretty fmt p) | IPCodeAnnot _ -> pretty fmt p | IPAllocation {ial_kf} -> Format.fprintf fmt "allocates/frees clause in function %a" @@ -940,7 +943,8 @@ struct let pp_code_annot_names fmt ca = match ca.annot_content with - | AAssert(for_bhv,_,named_pred) | AInvariant(for_bhv,_,named_pred) -> + | AAssert(for_bhv,pred) | AInvariant(for_bhv,_,pred) -> + let named_pred = pred.tp_statement in let pp_for_bhv fmt l = match l with | [] -> () @@ -997,13 +1001,13 @@ struct | IPPredicate {ip_kind=pk;ip_kf=kf;ip_kinstr=ki;ip_pred=idp} -> Format.asprintf "%s%s%a" (kf_prefix kf) (predicate_kind_txt pk ki) - pp_names idp.ip_content.pred_name + pp_names (Logic_const.pred_of_id_pred idp).pred_name | IPExtended {ie_ext={ext_name};ie_loc=le} -> Format.asprintf "%sextended%a" (extended_loc_prefix le) pp_names [ext_name] | IPCodeAnnot {ica_kf=kf; ica_ca=ca} -> let name = match ca.annot_content with - | AAssert (_, Assert, _) -> "assert" - | AAssert (_, Check, _) -> "check" + | AAssert (_, {tp_only_check = false }) -> "assert" + | AAssert (_, {tp_only_check = true }) -> "check" | AInvariant (_,true,_) -> "loop_inv" | AInvariant _ -> "inv" | APragma _ -> "pragma" @@ -1127,7 +1131,7 @@ struct | K kf -> Sanitizer.add_string buffer (Kernel_function.get_name kf) | A msg -> Sanitizer.add_string buffer msg | S stmt -> Sanitizer.add_string buffer (Printf.sprintf "s%d" stmt.sid) - | I { ip_content = { pred_name = a } } + | I { ip_content = { tp_statement = { pred_name = a } } } | P { pred_name = a } | T { term_name = a } -> Sanitizer.add_list buffer a let rec add_parts buffer = function @@ -1187,14 +1191,13 @@ struct | IPCodeAnnot {ica_kf=kf; ica_stmt=stmt; ica_ca={annot_content=AExtended (_, _, {ext_name})}} -> [ K kf ; A ext_name ; S stmt ] - | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AAssert (_, Assert,p)}} -> - [K kf ; A "assert" ; P p ] - | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AAssert (_, Check,p)}} -> - [K kf ; A "check" ; P p ] + | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AAssert (_,p)}} -> + let a = if p.tp_only_check then "check" else "assert" in + [K kf ; A a ; P p.tp_statement ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AInvariant (_, true, p)}} -> - [K kf ; A "loop_invariant" ; P p ] + [K kf ; A "loop_invariant" ; P p.tp_statement ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AInvariant (_, false, p)}} -> - [K kf ; A "invariant" ; P p ] + [K kf ; A "invariant" ; P p.tp_statement ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AVariant (e, _)}} -> [K kf ; A "loop_variant" ; T e ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AAssigns _}} -> @@ -1508,8 +1511,10 @@ let ip_of_global_annotation a = let iax_props = List.fold_left aux [] l in IPAxiomatic {iax_name; iax_props} :: (iax_props @ acc) | Dlemma(il_name, true, il_labels, il_args, il_pred, _, il_loc) -> + let il_pred = il_pred.tp_statement in ip_axiom {il_name; il_labels; il_args; il_pred; il_loc} :: acc | Dlemma(il_name, false, il_labels, il_args, il_pred, _, il_loc) -> + let il_pred = il_pred.tp_statement in ip_lemma {il_name; il_labels; il_args; il_pred; il_loc} :: acc | Dinvariant(l, igi_loc) -> let igi_pred = match l.l_body with diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml index 28adfb71881..14bab523bb3 100644 --- a/src/kernel_services/ast_printing/cil_printer.ml +++ b/src/kernel_services/ast_printing/cil_printer.ml @@ -3060,16 +3060,12 @@ class cil_printer () = object (self) (Pretty_utils.pp_list ~sep:",@ " pp_print_string) l in match ca.annot_content with - | AAssert (behav,Assert,p) -> + | AAssert (behav,p) -> + let kw = if p.tp_only_check then "check" else "assert" in fprintf fmt "@[%a%a@ %a;@]" pp_for_behavs behav - self#pp_acsl_keyword "assert" - self#predicate p - | AAssert (behav,Check,p) -> - fprintf fmt "@[%a%a@ %a;@]" - pp_for_behavs behav - self#pp_acsl_keyword "check" - self#predicate p + self#pp_acsl_keyword kw + self#predicate p.tp_statement | APragma (Slice_pragma sp) -> fprintf fmt "@[%a@ %a;@]" self#pp_acsl_keyword "slice pragma" @@ -3098,12 +3094,12 @@ class cil_printer () = object (self) fprintf fmt "@[<2>%a%a@ %a;@]" pp_for_behavs behav self#pp_acsl_keyword "loop invariant" - self#predicate i + self#predicate i.tp_statement | AInvariant(behav,false,i) -> fprintf fmt "@[<2>%a%a@ %a;@]" pp_for_behavs behav self#pp_acsl_keyword "invariant" - self#predicate i + self#predicate i.tp_statement | AVariant v -> self#variant fmt v | AExtended (behav, is_loop, e) -> @@ -3204,7 +3200,7 @@ class cil_printer () = object (self) the pretty-printing of labels, and before pretty-printing predicate *) (fun _ -> (match labels with [l] -> current_label <- l | _ -> ())) - self#predicate pred; + self#predicate pred.tp_statement; current_label <- old_lab | Dtype (ti,_) -> fprintf fmt "@[<hv 2>@[%a %a%a%a;@]@\n" diff --git a/src/kernel_services/ast_printing/cil_types_debug.ml b/src/kernel_services/ast_printing/cil_types_debug.ml index bf24ded4942..9f6037a6b45 100644 --- a/src/kernel_services/ast_printing/cil_types_debug.ml +++ b/src/kernel_services/ast_printing/cil_types_debug.ml @@ -881,7 +881,13 @@ and pp_predicate_node fmt = function and pp_identified_predicate fmt identified_predicate = Format.fprintf fmt "{ip_id=%d;ip_content=%a}" - identified_predicate.ip_id pp_predicate identified_predicate.ip_content + identified_predicate.ip_id + pp_toplevel_predicate identified_predicate.ip_content + +and pp_toplevel_predicate fmt toplevel_predicate = + Format.fprintf fmt "{tp_only_check=%B;tp_statement=%a}" + toplevel_predicate.tp_only_check + pp_predicate toplevel_predicate.tp_statement and pp_predicate fmt predicate = Format.fprintf fmt "{%a%apred_content=%a}" (pp_if_list_not_empty "pred_name=" ";" (pp_list pp_string)) predicate.pred_name @@ -960,17 +966,16 @@ and pp_pragma fmt = function | Impact_pragma(term) -> Format.fprintf fmt "Impact_pragma(%a)" pp_impact_pragma term -and pp_assertion_kind fmt = function - | Assert -> Format.pp_print_string fmt "Assert" - | Check -> Format.pp_print_string fmt "Check" - and pp_code_annotation_node fmt = function - | AAssert(string_list,kind,predicate) -> - Format.fprintf fmt "AAssert(%a,%a,%a)" (pp_list pp_string) string_list pp_assertion_kind kind pp_predicate predicate + | AAssert(string_list,p) -> + Format.fprintf fmt "AAssert(%a,%a)" + (pp_list pp_string) string_list + pp_toplevel_predicate p | AStmtSpec(string_list,spec) -> Format.fprintf fmt "AStmtSpec(%a,%a)" (pp_list pp_string) string_list pp_spec spec - | AInvariant(string_list,bool,predicate) -> - Format.fprintf fmt "AInvariant(%a,%a,%a)" (pp_list pp_string) string_list pp_bool bool pp_predicate predicate + | AInvariant(string_list,bool,p) -> + Format.fprintf fmt "AInvariant(%a,%a,%a)" + (pp_list pp_string) string_list pp_bool bool pp_toplevel_predicate p | AVariant(term_variant) -> Format.fprintf fmt "AVariant(%a)" pp_variant term_variant | AAssigns(string_list,assigns) -> @@ -1010,7 +1015,8 @@ and pp_global_annotation fmt = function | Dlemma(string,bool,logic_label_list,string_list,predicate,attributes,location) -> Format.fprintf fmt "Dlemma(%a,%a,%a,%a,%a,%a,%a)" pp_string string pp_bool bool (pp_list pp_logic_label) logic_label_list (pp_list pp_string) string_list - pp_predicate predicate pp_attributes attributes pp_location location + pp_toplevel_predicate predicate + pp_attributes attributes pp_location location | Dinvariant(logic_info,location) -> Format.fprintf fmt "Dinvariant(%a,%a)" pp_logic_info logic_info pp_location location | Dtype_annot(logic_info,location) -> diff --git a/src/kernel_services/ast_printing/description.ml b/src/kernel_services/ast_printing/description.ml index 6822800afec..e9de181388e 100644 --- a/src/kernel_services/ast_printing/description.ml +++ b/src/kernel_services/ast_printing/description.ml @@ -54,7 +54,7 @@ let pp_labels fmt stmt = | ls -> Format.fprintf fmt " '%s'" (String.concat "," ls) let pp_idpred kloc fmt idpred = - let np = idpred.ip_content in + let np = Logic_const.pred_of_id_pred idpred in if np.pred_name <> [] then Format.fprintf fmt " '%s'" (String.concat "," np.pred_name) else pp_kloc kloc fmt np.pred_loc @@ -110,14 +110,16 @@ let pp_named fmt nx = if nx.pred_name <> [] then Format.fprintf fmt " '%s'" (String.concat "," nx.pred_name) +let pp_top fmt tp = pp_named fmt tp.tp_statement + let pp_code_annot fmt ca = match ca.annot_content with - | AAssert(bs,Assert,np) -> - Format.fprintf fmt "assertion%a%a" pp_for bs pp_named np - | AAssert(bs,Check,np) -> - Format.fprintf fmt "check%a%a" pp_for bs pp_named np - | AInvariant(bs,_,np) -> - Format.fprintf fmt "invariant%a%a" pp_for bs pp_named np + | AAssert(bs,tp) when not tp.tp_only_check -> + Format.fprintf fmt "assertion%a%a" pp_for bs pp_top tp + | AAssert(bs,tp) -> + Format.fprintf fmt "check%a%a" pp_for bs pp_top tp + | AInvariant(bs,_,tp) -> + Format.fprintf fmt "invariant%a%a" pp_for bs pp_top tp | AAssigns(bs,_) -> Format.fprintf fmt "assigns%a" pp_for bs | AAllocation(bs,_) -> Format.fprintf fmt "allocates_frees%a" pp_for bs | APragma _ -> Format.pp_print_string fmt "pragma" @@ -253,21 +255,22 @@ let rec pp_prop kfopt kiopt kloc fmt = function pp_bhvs ic_bhvs (pp_opt kiopt (pp_kinstr kloc)) ic_kinstr (pp_opt kiopt pp_active) ic_active - | IPCodeAnnot {ica_ca={annot_content=AAssert(bs,Assert,np)}} -> + | IPCodeAnnot {ica_ca={annot_content=AAssert(bs,tp)}} + when not tp.tp_only_check -> Format.fprintf fmt "Assertion%a%a%a" pp_for bs - pp_named np - (pp_kloc kloc) np.pred_loc - | IPCodeAnnot {ica_ca={annot_content=AAssert(bs,Check,np)}} -> + pp_top tp + (pp_kloc kloc) tp.tp_statement.pred_loc + | IPCodeAnnot {ica_ca={annot_content=AAssert(bs,tp)}} -> Format.fprintf fmt "Check%a%a%a" pp_for bs - pp_named np - (pp_kloc kloc) np.pred_loc - | IPCodeAnnot {ica_ca={annot_content=AInvariant(bs,_,np)}} -> + pp_top tp + (pp_kloc kloc) tp.tp_statement.pred_loc + | IPCodeAnnot {ica_ca={annot_content=AInvariant(bs,_,tp)}} -> Format.fprintf fmt "Invariant%a%a%a" pp_for bs - pp_named np - (pp_kloc kloc) np.pred_loc + pp_top tp + (pp_kloc kloc) tp.tp_statement.pred_loc | IPCodeAnnot {ica_ca={annot_content=AExtended(bs,_,{ext_name})};ica_stmt} -> Format.fprintf fmt "%a%a %a" pp_capitalize ext_name pp_for bs (pp_stmt kloc) ica_stmt @@ -360,18 +363,16 @@ let to_string pp elt = Buffer.contents b let code_annot_kind_and_node code_annot = match code_annot.annot_content with - | AAssert (_, kind, {pred_content; pred_name}) -> + | AAssert (_, {tp_only_check; tp_statement = {pred_content; pred_name}}) -> let kind = match Alarms.find code_annot with | Some alarm -> Alarms.get_name alarm | None -> - if List.exists ((=) "missing_return") pred_name - then "missing_return" - else match kind with - | Assert -> "user assertion" - | Check -> "user check" + if List.exists ((=) "missing_return") pred_name then "missing_return" + else if tp_only_check then "user check" + else "user assertion" in Some (kind, to_string Printer.pp_predicate_node pred_content) - | AInvariant (_, _, {pred_content}) -> + | AInvariant (_, _, {tp_statement = {pred_content}}) -> Some ("loop invariant", to_string Printer.pp_predicate_node pred_content) | _ -> None @@ -471,12 +472,12 @@ let for_order k = function | [] -> [I k] | bs -> I (succ k) :: named_order bs let annot_order = function - | {annot_content=AAssert(bs,Check,np)} -> - for_order 0 bs @ named_order np.pred_name - | {annot_content=AAssert(bs,Assert,np)} -> - for_order 2 bs @ named_order np.pred_name - | {annot_content=AInvariant(bs,_,np)} -> - for_order 4 bs @ named_order np.pred_name + | {annot_content=AAssert(bs,tp)} when tp.tp_only_check -> + for_order 0 bs @ named_order tp.tp_statement.pred_name + | {annot_content=AAssert(bs,tp)} -> + for_order 2 bs @ named_order tp.tp_statement.pred_name + | {annot_content=AInvariant(bs,_,tp)} -> + for_order 4 bs @ named_order tp.tp_statement.pred_name | _ -> [I 6] let loop_order = function | Id_contract (active,b) -> [B b; A active] diff --git a/src/kernel_services/ast_printing/printer.ml b/src/kernel_services/ast_printing/printer.ml index 336d08c7b42..aaaf74c2fd2 100644 --- a/src/kernel_services/ast_printing/printer.ml +++ b/src/kernel_services/ast_printing/printer.ml @@ -288,6 +288,7 @@ let () = Cil_datatype.Logic_label.pretty_ref := pp_logic_label let () = Cil_datatype.Global_annotation.pretty_ref := pp_global_annotation let () = Cil_datatype.Global.pretty_ref := pp_global let () = Cil_datatype.Predicate.pretty_ref := pp_predicate +let () = Cil_datatype.Toplevel_predicate.pretty_ref := pp_toplevel_predicate let () = Cil_datatype.Identified_predicate.pretty_ref := pp_identified_predicate let () = Cil_datatype.Fundec.pretty_ref := pp_fundec diff --git a/src/kernel_services/ast_printing/printer_api.mli b/src/kernel_services/ast_printing/printer_api.mli index e92c4054bf0..55444e77588 100644 --- a/src/kernel_services/ast_printing/printer_api.mli +++ b/src/kernel_services/ast_printing/printer_api.mli @@ -452,6 +452,8 @@ module type S_pp = sig (** @since 21.0-Scandium *) val pp_predicate_node: Format.formatter -> predicate_node -> unit val pp_predicate: Format.formatter -> predicate -> unit + val pp_toplevel_predicate: Format.formatter -> toplevel_predicate -> unit + (** @since Frama-C+dev *) val pp_identified_predicate: Format.formatter -> identified_predicate -> unit val pp_code_annotation: Format.formatter -> code_annotation -> unit val pp_funspec: Format.formatter -> funspec -> unit diff --git a/src/kernel_services/ast_printing/printer_builder.ml b/src/kernel_services/ast_printing/printer_builder.ml index b722dadc351..a733de957ce 100644 --- a/src/kernel_services/ast_printing/printer_builder.ml +++ b/src/kernel_services/ast_printing/printer_builder.ml @@ -66,6 +66,8 @@ struct let pp_term_offset fmt x = (printer ())#term_offset fmt x let pp_predicate_node fmt x = (printer ())#predicate_node fmt x let pp_predicate fmt x = (printer ())#predicate fmt x + let pp_toplevel_predicate fmt x = + (printer())#predicate fmt x.Cil_types.tp_statement let pp_identified_predicate fmt x = (printer ())#identified_predicate fmt x let pp_code_annotation fmt x = (printer ())#code_annotation fmt x let pp_funspec fmt x = (printer ())#funspec fmt x diff --git a/src/kernel_services/ast_queries/cil.ml b/src/kernel_services/ast_queries/cil.ml index 6ec527773bd..04582c3557e 100644 --- a/src/kernel_services/ast_queries/cil.ml +++ b/src/kernel_services/ast_queries/cil.ml @@ -1774,9 +1774,14 @@ and visitCilPredicate vis p = doVisitCil vis id vis#vpredicate childrenPredicate p +and visitCilToplevel_predicate vis p = + let s = p.tp_statement in + let s' = visitCilPredicate vis s in + if s != s' then { p with tp_statement = s' } else p + and childrenIdentified_predicate vis ip = let p = ip.ip_content in - let p' = visitCilPredicate vis p in + let p' = visitCilToplevel_predicate vis p in if p != p' then { ip with ip_content = p' } else ip @@ -2094,7 +2099,7 @@ and childrenAnnotation vis a = vis#get_filling_actions; if ti' != ti then Dtype (ti',loc) else a | Dlemma(s,is_axiom,labels,tvars,p,attr,loc) -> - let p' = visitCilPredicate vis p in + let p' = visitCilToplevel_predicate vis p in let attr' = visitCilAttributes vis attr in if p' != p || attr != attr' then Dlemma(s,is_axiom,labels,tvars,p',attr',loc) @@ -2147,14 +2152,14 @@ and visitCilCodeAnnotation vis ca = vis (Visitor_behavior.ccode_annotation vis#behavior) vis#vcode_annot childrenCodeAnnot ca and childrenCodeAnnot vis ca = - let vPred p = visitCilPredicate vis p in + let vPred p = visitCilToplevel_predicate vis p in let vTerm t = visitCilTerm vis t in let vSpec s = visitCilFunspec vis s in let change_content annot = { ca with annot_content = annot } in match ca.annot_content with - AAssert (behav,kind,p) -> + AAssert (behav,p) -> let p' = vPred p in if p' != p then - change_content (AAssert (behav,kind,p')) + change_content (AAssert (behav,p')) else ca | APragma (Impact_pragma t) -> let t' = visitCilImpactPragma vis t in diff --git a/src/kernel_services/ast_queries/cil_datatype.ml b/src/kernel_services/ast_queries/cil_datatype.ml index e3437fa40dd..e512e92b3b9 100644 --- a/src/kernel_services/ast_queries/cil_datatype.ml +++ b/src/kernel_services/ast_queries/cil_datatype.ml @@ -2248,8 +2248,8 @@ module Code_annotation = struct end) let loc ca = match ca.annot_content with - | AAssert(_,_,{pred_loc=loc}) - | AInvariant(_,_,{pred_loc=loc}) + | AAssert(_,{ tp_statement = {pred_loc=loc}}) + | AInvariant(_,_,{tp_statement = {pred_loc=loc}}) | AVariant({term_loc=loc},_) -> Some loc | AAssigns _ | AAllocation _ | APragma _ | AExtended _ | AStmtSpec _ -> None @@ -2272,6 +2272,20 @@ module Predicate = struct end) end +module Toplevel_predicate = struct + let pretty_ref = ref (fun _ _ -> assert false) + include Make + (struct + type t = toplevel_predicate + let name = "Toplevel_predicate" + let reprs = + [ { tp_statement = List.hd Predicate.reprs; tp_only_check = false }] + let internal_pretty_code = Datatype.undefined + let pretty fmt x = !pretty_ref fmt x + let varname _ = "p" + end) +end + module Identified_predicate = struct let pretty_ref = ref (fun _ _ -> assert false) include Make_with_collections @@ -2279,7 +2293,7 @@ module Identified_predicate = struct type t = identified_predicate let name = "Identified_predicate" let reprs = - [ { ip_content = List.hd Predicate.reprs; ip_id = -1} ] + [ { ip_content = List.hd Toplevel_predicate.reprs; ip_id = -1} ] let compare x y = Extlib.compare_basic x.ip_id y.ip_id let equal x y = x.ip_id = y.ip_id let copy = Datatype.undefined diff --git a/src/kernel_services/ast_queries/cil_datatype.mli b/src/kernel_services/ast_queries/cil_datatype.mli index 460f01de5cb..22b09a997e1 100644 --- a/src/kernel_services/ast_queries/cil_datatype.mli +++ b/src/kernel_services/ast_queries/cil_datatype.mli @@ -310,6 +310,7 @@ module Term_lval: S_with_collections_pretty with type t = term_lval module Logic_real: S_with_collections_pretty with type t = logic_real module Predicate: S_with_pretty with type t = predicate +module Toplevel_predicate: S_with_pretty with type t = toplevel_predicate module Identified_predicate: S_with_collections_pretty with type t = identified_predicate (** @since Neon-20140301 *) diff --git a/src/kernel_services/ast_queries/filecheck.ml b/src/kernel_services/ast_queries/filecheck.ml index c6214a4461b..2eb9c7560b2 100644 --- a/src/kernel_services/ast_queries/filecheck.ml +++ b/src/kernel_services/ast_queries/filecheck.ml @@ -650,7 +650,7 @@ module Base_checker = struct names of statement contracts. *) if is_normalized then begin match ca.annot_content with - | AAssert(bhvs,_,_) | AStmtSpec(bhvs,_) | AInvariant (bhvs,_,_) + | AAssert(bhvs,_) | AStmtSpec(bhvs,_) | AInvariant (bhvs,_,_) | AAssigns(bhvs,_) | AAllocation(bhvs,_) | AExtended (bhvs,_,_) -> List.iter (fun b -> diff --git a/src/kernel_services/ast_queries/logic_const.ml b/src/kernel_services/ast_queries/logic_const.ml index 8ee64b0b366..861d6409949 100644 --- a/src/kernel_services/ast_queries/logic_const.ml +++ b/src/kernel_services/ast_queries/logic_const.ml @@ -43,12 +43,15 @@ let new_code_annotation annot = let fresh_code_annotation = AnnotId.next -let new_predicate p = - { ip_id = PredicateId.next (); ip_content = p } +let toplevel_predicate ?(only_check=false) p = + { tp_only_check = only_check; tp_statement = p } + +let new_predicate ?only_check p = + { ip_id = PredicateId.next (); ip_content = toplevel_predicate ?only_check p } let fresh_predicate_id = PredicateId.next -let pred_of_id_pred p = p.ip_content +let pred_of_id_pred p = p.ip_content.tp_statement let refresh_predicate p = { p with ip_id = PredicateId.next () } diff --git a/src/kernel_services/ast_queries/logic_const.mli b/src/kernel_services/ast_queries/logic_const.mli index 51759d05c13..90795135858 100644 --- a/src/kernel_services/ast_queries/logic_const.mli +++ b/src/kernel_services/ast_queries/logic_const.mli @@ -46,8 +46,19 @@ val refresh_code_annotation: code_annotation -> code_annotation *) val refresh_spec: funspec -> funspec -(** creates a new identified predicate with a fresh id. *) -val new_predicate: predicate -> identified_predicate +(** creates a new toplevel predicate. + [only_check] is true if the corresponding predicate should only be used + to check a property, without adding it as hypothesis for the rest of the + verification. See {!Cil_types.toplevel_predicate} for more information. + Default is [false], i.e. use standard ACSL semantics. + @since Frama-C+dev +*) +val toplevel_predicate: ?only_check:bool -> predicate -> toplevel_predicate + +(** creates a new identified predicate with a fresh id. + @modify Frama-C+dev add [only_check] optional parameter + *) +val new_predicate: ?only_check:bool -> predicate -> identified_predicate (** creates a new acsl_extension with a fresh id. @plugin development guide diff --git a/src/kernel_services/ast_queries/logic_typing.ml b/src/kernel_services/ast_queries/logic_typing.ml index 8bd52d2425d..ff02c3e8b25 100644 --- a/src/kernel_services/ast_queries/logic_typing.ml +++ b/src/kernel_services/ast_queries/logic_typing.ml @@ -3773,15 +3773,16 @@ struct append_loop_labels (append_here_label (append_pre_label (append_init_label (Lenv.empty())))) - let assertion_kind = - function Assert -> Cil_types.Assert | Check -> Cil_types.Check + let only_check = function Assert -> false | Check -> true let code_annot loc current_behaviors current_return_type ca = let source = fst loc in let annot = match ca with | AAssert (behav,k,p) -> check_behavior_names loc current_behaviors behav; - Cil_types.AAssert(behav,assertion_kind k,predicate (code_annot_env()) p) + let p = predicate (code_annot_env()) p in + let p = Logic_const.toplevel_predicate ~only_check:(only_check k) p in + Cil_types.AAssert(behav,p) | APragma (Impact_pragma sp) -> Cil_types.APragma (Cil_types.Impact_pragma (impact_pragma (code_annot_env()) sp)) @@ -3810,7 +3811,8 @@ struct | AInvariant (behav,f,i) -> let env = if f then loop_annot_env () else code_annot_env () in check_behavior_names loc current_behaviors behav; - Cil_types.AInvariant (behav,f,predicate env i) + let p = Logic_const.toplevel_predicate (predicate env i) in + Cil_types.AInvariant (behav,f,p) | AAllocation (behav,fa) -> check_behavior_names loc current_behaviors behav; Cil_types.AAllocation(behav, @@ -4132,7 +4134,7 @@ struct Cil_datatype.Location.pretty old_loc end; let labels,env = annot_env loc labels poly in - let p = predicate env e in + let p = Logic_const.toplevel_predicate (predicate env e) in let labels = match !Lenv.default_label with | None -> labels | Some lab -> [lab] diff --git a/src/kernel_services/ast_queries/logic_utils.ml b/src/kernel_services/ast_queries/logic_utils.ml index bd2af8507ff..84f577652be 100644 --- a/src/kernel_services/ast_queries/logic_utils.ml +++ b/src/kernel_services/ast_queries/logic_utils.ml @@ -129,7 +129,7 @@ let coerce_type typ = else if Cil.isFloatingType ty then Lreal else Ctype typ -let predicate_of_identified_predicate ip = ip.ip_content +let predicate_of_identified_predicate ip = ip.ip_content.tp_statement let translate_old_label s p = let get_label () = @@ -1037,8 +1037,13 @@ and is_same_predicate pred1 pred2 = is_same_list Datatype.String.equal pred1.pred_name pred2.pred_name && is_same_predicate_node pred1.pred_content pred2.pred_content + +and is_same_toplevel_predicate p1 p2 = + p1.tp_only_check = p2.tp_only_check && + is_same_predicate p1.tp_statement p2.tp_statement + and is_same_identified_predicate p1 p2 = - is_same_predicate p1.ip_content p2.ip_content + is_same_toplevel_predicate p1.ip_content p2.ip_content and is_same_identified_term l1 l2 = is_same_term l1.it_content l2.it_content @@ -1142,12 +1147,12 @@ let is_same_extension x1 x2 = let is_same_code_annotation (ca1:code_annotation) (ca2:code_annotation) = match ca1.annot_content, ca2.annot_content with - | AAssert(l1,k1,p1), AAssert(l2,k2,p2) -> - is_same_list (=) l1 l2 && k1 = k2 && is_same_predicate p1 p2 + | AAssert(l1,p1), AAssert(l2,p2) -> + is_same_list (=) l1 l2 && is_same_toplevel_predicate p1 p2 | AStmtSpec (l1,s1), AStmtSpec (l2,s2) -> is_same_list (=) l1 l2 && is_same_spec s1 s2 | AInvariant(l1,b1,p1), AInvariant(l2,b2,p2) -> - is_same_list (=) l1 l2 && b1 = b2 && is_same_predicate p1 p2 + is_same_list (=) l1 l2 && b1 = b2 && is_same_toplevel_predicate p1 p2 | AVariant v1, AVariant v2 -> is_same_variant v1 v2 | AAssigns(l1,a1), AAssigns(l2,a2) -> is_same_list (=) l1 l2 && is_same_assigns a1 a2 @@ -1177,7 +1182,7 @@ let rec is_same_global_annotation ga1 ga2 = Dlemma(n2,ax2,labs2,typs2,st2,attr2,_) -> is_same_string n1 n2 && ax1 = ax2 && is_same_list is_same_logic_label labs1 labs2 && - is_same_list (=) typs1 typs2 && is_same_predicate st1 st2 && + is_same_list (=) typs1 typs2 && is_same_toplevel_predicate st1 st2 && is_same_attributes attr1 attr2 | Dinvariant (li1,_), Dinvariant (li2,_) -> is_same_logic_info li1 li2 | Dtype_annot (li1,_), Dtype_annot (li2,_) -> is_same_logic_info li1 li2 @@ -2170,10 +2175,10 @@ let lhost_c_type thost = | TResult ty -> ty let is_assert ca = - match ca.annot_content with AAssert (_, Assert, _) -> true | _ -> false + match ca.annot_content with AAssert (_, p) -> not p.tp_only_check | _ -> false let is_check ca = - match ca.annot_content with AAssert (_, Check, _) -> true | _ -> false + match ca.annot_content with AAssert (_, p) -> p.tp_only_check | _ -> false let is_contract ca = match ca.annot_content with AStmtSpec _ -> true | _ -> false @@ -2217,7 +2222,7 @@ let is_loop_annot s = let is_trivial_annotation a = match a.annot_content with - | AAssert (_,_,a) -> is_trivially_true a + | AAssert (_,a) -> is_trivially_true a.tp_statement | APragma _ | AStmtSpec _ | AInvariant _ | AVariant _ | AAssigns _| AAllocation _ | AExtended _ -> false diff --git a/src/kernel_services/ast_transformations/filter.ml b/src/kernel_services/ast_transformations/filter.ml index caff6cef46e..d36b2cf000f 100644 --- a/src/kernel_services/ast_transformations/filter.ml +++ b/src/kernel_services/ast_transformations/filter.ml @@ -448,9 +448,12 @@ end = struct Printer.pp_code_annotation v; ChangeTo (Logic_const.new_code_annotation - (AAssert ([], Assert, - { pred_name = []; pred_loc = Cil_datatype.Location.unknown; - pred_content = Ptrue}))) + (AAssert + ([], + Logic_const.toplevel_predicate + { pred_name = []; + pred_loc = Cil_datatype.Location.unknown; + pred_content = Ptrue}))) end method private process_call is_init_call call_stmt lval _f args loc = @@ -714,7 +717,8 @@ end = struct method private visit_pred p = Logic_const.new_predicate - (visitCilPredicate (self:>Cil.cilVisitor) p.ip_content) + (visitCilPredicate (self:>Cil.cilVisitor) + (Logic_const.pred_of_id_pred p)) method private visit_identified_term t = let t' = visitCilTerm (self:>Cil.cilVisitor) t.it_content in @@ -733,11 +737,15 @@ end = struct method! vbehavior b = let finfo = self#get_finfo () in - let pre_visible p = Info.fun_precond_visible finfo p.ip_content in + let pre_visible p = + Info.fun_precond_visible finfo (Logic_const.pred_of_id_pred p) + in b.b_assumes <- filter_list pre_visible self#visit_pred b.b_assumes; b.b_requires <- filter_list pre_visible self#visit_pred b.b_requires; - let ensure_visible (_,p) = Info.fun_postcond_visible finfo p.ip_content in + let ensure_visible (_,p) = + Info.fun_postcond_visible finfo (Logic_const.pred_of_id_pred p) + in b.b_post_cond <- filter_list ensure_visible (fun (k,p) -> k,self#visit_pred p) b.b_post_cond; @@ -785,7 +793,7 @@ end = struct let new_term = match spec.spec_terminates with | None -> None | Some p -> - if Info.fun_precond_visible finfo p.ip_content + if Info.fun_precond_visible finfo (Logic_const.pred_of_id_pred p) then Some (self#visit_pred p) else None in diff --git a/src/plugins/aorai/aorai_utils.ml b/src/plugins/aorai/aorai_utils.ml index c4fb25191c1..8ace0513ae6 100644 --- a/src/plugins/aorai/aorai_utils.ml +++ b/src/plugins/aorai/aorai_utils.ml @@ -957,6 +957,7 @@ let mk_deterministic_lemma () = in let trans = Path_analysis.get_transitions_of_state state automaton in let prop = Extlib.product_fold disjoint_guards ptrue trans trans in + let prop = Logic_const.toplevel_predicate ~only_check:true prop in let name = state.Promelaast.name ^ "_deterministic_trans" in let lemma = Dlemma (name, false, [label],[],prop,[],Cil_datatype.Location.unknown) diff --git a/src/plugins/aorai/aorai_visitors.ml b/src/plugins/aorai/aorai_visitors.ml index 7ce63778b53..2b7c52b53ec 100644 --- a/src/plugins/aorai/aorai_visitors.ml +++ b/src/plugins/aorai/aorai_visitors.ml @@ -463,6 +463,7 @@ let get_unchanged_aux_var loc current_state = class visit_adding_pre_post_from_buch treatloops = let predicate_to_invariant kf stmt pred = + let pred = Logic_const.toplevel_predicate pred in Annotations.add_code_annot Aorai_option.emitter ~kf diff --git a/src/plugins/e-acsl/src/code_generator/logic_array.ml b/src/plugins/e-acsl/src/code_generator/logic_array.ml index 08e9eda66c4..95faf7ea005 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_array.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_array.ml @@ -202,7 +202,7 @@ let comparison_to_exp ~loc kf env ~name bop array1 array2 = Alarms.get_name (Index_out_of_bound (iter_e, Some len1_exp)) in match a.annot_content with - | AAssert (_, _, { pred_name = hd :: _ }) + | AAssert (_, { tp_statement = { pred_name = hd :: _ }}) when Datatype.String.equal hd index_bound -> false | _ -> true in diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 2df14a6f11f..480059c4a51 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -1037,13 +1037,14 @@ and translate_rte_annots: let env = List.fold_left (fun env a -> match a.annot_content with - | AAssert(_, _, p) -> + | AAssert(_, p) -> handle_error (fun env -> Options.feedback ~dkey ~level:4 "prevent RTE from %a" pp elt; (* The logic scope MUST NOT be reset here since we still might be in the middle of the translation of the original predicate. *) + let p = p.tp_statement in let lscope_reset_old = Env.Logic_scope.get_reset env in let env = Env.Logic_scope.set_reset env false in let env = translate_named_predicate kf (Env.rte env false) p in @@ -1160,10 +1161,11 @@ let must_translate_opt = function let assumes_predicate bhv = List.fold_left (fun acc p -> - let loc = p.ip_content.pred_loc in + let pred = p.ip_content.tp_statement in + let loc = pred.pred_loc in Logic_const.pand ~loc (acc, - Logic_const.unamed ~loc p.ip_content.pred_content)) + Logic_const.unamed ~loc pred.pred_content)) Logic_const.ptrue bhv.b_assumes @@ -1173,14 +1175,15 @@ let translate_preconditions kf kinstr env behaviors = let assumes_pred = assumes_predicate b in List.fold_left (fun env p -> + let pred = p.ip_content.tp_statement in let do_it env = if must_translate (Property.ip_of_requires kf kinstr b p) then - let loc = p.ip_content.pred_loc in + let loc = pred.pred_loc in let p = Logic_const.pimplies ~loc (assumes_pred, - Logic_const.unamed ~loc p.ip_content.pred_content) + Logic_const.unamed ~loc pred.pred_content) in translate_named_predicate kf env p else @@ -1214,8 +1217,8 @@ let translate_postconditions kf kinstr env behaviors = let do_it env = match t with | Normal -> - let loc = p.ip_content.pred_loc in - let p = p.ip_content in + let p = p.ip_content.tp_statement in + let loc = p.pred_loc in let p = Logic_const.pimplies ~loc @@ -1282,12 +1285,12 @@ let translate_post_spec kf kinstr env spec = let translate_pre_code_annotation kf stmt env annot = let convert env = match annot.annot_content with - | AAssert(l, _, p) -> + | AAssert(l, p) -> if must_translate (Property.ip_of_code_annot_single kf stmt annot) then let env = Env.set_annotation_kind env Smart_stmt.Assertion in if l <> [] then not_yet env "@[assertion applied only on some behaviors@]"; - translate_named_predicate kf env p + translate_named_predicate kf env p.tp_statement else env | AStmtSpec(l, spec) -> @@ -1299,8 +1302,10 @@ let translate_pre_code_annotation kf stmt env annot = let env = Env.set_annotation_kind env Smart_stmt.Invariant in if l <> [] then not_yet env "@[invariant applied only on some behaviors@]"; - let env = translate_named_predicate kf env p in - if loop_invariant then Env.add_loop_invariant env p else env + let env = translate_named_predicate kf env p.tp_statement in + if loop_invariant then + Env.add_loop_invariant env p.tp_statement + else env else env | AVariant _ -> diff --git a/src/plugins/gui/property_navigator.ml b/src/plugins/gui/property_navigator.ml index cc6b91fad05..e2f62844d00 100644 --- a/src/plugins/gui/property_navigator.ml +++ b/src/plugins/gui/property_navigator.ml @@ -636,14 +636,12 @@ let make_panel (main_ui:main_window_extension_points) = | IPLemma _ -> lemmas.get () | IPComplete _ -> complete_disjoint.get () | IPDisjoint _ -> complete_disjoint.get () - | IPCodeAnnot {ica_ca={annot_content = AAssert (_, kind, _)} as ca} -> + | IPCodeAnnot {ica_ca={annot_content=AAssert(_, {tp_only_check})} as ca} -> begin match Alarms.find ca with | Some a -> rte.get () && active_alarm a | None -> - match kind with - | Assert -> user_assertions.get () - | Check -> user_checks.get () + if tp_only_check then user_checks.get() else user_assertions.get () end | IPCodeAnnot {ica_ca={annot_content = AInvariant _}} -> invariant.get () diff --git a/src/plugins/inout/operational_inputs.ml b/src/plugins/inout/operational_inputs.ml index f1c1fe4aa45..0a9e9394864 100644 --- a/src/plugins/inout/operational_inputs.ml +++ b/src/plugins/inout/operational_inputs.ml @@ -371,7 +371,7 @@ end) = struct Annotations.iter_code_annot (fun _ ca -> match ca.annot_content with - | AAssert (_, _, p) + | AAssert (_, p) | AInvariant (_, true, p) -> begin let env = @@ -380,7 +380,7 @@ end) = struct ~here:(X.stmt_state stmt) () in - match Eva.Eval_terms.predicate_deps env p with + match Eva.Eval_terms.predicate_deps env p.tp_statement with | None -> (* To be sound, we should perform a join with the top zone here. We do nothing instead because the latter behavior would diff --git a/src/plugins/instantiate/stdlib/basic_alloc.ml b/src/plugins/instantiate/stdlib/basic_alloc.ml index a35a97b53e3..42142cc28c4 100644 --- a/src/plugins/instantiate/stdlib/basic_alloc.ml +++ b/src/plugins/instantiate/stdlib/basic_alloc.ml @@ -82,6 +82,7 @@ let make_axiomatic_is_allocable loc () = let cond = pand (prel (Rlt, t_i, zero), prel (Rgt, t_i, max)) in let app = pnot (papp (is_allocable,[label],[t_i])) in let prop = pforall ([lv_i], pimplies (cond, app)) in + let prop = Logic_const.toplevel_predicate prop in let gfun = Dfun_or_pred(is_allocable, loc) in let axiom = Dlemma("never_allocable", true, [label],[],prop,[], loc) in ("dynamic_allocation", [gfun ; axiom]), [is_allocable] diff --git a/src/plugins/obfuscator/obfuscate.ml b/src/plugins/obfuscator/obfuscate.ml index 5cf8be87e63..adbe1215a83 100644 --- a/src/plugins/obfuscator/obfuscate.ml +++ b/src/plugins/obfuscator/obfuscate.ml @@ -150,11 +150,14 @@ class visitor = object Cil.SkipChildren else begin Identified_predicate.Hashtbl.add id_pred_visited p (); - let names = p.ip_content.pred_name in + let { tp_only_check = only_check; tp_statement = pred } = p.ip_content in + let names = pred.pred_name in let names' = List.map (Dictionary.fresh Obfuscator_kind.Predicate) names in - let p' = { p with ip_content = { p.ip_content with pred_name = names'}} in + let pred' = { pred with pred_name = names' } in + let ip_content = Logic_const.toplevel_predicate ~only_check pred' in + let p' = { p with ip_content } in Cil.ChangeDoChildrenPost (p', Extlib.id) end diff --git a/src/plugins/scope/datascope.ml b/src/plugins/scope/datascope.ml index 6c190670c61..1fb31afa260 100644 --- a/src/plugins/scope/datascope.ml +++ b/src/plugins/scope/datascope.ml @@ -488,15 +488,17 @@ let add_proven_annot (ca, stmt_ca) (ca_because, stmt_because) acc = let check_stmt_annots (ca, stmt_ca) stmt acc = let check _ annot acc = match ca.annot_content, annot.annot_content with - | AAssert (_, Assert, p'), AAssert (_, _, p) -> - if Logic_utils.is_same_predicate_node p.pred_content p'.pred_content then - let acc, added = add_proven_annot (annot, stmt) (ca, stmt_ca) acc in - if added then - R.debug "annot at stmt %d could be removed: %a" - stmt.sid Printer.pp_code_annotation annot; - acc - else - acc + | AAssert (_, p'), AAssert (_, p) when not p'.tp_only_check -> + let p = p.tp_statement.pred_content in + let p' = p'.tp_statement.pred_content in + if Logic_utils.is_same_predicate_node p p' then + let acc, added = add_proven_annot (annot, stmt) (ca, stmt_ca) acc in + if added then + R.debug "annot at stmt %d could be removed: %a" + stmt.sid Printer.pp_code_annotation annot; + acc + else + acc | _ -> acc in Annotations.fold_code_annot check stmt acc diff --git a/src/plugins/server/kernel_properties.ml b/src/plugins/server/kernel_properties.ml index ef20336fc6a..9ca090505b8 100644 --- a/src/plugins/server/kernel_properties.ml +++ b/src/plugins/server/kernel_properties.ml @@ -114,8 +114,8 @@ struct | IPDisjoint _ -> t_disjoint | IPCodeAnnot { ica_ca={ annot_content } } -> begin match annot_content with - | AAssert (_, Assert, _) -> t_assert - | AAssert (_, Check, _) -> t_check + | AAssert (_, {tp_only_check = false}) -> t_assert + | AAssert (_, {tp_only_check = true }) -> t_check | AStmtSpec _ -> t_code_contract | AInvariant(_,false,_) -> t_code_invariant | AInvariant(_,true,_) -> t_loop_invariant diff --git a/src/plugins/value/alarmset.ml b/src/plugins/value/alarmset.ml index b0bd8fb82ac..4a88c3eee32 100644 --- a/src/plugins/value/alarmset.ml +++ b/src/plugins/value/alarmset.ml @@ -216,9 +216,10 @@ let local_printer: Printer.extensible_printer = method! code_annotation fmt ca = temporaries <- Cil_datatype.Varinfo.Set.empty; match ca.annot_content with - | AAssert (_, _, p) -> + | AAssert (_, p) -> (* ignore the ACSL name *) - Format.fprintf fmt "@[<v>@[assert@ %a;@]" self#predicate_node p.pred_content; + let p = p.tp_statement.pred_content in + Format.fprintf fmt "@[<v>@[assert@ %a;@]" self#predicate_node p; (* print temporary variables information *) if not (Cil_datatype.Varinfo.Set.is_empty temporaries) then begin Format.fprintf fmt "@ @[(%t)@]" self#pp_temporaries diff --git a/src/plugins/value/domains/traces_domain.ml b/src/plugins/value/domains/traces_domain.ml index 32548a62121..1ac089b9834 100644 --- a/src/plugins/value/domains/traces_domain.ml +++ b/src/plugins/value/domains/traces_domain.ml @@ -1082,7 +1082,8 @@ let rec stmts_of_cfg cfg current var_map locals return_exp acc = let exp = subst_in_exp var_map exp in let predicate = Logic_utils.expr_to_predicate exp in let predicate = if b then predicate else Logic_const.pnot predicate in - let code_node = Cil_types.AAssert([],Assert,predicate) in + let predicate = Logic_const.toplevel_predicate predicate in + let code_node = Cil_types.AAssert([],predicate) in let code_annot = Logic_const.new_code_annotation code_node in let stmt_kind = Cil_types.Code_annot(code_annot,exp.eloc) in let stmt = Cil.mkStmtOneInstr ~valid_sid stmt_kind in diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index 294b81b7245..2f2ffed8b1e 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -137,7 +137,7 @@ let emit_message_and_status kind kf behavior ~active ~empty property named_pred let create_conjunction l= let loc = match l with | [] -> None - | p :: _ -> Some p.ip_content.pred_loc + | p :: _ -> Some (Logic_const.pred_of_id_pred p).pred_loc in Logic_const.(List.fold_right (fun p1 p2 -> pand ?loc (p1, p2)) (List.map pred_of_id_pred l) ptrue) @@ -580,8 +580,8 @@ module Make let code_annotation_text ca = match ca.annot_content with - | AAssert (_, Assert, _) -> "assertion" - | AAssert (_, Check, _) -> "check" + | AAssert (_,{tp_only_check = false}) -> "assertion" + | AAssert (_,{tp_only_check = true}) -> "check" | AInvariant _ -> "loop invariant" | APragma _ | AVariant _ | AAssigns _ | AAllocation _ | AStmtSpec _ | AExtended _ -> @@ -687,9 +687,10 @@ module Make aux_interp ~reduce code_annot behav p in match code_annot.annot_content with - | AAssert (behav, Check, p) -> aux ~reduce:false code_annot behav p - | AAssert (behav, Assert, p) - | AInvariant (behav, true, p) -> aux ~reduce:true code_annot behav p + | AAssert (behav, p) -> + aux ~reduce:(not p.tp_only_check) code_annot behav p.tp_statement + | AInvariant (behav, true, p) -> + aux ~reduce:true code_annot behav p.tp_statement | APragma _ | AInvariant (_, false, _) | AVariant _ | AAssigns _ | AAllocation _ | AExtended _ diff --git a/src/plugins/value/gui_files/gui_red.ml b/src/plugins/value/gui_files/gui_red.ml index 1e6c0ffb11d..f0b81cb0d84 100644 --- a/src/plugins/value/gui_files/gui_red.ml +++ b/src/plugins/value/gui_files/gui_red.ml @@ -69,7 +69,8 @@ type red_alarm = { let get_predicate ca = match ca.annot_content with - | AAssert (_, _, p) -> { p with pred_name = [] } + | AAssert (_, p) -> + { p with tp_statement = { p.tp_statement with pred_name = [] }} | _ -> assert false let make_red_alarm function_name ki alarm callstacks = @@ -84,7 +85,9 @@ let make_red_alarm function_name ki alarm callstacks = let ip = Property.ip_of_code_annot_single kf stmt ca in let kind = String.capitalize_ascii (Alarms.get_name alarm) in let p = get_predicate ca in - let acsl = Format.asprintf "@[<hov>%a@]" Cil_datatype.Predicate.pretty p in + let acsl = + Format.asprintf "@[<hov>%a@]" Cil_datatype.Toplevel_predicate.pretty p + in let alarm_or_prop = Red_statuses.Alarm alarm in { function_name; ip; kind; alarm_or_prop; acsl; callstacks } diff --git a/src/plugins/value/gui_files/register_gui.ml b/src/plugins/value/gui_files/register_gui.ml index dc46ee11e7e..19d46c75109 100644 --- a/src/plugins/value/gui_files/register_gui.ml +++ b/src/plugins/value/gui_files/register_gui.ml @@ -461,13 +461,17 @@ module Select (Eval: Eval) = struct | PVDecl (Some kf, Kstmt stmt, vi) -> let lv = (Var vi, NoOffset) in select_lv main_ui (GL_Stmt (kf, stmt)) lv - | PIP (IPCodeAnnot {ica_kf = kf; ica_stmt = stmt; - ica_ca = {annot_content = - AAssert (_, _, p) - | AInvariant (_, true, p)} as ca - } as ip) -> + | PIP ( + IPCodeAnnot { + ica_kf = kf; ica_stmt = stmt; + ica_ca = { + annot_content = + AAssert (_, p) | AInvariant (_, true, p) + } as ca + } as ip) -> begin let loc = GL_Stmt (kf, stmt) in + let p = p.tp_statement in let alarm_or_property = match Alarms.find ca with | None -> Red_statuses.Prop ip diff --git a/src/plugins/value/legacy/eval_annots.ml b/src/plugins/value/legacy/eval_annots.ml index e043c43a0b8..978309b89bb 100644 --- a/src/plugins/value/legacy/eval_annots.ml +++ b/src/plugins/value/legacy/eval_annots.ml @@ -29,8 +29,8 @@ let has_requires spec = let code_annotation_text ca = match ca.annot_content with - | AAssert (_, Assert, _) -> "assertion" - | AAssert (_, Check, _) -> "check" + | AAssert (_, {tp_only_check=false}) -> "assertion" + | AAssert (_, {tp_only_check=true}) -> "check" | AInvariant _ -> "loop invariant" | APragma _ | AVariant _ | AAssigns _ | AAllocation _ | AStmtSpec _ | AExtended _ -> @@ -203,7 +203,8 @@ let mark_green_and_red () = currently skipped during evaluation. *) if contains_c_at ca || (Alarms.find ca <> None) then match ca.annot_content with - | AAssert (_, _, p) | AInvariant (_, true, p) -> + | AAssert (_, p) | AInvariant (_, true, p) -> + let p = p.tp_statement in let loc = code_annotation_loc ca stmt in Cil.CurrentLoc.set loc; let kf = Kernel_function.find_englobing_kf stmt in @@ -246,7 +247,8 @@ let mark_invalid_initializers () = | None -> () | Some _ -> match ca.annot_content with - | AAssert (_, _, p) -> + | AAssert (_, p) -> + let p = p.tp_statement in let ip = Property.ip_of_code_annot_single kf first_stmt ca in (* Evaluate in a fully empty state. Only predicates that do not depend on the memory will result in 'False' *) diff --git a/src/plugins/wp/LogicUsage.ml b/src/plugins/wp/LogicUsage.ml index 953d1c9b92b..ad485a2251d 100644 --- a/src/plugins/wp/LogicUsage.ml +++ b/src/plugins/wp/LogicUsage.ml @@ -204,7 +204,7 @@ let lemma_of_global proof = function lem_types = types ; lem_labels = labels ; lem_axiom = axiom ; - lem_property = pred ; + lem_property = pred.tp_statement ; lem_depends = proof ; } | _ -> assert false diff --git a/src/plugins/wp/Splitter.ml b/src/plugins/wp/Splitter.ml index 32dfd8adf7a..2ae3208e7b0 100644 --- a/src/plugins/wp/Splitter.ml +++ b/src/plugins/wp/Splitter.ml @@ -50,7 +50,7 @@ let pretty fmt = function let loc = function | THEN s | ELSE s | CASE(s,_) | CALL(s,_) | DEFAULT s -> Stmt.loc s - | ASSERT(p,_,_) -> p.ip_content.pred_loc + | ASSERT(p,_,_) -> p.ip_content.tp_statement.pred_loc let compare p q = if p == q then 0 else @@ -103,8 +103,7 @@ and unwrap p = (unwrap p) | _ -> raise Exit -let predicate ip = - ip.ip_content +let predicate ip = ip.ip_content.tp_statement let rec enumerate ip k n = function | [] -> [] diff --git a/src/plugins/wp/StmtSemantics.ml b/src/plugins/wp/StmtSemantics.ml index 234884282f5..28aaa51e928 100644 --- a/src/plugins/wp/StmtSemantics.ml +++ b/src/plugins/wp/StmtSemantics.ml @@ -297,9 +297,9 @@ struct with Not_found -> Wp_parameters.fatal "Error during compilation" let assert_ env p prop_id = - let pos = pred env `Positive p.ip_content in + let pos = pred env `Positive p.ip_content.tp_statement in let env' = env @* [Clabels.here, env @: Clabels.next ] in - let neg = pred env' `Negative p.ip_content in + let neg = pred env' `Negative p.ip_content.tp_statement in let goal = { goal_pred = pos; goal_prop = prop_id; @@ -430,7 +430,7 @@ struct in let post_cond termination_kind env (tk, ip) = if tk = termination_kind then - assume_ env `Positive ip.ip_content + assume_ env `Positive ip.ip_content.tp_statement else nop in let behavior env b = @@ -540,7 +540,7 @@ struct let node = get_node nodes vertex in bind c_label node acc ) a.labels env in - assume (pred env `Negative a.predicate.ip_content) @^ + assume (pred env `Negative a.predicate.ip_content.tp_statement) @^ goto (env @: Clabels.here) (env @: Clabels.next) | Prop _ -> not_yet "[StmtSemantics] Annots other than 'assert'" @@ -717,7 +717,7 @@ struct in assume, List.fold_left - (fun acc ip -> acc @^ pre_cond `Negative env ip.ip_content) + (fun acc ip -> acc @^ pre_cond `Negative env ip.ip_content.tp_statement) nop b.b_requires @^ goto (env @: Clabels.here) (env @: Clabels.next) in diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index b7b5698f643..053cc01398f 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -862,7 +862,7 @@ let get_loop_annots config vloop s = let do_annot _ a (assigns, loop_entry, loop_back , loop_core as acc) = match a.annot_content with | AInvariant (b_list, true, inv) -> - add_loop_invariant_annot config vloop s a b_list inv acc + add_loop_invariant_annot config vloop s a b_list inv.tp_statement acc | AVariant (var_exp, None) -> let loop_entry, loop_back = add_variant_annot config s a var_exp loop_entry loop_back @@ -934,47 +934,51 @@ let get_stmt_annots config v s = Printer.pp_code_annotation a; acc end - | AAssert (b_list, kind, p) -> + | AAssert (b_list, p) -> let kf = config.kf in let acc = match is_annot_for_config config v s b_list with | TBRno -> acc | TBRhyp -> - if kind = Check then acc + if p.tp_only_check then acc else let b_acc = - WpStrategy.add_prop_assert b_acc WpStrategy.Ahyp kf s a p + WpStrategy.add_prop_assert + b_acc WpStrategy.Ahyp kf s a p.tp_statement in (b_acc, (a_acc, e_acc)) | TBRok | TBRpart -> let id = WpPropId.mk_assert_id config.kf s a in - let check = kind = Check - and goal = goal_to_select config id in - if check && not goal then acc + let goal = goal_to_select config id in + if p.tp_only_check && not goal then acc else - let kind = WpStrategy.(if check then Agoal else Aboth goal) in - let b_acc = WpStrategy.add_prop_assert b_acc kind kf s a p in + let kind = + WpStrategy.(if p.tp_only_check then Agoal else Aboth goal) + in + let b_acc = + WpStrategy.add_prop_assert b_acc kind kf s a p.tp_statement + in (b_acc, (a_acc, e_acc)) in acc - | AAllocation (_b_list, _frees_allocates) -> - (* [PB] TODO *) acc - | AAssigns (_b_list, _assigns) -> - (* loop assigns: see get_loop_annots *) acc - | AVariant (_v, _rel) -> (* see get_loop_annots *) acc - | APragma _ -> acc - | AStmtSpec (b_list, spec) -> - if b_list <> [] then (* TODO ! *) - Wp_parameters.warning ~once:true - "Ignored specification 'for %a' (generalize to all behavior)" - (Pretty_utils.pp_list ~sep:", " Format.pp_print_string) - b_list; - add_stmt_spec_annots config v s b_list spec acc - | AExtended _ -> acc - in - let before_acc = - add_stmt_deadcode_smoke config WpStrategy.empty_acc s in - let after_acc = WpStrategy.empty_acc in - let exits_acc = WpStrategy.empty_acc in - let acc = before_acc, (after_acc, exits_acc) in - Annotations.fold_code_annot do_annot s acc + | AAllocation (_b_list, _frees_allocates) -> + (* [PB] TODO *) acc + | AAssigns (_b_list, _assigns) -> + (* loop assigns: see get_loop_annots *) acc + | AVariant (_v, _rel) -> (* see get_loop_annots *) acc + | APragma _ -> acc + | AStmtSpec (b_list, spec) -> + if b_list <> [] then (* TODO ! *) + Wp_parameters.warning ~once:true + "Ignored specification 'for %a' (generalize to all behavior)" + (Pretty_utils.pp_list ~sep:", " Format.pp_print_string) + b_list; + add_stmt_spec_annots config v s b_list spec acc +| AExtended _ -> acc +in +let before_acc = + add_stmt_deadcode_smoke config WpStrategy.empty_acc s in +let after_acc = WpStrategy.empty_acc in +let exits_acc = WpStrategy.empty_acc in +let acc = before_acc, (after_acc, exits_acc) in +Annotations.fold_code_annot do_annot s acc let get_fct_pre_annots config spec = let acc = WpStrategy.empty_acc in @@ -1425,7 +1429,7 @@ let get_id_prop_strategies ~model ?(assigns=WithAssigns) p = let open Property in match p with | IPCodeAnnot {ica_kf; ica_ca} -> let bhvs = match ica_ca.annot_content with - | AAssert (l, _, _) | AInvariant (l, _, _) | AAssigns (l, _) -> l + | AAssert (l, _) | AInvariant (l, _, _) | AAssigns (l, _) -> l | _ -> [] in get_strategies assigns ica_kf model bhvs None (IdProp p) | IPAssigns {ias_kf = kf; ias_bhv = Id_loop _} diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 7b694b72a67..77400497f4d 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -466,9 +466,11 @@ let ident_names names = | _ as n -> '\"' <> (String.get n 0) ) names let code_annot_names ca = match ca.annot_content with - | AAssert (_, Check, named_pred) -> "@check"::(ident_names named_pred.pred_name) - | AAssert (_, Assert, named_pred) -> "@assert"::(ident_names named_pred.pred_name) - | AInvariant (_,_,named_pred) -> "@invariant"::(ident_names named_pred.pred_name) + | AAssert (_, pred) -> + let cat = if pred.tp_only_check then "@check" else "@assert" in + cat::(ident_names pred.tp_statement.pred_name) + | AInvariant (_,_,named_pred) -> + "@invariant"::(ident_names named_pred.tp_statement.pred_name) | AVariant (term, _) -> "@variant"::(ident_names term.term_name) | AExtended(_,_,{ext_name}) -> [Printf.sprintf "@%s" ext_name] | _ -> [] (* TODO : add some more names ? *) @@ -479,7 +481,7 @@ let user_prop_names p = let open Property in match p with | IPPredicate {ip_kind; ip_pred} -> Format.asprintf "@@%a" Property.pretty_predicate_kind ip_kind :: - ip_pred.ip_content.pred_name + ip_pred.ip_content.tp_statement.pred_name | IPExtended {ie_ext={ext_name}} -> [ Printf.sprintf "@%s" ext_name ] | IPCodeAnnot {ica_ca} -> code_annot_names ica_ca | IPComplete {ic_bhvs} -> @@ -641,8 +643,8 @@ let assigns_hints hs froms = List.iter (fun ({it_content=t},_) -> term_hints hs t) froms let annot_hints hs = function - | AAssert(bs,_,ipred) | AInvariant(bs,_,ipred) -> - List.iter (add_hint hs) (ident_names ipred.pred_name) ; + | AAssert(bs,ipred) | AInvariant(bs,_,ipred) -> + List.iter (add_hint hs) (ident_names ipred.tp_statement.pred_name) ; List.iter (add_hint hs) bs | AAssigns(bs,Writes froms) -> List.iter (add_hint hs) bs ; @@ -659,7 +661,7 @@ let property_hints hs = | IPComplete {ic_bhvs} | IPDisjoint {ic_bhvs} -> List.iter (add_required hs) ic_bhvs | IPPredicate {ip_pred} -> - List.iter (add_hint hs) ip_pred.ip_content.pred_name + List.iter (add_hint hs) ip_pred.ip_content.tp_statement.pred_name | IPExtended {ie_ext={ext_name}} -> List.iter (add_hint hs) [ext_name] | IPCodeAnnot {ica_ca} -> annot_hints hs ica_ca.annot_content | IPAssigns {ias_froms} -> assigns_hints hs ias_froms diff --git a/src/plugins/wp/wpReached.ml b/src/plugins/wp/wpReached.ml index 98acfad8ecb..f2b7abc1387 100644 --- a/src/plugins/wp/wpReached.ml +++ b/src/plugins/wp/wpReached.ml @@ -84,8 +84,9 @@ let is_dead_annot ca = match ca.annot_content with | APragma (Loop_pragma (Unroll_specs [ spec ; _ ])) -> false && is_unrolled_completely spec - | AAssert([],Assert,p) -> is_predicate false p - | AInvariant([],_,p) -> is_predicate false p + | AAssert([],p) -> + not p.tp_only_check && is_predicate false p.tp_statement + | AInvariant([],_,p) -> is_predicate false p.tp_statement | _ -> false let is_dead_code stmt = diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index 1d6649a3de7..1e5cc14b71b 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -723,7 +723,8 @@ let set_doomed emitter pid = let pred_loc = Stmt.loc stmt in let pred_name = [ "Wp" ; "SmokeTest" ] in let pf = { Logic_const.pfalse with pred_loc ; pred_name } in - let ca = Logic_const.new_code_annotation (AAssert ([],Assert,pf)) in + let pf = Logic_const.toplevel_predicate pf in + let ca = Logic_const.new_code_annotation (AAssert ([],pf)) in Annotations.add_code_annot emitter ~kf stmt ca ; ca in List.iter (set_invalid emitter) (Property.ip_of_code_annot kf stmt ca) -- GitLab From 3f24bc8d5b398cc7c09ef314a972b557b0f00454 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 4 Sep 2020 09:56:16 +0200 Subject: [PATCH 085/255] [tests] update test scripts with new API --- tests/libc/check_const.ml | 2 +- tests/libc/check_libc_naming_conventions.ml | 6 +++--- tests/spec/add_global.ml | 3 ++- tests/spec/bts0578.ml | 8 ++++---- tests/spec/expr_to_term.ml | 2 +- 5 files changed, 11 insertions(+), 10 deletions(-) diff --git a/tests/libc/check_const.ml b/tests/libc/check_const.ml index 60f734a6e45..965f710a3ca 100644 --- a/tests/libc/check_const.ml +++ b/tests/libc/check_const.ml @@ -21,7 +21,7 @@ let warn_if_not_const kf string typ vi loc = string Printer.pp_varinfo vi string let check_annot kf _ (a: identified_predicate) = - let p = a.ip_content.pred_content in + let p = (Logic_const.pred_of_id_pred a).pred_content in match p with | Pvalid (_, t) | Pvalid_read (_, t) | Papp ({l_var_info={lv_name=("valid_string"|"valid_read_string")}}, diff --git a/tests/libc/check_libc_naming_conventions.ml b/tests/libc/check_libc_naming_conventions.ml index c7a99150495..c928b21109b 100644 --- a/tests/libc/check_libc_naming_conventions.ml +++ b/tests/libc/check_libc_naming_conventions.ml @@ -58,21 +58,21 @@ let () = if Cil.hasAttribute "fc_stdlib" fun_attrs then begin Annotations.iter_behaviors (fun _emitter bhv -> List.iter (fun ip -> - let pred = ip.ip_content in + let pred = Logic_const.pred_of_id_pred ip in warn_if_unnamed "requires" pred; check_initialized pred; check_dangling pred; check_separated pred; ) bhv.b_requires; List.iter (fun ip -> - let pred = ip.ip_content in + let pred = Logic_const.pred_of_id_pred ip in warn_if_unnamed "assumes" pred; check_initialized pred; check_dangling pred; check_separated pred; ) bhv.b_assumes; List.iter (fun (_termination, ip) -> - let pred = ip.ip_content in + let pred = Logic_const.pred_of_id_pred ip in warn_if_unnamed "ensures" pred; check_initialized pred; check_dangling pred; diff --git a/tests/spec/add_global.ml b/tests/spec/add_global.ml index 39b169539e4..0a8f954137c 100644 --- a/tests/spec/add_global.ml +++ b/tests/spec/add_global.ml @@ -15,7 +15,8 @@ object(self) ("MyAxiomatic", [ Dlemma( "myaxiom", true, [], [], - Logic_const.ptrue, [], Cil_datatype.Location.unknown)], + Logic_const.(toplevel_predicate ptrue), + [], Cil_datatype.Location.unknown)], [], Cil_datatype.Location.unknown) in Queue.add (fun () -> Annotations.add_global emitter ax) diff --git a/tests/spec/bts0578.ml b/tests/spec/bts0578.ml index df12b588dd1..594d3b71e4b 100644 --- a/tests/spec/bts0578.ml +++ b/tests/spec/bts0578.ml @@ -16,12 +16,12 @@ let main () = in add s (AStmtSpec ([],contract)) in - add s (AInvariant(["foo"], true, ptrue)); + add s (AInvariant(["foo"], true, toplevel_predicate ptrue)); add s (AVariant(tinteger 0, None)); - add s (AInvariant([], true, ptrue)); - add s (AInvariant(["foo"], true, ptrue)); + add s (AInvariant([], true, toplevel_predicate ptrue)); + add s (AInvariant(["foo"], true, toplevel_predicate ptrue)); Filecheck.check_ast "after adding invariants"; - let requires = [Logic_const.new_predicate Logic_const.ptrue] in + let requires = [new_predicate ptrue] in let bhv = [Cil.mk_behavior ~requires ()] in add_behavior !s1 bhv; Filecheck.check_ast "after adding contract"; diff --git a/tests/spec/expr_to_term.ml b/tests/spec/expr_to_term.ml index b6ce6b3ab15..450dd0d0235 100644 --- a/tests/spec/expr_to_term.ml +++ b/tests/spec/expr_to_term.ml @@ -11,7 +11,7 @@ let check_expr_term check fct s post = in let term = match post with - | (_, { ip_content = { pred_content = Papp(_,_,[l;_]) } }) -> l + | (_,{ip_content={tp_statement={pred_content = Papp(_,_,[l;_])}}}) -> l | _ -> Kernel.fatal "Unexpected ensures %a" Printer.pp_post_cond post in let term' = Logic_utils.expr_to_term ~coerce:false exp in -- GitLab From 69950db648b68beda37c832be2ff3548d03231ec Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 4 Sep 2020 17:27:36 +0200 Subject: [PATCH 086/255] [parser] prepare parser for generalized 'check' keyword --- src/kernel_internals/parsing/cparser.mly | 2 +- src/kernel_internals/parsing/logic_parser.mly | 49 +++++++++++++------ .../ast_printing/logic_print.ml | 32 +++++++----- .../ast_queries/logic_typing.ml | 24 +++++---- src/kernel_services/parsetree/cabshelper.mli | 5 +- src/kernel_services/parsetree/logic_ptree.mli | 16 +++--- tests/syntax/syntactic_hook.ml | 13 +++-- 7 files changed, 89 insertions(+), 52 deletions(-) diff --git a/src/kernel_internals/parsing/cparser.mly b/src/kernel_internals/parsing/cparser.mly index a739cc905ce..05ecc2d4e08 100644 --- a/src/kernel_internals/parsing/cparser.mly +++ b/src/kernel_internals/parsing/cparser.mly @@ -109,7 +109,7 @@ let check_funspec_abrupt_clauses fname spec = (function | (Cil_types.Normal | Cil_types.Exits),_ -> () | (Cil_types.Breaks | Cil_types.Continues | Cil_types.Returns), - {Logic_ptree.lexpr_loc = (loc,_)} -> + { Logic_ptree.tp_statement = { lexpr_loc = (loc,_)}} -> Errorloc.parse_error ~source:loc "Specification of function %s can only contain ensures or \ exits post-conditions" fname) diff --git a/src/kernel_internals/parsing/logic_parser.mly b/src/kernel_internals/parsing/logic_parser.mly index cc86b0d9c1d..f2d84d9f7b4 100644 --- a/src/kernel_internals/parsing/logic_parser.mly +++ b/src/kernel_internals/parsing/logic_parser.mly @@ -225,6 +225,7 @@ let cv_const = Attr ("const", []) let cv_volatile = Attr ("volatile", []) + let toplevel_pred tp_only_check tp_statement = { tp_only_check; tp_statement } %} /*****************************************************************************/ @@ -250,6 +251,8 @@ %token DOLLAR QUESTION MINUS PLUS STAR AMP SLASH PERCENT LSQUARE RSQUARE EOF %token GLOBAL INVARIANT VARIANT DECREASES FOR LABEL ASSERT CHECK SEMICOLON NULL EMPTY %token REQUIRES ENSURES ALLOCATES FREES ASSIGNS LOOP NOTHING SLICE IMPACT PRAGMA FROM +%token CHECK_REQUIRES CHECK_LOOP CHECK_LEMMA +%token CHECK_ENSURES CHECK_EXITS CHECK_CONTINUES CHECK_BREAKS CHECK_RETURNS %token <string> EXT_CODE_ANNOT EXT_GLOBAL EXT_CONTRACT %token EXITS BREAKS CONTINUES RETURNS %token VOLATILE READS WRITES @@ -1098,6 +1101,7 @@ contract: // use that to detect potentially missing ';' at end of clause clause_kw: +| CHECK_REQUIRES { "check requires" } | REQUIRES { "requires" } | ASSUMES {"assumes"} | ASSIGNS { "assigns" } @@ -1121,8 +1125,10 @@ requires: ; ne_requires: -| REQUIRES full_lexpr SEMICOLON requires { $2::$4 } -| REQUIRES full_lexpr clause_kw { missing 2 ";" $3} +| REQUIRES full_lexpr SEMICOLON requires { toplevel_pred false $2::$4 } +| CHECK_REQUIRES full_lexpr SEMICOLON requires { toplevel_pred true $2 :: $4 } +| REQUIRES full_lexpr clause_kw { missing 2 ";" $3 } +| CHECK_REQUIRES full_lexpr clause_kw { missing 2 ";" $3 } ; terminates: @@ -1161,7 +1167,10 @@ allocation: ne_simple_clauses: | post_cond_kind full_lexpr SEMICOLON simple_clauses - { let allocation,assigns,post_cond,extended = $4 in allocation,assigns,(($1,$2)::post_cond),extended } + { let only_check, kind = $1 in + let allocation,assigns,post_cond,extended = $4 in + allocation,assigns, + ((kind,toplevel_pred only_check $2)::post_cond),extended } | allocation SEMICOLON simple_clauses { let allocation,assigns,post_cond,extended = $3 in let a = concat_allocation allocation $1 in @@ -1388,7 +1397,8 @@ loop_allocation: ; loop_invariant: -| LOOP INVARIANT full_lexpr SEMICOLON { $3 } +| LOOP INVARIANT full_lexpr SEMICOLON { toplevel_pred false $3 } +| CHECK_LOOP INVARIANT full_lexpr SEMICOLON { toplevel_pred true $3 } ; loop_variant: @@ -1450,10 +1460,11 @@ pragma_or_code_annotation: code_annotation: | ASSERT full_lexpr SEMICOLON - { fun bhvs -> AAssert (bhvs,Assert,$2) } + { fun bhvs -> AAssert (bhvs,toplevel_pred false $2) } | CHECK full_lexpr SEMICOLON - { fun bhvs -> AAssert (bhvs,Check,$2) } -| INVARIANT full_lexpr SEMICOLON { fun bhvs -> AInvariant (bhvs,false,$2) } + { fun bhvs -> AAssert (bhvs,toplevel_pred true $2) } +| INVARIANT full_lexpr SEMICOLON + { fun bhvs -> AInvariant (bhvs,false,toplevel_pred false $2) } | EXT_CODE_ANNOT grammar_extension SEMICOLON { fun bhvs -> let open Cil_types in @@ -1601,7 +1612,11 @@ logic_def: | LEMMA poly_id COLON full_lexpr SEMICOLON { let (id,labels,tvars) = $2 in exit_type_variables_scope (); - LDlemma (id, false, labels, tvars, $4) } + LDlemma (id, false, labels, tvars, toplevel_pred false $4) } +| CHECK_LEMMA poly_id COLON full_lexpr SEMICOLON + { let (id,labels,tvars) = $2 in + exit_type_variables_scope (); + LDlemma (id, false, labels, tvars, toplevel_pred true $4) } | AXIOMATIC any_identifier LBRACE logic_decls RBRACE { LDaxiomatic($2,$4) } | TYPE poly_id_type_add_typename EQUAL typedef SEMICOLON @@ -1674,7 +1689,7 @@ logic_decl: | AXIOM poly_id COLON full_lexpr SEMICOLON { let (id,labels,tvars) = $2 in exit_type_variables_scope (); - LDlemma (id, true, labels, tvars, $4) } + LDlemma (id, true, labels, tvars, toplevel_pred false $4) } ; logic_decl_loc: @@ -1836,11 +1851,16 @@ acsl_c_keyword: ; post_cond: -| ENSURES { Normal, "ensures" } -| EXITS { Exits, "exits" } -| BREAKS { Breaks, "breaks" } -| CONTINUES { Continues, "continues" } -| RETURNS { Returns, "returns" } +| ENSURES { (false,Normal), "ensures" } +| EXITS { (false,Exits), "exits" } +| BREAKS { (false,Breaks), "breaks" } +| CONTINUES { (false,Continues), "continues" } +| RETURNS { (false,Returns), "returns" } +| CHECK_ENSURES { (true,Normal), "check ensures" } +| CHECK_EXITS { (true,Exits), "check exits" } +| CHECK_BREAKS { (true,Breaks), "check breaks" } +| CHECK_CONTINUES { (true,Continues), "check continues" } +| CHECK_RETURNS { (true,Returns), "check returns" } ; is_acsl_spec: @@ -1851,6 +1871,7 @@ is_acsl_spec: | FREES { "frees" } | BEHAVIOR { "behavior" } | REQUIRES { "requires" } +| CHECK_REQUIRES { "check requires" } | TERMINATES { "terminates" } | COMPLETE { "complete" } | DECREASES { "decreases" } diff --git a/src/kernel_services/ast_printing/logic_print.ml b/src/kernel_services/ast_printing/logic_print.ml index fca0da49531..1b3c0544fc3 100644 --- a/src/kernel_services/ast_printing/logic_print.ml +++ b/src/kernel_services/ast_printing/logic_print.ml @@ -356,11 +356,12 @@ let rec print_decl fmt d = (pp_list ~sep:",@ " print_typed_ident) prms (pp_list ~sep:"@\n" print_case) cases | LDlemma(name,is_axiom,labels,tvar,body) -> - fprintf fmt "@[<2>%a@ %s%a%a:@ %a;@]" + fprintf fmt "@[<2>%s%a@ %s%a%a:@ %a;@]" + (if body.tp_only_check then "check " else "") (pp_cond ~pr_false:"lemma" is_axiom) "axiom" name (pp_list ~pre:"{@[" ~sep:",@ " ~suf:"@]}" pp_print_string) labels (pp_list ~pre:"<@[" ~sep:",@ " ~suf:"@>}" pp_print_string) tvar - print_lexpr body + print_lexpr body.tp_statement | LDaxiomatic (s,d) -> fprintf fmt "@[<2>axiomatic@ %s@ {@\n%a@]@\n}" s (pp_list ~sep:"@\n" print_decl) d @@ -409,14 +410,18 @@ let print_allocation ~isloop fmt fa = let print_clause name fmt e = fprintf fmt "@\n%s@ %a;" name print_lexpr e +let print_tp_clause name fmt e = + let name = if e.tp_only_check then "check " ^ name else name in + print_clause name fmt e.tp_statement + let print_post fmt (k,e) = - print_clause (Cil_printer.get_termination_kind_name k) fmt e + print_tp_clause (Cil_printer.get_termination_kind_name k) fmt e let print_behavior fmt bhv = fprintf fmt "@[<2>behavior@ %s:%a%a%a%a%a@]" bhv.b_name (pp_list ~pre:"" ~suf:"" (print_clause "assumes")) bhv.b_assumes - (pp_list ~pre:"" ~suf:"" (print_clause "requires")) bhv.b_requires + (pp_list ~pre:"" ~suf:"" (print_tp_clause "requires")) bhv.b_requires (pp_list ~pre:"" ~suf:"" print_post) bhv.b_post_cond (print_allocation ~isloop:false) bhv.b_allocation print_assigns bhv.b_assigns @@ -463,10 +468,6 @@ let print_pragma fmt p = | Slice_pragma p -> fprintf fmt "slice@ pragma@ %a;" print_slice_pragma p | Impact_pragma p -> fprintf fmt "impact@ pragma@ %a;" print_impact_pragma p -let print_assertion_kind fmt = function - | Assert -> pp_print_string fmt "assert" - | Check -> pp_print_string fmt "check" - let print_extension fmt (name, ext) = fprintf fmt "%s %a" name (pp_list ~sep:",@ " print_lexpr) ext @@ -475,16 +476,21 @@ let print_code_annot fmt ca = (pp_list ~pre:"for@ " ~sep:",@ " ~suf:":@ " pp_print_string) fmt bhvs in match ca with - AAssert(bhvs,kind,e) -> - fprintf fmt "%a%a@ %a;" - print_behaviors bhvs print_assertion_kind kind print_lexpr e + AAssert(bhvs,e) -> + fprintf fmt "%a%s@ %a;" + print_behaviors bhvs + (if e.tp_only_check then "check" else "assert") + print_lexpr e.tp_statement | AStmtSpec (bhvs,s) -> fprintf fmt "%a%a" print_behaviors bhvs print_spec s | AInvariant (bhvs,loop,e) -> - fprintf fmt "%a%ainvariant@ %a;" - print_behaviors bhvs (pp_cond loop) "loop@ " print_lexpr e + fprintf fmt "%a%a%ainvariant@ %a;" + print_behaviors bhvs + (pp_cond e.tp_only_check) "check @" + (pp_cond loop) "loop@ " + print_lexpr e.tp_statement | AVariant e -> fprintf fmt "loop@ variant@ %a;" print_variant e | AAssigns (bhvs,a) -> fprintf fmt "%aloop@ %a" print_behaviors bhvs print_assigns a diff --git a/src/kernel_services/ast_queries/logic_typing.ml b/src/kernel_services/ast_queries/logic_typing.ml index ff02c3e8b25..86129401b21 100644 --- a/src/kernel_services/ast_queries/logic_typing.ml +++ b/src/kernel_services/ast_queries/logic_typing.ml @@ -3513,6 +3513,10 @@ struct let id_predicate env pred = Logic_const.new_predicate (predicate env pred) + let id_predicate_top env pred = + let { tp_only_check = only_check; tp_statement = pred } = pred in + Logic_const.new_predicate ~only_check (predicate env pred) + let id_term_ptr env t = let loc = t.lexpr_loc in let t = term env t in @@ -3675,11 +3679,12 @@ struct ~type_assigns:type_assign in let b_assumes = List.map (id_predicate env) bas in - let b_requires= List.map (id_predicate env) br in + let b_requires= List.map (id_predicate_top env) br in let b_post_cond = List.map (fun (k,p)-> - let p' = id_predicate (post_state_env k) p in (k,p')) be + let p' = id_predicate_top (post_state_env k) p in (k,p')) + be in let b_assigns = type_assign typing_context ~accept_formal:is_stmt_contract assigns_env ba @@ -3773,15 +3778,13 @@ struct append_loop_labels (append_here_label (append_pre_label (append_init_label (Lenv.empty())))) - let only_check = function Assert -> false | Check -> true - let code_annot loc current_behaviors current_return_type ca = let source = fst loc in let annot = match ca with - | AAssert (behav,k,p) -> + | AAssert (behav,{tp_only_check=only_check; tp_statement = p}) -> check_behavior_names loc current_behaviors behav; let p = predicate (code_annot_env()) p in - let p = Logic_const.toplevel_predicate ~only_check:(only_check k) p in + let p = Logic_const.toplevel_predicate ~only_check p in Cil_types.AAssert(behav,p) | APragma (Impact_pragma sp) -> Cil_types.APragma @@ -3808,10 +3811,10 @@ struct Cil_types.AStmtSpec (behav,my_spec) | AVariant v -> Cil_types.AVariant (type_variant (loop_annot_env ()) v) - | AInvariant (behav,f,i) -> + | AInvariant (behav,f,{ tp_only_check = only_check; tp_statement = i}) -> let env = if f then loop_annot_env () else code_annot_env () in check_behavior_names loc current_behaviors behav; - let p = Logic_const.toplevel_predicate (predicate env i) in + let p = Logic_const.toplevel_predicate ~only_check (predicate env i) in Cil_types.AInvariant (behav,f,p) | AAllocation (behav,fa) -> check_behavior_names loc current_behaviors behav; @@ -4118,7 +4121,8 @@ struct C.error loc "Definition of %s is cyclic" s; my_info.lt_def <- tdef; Dtype (my_info,loc) - | LDlemma (x,is_axiom, labels, poly, e) -> + | LDlemma (x,is_axiom, labels, poly, + { tp_only_check = only_check; tp_statement = e}) -> if Logic_env.Lemmas.mem x then begin let old_def = Logic_env.Lemmas.find x in let old_loc = Cil_datatype.Global_annotation.loc old_def in @@ -4134,7 +4138,7 @@ struct Cil_datatype.Location.pretty old_loc end; let labels,env = annot_env loc labels poly in - let p = Logic_const.toplevel_predicate (predicate env e) in + let p = Logic_const.toplevel_predicate ~only_check (predicate env e) in let labels = match !Lenv.default_label with | None -> labels | Some lab -> [lab] diff --git a/src/kernel_services/parsetree/cabshelper.mli b/src/kernel_services/parsetree/cabshelper.mli index a4b0498146e..458c01febc4 100644 --- a/src/kernel_services/parsetree/cabshelper.mli +++ b/src/kernel_services/parsetree/cabshelper.mli @@ -80,8 +80,9 @@ val is_attr_test: unit -> bool val mk_behavior : ?name:string -> ?assumes:Logic_ptree.lexpr list -> - ?requires:Logic_ptree.lexpr list -> - ?post_cond:(Cil_types.termination_kind * Logic_ptree.lexpr) list -> + ?requires:Logic_ptree.toplevel_predicate list -> + ?post_cond: + (Cil_types.termination_kind * Logic_ptree.toplevel_predicate) list -> ?assigns:Logic_ptree.assigns -> ?allocation:Logic_ptree.allocation -> ?extended:Logic_ptree.extension list -> diff --git a/src/kernel_services/parsetree/logic_ptree.mli b/src/kernel_services/parsetree/logic_ptree.mli index adde2634144..bff3332bb8d 100644 --- a/src/kernel_services/parsetree/logic_ptree.mli +++ b/src/kernel_services/parsetree/logic_ptree.mli @@ -161,6 +161,7 @@ and lexpr_node = | PLrepeat of lexpr * lexpr (** repeat a list of elements a number of times. *) +type toplevel_predicate = { tp_only_check: bool; tp_statement: lexpr } type extension = string * lexpr list @@ -231,7 +232,7 @@ and decl_node = (** [LDinductive_def(name,labels,type_params, parameters, indcases)] represents an inductive definition of a new predicate. *) - | LDlemma of string * bool * string list * string list * lexpr + | LDlemma of string * bool * string list * string list * toplevel_predicate (** LDlemma(name,is_axiom,labels,type_params,property) represents a lemma or an axiom [name]. [is_axiom] is true for an axiom and false for a lemma. [labels] @@ -276,9 +277,11 @@ and variant = lexpr * string option with {!Cil_types.behavior}. *) type behavior = { mutable b_name : string; (** name of the behavior. *) - mutable b_requires : lexpr list; (** require clauses. *) + mutable b_requires : toplevel_predicate list; (** require clauses. *) mutable b_assumes : lexpr list; (** assume clauses. *) - mutable b_post_cond : (Cil_types.termination_kind * lexpr) list; (** post-condition. *) + mutable b_post_cond : + (Cil_types.termination_kind * toplevel_predicate) list; + (** post-condition. *) mutable b_assigns : assigns; (** assignments. *) mutable b_allocation : allocation; (** frees, allocates. *) mutable b_extended : extension list (** extensions *) @@ -329,13 +332,10 @@ and pragma = | Slice_pragma of slice_pragma | Impact_pragma of impact_pragma -and assertion_kind = Assert | Check - - (** all annotations that can be found in the code. This type shares the name of its constructors with {!Cil_types.code_annotation_node}. *) type code_annot = - | AAssert of string list * assertion_kind * lexpr + | AAssert of string list * toplevel_predicate (** assertion to be checked. The list of strings is the list of behaviors to which this assertion applies. *) @@ -343,7 +343,7 @@ type code_annot = (** statement contract (potentially restricted to some enclosing behaviors). *) - | AInvariant of string list * bool * lexpr + | AInvariant of string list * bool * toplevel_predicate (** loop/code invariant. The list of strings is the list of behaviors to which this invariant applies. The boolean flag is true for normal loop invariants and false for invariant-as-assertions. *) diff --git a/tests/syntax/syntactic_hook.ml b/tests/syntax/syntactic_hook.ml index c6a5d1f3517..5a479278793 100644 --- a/tests/syntax/syntactic_hook.ml +++ b/tests/syntax/syntactic_hook.ml @@ -13,10 +13,15 @@ class visit = object [{ stmt_ghost = false; stmt_node = CODE_ANNOT( - AAssert([], Assert, - { lexpr_node = - PLat ({ lexpr_node = PLtrue; lexpr_loc = loc},"Pre"); - lexpr_loc = loc}), loc)}; + AAssert( + [], + { tp_only_check = false; + tp_statement = + { lexpr_node = + PLat ({ lexpr_node = PLtrue; lexpr_loc = loc},"Pre"); + lexpr_loc = loc} + }), + loc)}; s] end -- GitLab From a6775b989b49098489b12d8eaa45b1be5028c42d Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 4 Sep 2020 17:54:44 +0200 Subject: [PATCH 087/255] [lexer] tentative logic lexer hack for introducing generalized check Just using `check` as a prefix to various keywords would lead to too many ambiguities in the parser (notably in contracts, where you can have an empty requires list followed by `check ensures ...` or a `check requires ...`. With a lookahead of 1, it's difficult for the parser see which rule should apply. Hence, the lexer will perform itself the lookahead and emit a proper token (`CHECK_ENSURES` or `CHECK_REQUIRES` respectively). --- src/kernel_internals/parsing/logic_lexer.mll | 21 +++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/kernel_internals/parsing/logic_lexer.mll b/src/kernel_internals/parsing/logic_lexer.mll index ca329de4aef..2441a0d268a 100644 --- a/src/kernel_internals/parsing/logic_lexer.mll +++ b/src/kernel_internals/parsing/logic_lexer.mll @@ -297,6 +297,17 @@ let accept_c_comments_into_acsl_spec = ref false + let hack_merge_tokens current next = + match (current,next) with + | CHECK, REQUIRES -> true, CHECK_REQUIRES + | CHECK, ENSURES -> true, CHECK_ENSURES + | CHECK, EXITS -> true, CHECK_EXITS + | CHECK, RETURNS -> true, CHECK_RETURNS + | CHECK, BREAKS -> true, CHECK_BREAKS + | CHECK, CONTINUES -> true, CHECK_CONTINUES + | CHECK, LOOP -> true, CHECK_LOOP + | CHECK, LEMMA -> true, CHECK_LEMMA + | _ -> false, current } let space = [' ' '\t' '\012' '\r' '@' ] @@ -339,7 +350,15 @@ rule token = parse let loc = Lexing.(lexeme_start_p lexbuf, lexeme_end_p lexbuf) in let cabsloc = Cil_datatype.Location.of_lexing_loc loc in let s = lexeme lexbuf in - identifier s cabsloc + let curr_tok = identifier s cabsloc in + if curr_tok = CHECK then begin + let next_tok = + token { lexbuf with refill_buff = lexbuf.refill_buff } + in + let (eat_next, tok) = hack_merge_tokens curr_tok next_tok in + if eat_next then ignore (token lexbuf); + tok + end else curr_tok } | '0'['x''X'] rH+ rIS? { CONSTANT (IntConstant (lexeme lexbuf)) } -- GitLab From 524e43b632d3f4a6f4ab14393878365e9bf33d37 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 08:58:30 +0200 Subject: [PATCH 088/255] indentation --- src/plugins/wp/wpAnnot.ml | 42 +++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index 053cc01398f..33dfbf211ed 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -958,27 +958,27 @@ let get_stmt_annots config v s = in (b_acc, (a_acc, e_acc)) in acc - | AAllocation (_b_list, _frees_allocates) -> - (* [PB] TODO *) acc - | AAssigns (_b_list, _assigns) -> - (* loop assigns: see get_loop_annots *) acc - | AVariant (_v, _rel) -> (* see get_loop_annots *) acc - | APragma _ -> acc - | AStmtSpec (b_list, spec) -> - if b_list <> [] then (* TODO ! *) - Wp_parameters.warning ~once:true - "Ignored specification 'for %a' (generalize to all behavior)" - (Pretty_utils.pp_list ~sep:", " Format.pp_print_string) - b_list; - add_stmt_spec_annots config v s b_list spec acc -| AExtended _ -> acc -in -let before_acc = - add_stmt_deadcode_smoke config WpStrategy.empty_acc s in -let after_acc = WpStrategy.empty_acc in -let exits_acc = WpStrategy.empty_acc in -let acc = before_acc, (after_acc, exits_acc) in -Annotations.fold_code_annot do_annot s acc + | AAllocation (_b_list, _frees_allocates) -> + (* [PB] TODO *) acc + | AAssigns (_b_list, _assigns) -> + (* loop assigns: see get_loop_annots *) acc + | AVariant (_v, _rel) -> (* see get_loop_annots *) acc + | APragma _ -> acc + | AStmtSpec (b_list, spec) -> + if b_list <> [] then (* TODO ! *) + Wp_parameters.warning ~once:true + "Ignored specification 'for %a' (generalize to all behavior)" + (Pretty_utils.pp_list ~sep:", " Format.pp_print_string) + b_list; + add_stmt_spec_annots config v s b_list spec acc + | AExtended _ -> acc + in + let before_acc = + add_stmt_deadcode_smoke config WpStrategy.empty_acc s in + let after_acc = WpStrategy.empty_acc in + let exits_acc = WpStrategy.empty_acc in + let acc = before_acc, (after_acc, exits_acc) in + Annotations.fold_code_annot do_annot s acc let get_fct_pre_annots config spec = let acc = WpStrategy.empty_acc in -- GitLab From b70a8d35cc6dd7a9549a9e4585a39f8947d00834 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 09:53:25 +0200 Subject: [PATCH 089/255] [printer] printer for generalized check --- .../ast_printing/cil_printer.ml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/kernel_services/ast_printing/cil_printer.ml b/src/kernel_services/ast_printing/cil_printer.ml index 14bab523bb3..7a15dce6488 100644 --- a/src/kernel_services/ast_printing/cil_printer.ml +++ b/src/kernel_services/ast_printing/cil_printer.ml @@ -2835,13 +2835,17 @@ class cil_printer () = object (self) method decreases fmt v = self#decrement "decreases" fmt v method variant fmt v = self#decrement "loop variant" fmt v + method private pp_only_check fmt p = + if p.tp_only_check then fprintf fmt "%a " self#pp_acsl_keyword "check" + method assumes fmt p = fprintf fmt "@[<hov 2>%a@ %a;@]" self#pp_acsl_keyword "assumes" self#identified_predicate p method requires fmt p = - fprintf fmt "@[<hov 2>%a@ %a;@]" + fprintf fmt "@[<hov 2>%a%a@ %a;@]" + self#pp_only_check p.ip_content self#pp_acsl_keyword "requires" self#identified_predicate p @@ -2853,7 +2857,8 @@ class cil_printer () = object (self) method post_cond fmt (k,p) = let kw = get_termination_kind_name k in - fprintf fmt "@[<hov 2>%a@ %a;@]" + fprintf fmt "@[<hov 2>%a%a@ %a;@]" + self#pp_only_check p.ip_content self#pp_acsl_keyword kw self#identified_predicate p @@ -3091,13 +3096,15 @@ class cil_printer () = object (self) pp_for_behavs behav (self#allocation ~isloop:true) af | AInvariant(behav,true, i) -> - fprintf fmt "@[<2>%a%a@ %a;@]" + fprintf fmt "@[<2>%a%a%a@ %a;@]" pp_for_behavs behav + self#pp_only_check i self#pp_acsl_keyword "loop invariant" self#predicate i.tp_statement | AInvariant(behav,false,i) -> - fprintf fmt "@[<2>%a%a@ %a;@]" + fprintf fmt "@[<2>%a%a%a@ %a;@]" pp_for_behavs behav + self#pp_only_check i self#pp_acsl_keyword "invariant" self#predicate i.tp_statement | AVariant v -> @@ -3189,7 +3196,8 @@ class cil_printer () = object (self) | Dlemma(name, is_axiom, labels, tvars, pred, _attr, _) -> (* attributes are meant to be purely internal for now. *) let old_lab = current_label in - fprintf fmt "@[<hv 2>@[<hov 1>%a %a%a%a:@]@ %t%a;@]@\n" + fprintf fmt "@[<hv 2>@[<hov 1>%a%a %a%a%a:@]@ %t%a;@]@\n" + self#pp_only_check pred self#pp_acsl_keyword (if is_axiom then "axiom" else "lemma") self#varname name self#labels labels -- GitLab From 8a03176a696f9dc3f475a10df7c76633efb3c817 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 09:54:11 +0200 Subject: [PATCH 090/255] [tests] add test for generalized check --- tests/spec/generalized_check.i | 16 ++++++++++++ .../spec/oracle/generalized_check.res.oracle | 25 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 tests/spec/generalized_check.i create mode 100644 tests/spec/oracle/generalized_check.res.oracle diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i new file mode 100644 index 00000000000..1409e3efc7a --- /dev/null +++ b/tests/spec/generalized_check.i @@ -0,0 +1,16 @@ +/*@ check lemma tauto: \true ==> \true; */ + +/*@ check requires \valid(x); + assigns *x; + check ensures *x == 0; +*/ +void f(int* x) { + /*@ check \valid(x); */ // can't be proved by WP: we ignore the requires + *x = 0; +} + +int main() { + int a = 4; + f(&a); + /*@ check a == 0; */ // can't be proved by WP: we ignore the ensures +} diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.res.oracle new file mode 100644 index 00000000000..7017e6e7b84 --- /dev/null +++ b/tests/spec/oracle/generalized_check.res.oracle @@ -0,0 +1,25 @@ +[kernel] Parsing tests/spec/generalized_check.i (no preprocessing) +/* Generated by Frama-C */ +/*@ check lemma tauto: \true; + */ +/*@ check requires \valid(x); + check ensures *\old(x) ≡ 0; + assigns *x; */ +void f(int *x) +{ + /*@ check \valid(x); */ ; + *x = 0; + return; +} + +int main(void) +{ + int __retres; + int a = 4; + f(& a); + /*@ check a ≡ 0; */ ; + __retres = 0; + return __retres; +} + + -- GitLab From 674a3ef271bf8f396e321d4494458f857c9651a3 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 09:58:33 +0200 Subject: [PATCH 091/255] [tests] update Aorai oracles --- .../tests/aorai/oracle/assigns.1.res.oracle | 10 +++++----- .../aorai/oracle/declared_function.res.oracle | 2 +- .../tests/aorai/oracle/deterministic.res.oracle | 16 ++++++++-------- .../aorai/tests/aorai/oracle/formals.res.oracle | 16 ++++++++-------- .../tests/aorai/oracle/incorrect.res.oracle | 2 +- .../tests/aorai/oracle/monostate.res.oracle | 6 +++--- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/plugins/aorai/tests/aorai/oracle/assigns.1.res.oracle b/src/plugins/aorai/tests/aorai/oracle/assigns.1.res.oracle index 7e00479c453..5f5602cdd80 100644 --- a/src/plugins/aorai/tests/aorai/oracle/assigns.1.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/assigns.1.res.oracle @@ -18,15 +18,15 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ lemma in_main_deterministic_trans{L}: \true; +/*@ check lemma in_main_deterministic_trans{L}: \true; */ -/*@ lemma Sf_deterministic_trans{L}: \true; +/*@ check lemma Sf_deterministic_trans{L}: \true; */ -/*@ lemma S_in_f_deterministic_trans{L}: \true; +/*@ check lemma S_in_f_deterministic_trans{L}: \true; */ -/*@ lemma S2_deterministic_trans{L}: \true; +/*@ check lemma S2_deterministic_trans{L}: \true; */ -/*@ lemma S1_deterministic_trans{L}: \true; +/*@ check lemma S1_deterministic_trans{L}: \true; */ int X; /*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ diff --git a/src/plugins/aorai/tests/aorai/oracle/declared_function.res.oracle b/src/plugins/aorai/tests/aorai/oracle/declared_function.res.oracle index f3082761950..9d37fe0b644 100644 --- a/src/plugins/aorai/tests/aorai/oracle/declared_function.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/declared_function.res.oracle @@ -19,7 +19,7 @@ int f(void); /*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ /*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ /*@ -lemma I_deterministic_trans{L}: +check lemma I_deterministic_trans{L}: (∀ int __retres_f; ¬(\at(aorai_CurOperation,L) ≡ op_f ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ diff --git a/src/plugins/aorai/tests/aorai/oracle/deterministic.res.oracle b/src/plugins/aorai/tests/aorai/oracle/deterministic.res.oracle index 37d537ca5af..75acb9204ee 100644 --- a/src/plugins/aorai/tests/aorai/oracle/deterministic.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/deterministic.res.oracle @@ -23,22 +23,22 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ lemma Si_deterministic_trans{L}: \true; +/*@ check lemma Si_deterministic_trans{L}: \true; */ -/*@ lemma Sf_deterministic_trans{L}: \true; +/*@ check lemma Sf_deterministic_trans{L}: \true; */ -/*@ lemma S5_deterministic_trans{L}: \true; +/*@ check lemma S5_deterministic_trans{L}: \true; */ -/*@ lemma S4_deterministic_trans{L}: \true; +/*@ check lemma S4_deterministic_trans{L}: \true; */ -/*@ lemma S2_deterministic_trans{L}: \true; +/*@ check lemma S2_deterministic_trans{L}: \true; */ int X; int Y; /*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ /*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ /*@ -lemma S3_deterministic_trans{L}: +check lemma S3_deterministic_trans{L}: ∀ int x; ¬(\at(aorai_CurOperation,L) ≡ op_g ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ x ≡ 5 ∧ @@ -46,7 +46,7 @@ lemma S3_deterministic_trans{L}: \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ x ≡ 4); */ /*@ -lemma S1_deterministic_trans{L}: +check lemma S1_deterministic_trans{L}: ∀ int __retres_f, int x; ¬(\at(aorai_CurOperation,L) ≡ op_f ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ __retres_f ≡ 0 ∧ @@ -54,7 +54,7 @@ lemma S1_deterministic_trans{L}: \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ x ≡ 4); */ /*@ -lemma S0_deterministic_trans{L}: +check lemma S0_deterministic_trans{L}: ∀ int c; ¬(\at(aorai_CurOperation,L) ≡ op_real_main ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ c ≢ 0 ∧ diff --git a/src/plugins/aorai/tests/aorai/oracle/formals.res.oracle b/src/plugins/aorai/tests/aorai/oracle/formals.res.oracle index b850086cbe9..f7b7f60952f 100644 --- a/src/plugins/aorai/tests/aorai/oracle/formals.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/formals.res.oracle @@ -22,16 +22,16 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ lemma init_deterministic_trans{L}: \true; +/*@ check lemma init_deterministic_trans{L}: \true; */ -/*@ lemma aorai_reject_deterministic_trans{L}: \true; +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; */ -/*@ lemma OK_deterministic_trans{L}: \true; +/*@ check lemma OK_deterministic_trans{L}: \true; */ /*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ /*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ /*@ -lemma main_0_deterministic_trans{L}: +check lemma main_0_deterministic_trans{L}: ∀ int x; ¬(\at(aorai_CurOperation,L) ≡ op_f ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ x ≡ 3 ∧ @@ -39,7 +39,7 @@ lemma main_0_deterministic_trans{L}: \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ x ≡ 1); */ /*@ -lemma aorai_intermediate_state_0_deterministic_trans{L}: +check lemma aorai_intermediate_state_0_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_g ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ ¬(\at(aorai_CurOperation,L) ≡ op_g ∧ @@ -48,7 +48,7 @@ lemma aorai_intermediate_state_0_deterministic_trans{L}: /*@ ghost int aorai_CurStates = init; */ /*@ ghost int aorai_x_0 = 0; */ /*@ -lemma aorai_intermediate_state_2_deterministic_trans{L}: +check lemma aorai_intermediate_state_2_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_f ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ \at(aorai_x_0,L) ≡ 3 ∧ @@ -58,7 +58,7 @@ lemma aorai_intermediate_state_2_deterministic_trans{L}: */ /*@ ghost int aorai_y = 0; */ /*@ -lemma aorai_intermediate_state_1_deterministic_trans{L}: +check lemma aorai_intermediate_state_1_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_g ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ \at(aorai_y,L) ≡ 2 ∧ @@ -68,7 +68,7 @@ lemma aorai_intermediate_state_1_deterministic_trans{L}: */ /*@ ghost int aorai_x = 0; */ /*@ -lemma aorai_intermediate_state_deterministic_trans{L}: +check lemma aorai_intermediate_state_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_f ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ \at(aorai_x,L) ≡ 1 ∧ diff --git a/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle b/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle index ebe6f07db4c..f0441fa89f0 100644 --- a/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/incorrect.res.oracle @@ -15,7 +15,7 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ lemma s0_deterministic_trans{L}: \true; +/*@ check lemma s0_deterministic_trans{L}: \true; */ int f(void); diff --git a/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle b/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle index e4e6c64f81a..00d9af27024 100644 --- a/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle +++ b/src/plugins/aorai/tests/aorai/oracle/monostate.res.oracle @@ -19,19 +19,19 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ lemma aorai_reject_deterministic_trans{L}: \true; +/*@ check lemma aorai_reject_deterministic_trans{L}: \true; */ /*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ /*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ /*@ -lemma aorai_intermediate_state_deterministic_trans{L}: +check lemma aorai_intermediate_state_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated ∧ ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Terminated)); */ /*@ -lemma Init_deterministic_trans{L}: +check lemma Init_deterministic_trans{L}: ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ \at(aorai_CurOpStatus,L) ≡ aorai_Called ∧ ¬(\at(aorai_CurOperation,L) ≡ op_main ∧ -- GitLab From 414814aee11612fc23bb75e3482288b2a066947b Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 11:14:50 +0200 Subject: [PATCH 092/255] [tests] fix wp-qualif ml script --- src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml b/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml index 72ab4fc4ef1..513c205deea 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml @@ -54,7 +54,8 @@ let run () = pred_content = Cil_types.Ptrue; } in - let annot = Logic_const.new_code_annotation (AAssert ([],Assert,pred)) in + let pred = Logic_const.toplevel_predicate pred in + let annot = Logic_const.new_code_annotation (AAssert ([],pred)) in let po = Wpo.{ po_gid = ""; po_leg = ""; -- GitLab From a4b4633385a75af5dc696dbaeeca86dd80562c5a Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 13:54:38 +0200 Subject: [PATCH 093/255] [tests] Update WP tests README --- src/plugins/wp/tests/README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/plugins/wp/tests/README.md b/src/plugins/wp/tests/README.md index 68134928bbc..572734b69d1 100644 --- a/src/plugins/wp/tests/README.md +++ b/src/plugins/wp/tests/README.md @@ -1,3 +1,9 @@ +# Running qualif tests + +- Be sure that you have installed the appropriate versions of + alt-ergo and coq _before_ having compiled Frama-C. +- use `make wp-qualif` in the toplevel Frama-C directory + # Test Suites Here is a short description of the WP test suites: -- GitLab From 5901dc9f20f49602830682295839a57d62c9d4f4 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 14:47:22 +0200 Subject: [PATCH 094/255] [wp] start supporting generalized check --- src/plugins/wp/wpAnnot.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index 33dfbf211ed..e68b7671388 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -753,7 +753,7 @@ let add_called_post called_kf termination_kind acc = let kind = WpStrategy.AcallHyp called_kf in let assumes = (Ast_info.behavior_assumes b) in let add_post acc (tk, p) = - if tk = termination_kind + if tk = termination_kind && not p.ip_content.tp_only_check then WpStrategy.add_prop_call_post acc kind called_kf b tk ~assumes p else acc in List.fold_left add_post acc b.b_post_cond -- GitLab From b6323d44694cd51a113808b4a8808b442569598e Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 14:47:44 +0200 Subject: [PATCH 095/255] [tests] update test case for generalized check --- tests/spec/generalized_check.i | 3 +++ tests/spec/oracle/generalized_check.res.oracle | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 1409e3efc7a..856e33415fc 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,3 +1,6 @@ +/* run.config +OPT: -wp -wp-prover qed -wp-msg-key no-time-info -print +*/ /*@ check lemma tauto: \true ==> \true; */ /*@ check requires \valid(x); diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.res.oracle index 7017e6e7b84..eefae9d2492 100644 --- a/tests/spec/oracle/generalized_check.res.oracle +++ b/tests/spec/oracle/generalized_check.res.oracle @@ -1,4 +1,15 @@ [kernel] Parsing tests/spec/generalized_check.i (no preprocessing) +[wp] Running WP plugin... +[wp] Warning: Missing RTE guards +[wp] 6 goals scheduled +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_f_check : Valid +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_lemma_tauto : Valid +[wp] [Qed] Goal typed_main_call_f_requires : Valid +[wp] [Failed] Goal typed_main_check +[wp] Proved goals: 5 / 6 + Qed: 5 /* Generated by Frama-C */ /*@ check lemma tauto: \true; */ -- GitLab From 5dbe9132fabd6840d10aa7724f777b97cb12f53a Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 15:57:51 +0200 Subject: [PATCH 096/255] [wp] check requires are not put as hypothesis --- src/plugins/wp/wpStrategy.ml | 7 ++++++- tests/spec/oracle/generalized_check.res.oracle | 6 +++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/plugins/wp/wpStrategy.ml b/src/plugins/wp/wpStrategy.ml index ee31dab55e7..b76d3460d67 100644 --- a/src/plugins/wp/wpStrategy.ml +++ b/src/plugins/wp/wpStrategy.ml @@ -149,7 +149,10 @@ let add_prop_fct_pre_bhv acc kind kf bhv = let p = Logic_const.pred_of_id_pred pred in Logic_const.(pat (p,pre_label)) in - let requires = Logic_const.pands (List.map norm_pred bhv.b_requires) in + let requires = + List.filter (fun x -> not x.ip_content.tp_only_check) bhv.b_requires + in + let requires = Logic_const.pands (List.map norm_pred requires) in let assumes = Logic_const.pands (List.map norm_pred bhv.b_assumes) in let precond = Logic_const.pimplies (assumes, requires) in let precond_id = Logic_const.new_predicate precond in @@ -159,12 +162,14 @@ let add_prop_fct_pre_bhv acc kind kf bhv = add_prop acc kind id p let add_prop_fct_pre acc kind kf bhv ~assumes pre = + if pre.ip_content.tp_only_check then acc else begin let id = WpPropId.mk_pre_id kf Kglobal bhv pre in let labels = NormAtLabels.labels_fct_pre in let p = Logic_const.pred_of_id_pred pre in let p = Logic_const.(pat (p,pre_label)) in let p = normalize id ?assumes labels p in add_prop acc kind id p +end let add_prop_fct_post acc kind kf bhv tkind post = let id = WpPropId.mk_fct_post_id kf bhv (tkind, post) in diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.res.oracle index eefae9d2492..e8a2ec027c9 100644 --- a/tests/spec/oracle/generalized_check.res.oracle +++ b/tests/spec/oracle/generalized_check.res.oracle @@ -3,13 +3,13 @@ [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid -[wp] [Qed] Goal typed_f_check : Valid +[wp] [Failed] Goal typed_f_check [wp] [Qed] Goal typed_f_ensures : Valid [wp] [Qed] Goal typed_lemma_tauto : Valid [wp] [Qed] Goal typed_main_call_f_requires : Valid [wp] [Failed] Goal typed_main_check -[wp] Proved goals: 5 / 6 - Qed: 5 +[wp] Proved goals: 4 / 6 + Qed: 4 /* Generated by Frama-C */ /*@ check lemma tauto: \true; */ -- GitLab From f4e86d8b87c2d9fe3da024d4c7565b9c5f8416bf Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 16:35:35 +0200 Subject: [PATCH 097/255] [wp] do not put 'check lemma' in environment. --- src/plugins/wp/wpAnnot.ml | 5 +- src/plugins/wp/wpStrategy.ml | 14 +-- tests/spec/generalized_check.i | 4 +- .../spec/oracle/generalized_check.res.oracle | 100 +++++++++++++++++- 4 files changed, 108 insertions(+), 15 deletions(-) diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index e68b7671388..c7b32888e74 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -1122,8 +1122,9 @@ let add_global_annotations annots = "Global invariant not handled yet ('%s' ignored)" linfo.l_var_info.lv_name; () - | Dlemma (name,_,_,_,_,_,_) -> - WpStrategy.add_axiom annots (LogicUsage.logic_lemma name) + | Dlemma (name,_,_,_,p,_,_) -> + if not (p.tp_only_check) then + WpStrategy.add_axiom annots (LogicUsage.logic_lemma name) and do_globals gs = List.iter do_global gs in (*[LC]: forcing order of iteration: hash is not the same on 32 and 64 bits *) diff --git a/src/plugins/wp/wpStrategy.ml b/src/plugins/wp/wpStrategy.ml index b76d3460d67..2e794fbc65e 100644 --- a/src/plugins/wp/wpStrategy.ml +++ b/src/plugins/wp/wpStrategy.ml @@ -163,13 +163,13 @@ let add_prop_fct_pre_bhv acc kind kf bhv = let add_prop_fct_pre acc kind kf bhv ~assumes pre = if pre.ip_content.tp_only_check then acc else begin - let id = WpPropId.mk_pre_id kf Kglobal bhv pre in - let labels = NormAtLabels.labels_fct_pre in - let p = Logic_const.pred_of_id_pred pre in - let p = Logic_const.(pat (p,pre_label)) in - let p = normalize id ?assumes labels p in - add_prop acc kind id p -end + let id = WpPropId.mk_pre_id kf Kglobal bhv pre in + let labels = NormAtLabels.labels_fct_pre in + let p = Logic_const.pred_of_id_pred pre in + let p = Logic_const.(pat (p,pre_label)) in + let p = normalize id ?assumes labels p in + add_prop acc kind id p + end let add_prop_fct_post acc kind kf bhv tkind post = let id = WpPropId.mk_fct_post_id kf bhv (tkind, post) in diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 856e33415fc..06d4c500341 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,7 +1,7 @@ /* run.config -OPT: -wp -wp-prover qed -wp-msg-key no-time-info -print +OPT: -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print */ -/*@ check lemma tauto: \true ==> \true; */ +/*@ check lemma easy_proof: \false; */ // should not be put in any environment /*@ check requires \valid(x); assigns *x; diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.res.oracle index e8a2ec027c9..bb54dad662f 100644 --- a/tests/spec/oracle/generalized_check.res.oracle +++ b/tests/spec/oracle/generalized_check.res.oracle @@ -1,17 +1,109 @@ [kernel] Parsing tests/spec/generalized_check.i (no preprocessing) [wp] Running WP plugin... +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] take f_assigns *x; +[wp:strategy] [add_node_annots] on <stmt-1> +[wp:strategy] [add_node_annots] on <stmt-2> +[wp:strategy] [add_node_annots] on <stmt-10> +[wp:strategy] 'main' is the main entry point +[wp:strategy] [add_node_annots] on <stmt-5> +[wp:strategy] [add_node_annots] on <callIn-6> +[wp:strategy] take main_assigns *x; +[wp:strategy] [add_node_annots] on <callIn-6> +[wp:strategy] [add_node_annots] on <stmt-7> +[wp:strategy] [add_node_annots] on <stmt-8> +[wp:strategy] [add_node_annots] on <stmt-12> [wp] Warning: Missing RTE guards +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point [wp] 6 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid [wp] [Failed] Goal typed_f_check [wp] [Qed] Goal typed_f_ensures : Valid -[wp] [Qed] Goal typed_lemma_tauto : Valid +[wp] [Failed] Goal typed_lemma_easy_proof [wp] [Qed] Goal typed_main_call_f_requires : Valid [wp] [Failed] Goal typed_main_check -[wp] Proved goals: 4 / 6 - Qed: 4 +[wp] Proved goals: 3 / 6 + Qed: 3 +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point /* Generated by Frama-C */ -/*@ check lemma tauto: \true; +/*@ check lemma easy_proof: \false; */ /*@ check requires \valid(x); check ensures *\old(x) ≡ 0; -- GitLab From 0d2b237ba12b2eb64114f278c49527fd7c4fb1b8 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 17:04:44 +0200 Subject: [PATCH 098/255] [kernel] support for parsing/printing check of generalized invariant --- src/kernel_internals/parsing/logic_lexer.mll | 1 + src/kernel_internals/parsing/logic_parser.mly | 5 ++++- tests/spec/generalized_check.i | 13 +++++++++++- .../spec/oracle/generalized_check.res.oracle | 20 +++++++++++++++++-- 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/kernel_internals/parsing/logic_lexer.mll b/src/kernel_internals/parsing/logic_lexer.mll index 2441a0d268a..b86e9200489 100644 --- a/src/kernel_internals/parsing/logic_lexer.mll +++ b/src/kernel_internals/parsing/logic_lexer.mll @@ -306,6 +306,7 @@ | CHECK, BREAKS -> true, CHECK_BREAKS | CHECK, CONTINUES -> true, CHECK_CONTINUES | CHECK, LOOP -> true, CHECK_LOOP + | CHECK, INVARIANT -> true, CHECK_INVARIANT | CHECK, LEMMA -> true, CHECK_LEMMA | _ -> false, current } diff --git a/src/kernel_internals/parsing/logic_parser.mly b/src/kernel_internals/parsing/logic_parser.mly index f2d84d9f7b4..38d5b09db50 100644 --- a/src/kernel_internals/parsing/logic_parser.mly +++ b/src/kernel_internals/parsing/logic_parser.mly @@ -251,7 +251,7 @@ %token DOLLAR QUESTION MINUS PLUS STAR AMP SLASH PERCENT LSQUARE RSQUARE EOF %token GLOBAL INVARIANT VARIANT DECREASES FOR LABEL ASSERT CHECK SEMICOLON NULL EMPTY %token REQUIRES ENSURES ALLOCATES FREES ASSIGNS LOOP NOTHING SLICE IMPACT PRAGMA FROM -%token CHECK_REQUIRES CHECK_LOOP CHECK_LEMMA +%token CHECK_REQUIRES CHECK_LOOP CHECK_INVARIANT CHECK_LEMMA %token CHECK_ENSURES CHECK_EXITS CHECK_CONTINUES CHECK_BREAKS CHECK_RETURNS %token <string> EXT_CODE_ANNOT EXT_GLOBAL EXT_CONTRACT %token EXITS BREAKS CONTINUES RETURNS @@ -1449,6 +1449,7 @@ beg_pragma_or_code_annotation: | ASSERT {} | CHECK {} | INVARIANT {} +| CHECK_INVARIANT {} | EXT_CODE_ANNOT {} ; @@ -1465,6 +1466,8 @@ code_annotation: { fun bhvs -> AAssert (bhvs,toplevel_pred true $2) } | INVARIANT full_lexpr SEMICOLON { fun bhvs -> AInvariant (bhvs,false,toplevel_pred false $2) } +| CHECK_INVARIANT full_lexpr SEMICOLON + { fun bhvs -> AInvariant (bhvs,false,toplevel_pred true $2) } | EXT_CODE_ANNOT grammar_extension SEMICOLON { fun bhvs -> let open Cil_types in diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 06d4c500341..657ce7a76ab 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,5 +1,5 @@ /* run.config -OPT: -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print +OPT: -wp-fct f,main -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print */ /*@ check lemma easy_proof: \false; */ // should not be put in any environment @@ -17,3 +17,14 @@ int main() { f(&a); /*@ check a == 0; */ // can't be proved by WP: we ignore the ensures } + +void loop () { + /*@ check loop invariant \true; */ + for (int i = 0; i< 10; i++); + int j = 0; + l: /*@ check invariant \true; */ ; + if (j >= 10) goto l1; + j++; + goto l; + l1 : ; +} diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.res.oracle index bb54dad662f..bcd2e1756d5 100644 --- a/tests/spec/oracle/generalized_check.res.oracle +++ b/tests/spec/oracle/generalized_check.res.oracle @@ -5,7 +5,7 @@ [wp:strategy] take f_assigns *x; [wp:strategy] [add_node_annots] on <stmt-1> [wp:strategy] [add_node_annots] on <stmt-2> -[wp:strategy] [add_node_annots] on <stmt-10> +[wp:strategy] [add_node_annots] on <stmt-30> [wp:strategy] 'main' is the main entry point [wp:strategy] [add_node_annots] on <stmt-5> [wp:strategy] [add_node_annots] on <callIn-6> @@ -13,7 +13,7 @@ [wp:strategy] [add_node_annots] on <callIn-6> [wp:strategy] [add_node_annots] on <stmt-7> [wp:strategy] [add_node_annots] on <stmt-8> -[wp:strategy] [add_node_annots] on <stmt-12> +[wp:strategy] [add_node_annots] on <stmt-32> [wp] Warning: Missing RTE guards [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point @@ -125,4 +125,20 @@ int main(void) return __retres; } +void loop(void) +{ + { + int i = 0; + /*@ check loop invariant \true; */ + while (i < 10) i ++; + } + int j = 0; + l: /*@ check invariant \true; */ ; + if (j >= 10) goto l1; + j ++; + goto l; + l1: ; + return; +} + -- GitLab From 0366fc384709a10da50c550d67ecf696a938971f Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 18:26:59 +0200 Subject: [PATCH 099/255] [wp] do not put check requires in environment of other PO for caller --- src/plugins/wp/wpAnnot.ml | 3 + src/plugins/wp/wpStrategy.ml | 70 ++++++++++++--- src/plugins/wp/wpStrategy.mli | 3 + tests/spec/generalized_check.i | 14 +-- .../spec/oracle/generalized_check.res.oracle | 85 ++++++++++++++----- 5 files changed, 139 insertions(+), 36 deletions(-) diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index c7b32888e74..cb2cf7d5809 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -373,6 +373,9 @@ let kind_to_select config kind id = match kind with | WpStrategy.AcallPre(goal,fct) -> let goal = goal && goal_to_select config id in Some (WpStrategy.AcallPre(goal,fct)) + | WpStrategy.AcallCheck(fct) -> + if goal_to_select config id then Some (WpStrategy.AcallCheck fct) + else None | WpStrategy.AcallPost _ -> if goal_to_select config id then Some kind else None | WpStrategy.Ahyp | WpStrategy.AcallHyp _ -> Some kind diff --git a/src/plugins/wp/wpStrategy.ml b/src/plugins/wp/wpStrategy.ml index 2e794fbc65e..96f589da256 100644 --- a/src/plugins/wp/wpStrategy.ml +++ b/src/plugins/wp/wpStrategy.ml @@ -48,10 +48,15 @@ type annot_kind = | AcallPre of bool * kernel_function (* annotation is a called function precondition : to be considered as hyp, and goal if bool=true *) + | AcallCheck of kernel_function + (* annotation is a called function check-only precondition. + to be considered as goal only. *) | AcallPost of kernel_function (* annotation is a called function post check : to be considered as goal only *) +type call_pre_kind = CPhyp | CPgoal | CPboth + (* -------------------------------------------------------------------------- *) (* --- Annotations for one program point. --- *) (* -------------------------------------------------------------------------- *) @@ -68,7 +73,7 @@ type annots = { p_both : (bool * WpPropId.pred_info) list; p_cut : (bool * WpPropId.pred_info) list; call_hyp : WpPropId.pred_info list ForCall.t; (* post and pre *) - call_pre : (bool * WpPropId.pred_info) list ForCall.t; (* goal only *) + call_pre : (call_pre_kind * WpPropId.pred_info) list ForCall.t; call_post : WpPropId.pred_info list ForCall.t; (* post goals only (not hyp) *) call_asgn : WpPropId.assigns_full_info ForCall.t; a_goal : WpPropId.assigns_full_info; @@ -112,10 +117,20 @@ let add_prop acc kind id p = | Some p -> Some(WpPropId.mk_pred_info id p) in let add_hyp l = match get_p with None -> l | Some p -> p::l in let add_goal l = match get_p with None -> l | Some p -> p::l in + let add_both_std goal l = + match get_p with None -> l | Some p -> (goal,p) :: l + in let add_both goal l = match get_p with | None -> l - | Some p -> (goal, p)::l + | Some p -> + let kind = if goal then CPboth else CPhyp in + (kind, p)::l + in + let add_pre l = + match get_p with + | None -> l + | Some p -> (CPgoal, p) :: l in let add_for_call fct calls = let l = try ForCall.find fct calls with Not_found -> [] in @@ -123,6 +138,10 @@ let add_prop acc kind id p = let add_both_call fct goal calls = let l = try ForCall.find fct calls with Not_found -> [] in ForCall.add fct (add_both goal l) calls in + let add_pre_call fct calls = + let l = try ForCall.find fct calls with Not_found -> [] in + ForCall.add fct (add_pre l) calls + in let info = acc.info in let goal, info = match kind with | Ahyp -> @@ -130,13 +149,15 @@ let add_prop acc kind id p = | Agoal -> true, { info with p_goal = add_goal info.p_goal } | Aboth goal -> - goal, { info with p_both = add_both goal info.p_both } + goal, { info with p_both = add_both_std goal info.p_both } | AcutB goal -> - goal, { info with p_cut = add_both goal info.p_cut } + goal, { info with p_cut = add_both_std goal info.p_cut } | AcallHyp fct -> false, { info with call_hyp = add_for_call fct info.call_hyp } | AcallPre (goal,fct) -> goal, { info with call_pre = add_both_call fct goal info.call_pre } + | AcallCheck fct -> + true, { info with call_pre = add_pre_call fct info.call_pre } | AcallPost fct -> true, { info with call_post = add_for_call fct info.call_post } in let acc = { acc with info = info } in @@ -212,13 +233,24 @@ let add_prop_stmt_post acc kind kf s bhv tkind l_post ~assumes post = let p = normalize id labels ?assumes p in add_prop acc kind id p +let update_kind kind pre = + if pre.ip_content.tp_only_check then begin + match kind with + | AcallPre(false,_) -> None + | AcallPre(true, kf) -> Some (AcallCheck kf) + | _ -> Some kind + end else Some kind + let add_prop_call_pre acc kind id ~assumes pre = - let labels = NormAtLabels.labels_fct_pre in - let p = Logic_const.pred_of_id_pred pre in - (* assumes can be normalized in the same time *) - let p = Logic_const.pimplies (assumes, p) in - let p = normalize id labels p in - add_prop acc kind id p + match update_kind kind pre with + | None -> acc + | Some kind -> + let labels = NormAtLabels.labels_fct_pre in + let p = Logic_const.pred_of_id_pred pre in + (* assumes can be normalized in the same time *) + let p = Logic_const.pimplies (assumes, p) in + let p = normalize id labels p in + add_prop acc kind id p let add_prop_call_post acc kind called_kf bhv tkind ~assumes post = let id = WpPropId.mk_fct_post_id called_kf bhv (tkind, post) in @@ -444,6 +476,14 @@ let filter_both l = p::h_acc, if goal then p::g_acc else g_acc in List.fold_left add ([], []) l +let filter_both_call l = + let add (h_acc, g_acc) (goal, p) = + match goal with + | CPboth -> p :: h_acc, p :: g_acc + | CPhyp -> p :: h_acc, g_acc + | CPgoal -> h_acc, p :: g_acc + in List.fold_left add ([], []) l + let get_both_hyp_goals annots = filter_both annots.info.p_both let get_call_hyp annots fct = @@ -451,7 +491,7 @@ let get_call_hyp annots fct = with Not_found -> [] let get_call_pre annots fct = - try filter_both (ForCall.find fct annots.info.call_pre) + try filter_both_call (ForCall.find fct annots.info.call_pre) with Not_found -> [],[] let get_call_post annots fct = @@ -478,8 +518,14 @@ let pp_annots fmt acc = Format.fprintf fmt "%s%s: %a@." k (if b then "" else " (h)") WpPropId.pp_pred_of_pred_info p in + let pp_pred_c k c p = + let kind = match c with CPboth -> "(h+g)" | CPgoal -> "g" | CPhyp -> "h" in + Format.fprintf fmt "%s%s: %a@." + k kind WpPropId.pp_pred_of_pred_info p + in let pp_pred_list k l = List.iter (fun p -> pp_pred k true p) l in let pp_pred_b_list k l = List.iter (fun (b, p) -> pp_pred k b p) l in + let pp_pred_c_list k l = List.iter (fun (c, p) -> pp_pred_c k c p) l in begin pp_pred_list "H" acc.p_hyp; pp_pred_list "G" acc.p_goal; @@ -493,7 +539,7 @@ let pp_annots fmt acc = ForCall.iter (fun kf bhs -> let name = "CallPre:" ^ (Kernel_function.get_name kf) in - pp_pred_b_list name bhs) + pp_pred_c_list name bhs) acc.call_pre; ForCall.iter (fun kf asgn -> diff --git a/src/plugins/wp/wpStrategy.mli b/src/plugins/wp/wpStrategy.mli index 9177f1fe536..8f30ea928ce 100644 --- a/src/plugins/wp/wpStrategy.mli +++ b/src/plugins/wp/wpStrategy.mli @@ -58,6 +58,9 @@ type annot_kind = | AcallPre of bool * kernel_function (** annotation is a called function precondition : to be considered as hyp, and goal if bool=true *) + | AcallCheck of kernel_function + (** annotation is check-only called function precondition. + handled internally by {!add_prop_call_pre} below. *) | AcallPost of kernel_function (** annotation is a called function post check : to be considered as goal only (no hyp) *) diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 657ce7a76ab..208ac47fbee 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -3,19 +3,23 @@ OPT: -wp-fct f,main -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print */ /*@ check lemma easy_proof: \false; */ // should not be put in any environment -/*@ check requires \valid(x); +/*@ check requires f_valid_x: \valid(x); assigns *x; - check ensures *x == 0; + check ensures f_init_x: *x == 0; */ void f(int* x) { - /*@ check \valid(x); */ // can't be proved by WP: we ignore the requires + /*@ check f_valid_ko: \valid(x); */ *x = 0; } int main() { int a = 4; - f(&a); - /*@ check a == 0; */ // can't be proved by WP: we ignore the ensures + volatile int c; + int* p = (void*)0; + if (c) p = &a; + f(p); + /*@ check main_valid_ko: \valid(p); */ + /*@ check main_p_content_ko: *p == 0; */ } void loop () { diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.res.oracle index bcd2e1756d5..b51e566532c 100644 --- a/tests/spec/oracle/generalized_check.res.oracle +++ b/tests/spec/oracle/generalized_check.res.oracle @@ -5,15 +5,19 @@ [wp:strategy] take f_assigns *x; [wp:strategy] [add_node_annots] on <stmt-1> [wp:strategy] [add_node_annots] on <stmt-2> -[wp:strategy] [add_node_annots] on <stmt-30> +[wp:strategy] [add_node_annots] on <stmt-36> [wp:strategy] 'main' is the main entry point [wp:strategy] [add_node_annots] on <stmt-5> -[wp:strategy] [add_node_annots] on <callIn-6> +[wp:strategy] [add_node_annots] on <stmt-6> +[wp:strategy] [add_node_annots] on <testIn-8> +[wp:strategy] [add_node_annots] on <stmt-9> +[wp:strategy] [add_node_annots] on <callIn-11> [wp:strategy] take main_assigns *x; -[wp:strategy] [add_node_annots] on <callIn-6> -[wp:strategy] [add_node_annots] on <stmt-7> -[wp:strategy] [add_node_annots] on <stmt-8> -[wp:strategy] [add_node_annots] on <stmt-32> +[wp:strategy] [add_node_annots] on <callIn-11> +[wp:strategy] [add_node_annots] on <stmt-12> +[wp:strategy] [add_node_annots] on <stmt-13> +[wp:strategy] [add_node_annots] on <stmt-14> +[wp:strategy] [add_node_annots] on <stmt-38> [wp] Warning: Missing RTE guards [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point @@ -88,29 +92,68 @@ [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point -[wp] 6 goals scheduled +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp] 7 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid -[wp] [Failed] Goal typed_f_check -[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Failed] Goal typed_f_check_f_valid_ko +[wp] [Qed] Goal typed_f_ensures_f_init_x : Valid [wp] [Failed] Goal typed_lemma_easy_proof -[wp] [Qed] Goal typed_main_call_f_requires : Valid -[wp] [Failed] Goal typed_main_check -[wp] Proved goals: 3 / 6 - Qed: 3 +[wp] [Failed] Goal typed_main_call_f_requires_f_valid_x +[wp] [Failed] Goal typed_main_check_main_p_content_ko +[wp] [Failed] Goal typed_main_check_main_valid_ko +[wp] Proved goals: 2 / 7 + Qed: 2 [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point +[wp:strategy] 'main' is the main entry point /* Generated by Frama-C */ /*@ check lemma easy_proof: \false; */ -/*@ check requires \valid(x); - check ensures *\old(x) ≡ 0; - assigns *x; */ +/*@ check requires f_valid_x: \valid(x); + check ensures f_init_x: *\old(x) ≡ 0; + assigns *x; + */ void f(int *x) { - /*@ check \valid(x); */ ; + /*@ check f_valid_ko: \valid(x); */ ; *x = 0; return; } @@ -118,9 +161,13 @@ void f(int *x) int main(void) { int __retres; + int volatile c; int a = 4; - f(& a); - /*@ check a ≡ 0; */ ; + int *p = (int *)0; + if (c) p = & a; + f(p); + /*@ check main_valid_ko: \valid(p); */ ; + /*@ check main_p_content_ko: *p ≡ 0; */ ; __retres = 0; return __retres; } -- GitLab From 0bcdf987664581ca0224a8416eb3a88392f7afd3 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 7 Sep 2020 18:50:36 +0200 Subject: [PATCH 100/255] [eva] don't reduce on a check ensures/requires --- src/plugins/value/engine/transfer_logic.ml | 1 + tests/spec/generalized_check.i | 1 + ....oracle => generalized_check.0.res.oracle} | 0 .../oracle/generalized_check.1.res.oracle | 40 +++++++++++++++++++ 4 files changed, 42 insertions(+) rename tests/spec/oracle/{generalized_check.res.oracle => generalized_check.0.res.oracle} (100%) create mode 100644 tests/spec/oracle/generalized_check.1.res.oracle diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index 2f2ffed8b1e..a615747430c 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -453,6 +453,7 @@ module Make let emit = emit_message_and_status kind kf behavior ~active in let aux_pred states pred = let pr = Logic_const.pred_of_id_pred pred in + let active = active && not pred.ip_content.tp_only_check in let ip = build_prop pred in if ignore_predicate pr then states diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 208ac47fbee..5fbfd049729 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,5 +1,6 @@ /* run.config OPT: -wp-fct f,main -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print +OPT: -eva -eva-use-spec f */ /*@ check lemma easy_proof: \false; */ // should not be put in any environment diff --git a/tests/spec/oracle/generalized_check.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle similarity index 100% rename from tests/spec/oracle/generalized_check.res.oracle rename to tests/spec/oracle/generalized_check.0.res.oracle diff --git a/tests/spec/oracle/generalized_check.1.res.oracle b/tests/spec/oracle/generalized_check.1.res.oracle new file mode 100644 index 00000000000..4c0df089fdc --- /dev/null +++ b/tests/spec/oracle/generalized_check.1.res.oracle @@ -0,0 +1,40 @@ +[kernel] Parsing tests/spec/generalized_check.i (no preprocessing) +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + +[eva:alarm] tests/spec/generalized_check.i:20: Warning: + accessing uninitialized left-value. assert \initialized(&c); +[eva] using specification for function f +[eva:alarm] tests/spec/generalized_check.i:21: Warning: + function f: precondition 'f_valid_x' got status unknown. +[eva] tests/spec/generalized_check.i:8: Warning: + no \from part for clause 'assigns *x;' +[eva:alarm] tests/spec/generalized_check.i:22: Warning: + check 'main_valid_ko' got status unknown. +[eva:alarm] tests/spec/generalized_check.i:23: Warning: + check 'main_p_content_ko' got status unknown. +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function main: + a ∈ [--..--] + p ∈ {{ NULL ; &a }} + __retres ∈ {0} +[eva:summary] ====== ANALYSIS SUMMARY ====== + ---------------------------------------------------------------------------- + 2 functions analyzed (out of 3): 66% coverage. + In these functions, 9 statements reached (out of 12): 75% coverage. + ---------------------------------------------------------------------------- + Some errors and warnings have been raised during the analysis: + by the Eva analyzer: 0 errors 1 warning + by the Frama-C kernel: 0 errors 0 warnings + ---------------------------------------------------------------------------- + 1 alarm generated by the analysis: + 1 access to uninitialized left-values + ---------------------------------------------------------------------------- + Evaluation of the logical properties reached by the analysis: + Assertions 0 valid 2 unknown 0 invalid 2 total + Preconditions 0 valid 1 unknown 0 invalid 1 total + 0% of the logical properties reached have been proven. + ---------------------------------------------------------------------------- -- GitLab From 147c0a384fcb442939d606dd75a090a1fa6c0b7d Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 8 Sep 2020 11:03:23 +0200 Subject: [PATCH 101/255] [eva] don't reduce check-only loop invariants --- src/plugins/value/engine/transfer_logic.ml | 2 +- tests/spec/generalized_check.i | 11 +- .../oracle/generalized_check.0.res.oracle | 151 ++++++++++++++++-- .../oracle/generalized_check.1.res.oracle | 19 ++- 4 files changed, 163 insertions(+), 20 deletions(-) diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index a615747430c..e251024a6cc 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -691,7 +691,7 @@ module Make | AAssert (behav, p) -> aux ~reduce:(not p.tp_only_check) code_annot behav p.tp_statement | AInvariant (behav, true, p) -> - aux ~reduce:true code_annot behav p.tp_statement + aux ~reduce:(not p.tp_only_check) code_annot behav p.tp_statement | APragma _ | AInvariant (_, false, _) | AVariant _ | AAssigns _ | AAllocation _ | AExtended _ diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 5fbfd049729..8231d53c287 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,5 +1,5 @@ /* run.config -OPT: -wp-fct f,main -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print +OPT: -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print OPT: -eva -eva-use-spec f */ /*@ check lemma easy_proof: \false; */ // should not be put in any environment @@ -13,6 +13,8 @@ void f(int* x) { *x = 0; } +void loop(void); + int main() { int a = 4; volatile int c; @@ -21,12 +23,15 @@ int main() { f(p); /*@ check main_valid_ko: \valid(p); */ /*@ check main_p_content_ko: *p == 0; */ + loop(); } void loop () { - /*@ check loop invariant \true; */ - for (int i = 0; i< 10; i++); int j = 0; + /*@ check loop invariant j == 10; + loop assigns i; + */ + for (int i = 0; i< 10; i++); l: /*@ check invariant \true; */ ; if (j >= 10) goto l1; j++; diff --git a/tests/spec/oracle/generalized_check.0.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle index b51e566532c..753b2499bdd 100644 --- a/tests/spec/oracle/generalized_check.0.res.oracle +++ b/tests/spec/oracle/generalized_check.0.res.oracle @@ -5,7 +5,55 @@ [wp:strategy] take f_assigns *x; [wp:strategy] [add_node_annots] on <stmt-1> [wp:strategy] [add_node_annots] on <stmt-2> -[wp:strategy] [add_node_annots] on <stmt-36> +[wp:strategy] [add_node_annots] on <stmt-37> +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] [add_node_annots] on <stmt-17> +[wp:strategy] [add_node_annots] on <stmt-19> +[wp:strategy] [add_node_annots] on <testIn-22> +[wp:strategy] [add_node_annots] on <stmt-23> +[wp:strategy] [add_node_annots] on <stmt-25> +[wp] tests/spec/generalized_check.i:29: Warning: + Unsupported generalized invariant, use loop invariant instead. + Ignored invariant + check invariant \true; +[wp:strategy] [add_node_annots] on <stmt-26> +[wp:strategy] [add_node_annots] on <testIn-29> +[wp:strategy] [add_node_annots] on <stmt-30> +[wp:strategy] [add_node_annots] on <stmt-32> +[wp:strategy] [add_node_annots] on <stmt-33> +[wp:strategy] [add_node_annots] on <stmt-34> +[wp:strategy] [add_node_annots] on <stmt-41> +[wp:strategy] [add_loop_annots] on <loop-20> +[wp:strategy] [add_loop_annots] 1 edges_to_head +[wp:strategy] [add_loop_annots] 2 edges_to_loop +[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges +[wp:strategy] [add_loop_annots on entry_edges ok] +[wp:strategy] [add_loop_annots on back_edges ok] +[wp:strategy] [add_loop_annots on edges_to_head ok] +[wp:strategy] take loop_loop_assigns i; +[wp:strategy] take loop_loop_assigns i; +[wp:strategy] [add_loop_annots] on <loop-20> +[wp:strategy] [add_loop_annots] 1 edges_to_head +[wp:strategy] [add_loop_annots] 2 edges_to_loop +[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges +[wp:strategy] [add_loop_annots on entry_edges ok] +[wp:strategy] [add_loop_annots on back_edges ok] +[wp:strategy] [add_loop_annots on edges_to_head ok] +[wp:strategy] [add_loop_annots] on <loop-26> +[wp:strategy] [add_loop_annots] 1 edges_to_head +[wp:strategy] [add_loop_annots] 2 edges_to_loop +[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges +[wp:strategy] [add_loop_annots on entry_edges ok] +[wp:strategy] [add_loop_annots on back_edges ok] +[wp:strategy] [add_loop_annots on edges_to_head ok] +[wp:strategy] [add_loop_annots] on <loop-26> +[wp:strategy] [add_loop_annots] 1 edges_to_head +[wp:strategy] [add_loop_annots] 2 edges_to_loop +[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges +[wp:strategy] [add_loop_annots on entry_edges ok] +[wp:strategy] [add_loop_annots on back_edges ok] +[wp:strategy] [add_loop_annots on edges_to_head ok] +[wp:strategy] [add_node_annots] on <blkIn-stmt:18> [wp:strategy] 'main' is the main entry point [wp:strategy] [add_node_annots] on <stmt-5> [wp:strategy] [add_node_annots] on <stmt-6> @@ -16,8 +64,10 @@ [wp:strategy] [add_node_annots] on <callIn-11> [wp:strategy] [add_node_annots] on <stmt-12> [wp:strategy] [add_node_annots] on <stmt-13> -[wp:strategy] [add_node_annots] on <stmt-14> -[wp:strategy] [add_node_annots] on <stmt-38> +[wp:strategy] [add_node_annots] on <callIn-14> +[wp:strategy] [add_node_annots] on <callIn-14> +[wp:strategy] [add_node_annots] on <stmt-15> +[wp:strategy] [add_node_annots] on <stmt-39> [wp] Warning: Missing RTE guards [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point @@ -43,6 +93,78 @@ [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp] tests/spec/generalized_check.i:35: Warning: + Missing assigns clause (assigns 'everything' instead) +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point @@ -127,18 +249,25 @@ [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point -[wp] 7 goals scheduled +[wp:strategy] 'main' is the main entry point +[wp] 10 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid [wp] [Failed] Goal typed_f_check_f_valid_ko [wp] [Qed] Goal typed_f_ensures_f_init_x : Valid [wp] [Failed] Goal typed_lemma_easy_proof +[wp] [Failed] Goal typed_main_check_main_valid_ko +[wp] [Qed] Goal typed_loop_loop_assigns : Valid +[wp] [Failed] Goal typed_loop_loop_invariant_established +[wp] [Qed] Goal typed_loop_loop_invariant_preserved : Valid [wp] [Failed] Goal typed_main_call_f_requires_f_valid_x [wp] [Failed] Goal typed_main_check_main_p_content_ko -[wp] [Failed] Goal typed_main_check_main_valid_ko -[wp] Proved goals: 2 / 7 - Qed: 2 +[wp] Proved goals: 4 / 10 + Qed: 4 [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point @@ -158,6 +287,8 @@ void f(int *x) return; } +void loop(void); + int main(void) { int __retres; @@ -168,18 +299,20 @@ int main(void) f(p); /*@ check main_valid_ko: \valid(p); */ ; /*@ check main_p_content_ko: *p ≡ 0; */ ; + loop(); __retres = 0; return __retres; } void loop(void) { + int j = 0; { int i = 0; - /*@ check loop invariant \true; */ + /*@ check loop invariant j ≡ 10; + loop assigns i; */ while (i < 10) i ++; } - int j = 0; l: /*@ check invariant \true; */ ; if (j >= 10) goto l1; j ++; diff --git a/tests/spec/oracle/generalized_check.1.res.oracle b/tests/spec/oracle/generalized_check.1.res.oracle index 4c0df089fdc..fc45924ecaf 100644 --- a/tests/spec/oracle/generalized_check.1.res.oracle +++ b/tests/spec/oracle/generalized_check.1.res.oracle @@ -4,27 +4,32 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva:alarm] tests/spec/generalized_check.i:20: Warning: +[eva:alarm] tests/spec/generalized_check.i:22: Warning: accessing uninitialized left-value. assert \initialized(&c); [eva] using specification for function f -[eva:alarm] tests/spec/generalized_check.i:21: Warning: +[eva:alarm] tests/spec/generalized_check.i:23: Warning: function f: precondition 'f_valid_x' got status unknown. [eva] tests/spec/generalized_check.i:8: Warning: no \from part for clause 'assigns *x;' -[eva:alarm] tests/spec/generalized_check.i:22: Warning: +[eva:alarm] tests/spec/generalized_check.i:24: Warning: check 'main_valid_ko' got status unknown. -[eva:alarm] tests/spec/generalized_check.i:23: Warning: +[eva:alarm] tests/spec/generalized_check.i:25: Warning: check 'main_p_content_ko' got status unknown. +[eva:alarm] tests/spec/generalized_check.i:31: Warning: + loop invariant got status invalid. +[eva] tests/spec/generalized_check.i:34: starting to merge loop iterations [eva] done for function main [eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function loop: + j ∈ {10} [eva:final-states] Values at end of function main: a ∈ [--..--] p ∈ {{ NULL ; &a }} __retres ∈ {0} [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- - 2 functions analyzed (out of 3): 66% coverage. - In these functions, 9 statements reached (out of 12): 75% coverage. + 3 functions analyzed (out of 3): 100% coverage. + In these functions, 24 statements reached (out of 27): 88% coverage. ---------------------------------------------------------------------------- Some errors and warnings have been raised during the analysis: by the Eva analyzer: 0 errors 1 warning @@ -34,7 +39,7 @@ 1 access to uninitialized left-values ---------------------------------------------------------------------------- Evaluation of the logical properties reached by the analysis: - Assertions 0 valid 2 unknown 0 invalid 2 total + Assertions 0 valid 2 unknown 1 invalid 3 total Preconditions 0 valid 1 unknown 0 invalid 1 total 0% of the logical properties reached have been proven. ---------------------------------------------------------------------------- -- GitLab From bb58530a0e08a04e65bc32a0285c54be5fb64c96 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 8 Sep 2020 11:35:01 +0200 Subject: [PATCH 102/255] [wp] don't put check-only loop invariants in hypotheses --- src/plugins/wp/wpAnnot.ml | 15 +++++--- tests/spec/generalized_check.i | 3 +- .../oracle/generalized_check.0.res.oracle | 38 ++++++++++--------- .../oracle/generalized_check.1.res.oracle | 8 ++-- 4 files changed, 38 insertions(+), 26 deletions(-) diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index cb2cf7d5809..eaee55511cf 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -833,6 +833,8 @@ let add_variant_annot config s ca var_exp loop_entry loop_back = in loop_entry, loop_back let add_loop_invariant_annot config vloop s ca b_list inv acc = + let only_check = inv.tp_only_check in + let inv = inv.tp_statement in let assigns, loop_entry, loop_back , loop_core = acc in (* we have to prove that inv is true for each edge that goes * in the loop, so we can assume that inv is true for each edge @@ -846,15 +848,18 @@ let add_loop_invariant_annot config vloop s ca b_list inv acc = WpStrategy.Agoal s ca inv in let loop_back = add_prop_loop_inv ~established:false config loop_back WpStrategy.Agoal s ca inv in - let loop_core = add_prop_inv_fixpoint config loop_core - WpStrategy.Ahyp s ca inv in + let loop_core = + if only_check then loop_core + else + add_prop_inv_fixpoint config loop_core WpStrategy.Ahyp s ca inv + in assigns, loop_entry , loop_back , loop_core end - | TBRhyp -> + | TBRhyp when not only_check -> let kind = WpStrategy.Ahyp in let loop_core = add_prop_inv_fixpoint config loop_core kind s ca inv in assigns, loop_entry , loop_back , loop_core - | TBRno -> acc + | TBRhyp | TBRno -> acc (** Returns the annotations for the three edges of the loop node: * - loop_entry : goals for the edge entering in the loop @@ -865,7 +870,7 @@ let get_loop_annots config vloop s = let do_annot _ a (assigns, loop_entry, loop_back , loop_core as acc) = match a.annot_content with | AInvariant (b_list, true, inv) -> - add_loop_invariant_annot config vloop s a b_list inv.tp_statement acc + add_loop_invariant_annot config vloop s a b_list inv acc | AVariant (var_exp, None) -> let loop_entry, loop_back = add_variant_annot config s a var_exp loop_entry loop_back diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 8231d53c287..e65573c0233 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -28,10 +28,11 @@ int main() { void loop () { int j = 0; - /*@ check loop invariant j == 10; + /*@ check loop invariant false_but_preserved: j == 10; loop assigns i; */ for (int i = 0; i< 10; i++); + /*@ check implied_by_false_invariant: j == 10; */ l: /*@ check invariant \true; */ ; if (j >= 10) goto l1; j++; diff --git a/tests/spec/oracle/generalized_check.0.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle index 753b2499bdd..eca824fbeed 100644 --- a/tests/spec/oracle/generalized_check.0.res.oracle +++ b/tests/spec/oracle/generalized_check.0.res.oracle @@ -5,24 +5,25 @@ [wp:strategy] take f_assigns *x; [wp:strategy] [add_node_annots] on <stmt-1> [wp:strategy] [add_node_annots] on <stmt-2> -[wp:strategy] [add_node_annots] on <stmt-37> +[wp:strategy] [add_node_annots] on <stmt-38> [wp:strategy] 'loop' is NOT the main entry point [wp:strategy] [add_node_annots] on <stmt-17> [wp:strategy] [add_node_annots] on <stmt-19> [wp:strategy] [add_node_annots] on <testIn-22> [wp:strategy] [add_node_annots] on <stmt-23> [wp:strategy] [add_node_annots] on <stmt-25> +[wp:strategy] [add_node_annots] on <stmt-26> [wp] tests/spec/generalized_check.i:29: Warning: Unsupported generalized invariant, use loop invariant instead. Ignored invariant check invariant \true; -[wp:strategy] [add_node_annots] on <stmt-26> -[wp:strategy] [add_node_annots] on <testIn-29> -[wp:strategy] [add_node_annots] on <stmt-30> -[wp:strategy] [add_node_annots] on <stmt-32> +[wp:strategy] [add_node_annots] on <stmt-27> +[wp:strategy] [add_node_annots] on <testIn-30> +[wp:strategy] [add_node_annots] on <stmt-31> [wp:strategy] [add_node_annots] on <stmt-33> [wp:strategy] [add_node_annots] on <stmt-34> -[wp:strategy] [add_node_annots] on <stmt-41> +[wp:strategy] [add_node_annots] on <stmt-35> +[wp:strategy] [add_node_annots] on <stmt-42> [wp:strategy] [add_loop_annots] on <loop-20> [wp:strategy] [add_loop_annots] 1 edges_to_head [wp:strategy] [add_loop_annots] 2 edges_to_loop @@ -39,14 +40,14 @@ [wp:strategy] [add_loop_annots on entry_edges ok] [wp:strategy] [add_loop_annots on back_edges ok] [wp:strategy] [add_loop_annots on edges_to_head ok] -[wp:strategy] [add_loop_annots] on <loop-26> +[wp:strategy] [add_loop_annots] on <loop-27> [wp:strategy] [add_loop_annots] 1 edges_to_head [wp:strategy] [add_loop_annots] 2 edges_to_loop [wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges [wp:strategy] [add_loop_annots on entry_edges ok] [wp:strategy] [add_loop_annots on back_edges ok] [wp:strategy] [add_loop_annots on edges_to_head ok] -[wp:strategy] [add_loop_annots] on <loop-26> +[wp:strategy] [add_loop_annots] on <loop-27> [wp:strategy] [add_loop_annots] 1 edges_to_head [wp:strategy] [add_loop_annots] 2 edges_to_loop [wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges @@ -67,7 +68,7 @@ [wp:strategy] [add_node_annots] on <callIn-14> [wp:strategy] [add_node_annots] on <callIn-14> [wp:strategy] [add_node_annots] on <stmt-15> -[wp:strategy] [add_node_annots] on <stmt-39> +[wp:strategy] [add_node_annots] on <stmt-40> [wp] Warning: Missing RTE guards [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point @@ -120,7 +121,7 @@ [wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'loop' is NOT the main entry point -[wp] tests/spec/generalized_check.i:35: Warning: +[wp] tests/spec/generalized_check.i:36: Warning: Missing assigns clause (assigns 'everything' instead) [wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'loop' is NOT the main entry point @@ -165,6 +166,7 @@ [wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'loop' is NOT the main entry point +[wp:strategy] 'loop' is NOT the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point @@ -250,19 +252,20 @@ [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point [wp:strategy] 'main' is the main entry point -[wp] 10 goals scheduled +[wp] 11 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid [wp] [Failed] Goal typed_f_check_f_valid_ko [wp] [Qed] Goal typed_f_ensures_f_init_x : Valid [wp] [Failed] Goal typed_lemma_easy_proof -[wp] [Failed] Goal typed_main_check_main_valid_ko [wp] [Qed] Goal typed_loop_loop_assigns : Valid -[wp] [Failed] Goal typed_loop_loop_invariant_established -[wp] [Qed] Goal typed_loop_loop_invariant_preserved : Valid +[wp] [Failed] Goal typed_loop_check_implied_by_false_invariant +[wp] [Failed] Goal typed_loop_loop_invariant_false_but_preserved_established +[wp] [Failed] Goal typed_loop_loop_invariant_false_but_preserved_preserved [wp] [Failed] Goal typed_main_call_f_requires_f_valid_x [wp] [Failed] Goal typed_main_check_main_p_content_ko -[wp] Proved goals: 4 / 10 - Qed: 4 +[wp] [Failed] Goal typed_main_check_main_valid_ko +[wp] Proved goals: 3 / 11 + Qed: 3 [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'f' is NOT the main entry point [wp:strategy] 'loop' is NOT the main entry point @@ -309,10 +312,11 @@ void loop(void) int j = 0; { int i = 0; - /*@ check loop invariant j ≡ 10; + /*@ check loop invariant false_but_preserved: j ≡ 10; loop assigns i; */ while (i < 10) i ++; } + /*@ check implied_by_false_invariant: j ≡ 10; */ ; l: /*@ check invariant \true; */ ; if (j >= 10) goto l1; j ++; diff --git a/tests/spec/oracle/generalized_check.1.res.oracle b/tests/spec/oracle/generalized_check.1.res.oracle index fc45924ecaf..e160c9b946f 100644 --- a/tests/spec/oracle/generalized_check.1.res.oracle +++ b/tests/spec/oracle/generalized_check.1.res.oracle @@ -16,8 +16,10 @@ [eva:alarm] tests/spec/generalized_check.i:25: Warning: check 'main_p_content_ko' got status unknown. [eva:alarm] tests/spec/generalized_check.i:31: Warning: - loop invariant got status invalid. + loop invariant 'false_but_preserved' got status invalid. [eva] tests/spec/generalized_check.i:34: starting to merge loop iterations +[eva:alarm] tests/spec/generalized_check.i:35: Warning: + check 'implied_by_false_invariant' got status invalid. [eva] done for function main [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function loop: @@ -29,7 +31,7 @@ [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- 3 functions analyzed (out of 3): 100% coverage. - In these functions, 24 statements reached (out of 27): 88% coverage. + In these functions, 25 statements reached (out of 28): 89% coverage. ---------------------------------------------------------------------------- Some errors and warnings have been raised during the analysis: by the Eva analyzer: 0 errors 1 warning @@ -39,7 +41,7 @@ 1 access to uninitialized left-values ---------------------------------------------------------------------------- Evaluation of the logical properties reached by the analysis: - Assertions 0 valid 2 unknown 1 invalid 3 total + Assertions 0 valid 2 unknown 2 invalid 4 total Preconditions 0 valid 1 unknown 0 invalid 1 total 0% of the logical properties reached have been proven. ---------------------------------------------------------------------------- -- GitLab From 66f225d7fe74bd718ba94e548b6cfb00fc67297d Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 8 Sep 2020 16:06:28 +0200 Subject: [PATCH 103/255] [eva] rename argument as proposed in [MR](https://git.frama-c.com/frama-c/frama-c/-/merge_requests/2817#note_95099) --- src/plugins/value/engine/transfer_logic.ml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index e251024a6cc..4ee6f16a624 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -384,11 +384,11 @@ module Make else (* Not enough slevel to split, and reduction not required *) States.singleton state - let eval_split_and_reduce limit active pred build_env state = + let eval_split_and_reduce limit ~reduce pred build_env state = let env = build_env state in let status = Domain.evaluate_predicate env state pred in let reduced_states = - if active then + if reduce then match status with | Alarmset.False -> States.empty | Alarmset.True -> @@ -453,7 +453,7 @@ module Make let emit = emit_message_and_status kind kf behavior ~active in let aux_pred states pred = let pr = Logic_const.pred_of_id_pred pred in - let active = active && not pred.ip_content.tp_only_check in + let reduce = active && not pred.ip_content.tp_only_check in let ip = build_prop pred in if ignore_predicate pr then states @@ -466,7 +466,7 @@ module Make States.fold (fun state (acc_status, acc_states) -> let status, reduced_states = - eval_split_and_reduce limit active pr build_env state + eval_split_and_reduce limit ~reduce pr build_env state in (status :: acc_status, fst (States.merge ~into:acc_states reduced_states))) -- GitLab From e1d751823e1dbc5cb6cb2d05203efd7c5d3883f9 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 8 Sep 2020 18:28:56 +0200 Subject: [PATCH 104/255] [eva] factor identical cases in pattern-matching --- src/plugins/value/engine/transfer_logic.ml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/plugins/value/engine/transfer_logic.ml b/src/plugins/value/engine/transfer_logic.ml index 4ee6f16a624..a6efdf17d21 100644 --- a/src/plugins/value/engine/transfer_logic.ml +++ b/src/plugins/value/engine/transfer_logic.ml @@ -688,8 +688,7 @@ module Make aux_interp ~reduce code_annot behav p in match code_annot.annot_content with - | AAssert (behav, p) -> - aux ~reduce:(not p.tp_only_check) code_annot behav p.tp_statement + | AAssert (behav, p) | AInvariant (behav, true, p) -> aux ~reduce:(not p.tp_only_check) code_annot behav p.tp_statement | APragma _ -- GitLab From cf255eefc90208c9e60a809ff6b5428d08197ec4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 9 Sep 2020 14:55:59 +0200 Subject: [PATCH 105/255] [wp] introduce lemma kind --- src/plugins/wp/Cstring.ml | 2 +- src/plugins/wp/Definitions.ml | 2 +- src/plugins/wp/Definitions.mli | 2 +- src/plugins/wp/LogicCompiler.ml | 12 +++---- src/plugins/wp/LogicUsage.ml | 59 ++++++++++++++++++--------------- src/plugins/wp/LogicUsage.mli | 4 ++- src/plugins/wp/MemLoader.ml | 8 ++--- src/plugins/wp/MemRegion.ml | 6 ++-- src/plugins/wp/MemTyped.ml | 12 +++---- src/plugins/wp/ProverWhy3.ml | 2 +- src/plugins/wp/cfgWP.ml | 2 +- 11 files changed, 60 insertions(+), 51 deletions(-) diff --git a/src/plugins/wp/Cstring.ml b/src/plugins/wp/Cstring.ml index d5d2ceb8a4c..47574ee5837 100644 --- a/src/plugins/wp/Cstring.ml +++ b/src/plugins/wp/Cstring.ml @@ -76,7 +76,7 @@ module LIT = WpContext.Generator(STR) define_lemma { l_name = prefix ^ "_literal" ; l_cluster = cluster () ; - l_assumed = true ; + l_kind = `Axiom ; l_types = 0 ; l_forall = [] ; l_triggers = [] ; diff --git a/src/plugins/wp/Definitions.ml b/src/plugins/wp/Definitions.ml index 6a5c7ee962d..ce9733e12df 100644 --- a/src/plugins/wp/Definitions.ml +++ b/src/plugins/wp/Definitions.ml @@ -54,7 +54,7 @@ type cluster = { and dlemma = { l_name : string ; l_cluster : cluster ; - l_assumed : bool ; + l_kind : lkind ; l_types : int ; l_forall : var list ; l_triggers : trigger list list (* OR of AND triggers *) ; diff --git a/src/plugins/wp/Definitions.mli b/src/plugins/wp/Definitions.mli index 20beeda15d9..dde165a9726 100644 --- a/src/plugins/wp/Definitions.mli +++ b/src/plugins/wp/Definitions.mli @@ -49,7 +49,7 @@ type typedef = (tau,field,lfun) Qed.Engine.ftypedef type dlemma = { l_name : string ; l_cluster : cluster ; - l_assumed : bool ; + l_kind : lkind ; l_types : int ; l_forall : var list ; l_triggers : trigger list list ; (** OR of AND-triggers *) diff --git a/src/plugins/wp/LogicCompiler.ml b/src/plugins/wp/LogicCompiler.ml index 8c88a3af10b..69019743d70 100644 --- a/src/plugins/wp/LogicCompiler.ml +++ b/src/plugins/wp/LogicCompiler.ml @@ -498,7 +498,7 @@ struct | Pforall(qs,q) -> strip_forall (xs @ qs) q | _ -> xs , p - let compile_lemma cluster name ~assumed types labels lemma = + let compile_lemma cluster name ~kind types labels lemma = let qs,prop = strip_forall [] lemma in let xs,tgs,domain,prop,_ = let cc_pred = pred `Positive in @@ -508,7 +508,7 @@ struct { l_name = name ; l_types = List.length types ; - l_assumed = assumed ; + l_kind = kind ; l_triggers = [tgs] ; l_forall = xs ; l_cluster = cluster ; @@ -539,7 +539,7 @@ struct let trigger = Trigger.of_term result in Definitions.define_lemma { l_name = name ; - l_assumed = true ; + l_kind = `Axiom ; l_types = ldef.d_types ; l_forall = ldef.d_params ; l_triggers = [[trigger]] ; @@ -721,7 +721,7 @@ struct (* Re-compile final cases *) let cases = List.map (fun (case,labels,types,lemma) -> - compile_lemma cluster ~assumed:true case types labels lemma) + compile_lemma cluster ~kind:`Axiom case types labels lemma) cases in Definitions.update_symbol { ldef with d_definition = Inductive cases } ; type_for_signature l ldef sigp (* sufficient *) ; SIG sigm @@ -770,7 +770,7 @@ struct { l_name ; l_types = 0 ; - l_assumed = true ; + l_kind = `Axiom ; l_triggers = [frame.triggers] ; l_forall = vs ; l_cluster = cluster ; @@ -802,7 +802,7 @@ struct "Lemma '%s' has labels, consider using global invariant instead." l.lem_name ; Definitions.define_lemma - (compile_lemma c ~assumed:l.lem_axiom + (compile_lemma c ~kind:l.lem_kind l.lem_name l.lem_types l.lem_labels l.lem_property) let define_axiomatic cluster ax = diff --git a/src/plugins/wp/LogicUsage.ml b/src/plugins/wp/LogicUsage.ml index ad485a2251d..32247aa43d3 100644 --- a/src/plugins/wp/LogicUsage.ml +++ b/src/plugins/wp/LogicUsage.ml @@ -57,10 +57,12 @@ let trim name = (* --- Definition Blocks --- *) (* -------------------------------------------------------------------------- *) +type lkind = [ `Axiom | `Check | `Lemma ] + type logic_lemma = { lem_name : string ; + lem_kind : lkind ; lem_position : Filepath.position ; - lem_axiom : bool ; lem_types : string list ; lem_labels : logic_label list ; lem_property : predicate ; @@ -192,21 +194,24 @@ let pp_profile fmt l = let ip_lemma l = let open Property in - (if l.lem_axiom then Property.ip_axiom else Property.ip_lemma) + (if l.lem_kind = `Axiom then Property.ip_axiom else Property.ip_lemma) {il_name = l.lem_name; il_labels = l.lem_labels; il_args = l.lem_types; il_loc = (l.lem_position, l.lem_position); il_pred = l.lem_property} let lemma_of_global proof = function - | Dlemma(name,axiom,labels,types,pred,_,loc) -> { - lem_name = name ; - lem_position = fst loc ; - lem_types = types ; - lem_labels = labels ; - lem_axiom = axiom ; - lem_property = pred.tp_statement ; - lem_depends = proof ; - } + | Dlemma(name,axiom,labels,types,pred,_,loc) -> + let kind = if axiom then `Axiom else + if pred.tp_only_check then `Check else `Lemma in + { + lem_name = name ; + lem_position = fst loc ; + lem_types = types ; + lem_labels = labels ; + lem_kind = kind ; + lem_property = pred.tp_statement ; + lem_depends = proof ; + } | _ -> assert false let populate a proof = function @@ -502,9 +507,9 @@ let proof_context () = (* --- Dump API --- *) (* -------------------------------------------------------------------------- *) -let dump_type fmt t = Format.fprintf fmt " * type '%s'@\n" t.lt_name +let pp_type fmt t = Format.fprintf fmt " * type '%s'@\n" t.lt_name -let dump_profile fmt kind l = +let pp_sig fmt kind l = begin Format.fprintf fmt " * %s '%s'@\n" kind (compute_logicname l) ; if is_overloaded l then @@ -513,11 +518,11 @@ let dump_profile fmt kind l = Format.fprintf fmt " recursive@\n" ; end -let dump_logic fmt d l = +let pp_decl fmt d l = begin try let cases = LMap.find l d.cases in - dump_profile fmt "inductive" l ; + pp_sig fmt "inductive" l ; List.iter (fun ind -> Format.fprintf fmt " @[case %s:" ind.ind_case ; @@ -532,14 +537,16 @@ let dump_logic fmt d l = ) cases ; with Not_found -> let kind = if l.l_type = None then "predicate" else "function" in - dump_profile fmt kind l ; + pp_sig fmt kind l ; end -let dump_lemma fmt l = - if l.lem_axiom then - Format.fprintf fmt " * axiom '%s'@\n" l.lem_name - else - Format.fprintf fmt " * lemma '%s'@\n" l.lem_name +let pp_kind fmt = function + | `Axiom -> Format.pp_print_string fmt "axiom" + | `Lemma -> Format.pp_print_string fmt "lemma" + | `Check -> Format.pp_print_string fmt "check lemma" + +let pp_lemma fmt l = + Format.fprintf fmt " * %a '%s'@\n" pp_kind l.lem_kind l.lem_name let get_name l = compute () ; compute_logicname l @@ -556,9 +563,9 @@ let dump () = SMap.iter (fun _ a -> Format.fprintf fmt "Axiomatic %s {@\n" a.ax_name ; - List.iter (dump_type fmt) a.ax_types ; - List.iter (dump_logic fmt d) a.ax_logics ; - List.iter (dump_lemma fmt) a.ax_lemmas ; + List.iter (pp_type fmt) a.ax_types ; + List.iter (pp_decl fmt d) a.ax_logics ; + List.iter (pp_lemma fmt) a.ax_lemmas ; Format.fprintf fmt "}@\n" ) d.axiomatics ; TMap.iter @@ -573,8 +580,8 @@ let dump () = d.logics ; SMap.iter (fun l (lem,s) -> - Format.fprintf fmt " * %s '%s' in %a@\n" - (if lem.lem_axiom then "axiom" else "lemma") + Format.fprintf fmt " * %a '%s' in %a@\n" + pp_kind lem.lem_kind l pp_section s) d.lemmas ; Format.fprintf fmt "-------------------------------------------------@." ; diff --git a/src/plugins/wp/LogicUsage.mli b/src/plugins/wp/LogicUsage.mli index 4ae195a680c..b36713d5209 100644 --- a/src/plugins/wp/LogicUsage.mli +++ b/src/plugins/wp/LogicUsage.mli @@ -30,10 +30,12 @@ open Clabels val basename : varinfo -> string (** Trims the original name *) +type lkind = [ `Axiom | `Check | `Lemma ] + type logic_lemma = { lem_name : string ; + lem_kind : lkind ; lem_position : Filepath.position ; - lem_axiom : bool ; lem_types : string list ; lem_labels : logic_label list ; lem_property : predicate ; diff --git a/src/plugins/wp/MemLoader.ml b/src/plugins/wp/MemLoader.ml index 33815ea8595..c1bc3500eac 100644 --- a/src/plugins/wp/MemLoader.ml +++ b/src/plugins/wp/MemLoader.ml @@ -155,7 +155,7 @@ struct prefix name Chunk.pretty chunk i in let l_lemma = F.p_hyps conditions (p_equal value1 value2) in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name ; l_types = 0 ; l_triggers ; l_forall = F.p_vars l_lemma ; @@ -245,7 +245,7 @@ struct pp_rid r (Matrix.id ds) (Matrix.natural_id obj_e) in let prefix = Lang.Fun.debug lfun in - let axiom = prefix ^ "_access" in + let name = prefix ^ "_access" in let xmem,chunks,sigma = signature domain in let denv = Matrix.denv ds in let phi = e_fun lfun (v :: denv.size_val @ List.map e_var xmem) in @@ -261,8 +261,8 @@ struct d_cluster = cluster ; } ; Definitions.define_lemma { - l_assumed = true ; - l_name = axiom ; l_types = 0 ; + l_kind = `Axiom ; + l_name = name ; l_types = 0 ; l_forall = F.p_vars lemma ; l_triggers = [[Trigger.of_term va]] ; l_lemma = lemma ; diff --git a/src/plugins/wp/MemRegion.ml b/src/plugins/wp/MemRegion.ml index 3723ce42322..82a9d1c39e6 100644 --- a/src/plugins/wp/MemRegion.ml +++ b/src/plugins/wp/MemRegion.ml @@ -193,14 +193,14 @@ let constructor ~basename ~params ~index ~addrof ~consistent = } ; Definitions.define_lemma { l_cluster = cluster ; - l_assumed = true ; + l_kind = `Axiom ; l_name = Printf.sprintf "addrof_%s_%d" basename id ; l_forall = params ; l_types = 0 ; l_triggers = [] ; l_lemma = p_addrof ; } ; Definitions.define_lemma { l_cluster = cluster ; - l_assumed = true ; + l_kind = `Axiom ; l_name = Printf.sprintf "consistent_%s_%d" basename id ; l_forall = params ; l_types = 0 ; l_triggers = [] ; l_lemma = p_consistent ; @@ -208,7 +208,7 @@ let constructor ~basename ~params ~index ~addrof ~consistent = if p_index != F.p_true then Definitions.define_lemma { l_cluster = cluster ; - l_assumed = true ; + l_kind = `Axiom ; l_name = Printf.sprintf "index_%s_%d" basename id ; l_forall = params @ [k] ; l_types = 0 ; l_triggers = [] ; l_lemma = p_index ; diff --git a/src/plugins/wp/MemTyped.ml b/src/plugins/wp/MemTyped.ml index 6743fc7a086..e910305304a 100644 --- a/src/plugins/wp/MemTyped.ml +++ b/src/plugins/wp/MemTyped.ml @@ -415,7 +415,7 @@ module STRING = WpContext.Generator(LITERAL) let alloc = F.e_get m base in (* The size is alloc-1 *) let sized = Cstring.str_len cst (F.e_add alloc F.e_minus_one) in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_forall [a] (p_imply m_linked sized) ; @@ -426,7 +426,7 @@ module STRING = WpContext.Generator(LITERAL) let name = prefix ^ "_region" in let re = - Cstring.str_id cst in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_equal (e_fun f_region [base]) (e_int re) ; l_cluster = Cstring.cluster () ; @@ -443,7 +443,7 @@ module STRING = WpContext.Generator(LITERAL) let v = F.e_get (e_var m) addr in let read = F.p_equal c v in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [m;i] ; l_cluster = Cstring.cluster () ; @@ -467,7 +467,7 @@ module STRING = WpContext.Generator(LITERAL) } ; Definitions.define_lemma { l_name = prefix ^ "_base" ; - l_assumed = true ; + l_kind = `Axiom ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = F.p_lt base F.e_zero ; l_cluster = Cstring.cluster () ; @@ -501,7 +501,7 @@ module BASE = WpContext.Generator(Varinfo) let name = prefix ^ "_region" in let re = if x.vglob then 0 else if x.vformal then 1 else 2 in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_equal (e_fun f_region [base]) (e_int re) ; l_cluster = cluster_globals () ; @@ -525,7 +525,7 @@ module BASE = WpContext.Generator(Varinfo) let m_linked = p_call p_linked [m] in let base_size = p_equal (F.e_get m base) (e_int size) in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name = name ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = p_forall [a] (p_imply m_linked base_size) ; diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 2d9a6ce177b..f17e0fbbbeb 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -939,7 +939,7 @@ class visitor (ctx:context) c = id, t method on_dlemma l = - let kind = Why3.Decl.(if l.l_assumed then Paxiom else Plemma) in + let kind = Why3.Decl.(if l.l_kind = `Axiom then Paxiom else Plemma) in let cnv = empty_cnv ctx in let id, t = self#make_lemma cnv l in let decl = Why3.Decl.create_prop_decl kind id t in diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index b8389519cc2..8a35afd310f 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -1394,7 +1394,7 @@ struct let compile_lemma l = ignore (VCG.lemma l) let prove_lemma collection l = - if not l.lem_axiom then + if l.lem_kind <> `Axiom then begin let id = WpPropId.mk_lemma_id l in let def = VCG.lemma l in -- GitLab From cbed8092459a8907a23a5f043692edfb02dda4e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 9 Sep 2020 15:14:53 +0200 Subject: [PATCH 106/255] [wp] don't put check lemma in proof context --- src/plugins/wp/LogicUsage.ml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/plugins/wp/LogicUsage.ml b/src/plugins/wp/LogicUsage.ml index 32247aa43d3..eef3d6be862 100644 --- a/src/plugins/wp/LogicUsage.ml +++ b/src/plugins/wp/LogicUsage.ml @@ -199,7 +199,7 @@ let ip_lemma l = il_args = l.lem_types; il_loc = (l.lem_position, l.lem_position); il_pred = l.lem_property} -let lemma_of_global proof = function +let lemma_of_global ~context = function | Dlemma(name,axiom,labels,types,pred,_,loc) -> let kind = if axiom then `Axiom else if pred.tp_only_check then `Check else `Lemma in @@ -210,14 +210,14 @@ let lemma_of_global proof = function lem_labels = labels ; lem_kind = kind ; lem_property = pred.tp_statement ; - lem_depends = proof ; + lem_depends = context ; } | _ -> assert false -let populate a proof = function +let populate a ~context = function | Dfun_or_pred(l,_) -> a.ax_logics <- l :: a.ax_logics | Dtype(t,_) -> a.ax_types <- t :: a.ax_types - | Dlemma _ as g -> a.ax_lemmas <- lemma_of_global proof g :: a.ax_lemmas + | Dlemma _ as g -> a.ax_lemmas <- lemma_of_global ~context g :: a.ax_lemmas | _ -> () let ip_of_axiomatic g = @@ -225,7 +225,7 @@ let ip_of_axiomatic g = | None -> assert false | Some ip -> ip -let axiomatic_of_global proof = function +let axiomatic_of_global ~context = function | Daxiomatic(name,globals,_,loc) as g -> let a = { ax_name = name ; @@ -234,7 +234,7 @@ let axiomatic_of_global proof = function ax_reads = Varinfo.Set.empty ; ax_types = [] ; ax_lemmas = [] ; ax_logics = [] ; } in - List.iter (populate a proof) globals ; + List.iter (populate a ~context) globals ; a.ax_types <- List.rev a.ax_types ; a.ax_logics <- List.rev a.ax_logics ; a.ax_lemmas <- List.rev a.ax_lemmas ; @@ -407,7 +407,8 @@ class visitor = | Dlemma _ -> let lem = lemma_of_global database.proofcontext global in register_lemma database self#section lem ; - database.proofcontext <- lem :: database.proofcontext ; + if lem.lem_kind <> `Check then + database.proofcontext <- lem :: database.proofcontext ; SkipChildren | Dtype(t,_) -> -- GitLab From 15fe85abd3bb9d44e3b9716b3fb9b362962e25b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 9 Sep 2020 15:25:57 +0200 Subject: [PATCH 107/255] [spec] remove wp debug infos from check test --- tests/spec/generalized_check.i | 2 +- .../oracle/generalized_check.0.res.oracle | 255 ------------------ 2 files changed, 1 insertion(+), 256 deletions(-) diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index e65573c0233..a343867864c 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,5 +1,5 @@ /* run.config -OPT: -wp -wp-prover qed -wp-msg-key strategy,no-time-info -print +OPT: -wp -wp-prover qed -wp-msg-key no-cache-info,no-time-info -print OPT: -eva -eva-use-spec f */ /*@ check lemma easy_proof: \false; */ // should not be put in any environment diff --git a/tests/spec/oracle/generalized_check.0.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle index eca824fbeed..96bfee08bea 100644 --- a/tests/spec/oracle/generalized_check.0.res.oracle +++ b/tests/spec/oracle/generalized_check.0.res.oracle @@ -1,257 +1,12 @@ [kernel] Parsing tests/spec/generalized_check.i (no preprocessing) [wp] Running WP plugin... -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] take f_assigns *x; -[wp:strategy] [add_node_annots] on <stmt-1> -[wp:strategy] [add_node_annots] on <stmt-2> -[wp:strategy] [add_node_annots] on <stmt-38> -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] [add_node_annots] on <stmt-17> -[wp:strategy] [add_node_annots] on <stmt-19> -[wp:strategy] [add_node_annots] on <testIn-22> -[wp:strategy] [add_node_annots] on <stmt-23> -[wp:strategy] [add_node_annots] on <stmt-25> -[wp:strategy] [add_node_annots] on <stmt-26> [wp] tests/spec/generalized_check.i:29: Warning: Unsupported generalized invariant, use loop invariant instead. Ignored invariant check invariant \true; -[wp:strategy] [add_node_annots] on <stmt-27> -[wp:strategy] [add_node_annots] on <testIn-30> -[wp:strategy] [add_node_annots] on <stmt-31> -[wp:strategy] [add_node_annots] on <stmt-33> -[wp:strategy] [add_node_annots] on <stmt-34> -[wp:strategy] [add_node_annots] on <stmt-35> -[wp:strategy] [add_node_annots] on <stmt-42> -[wp:strategy] [add_loop_annots] on <loop-20> -[wp:strategy] [add_loop_annots] 1 edges_to_head -[wp:strategy] [add_loop_annots] 2 edges_to_loop -[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges -[wp:strategy] [add_loop_annots on entry_edges ok] -[wp:strategy] [add_loop_annots on back_edges ok] -[wp:strategy] [add_loop_annots on edges_to_head ok] -[wp:strategy] take loop_loop_assigns i; -[wp:strategy] take loop_loop_assigns i; -[wp:strategy] [add_loop_annots] on <loop-20> -[wp:strategy] [add_loop_annots] 1 edges_to_head -[wp:strategy] [add_loop_annots] 2 edges_to_loop -[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges -[wp:strategy] [add_loop_annots on entry_edges ok] -[wp:strategy] [add_loop_annots on back_edges ok] -[wp:strategy] [add_loop_annots on edges_to_head ok] -[wp:strategy] [add_loop_annots] on <loop-27> -[wp:strategy] [add_loop_annots] 1 edges_to_head -[wp:strategy] [add_loop_annots] 2 edges_to_loop -[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges -[wp:strategy] [add_loop_annots on entry_edges ok] -[wp:strategy] [add_loop_annots on back_edges ok] -[wp:strategy] [add_loop_annots on edges_to_head ok] -[wp:strategy] [add_loop_annots] on <loop-27> -[wp:strategy] [add_loop_annots] 1 edges_to_head -[wp:strategy] [add_loop_annots] 2 edges_to_loop -[wp:strategy] [add_loop_annots] 1 back_edges + 1 entry_edges -[wp:strategy] [add_loop_annots on entry_edges ok] -[wp:strategy] [add_loop_annots on back_edges ok] -[wp:strategy] [add_loop_annots on edges_to_head ok] -[wp:strategy] [add_node_annots] on <blkIn-stmt:18> -[wp:strategy] 'main' is the main entry point -[wp:strategy] [add_node_annots] on <stmt-5> -[wp:strategy] [add_node_annots] on <stmt-6> -[wp:strategy] [add_node_annots] on <testIn-8> -[wp:strategy] [add_node_annots] on <stmt-9> -[wp:strategy] [add_node_annots] on <callIn-11> -[wp:strategy] take main_assigns *x; -[wp:strategy] [add_node_annots] on <callIn-11> -[wp:strategy] [add_node_annots] on <stmt-12> -[wp:strategy] [add_node_annots] on <stmt-13> -[wp:strategy] [add_node_annots] on <callIn-14> -[wp:strategy] [add_node_annots] on <callIn-14> -[wp:strategy] [add_node_annots] on <stmt-15> -[wp:strategy] [add_node_annots] on <stmt-40> [wp] Warning: Missing RTE guards -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point [wp] tests/spec/generalized_check.i:36: Warning: Missing assigns clause (assigns 'everything' instead) -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point [wp] 11 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid [wp] [Failed] Goal typed_f_check_f_valid_ko @@ -266,16 +21,6 @@ [wp] [Failed] Goal typed_main_check_main_valid_ko [wp] Proved goals: 3 / 11 Qed: 3 -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'f' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'loop' is NOT the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point -[wp:strategy] 'main' is the main entry point /* Generated by Frama-C */ /*@ check lemma easy_proof: \false; */ -- GitLab From da2e73dff7c29e9c202c6ca87b36e54be8c47168 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 9 Sep 2020 15:26:44 +0200 Subject: [PATCH 108/255] [spec] separate wp objectives from kernel ones in check test --- tests/spec/generalized_check.i | 3 +- .../oracle/generalized_check.0.res.oracle | 54 +------------------ .../oracle/generalized_check.1.res.oracle | 16 +++--- .../oracle/generalized_check.2.res.oracle | 51 ++++++++++++++++++ 4 files changed, 63 insertions(+), 61 deletions(-) create mode 100644 tests/spec/oracle/generalized_check.2.res.oracle diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index a343867864c..7f7c9748c53 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,6 +1,7 @@ /* run.config -OPT: -wp -wp-prover qed -wp-msg-key no-cache-info,no-time-info -print +OPT: -wp -wp-prover qed -wp-msg-key no-cache-info,no-time-info OPT: -eva -eva-use-spec f +OPT: -print */ /*@ check lemma easy_proof: \false; */ // should not be put in any environment diff --git a/tests/spec/oracle/generalized_check.0.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle index 96bfee08bea..a9fee931026 100644 --- a/tests/spec/oracle/generalized_check.0.res.oracle +++ b/tests/spec/oracle/generalized_check.0.res.oracle @@ -1,11 +1,11 @@ [kernel] Parsing tests/spec/generalized_check.i (no preprocessing) [wp] Running WP plugin... -[wp] tests/spec/generalized_check.i:29: Warning: +[wp] tests/spec/generalized_check.i:30: Warning: Unsupported generalized invariant, use loop invariant instead. Ignored invariant check invariant \true; [wp] Warning: Missing RTE guards -[wp] tests/spec/generalized_check.i:36: Warning: +[wp] tests/spec/generalized_check.i:37: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 11 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid @@ -21,53 +21,3 @@ [wp] [Failed] Goal typed_main_check_main_valid_ko [wp] Proved goals: 3 / 11 Qed: 3 -/* Generated by Frama-C */ -/*@ check lemma easy_proof: \false; - */ -/*@ check requires f_valid_x: \valid(x); - check ensures f_init_x: *\old(x) ≡ 0; - assigns *x; - */ -void f(int *x) -{ - /*@ check f_valid_ko: \valid(x); */ ; - *x = 0; - return; -} - -void loop(void); - -int main(void) -{ - int __retres; - int volatile c; - int a = 4; - int *p = (int *)0; - if (c) p = & a; - f(p); - /*@ check main_valid_ko: \valid(p); */ ; - /*@ check main_p_content_ko: *p ≡ 0; */ ; - loop(); - __retres = 0; - return __retres; -} - -void loop(void) -{ - int j = 0; - { - int i = 0; - /*@ check loop invariant false_but_preserved: j ≡ 10; - loop assigns i; */ - while (i < 10) i ++; - } - /*@ check implied_by_false_invariant: j ≡ 10; */ ; - l: /*@ check invariant \true; */ ; - if (j >= 10) goto l1; - j ++; - goto l; - l1: ; - return; -} - - diff --git a/tests/spec/oracle/generalized_check.1.res.oracle b/tests/spec/oracle/generalized_check.1.res.oracle index e160c9b946f..f93e7228b40 100644 --- a/tests/spec/oracle/generalized_check.1.res.oracle +++ b/tests/spec/oracle/generalized_check.1.res.oracle @@ -4,21 +4,21 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization -[eva:alarm] tests/spec/generalized_check.i:22: Warning: +[eva:alarm] tests/spec/generalized_check.i:23: Warning: accessing uninitialized left-value. assert \initialized(&c); [eva] using specification for function f -[eva:alarm] tests/spec/generalized_check.i:23: Warning: +[eva:alarm] tests/spec/generalized_check.i:24: Warning: function f: precondition 'f_valid_x' got status unknown. -[eva] tests/spec/generalized_check.i:8: Warning: +[eva] tests/spec/generalized_check.i:9: Warning: no \from part for clause 'assigns *x;' -[eva:alarm] tests/spec/generalized_check.i:24: Warning: - check 'main_valid_ko' got status unknown. [eva:alarm] tests/spec/generalized_check.i:25: Warning: + check 'main_valid_ko' got status unknown. +[eva:alarm] tests/spec/generalized_check.i:26: Warning: check 'main_p_content_ko' got status unknown. -[eva:alarm] tests/spec/generalized_check.i:31: Warning: +[eva:alarm] tests/spec/generalized_check.i:32: Warning: loop invariant 'false_but_preserved' got status invalid. -[eva] tests/spec/generalized_check.i:34: starting to merge loop iterations -[eva:alarm] tests/spec/generalized_check.i:35: Warning: +[eva] tests/spec/generalized_check.i:35: starting to merge loop iterations +[eva:alarm] tests/spec/generalized_check.i:36: Warning: check 'implied_by_false_invariant' got status invalid. [eva] done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/spec/oracle/generalized_check.2.res.oracle b/tests/spec/oracle/generalized_check.2.res.oracle new file mode 100644 index 00000000000..dd870d5dc00 --- /dev/null +++ b/tests/spec/oracle/generalized_check.2.res.oracle @@ -0,0 +1,51 @@ +[kernel] Parsing tests/spec/generalized_check.i (no preprocessing) +/* Generated by Frama-C */ +/*@ check lemma easy_proof: \false; + */ +/*@ check requires f_valid_x: \valid(x); + check ensures f_init_x: *\old(x) ≡ 0; + assigns *x; + */ +void f(int *x) +{ + /*@ check f_valid_ko: \valid(x); */ ; + *x = 0; + return; +} + +void loop(void); + +int main(void) +{ + int __retres; + int volatile c; + int a = 4; + int *p = (int *)0; + if (c) p = & a; + f(p); + /*@ check main_valid_ko: \valid(p); */ ; + /*@ check main_p_content_ko: *p ≡ 0; */ ; + loop(); + __retres = 0; + return __retres; +} + +void loop(void) +{ + int j = 0; + { + int i = 0; + /*@ check loop invariant false_but_preserved: j ≡ 10; + loop assigns i; */ + while (i < 10) i ++; + } + /*@ check implied_by_false_invariant: j ≡ 10; */ ; + l: /*@ check invariant \true; */ ; + if (j >= 10) goto l1; + j ++; + goto l; + l1: ; + return; +} + + -- GitLab From fd1eb2c75319b958762ba8c046e3a8ece08fa71f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 9 Sep 2020 17:27:41 +0200 Subject: [PATCH 109/255] [wp] unit test for checks --- .../wp/tests/wp_acsl/generalized_checks.i | 66 +++++++++ .../oracle/generalized_checks.res.oracle | 139 ++++++++++++++++++ .../generalized_checks.res.oracle | 34 +++++ 3 files changed, 239 insertions(+) create mode 100644 src/plugins/wp/tests/wp_acsl/generalized_checks.i create mode 100644 src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle diff --git a/src/plugins/wp/tests/wp_acsl/generalized_checks.i b/src/plugins/wp/tests/wp_acsl/generalized_checks.i new file mode 100644 index 00000000000..3b34ced34e2 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/generalized_checks.i @@ -0,0 +1,66 @@ +/* run.config_qualif + OPT: -wp-timeout 1 + */ + +/*@ + axiomatic Th { + + predicate P(integer p); + predicate Q(integer q); + predicate R(integer r); + + axiom A: \forall integer x; P(x) ==> Q(x); + check lemma C: ko: \forall integer x; Q(x) ==> R(x); + lemma L: ko: \forall integer x; P(x) ==> R(x); // C is not used + + } + */ + +/*@ + axiomatic Cfg { + logic integer F(integer x); + predicate A(integer x); + predicate B(integer x); + predicate CA1(integer x); + predicate CA2(integer x); + predicate CB1(integer x); + predicate CB2(integer x); + + axiom AFB: \forall integer x; A(x) ==> B(F(x)); + axiom ACB1: \forall integer x; A(x) ==> CB1(F(x)); + axiom CA1B2: \forall integer x; CA1(x) ==> CB2(F(x)); + + } + */ + +/*@ + ensures \result == F(x); + assigns \nothing; + */ +int f(int x); + +/*@ + requires A: A(x); + check requires CA1: CA1(x); + check requires CA2: ko: CA2(x); + ensures B: B(\result); + check ensures CB1: CB1(\result); + check ensures CB2: ko: CB2(\result); // CA1 is not used + assigns \nothing; +*/ +int job(int x) { + return f(x); +} + +/*@ + requires A(x); + requires CA1(x); + ensures R: B(\result); + ensures R1: ko: CB1(\result); // CB1 is not used from job + ensures R2: ko: CA2(x); // CA2 is not used from job + assigns \nothing; +*/ +int caller(int x) +{ + return job(x); // CA2 is not proved +} diff --git a/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle new file mode 100644 index 00000000000..6b7463a9cd6 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle @@ -0,0 +1,139 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_acsl/generalized_checks.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Axiomatic 'Th' +------------------------------------------------------------ + +Lemma C: +Assume: 'A' +Prove: (P_Q x_0) -> (P_R x_0) + +------------------------------------------------------------ + +Lemma L: +Assume: 'A' +Prove: (P_P x_0) -> (P_R x_0) + +------------------------------------------------------------ +------------------------------------------------------------ + Function caller +------------------------------------------------------------ + +Goal Post-condition 'R' in 'caller': +Prove: true. + +------------------------------------------------------------ + +Goal Post-condition 'R1,ko' in 'caller': +Assume { + Type: is_sint32(caller_0) /\ is_sint32(x). + (* Pre-condition *) + Have: P_A(x) /\ P_CA1(x). + (* Call 'job' *) + Have: P_B(caller_0). +} +Prove: P_CB1(caller_0). + +------------------------------------------------------------ + +Goal Post-condition 'R2,ko' in 'caller': +Assume { + Type: is_sint32(caller_0) /\ is_sint32(x). + (* Pre-condition *) + Have: P_A(x) /\ P_CA1(x). + (* Call 'job' *) + Have: P_B(caller_0). +} +Prove: P_CA2(x). + +------------------------------------------------------------ + +Goal Assigns nothing in 'caller': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns nothing in 'caller' (1/2): +Prove: true. + +------------------------------------------------------------ + +Goal Assigns nothing in 'caller' (2/2): +Call Result at line 65 +Prove: true. + +------------------------------------------------------------ + +Goal Instance of 'Pre-condition 'A' in 'job'' in 'caller' at call 'job' (file tests/wp_acsl/generalized_checks.i, line 65) +: +Prove: true. + +------------------------------------------------------------ + +Goal Instance of 'Pre-condition 'CA1' in 'job'' in 'caller' at call 'job' (file tests/wp_acsl/generalized_checks.i, line 65) +: +Prove: true. + +------------------------------------------------------------ + +Goal Instance of 'Pre-condition 'CA2,ko' in 'job'' in 'caller' at call 'job' (file tests/wp_acsl/generalized_checks.i, line 65) +: +Assume { Type: is_sint32(x). (* Pre-condition *) Have: P_A(x) /\ P_CA1(x). } +Prove: P_CA2(x). + +------------------------------------------------------------ +------------------------------------------------------------ + Function job +------------------------------------------------------------ + +Goal Post-condition 'B' in 'job': +Let x_1 = L_F(x). +Assume { + Type: is_sint32(x) /\ is_sint32(x_1). + (* Pre-condition *) + Have: P_A(x). +} +Prove: P_B(x_1). + +------------------------------------------------------------ + +Goal Post-condition 'CB1' in 'job': +Let x_1 = L_F(x). +Assume { + Type: is_sint32(x) /\ is_sint32(x_1). + (* Pre-condition *) + Have: P_A(x). +} +Prove: P_CB1(x_1). + +------------------------------------------------------------ + +Goal Post-condition 'CB2,ko' in 'job': +Let x_1 = L_F(x). +Assume { + Type: is_sint32(x) /\ is_sint32(x_1). + (* Pre-condition *) + Have: P_A(x). +} +Prove: P_CB2(x_1). + +------------------------------------------------------------ + +Goal Assigns nothing in 'job': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns nothing in 'job' (1/2): +Prove: true. + +------------------------------------------------------------ + +Goal Assigns nothing in 'job' (2/2): +Call Result at line 52 +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle new file mode 100644 index 00000000000..1673f54ff07 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle @@ -0,0 +1,34 @@ +# frama-c -wp -wp-timeout 1 [...] +[kernel] Parsing tests/wp_acsl/generalized_checks.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 17 goals scheduled +[wp] [Alt-Ergo] Goal typed_lemma_C_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_lemma_L_ko : Unsuccess +[wp] [Qed] Goal typed_caller_ensures_R : Valid +[wp] [Alt-Ergo] Goal typed_caller_ensures_R1_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_caller_ensures_R2_ko : Unsuccess +[wp] [Qed] Goal typed_caller_assigns_exit : Valid +[wp] [Qed] Goal typed_caller_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_caller_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_caller_call_job_requires_A : Valid +[wp] [Qed] Goal typed_caller_call_job_requires_CA1 : Valid +[wp] [Alt-Ergo] Goal typed_caller_call_job_requires_CA2_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_job_ensures_B : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_CB1 : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_CB2_ko : Unsuccess +[wp] [Qed] Goal typed_job_assigns_exit : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part2 : Valid +[wp] Proved goals: 11 / 17 + Qed: 9 + Alt-Ergo: 2 (unsuccess: 6) +------------------------------------------------------------ + Axiomatics WP Alt-Ergo Total Success + Axiomatic Th - - 2 0.0% +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + job 3 2 6 83.3% + caller 6 - 9 66.7% +------------------------------------------------------------ -- GitLab From 965fb25ae4cbed8602b8cc0e143874385904fcdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 9 Sep 2020 18:17:00 +0200 Subject: [PATCH 110/255] [wp] added @check category to -wp-prop --- src/plugins/wp/Changelog | 2 ++ src/plugins/wp/tests/wp_acsl/checks.i | 2 +- src/plugins/wp/wpPropId.ml | 13 +++++++------ src/plugins/wp/wp_parameters.ml | 2 +- 4 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index 7f362c71486..536b85c8130 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -20,6 +20,8 @@ # <Prover>: prover ############################################################################### +- Wp [2020-09-09] Support for generalized @check ACSL annotations + ######################### Plugin WP <next-release> ######################### diff --git a/src/plugins/wp/tests/wp_acsl/checks.i b/src/plugins/wp/tests/wp_acsl/checks.i index 1a1174504f7..f3fdcbfcab8 100644 --- a/src/plugins/wp/tests/wp_acsl/checks.i +++ b/src/plugins/wp/tests/wp_acsl/checks.i @@ -1,7 +1,7 @@ /* run.config OPT: -eva -load-module scope,eva,report -then -report OPT: -wp-prop=@check - OPT: -wp-prop=@assert + OPT: -wp-prop=-@check */ /* run.config_qualif OPT: -load-module report -wp-steps 5 -then -report diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 77400497f4d..4858d59ff06 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -465,12 +465,13 @@ let ident_names names = List.filter (function "" -> true | _ as n -> '\"' <> (String.get n 0) ) names +let pred_names p = + let p_names = ident_names p.tp_statement.pred_name in + if p.tp_only_check then "@check"::p_names else p_names + let code_annot_names ca = match ca.annot_content with - | AAssert (_, pred) -> - let cat = if pred.tp_only_check then "@check" else "@assert" in - cat::(ident_names pred.tp_statement.pred_name) - | AInvariant (_,_,named_pred) -> - "@invariant"::(ident_names named_pred.tp_statement.pred_name) + | AAssert (_, pred) -> "@assert" :: pred_names pred + | AInvariant (_,_,pred) -> "@invariant":: pred_names pred | AVariant (term, _) -> "@variant"::(ident_names term.term_name) | AExtended(_,_,{ext_name}) -> [Printf.sprintf "@%s" ext_name] | _ -> [] (* TODO : add some more names ? *) @@ -481,7 +482,7 @@ let user_prop_names p = let open Property in match p with | IPPredicate {ip_kind; ip_pred} -> Format.asprintf "@@%a" Property.pretty_predicate_kind ip_kind :: - ip_pred.ip_content.tp_statement.pred_name + pred_names ip_pred.ip_content | IPExtended {ie_ext={ext_name}} -> [ Printf.sprintf "@%s" ext_name ] | IPCodeAnnot {ica_ca} -> code_annot_names ica_ca | IPComplete {ic_bhvs} -> diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 448ff335f59..c37830d4ebb 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -98,7 +98,7 @@ module Properties = let arg_name = "p,..." let help = "Select properties having the one of the given tagnames (defaults to all properties).\n\ You may also replace the tagname by '@category' for the selection of all properties of the given category.\n\ - Accepted categories are: lemmas, requires, assigns, ensures, exits, complete_behaviors, disjoint_behaviors, assert, check, invariant, variant, breaks, continues, returns.\n\ + Accepted categories are: checks, lemmas, requires, assigns, ensures, exits, complete_behaviors, disjoint_behaviors, assert, check, invariant, variant, breaks, continues, returns.\n\ Starts by a minus character to remove properties from the selection." end) let () = on_reset Properties.clear -- GitLab From b73effbd5fddd5cd1c5d372f2ebab2cbb0a2d23f Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Wed, 9 Sep 2020 19:26:31 +0200 Subject: [PATCH 111/255] [kernel] refine names of properties related to check annotations --- src/kernel_services/ast_data/property.ml | 66 +++++++++++++------ src/kernel_services/ast_data/property.mli | 2 +- .../ast_printing/cil_types_debug.mli | 1 + src/plugins/wp/LogicUsage.ml | 10 ++- src/plugins/wp/wpPropId.ml | 5 +- .../oracle/generalized_check.0.res.oracle | 10 +-- 6 files changed, 65 insertions(+), 29 deletions(-) diff --git a/src/kernel_services/ast_data/property.ml b/src/kernel_services/ast_data/property.ml index 4403e5e4eef..4029b382948 100644 --- a/src/kernel_services/ast_data/property.ml +++ b/src/kernel_services/ast_data/property.ml @@ -126,7 +126,7 @@ and identified_lemma = { il_name : string; il_labels : logic_label list; il_args : string list; - il_pred : predicate; + il_pred : toplevel_predicate; il_loc : location } @@ -418,8 +418,13 @@ include Datatype.Make_with_collections type t = identified_property let name = "Property.t" - let reprs = [IPAxiom {il_name="";il_labels=[];il_args=[]; - il_pred=Logic_const.ptrue;il_loc=Location.unknown}] + let reprs = [ + IPAxiom { + il_name="";il_labels=[];il_args=[]; + il_pred=Logic_const.(toplevel_predicate ptrue); + il_loc=Location.unknown + }] + let mem_project = Datatype.never_any_project let pp_active fmt active = @@ -837,7 +842,7 @@ let rec pretty_debug fmt = function Cil_types_debug.pp_string il_name (Cil_types_debug.pp_list Cil_types_debug.pp_logic_label) il_labels (Cil_types_debug.pp_list Cil_types_debug.pp_string) il_args - Cil_types_debug.pp_predicate il_pred + Cil_types_debug.pp_toplevel_predicate il_pred Cil_types_debug.pp_location il_loc | IPAxiomatic {iax_name; iax_props} -> Format.fprintf fmt "IPAxiomatic(%a,%a)" @@ -848,7 +853,7 @@ let rec pretty_debug fmt = function Cil_types_debug.pp_string il_name (Cil_types_debug.pp_list Cil_types_debug.pp_logic_label) il_labels (Cil_types_debug.pp_list Cil_types_debug.pp_string) il_args - Cil_types_debug.pp_predicate il_pred + Cil_types_debug.pp_toplevel_predicate il_pred Cil_types_debug.pp_location il_loc | IPTypeInvariant {iti_name; iti_type; iti_pred; iti_loc} -> Format.fprintf fmt "IPTypeInvariant(%a,%a,%a,%a)" @@ -1028,10 +1033,10 @@ struct | IPDecrease {id_kf=kf; id_variant=variant} -> (kf_prefix kf) ^ "loop_term" ^ (variant_suffix variant) | IPAxiom {il_name=name; il_pred} -> - Format.asprintf "axiom_%s%a" name pp_names il_pred.pred_name + Format.asprintf "axiom_%s%a" name pp_names il_pred.tp_statement.pred_name | IPAxiomatic {iax_name} -> "axiomatic_" ^ iax_name | IPLemma {il_name=name; il_pred} -> - Format.asprintf "lemma_%s%a" name pp_names il_pred.pred_name + Format.asprintf "lemma_%s%a" name pp_names il_pred.tp_statement.pred_name | IPTypeInvariant {iti_name; iti_pred} -> Format.asprintf "type_invariant_%s%a" iti_name pp_names iti_pred.pred_name @@ -1150,17 +1155,35 @@ struct | IPPredicate {ip_kind=PKAssumes bhv; ip_kf=kf; ip_pred=ip} -> [ K kf ; B bhv ; A "assumes" ; I ip ] | IPPredicate {ip_kind=PKRequires bhv; ip_kf=kf; ip_pred=ip} -> - [ K kf ; B bhv ; A "requires" ; I ip ] + let a = + if ip.ip_content.tp_only_check then "check_requires" else "requires" + in + [ K kf ; B bhv ; A a ; I ip ] | IPPredicate {ip_kind=PKEnsures (bhv, Normal); ip_kf=kf; ip_pred=ip} -> - [ K kf ; B bhv ; A "ensures" ; I ip ] + let a = + if ip.ip_content.tp_only_check then "check_ensures" else "ensures" + in + [ K kf ; B bhv ; A a ; I ip ] | IPPredicate {ip_kind=PKEnsures (bhv, Exits); ip_kf=kf; ip_pred=ip} -> - [ K kf ; B bhv ; A "exits" ; I ip ] + let a = + if ip.ip_content.tp_only_check then "check_exits" else "exits" + in + [ K kf ; B bhv ; A a ; I ip ] | IPPredicate {ip_kind=PKEnsures (bhv, Breaks); ip_kf=kf; ip_pred=ip} -> - [ K kf ; B bhv ; A "breaks" ; I ip ] + let a = + if ip.ip_content.tp_only_check then "check_breaks" else "breaks" + in + [ K kf ; B bhv ; A a ; I ip ] | IPPredicate {ip_kind=PKEnsures (bhv, Continues); ip_kf=kf; ip_pred=ip} -> - [ K kf ; B bhv ; A "continues" ; I ip ] + let a = + if ip.ip_content.tp_only_check then "check_continues" else "continues" + in + [ K kf ; B bhv ; A a ; I ip ] | IPPredicate {ip_kind=PKEnsures (bhv, Returns); ip_kf=kf; ip_pred=ip} -> - [ K kf ; B bhv ; A "returns" ; I ip ] + let a = + if ip.ip_content.tp_only_check then "check_returns" else "returns" + in + [ K kf ; B bhv ; A a ; I ip ] | IPPredicate {ip_kind=PKTerminates; ip_kf=kf; ip_pred=ip} -> [ K kf ; A "terminates" ; I ip ] @@ -1195,9 +1218,15 @@ struct let a = if p.tp_only_check then "check" else "assert" in [K kf ; A a ; P p.tp_statement ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AInvariant (_, true, p)}} -> - [K kf ; A "loop_invariant" ; P p.tp_statement ] - | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AInvariant (_, false, p)}} -> - [K kf ; A "invariant" ; P p.tp_statement ] + let a = + if p.tp_only_check then "check_loop_invariant" else "loop_invariant" + in + [K kf ; A a ; P p.tp_statement ] + | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AInvariant (_,false, p)}} -> + let a = + if p.tp_only_check then "check_invariant" else "invariant" + in + [K kf ; A a ; P p.tp_statement ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AVariant (e, _)}} -> [K kf ; A "loop_variant" ; T e ] | IPCodeAnnot {ica_kf=kf; ica_ca={annot_content=AAssigns _}} -> @@ -1223,7 +1252,8 @@ struct | IPAxiomatic _ | IPAxiom _ -> [] | IPLemma {il_name=name; il_pred=p} -> - [ A "lemma" ; A name ; P p ] + let a = if p.tp_only_check then "check_lemma" else "lemma" in + [ A a ; A name ; P p.tp_statement ] | IPTypeInvariant {iti_name=name} | IPGlobalInvariant {igi_name=name} -> @@ -1511,10 +1541,8 @@ let ip_of_global_annotation a = let iax_props = List.fold_left aux [] l in IPAxiomatic {iax_name; iax_props} :: (iax_props @ acc) | Dlemma(il_name, true, il_labels, il_args, il_pred, _, il_loc) -> - let il_pred = il_pred.tp_statement in ip_axiom {il_name; il_labels; il_args; il_pred; il_loc} :: acc | Dlemma(il_name, false, il_labels, il_args, il_pred, _, il_loc) -> - let il_pred = il_pred.tp_statement in ip_lemma {il_name; il_labels; il_args; il_pred; il_loc} :: acc | Dinvariant(l, igi_loc) -> let igi_pred = match l.l_body with diff --git a/src/kernel_services/ast_data/property.mli b/src/kernel_services/ast_data/property.mli index 48549e11c1d..395250cf2e3 100644 --- a/src/kernel_services/ast_data/property.mli +++ b/src/kernel_services/ast_data/property.mli @@ -156,7 +156,7 @@ and identified_lemma = { il_name : string; il_labels : logic_label list; il_args : string list; - il_pred : predicate; + il_pred : toplevel_predicate; il_loc : location } diff --git a/src/kernel_services/ast_printing/cil_types_debug.mli b/src/kernel_services/ast_printing/cil_types_debug.mli index c9f1318b512..b64e8fbfebd 100644 --- a/src/kernel_services/ast_printing/cil_types_debug.mli +++ b/src/kernel_services/ast_printing/cil_types_debug.mli @@ -135,6 +135,7 @@ val pp_quantifiers : Format.formatter -> Cil_types.quantifiers -> unit val pp_relation : Format.formatter -> Cil_types.relation -> unit val pp_predicate_node : Format.formatter -> Cil_types.predicate_node -> unit val pp_identified_predicate : Format.formatter -> Cil_types.identified_predicate -> unit +val pp_toplevel_predicate: Format.formatter -> Cil_types.toplevel_predicate -> unit val pp_predicate : Cil_types.predicate Pretty_utils.formatter val pp_spec : Format.formatter -> Cil_types.spec -> unit val pp_acsl_extension : Format.formatter -> Cil_types.acsl_extension -> unit diff --git a/src/plugins/wp/LogicUsage.ml b/src/plugins/wp/LogicUsage.ml index eef3d6be862..1058d7ffa96 100644 --- a/src/plugins/wp/LogicUsage.ml +++ b/src/plugins/wp/LogicUsage.ml @@ -194,10 +194,16 @@ let pp_profile fmt l = let ip_lemma l = let open Property in - (if l.lem_kind = `Axiom then Property.ip_axiom else Property.ip_lemma) + let mk_prop, only_check = + match l.lem_kind with + | `Axiom -> Property.ip_axiom, false + | `Lemma -> Property.ip_lemma, false + | `Check -> Property.ip_lemma, true + in + mk_prop {il_name = l.lem_name; il_labels = l.lem_labels; il_args = l.lem_types; il_loc = (l.lem_position, l.lem_position); - il_pred = l.lem_property} + il_pred = Logic_const.toplevel_predicate ~only_check l.lem_property} let lemma_of_global ~context = function | Dlemma(name,axiom,labels,types,pred,_,loc) -> diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 4858d59ff06..6b9f147e04d 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -500,7 +500,8 @@ let user_prop_names p = | IPDecrease {id_ca=Some ca} -> "@decreases"::code_annot_names ca | IPDecrease _ -> [ "@decreases" ] | IPLemma {il_name = a; il_pred = l} -> - let names = "@lemma"::a::(ident_names l.pred_name) + let cat = if l.tp_only_check then "@check" else "@lemma" in + let names = cat::a::(ident_names l.tp_statement.pred_name) in begin match LogicUsage.section_of_lemma a with | LogicUsage.Toplevel _ -> names @@ -657,7 +658,7 @@ let property_hints hs = let open Property in function | IPAxiom {il_name; il_pred} | IPLemma {il_name; il_pred} -> - List.iter (add_required hs) (il_name::il_pred.pred_name) + List.iter (add_required hs) (il_name::il_pred.tp_statement.pred_name) | IPBehavior _ -> () | IPComplete {ic_bhvs} | IPDisjoint {ic_bhvs} -> List.iter (add_required hs) ic_bhvs diff --git a/tests/spec/oracle/generalized_check.0.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle index a9fee931026..7f7128dfa8d 100644 --- a/tests/spec/oracle/generalized_check.0.res.oracle +++ b/tests/spec/oracle/generalized_check.0.res.oracle @@ -10,13 +10,13 @@ [wp] 11 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid [wp] [Failed] Goal typed_f_check_f_valid_ko -[wp] [Qed] Goal typed_f_ensures_f_init_x : Valid -[wp] [Failed] Goal typed_lemma_easy_proof +[wp] [Qed] Goal typed_f_check_ensures_f_init_x : Valid +[wp] [Failed] Goal typed_check_lemma_easy_proof [wp] [Qed] Goal typed_loop_loop_assigns : Valid [wp] [Failed] Goal typed_loop_check_implied_by_false_invariant -[wp] [Failed] Goal typed_loop_loop_invariant_false_but_preserved_established -[wp] [Failed] Goal typed_loop_loop_invariant_false_but_preserved_preserved -[wp] [Failed] Goal typed_main_call_f_requires_f_valid_x +[wp] [Failed] Goal typed_loop_check_loop_invariant_false_but_preserved_established +[wp] [Failed] Goal typed_loop_check_loop_invariant_false_but_preserved_preserved +[wp] [Failed] Goal typed_main_call_f_check_requires_f_valid_x [wp] [Failed] Goal typed_main_check_main_p_content_ko [wp] [Failed] Goal typed_main_check_main_valid_ko [wp] Proved goals: 3 / 11 -- GitLab From 38bef5b1aefd62cec9ce37385870372fc88d1a08 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Thu, 10 Sep 2020 08:59:57 +0200 Subject: [PATCH 112/255] [wp-qualif] update oracles --- .../oracle_qualif/generalized_checks.res.oracle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle index 1673f54ff07..4b3a0044393 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle @@ -4,7 +4,7 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 17 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_C_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_check_lemma_C_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_lemma_L_ko : Unsuccess [wp] [Qed] Goal typed_caller_ensures_R : Valid [wp] [Alt-Ergo] Goal typed_caller_ensures_R1_ko : Unsuccess @@ -13,11 +13,11 @@ [wp] [Qed] Goal typed_caller_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_caller_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_caller_call_job_requires_A : Valid -[wp] [Qed] Goal typed_caller_call_job_requires_CA1 : Valid -[wp] [Alt-Ergo] Goal typed_caller_call_job_requires_CA2_ko : Unsuccess +[wp] [Qed] Goal typed_caller_call_job_check_requires_CA1 : Valid +[wp] [Alt-Ergo] Goal typed_caller_call_job_check_requires_CA2_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_job_ensures_B : Valid -[wp] [Alt-Ergo] Goal typed_job_ensures_CB1 : Valid -[wp] [Alt-Ergo] Goal typed_job_ensures_CB2_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_job_check_ensures_CB1 : Valid +[wp] [Alt-Ergo] Goal typed_job_check_ensures_CB2_ko : Unsuccess [wp] [Qed] Goal typed_job_assigns_exit : Valid [wp] [Qed] Goal typed_job_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_job_assigns_normal_part2 : Valid -- GitLab From 1ce69a319d13ed62b6ce3098a634b72be42ecf9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Thu, 10 Sep 2020 08:56:06 +0200 Subject: [PATCH 113/255] [wp] fix help for -wp-prop --- src/plugins/wp/wp_parameters.ml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index c37830d4ebb..1938ea716a5 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -84,7 +84,7 @@ module Behaviors = (struct let option_name = "-wp-bhv" let arg_name = "b,..." - let help = "Select properties of the given behaviors (defaults to all behaviors) of the selected functions." + let help = "Select only properties belonging to listed behaviors." end) let () = on_reset Behaviors.clear @@ -96,10 +96,14 @@ module Properties = (struct let option_name = "-wp-prop" let arg_name = "p,..." - let help = "Select properties having the one of the given tagnames (defaults to all properties).\n\ - You may also replace the tagname by '@category' for the selection of all properties of the given category.\n\ - Accepted categories are: checks, lemmas, requires, assigns, ensures, exits, complete_behaviors, disjoint_behaviors, assert, check, invariant, variant, breaks, continues, returns.\n\ - Starts by a minus character to remove properties from the selection." + let help = + "Select properties based names and category.\n\ + Use +name or +category to select properties and -name or -category\n\ + to remove them from the selection. The '+' sign can be omitted.\n\ + Categories are: @lemma, @requires, @assigns, @ensures, @exits,\n\ + @assert, @invariant, @variant, @breaks, @continues, @returns,\n\ + @complete_behaviors, @disjoint_behaviors and\n\ + @check (which includes all check clauses)." end) let () = on_reset Properties.clear -- GitLab From 628bfb5df35ea2d1ae15ec2c7d90db70a539c950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Thu, 10 Sep 2020 09:07:02 +0200 Subject: [PATCH 114/255] [wp] fix check lemma category --- src/plugins/wp/wpPropId.ml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 6b9f147e04d..ec5d88cd371 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -500,9 +500,8 @@ let user_prop_names p = | IPDecrease {id_ca=Some ca} -> "@decreases"::code_annot_names ca | IPDecrease _ -> [ "@decreases" ] | IPLemma {il_name = a; il_pred = l} -> - let cat = if l.tp_only_check then "@check" else "@lemma" in - let names = cat::a::(ident_names l.tp_statement.pred_name) - in begin + let names = "@lemma"::a::pred_names l in + begin match LogicUsage.section_of_lemma a with | LogicUsage.Toplevel _ -> names | LogicUsage.Axiomatic ax -> ax.LogicUsage.ax_name::names -- GitLab From a85ed511c672eb77fd67ec1533e1426f51c7f77a Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Thu, 10 Sep 2020 13:34:56 +0200 Subject: [PATCH 115/255] [tests] update to new WP msg keys --- tests/spec/generalized_check.i | 2 +- tests/spec/oracle/generalized_check.0.res.oracle | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/spec/generalized_check.i b/tests/spec/generalized_check.i index 7f7c9748c53..66c93e7d3a8 100644 --- a/tests/spec/generalized_check.i +++ b/tests/spec/generalized_check.i @@ -1,5 +1,5 @@ /* run.config -OPT: -wp -wp-prover qed -wp-msg-key no-cache-info,no-time-info +OPT: -wp -wp-prover qed -wp-msg-key shell OPT: -eva -eva-use-spec f OPT: -print */ diff --git a/tests/spec/oracle/generalized_check.0.res.oracle b/tests/spec/oracle/generalized_check.0.res.oracle index 7f7128dfa8d..391634ac903 100644 --- a/tests/spec/oracle/generalized_check.0.res.oracle +++ b/tests/spec/oracle/generalized_check.0.res.oracle @@ -1,3 +1,4 @@ +# frama-c -wp [...] [kernel] Parsing tests/spec/generalized_check.i (no preprocessing) [wp] Running WP plugin... [wp] tests/spec/generalized_check.i:30: Warning: -- GitLab From 0052e04ed739f2a779de071716e48d21b990c275 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Thu, 10 Sep 2020 13:35:16 +0200 Subject: [PATCH 116/255] [wp] update to new WP API after rebase --- src/plugins/wp/MemLoader.ml | 2 +- src/plugins/wp/MemTyped.ml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/wp/MemLoader.ml b/src/plugins/wp/MemLoader.ml index c1bc3500eac..b1abfb6af8f 100644 --- a/src/plugins/wp/MemLoader.ml +++ b/src/plugins/wp/MemLoader.ml @@ -323,7 +323,7 @@ struct let low = M.is_init_range sigma obj loc e_one in let lemma = p_equiv high low in { - l_assumed = true ; + l_kind = `Axiom ; l_name = name ^ "_low" ; l_types = 0 ; l_forall = F.p_vars lemma ; l_triggers = [] ; diff --git a/src/plugins/wp/MemTyped.ml b/src/plugins/wp/MemTyped.ml index e910305304a..3536f05e422 100644 --- a/src/plugins/wp/MemTyped.ml +++ b/src/plugins/wp/MemTyped.ml @@ -546,7 +546,7 @@ module BASE = WpContext.Generator(Varinfo) let m_init = p_call p_cinits [m] in let init_prop = p_forall [a] (p_imply m_init init_access) in Definitions.define_lemma { - l_assumed = true ; + l_kind = `Axiom ; l_name = prefix ^ "_init" ; l_types = 0 ; l_triggers = [] ; l_forall = [] ; l_lemma = init_prop ; -- GitLab From 4df7a8d693f02f08235e88ff56d1ec6cbedcec13 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@cea.fr> Date: Thu, 10 Sep 2020 17:55:24 +0200 Subject: [PATCH 117/255] Update nix/frama-ci.* --- nix/frama-ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/frama-ci.nix b/nix/frama-ci.nix index ce0e87a5dff..7939e05dd11 100644 --- a/nix/frama-ci.nix +++ b/nix/frama-ci.nix @@ -5,7 +5,7 @@ let src = builtins.fetchGit { "url" = "https://bobot:${password}@git.frama-c.com/frama-c/Frama-CI.git"; "name" = "Frama-CI"; - "rev" = "36e99854d59cda2c97d0b52f1f098f6beb3baf04"; + "rev" = "3e8a67b19d5923c651509070eec5db646b80ec32"; "ref" = "master"; }; in -- GitLab From 9b64abde32a4728ef9af2d5f7b10b80957557c0d Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 11 Sep 2020 13:44:19 +0200 Subject: [PATCH 118/255] [GUI] Correctly prints check requires in precond at call site --- src/kernel_services/ast_data/statuses_by_call.ml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/kernel_services/ast_data/statuses_by_call.ml b/src/kernel_services/ast_data/statuses_by_call.ml index 24779c45007..f076603133d 100644 --- a/src/kernel_services/ast_data/statuses_by_call.ml +++ b/src/kernel_services/ast_data/statuses_by_call.ml @@ -166,15 +166,16 @@ let rec associate acc ~formals ~concretes = let term = Logic_utils.expr_to_term concrete in associate ((formal, term) :: acc) ~formals ~concretes -let transpose_pred_at_callsite ~formals ~concretes pred = - let pred = Logic_const.pred_of_id_pred pred in +let transpose_pred_at_callsite ~formals ~concretes id_pred = + let pred = Logic_const.pred_of_id_pred id_pred in try let arguments = associate [] ~formals ~concretes in let visitor :> Cil.cilVisitor = replacement_visitor arguments in let new_pred = Cil.visitCilPredicateNode visitor pred.pred_content in let p_unnamed = Logic_const.unamed ~loc:pred.pred_loc new_pred in let p_named = { p_unnamed with pred_name = pred.pred_name } in - Some (Logic_const.new_predicate p_named) + let only_check = id_pred.ip_content.tp_only_check in + Some (Logic_const.new_predicate ~only_check p_named) with Non_Transposable -> None -- GitLab From 1699baad4532e174d33b82cdd21dc7c8e3e45777 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 11 Sep 2020 14:53:57 +0200 Subject: [PATCH 119/255] [wp] ignore check loop when searching for dead annot --- src/plugins/wp/wpReached.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/wp/wpReached.ml b/src/plugins/wp/wpReached.ml index f2b7abc1387..b21fa463f9f 100644 --- a/src/plugins/wp/wpReached.ml +++ b/src/plugins/wp/wpReached.ml @@ -84,9 +84,9 @@ let is_dead_annot ca = match ca.annot_content with | APragma (Loop_pragma (Unroll_specs [ spec ; _ ])) -> false && is_unrolled_completely spec - | AAssert([],p) -> + | AAssert([],p) + | AInvariant([],_,p) -> not p.tp_only_check && is_predicate false p.tp_statement - | AInvariant([],_,p) -> is_predicate false p.tp_statement | _ -> false let is_dead_code stmt = -- GitLab From 6db33b9ebf6b44847a0f91a17abfb2ae543612a0 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 11 Sep 2020 14:54:53 +0200 Subject: [PATCH 120/255] Update ChangeLog --- Changelog | 6 ++++-- src/plugins/wp/Changelog | 3 +-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/Changelog b/Changelog index bae7947a32b..281ea948fa2 100644 --- a/Changelog +++ b/Changelog @@ -16,6 +16,8 @@ ################################## Open Source Release <next-release> ################################## +- Logic [2020-09-11] Introduce check-only annotations for + requires, ensures, loop invariant and lemmas - Kernel [2020-09-08] Add option -print-cpp-commands, to print the preprocessing commands used by Frama-C. - Eva [2020-09-07] Deprecates legacy options aliases -val-* in favor @@ -335,7 +337,7 @@ o! Constant Propagation [2018-09-12] Removing Db API for Constant Propagation o! Kernel [2018-07-23] Remove completely outdated module Dataflow. Deprecated since 3+ years. Use Dataflow2 instead. -* RTE [2018-07-23] Stop generating spurious \initialized alarms. - Fixes #@429 + Fixes #@429 -* Kernel [2018-07-06] Respect relative order of labels and ACSL annots. Fixes #@524 o* Ptests [2018-07-02] Do not keep oracles for empty stderr. Fixes #@402 @@ -836,7 +838,7 @@ o! Kernel [2016-06-14] Remove class Filecheck.check from API. translated as 'tmp = e;' instead of 'if (e) {}' (which was incorrect when e did not have a scalar type) - Eva [2016-05-27] Improvements to option -val-subdivide-non-linear for - high number of subdivisions + high number of subdivisions -* Value [2016-05-23] Option -val-show-initial-state has been removed. Instead, -value-msg-key=-initial-state can be used - Value [2016-05-23] New message key final-states, that can be used diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index 536b85c8130..8ed1f10106f 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -20,12 +20,11 @@ # <Prover>: prover ############################################################################### -- Wp [2020-09-09] Support for generalized @check ACSL annotations - ######################### Plugin WP <next-release> ######################### +- WP [2020-09-11] Support for generalized @check ACSL annotations - WP [2020-07-06] Removed debug keys "no-xxx-info" (subsumed by "shell") - WP [2020-07-06] Option -wp-cache-env now defaults to false - WP [2020-07-06] New option -wp-cache-print -- GitLab From 76ea36b0cb305353601b2f8f577a35805845eeac Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 11 Sep 2020 16:41:29 +0200 Subject: [PATCH 121/255] [Ptests] avoid matching frama-c-config and frama-c-script --- ptests/ptests.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ptests/ptests.ml b/ptests/ptests.ml index 78469525850..4b3f72cada3 100644 --- a/ptests/ptests.ml +++ b/ptests/ptests.ml @@ -1006,7 +1006,7 @@ let get_macros cmd = let basic_command_string = let contains_toplevel_or_frama_c = - Str.regexp "[^( ]*\\(\\(toplevel\\)\\|\\(viewer\\)\\|\\(frama-c\\)\\).*" + Str.regexp "[^( ]*\\(\\(toplevel\\)\\|\\(viewer\\)\\|\\(frama-c-gui\\)\\|\\(frama-c[^-]\\)\\).*" in fun command -> let macros = get_macros command in -- GitLab From ae90e59f82fbf65f75fc35015a2cb89d78d855f8 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 11 Sep 2020 18:10:48 +0200 Subject: [PATCH 122/255] [kernel] Add location information to warning messages in cabs2cil --- src/kernel_internals/typing/cabs2cil.ml | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/src/kernel_internals/typing/cabs2cil.ml b/src/kernel_internals/typing/cabs2cil.ml index e0367a710bf..01a5dcd2ee2 100644 --- a/src/kernel_internals/typing/cabs2cil.ml +++ b/src/kernel_internals/typing/cabs2cil.ml @@ -288,7 +288,9 @@ let pop_stdheader () = | s::l -> Kernel.debug ~dkey:Kernel.dkey_typing_pragma "Popping %s %s" fc_stdlib s; current_stdheader := l - | [] -> Kernel.warning "#pragma %s pop does not match a push" fc_stdlib + | [] -> + Kernel.warning ~current:true + "#pragma %s pop does not match a push" fc_stdlib let push_stdheader s = Kernel.debug ~dkey:Kernel.dkey_typing_pragma "Pushing %s %s@." fc_stdlib s; @@ -1057,7 +1059,7 @@ let newAlphaName with | Not_found -> () (* no clash of identifiers *) | Failure _ -> - Kernel.fatal + Kernel.fatal ~current:true "finding a fresh identifier in local scope with empty scopes stack" end; stripKind kind newname, oldloc @@ -4242,7 +4244,7 @@ let append_chunk_to_annot ~ghost annot_chunk current_chunk = match res with | Some s -> annot_chunk @@ ({current_chunk with stmts = [s]}, ghost) | None -> - Kernel.warning ~wkey:Kernel.wkey_annot_error + Kernel.warning ~wkey:Kernel.wkey_annot_error ~current:true "Statement contract and ACSL pragmas over a local definition \ are not implemented. Ignoring annotation"; current_chunk @@ -4345,7 +4347,7 @@ let fixFormalsType formals = try ChangeTo (Hashtbl.find table v.vname) with Not_found -> - Kernel.fatal "Formal %a not tied to a varinfo" + Kernel.fatal ~current:true "Formal %a not tied to a varinfo" Cil_printer.pp_varinfo v; end else SkipChildren end @@ -4683,7 +4685,8 @@ let rec doSpecList ghost (suggestedAnonName: string) else if fitsInInt ILongLong i then ILongLong else IULongLong | "int" -> IInt - | s -> Kernel.fatal "Unknown enums representations '%s'" s + | s -> + Kernel.fatal ~current:true "Unknown enums representations '%s'" s end in (* as each name,value pair is determined, this is called *) @@ -4753,7 +4756,7 @@ let rec doSpecList ghost (suggestedAnonName: string) else if unsigned then IUInt else IInt | "int" -> IInt | "gcc-short-enums" -> real_kind - | s -> Kernel.fatal "Unknown enum representation '%s'" s + | s -> Kernel.fatal ~current:true "Unknown enum representation '%s'" s in enum.ekind <- ekind; end; @@ -5472,7 +5475,7 @@ and makeCompType ghost (isstruct: bool) if Cil_datatype.Compinfo.equal comp comp' then begin (* abort and not error, as this circularity could lead to infinite recursion... *) - Kernel.abort + Kernel.abort ~current:true "type %s %s is circular" (if comp.cstruct then "struct" else "union") comp.cname; @@ -5740,7 +5743,7 @@ and doExp local_env of the same name, but in that case, it is not possible to take the address of the function (or do anything else than calling the function, which is matched later on). *) - Kernel.warning ~wkey:Kernel.wkey_cert_msc_38 + Kernel.warning ~wkey:Kernel.wkey_cert_msc_38 ~current:true "%s is a standard macro. Its definition cannot be suppressed, \ see CERT C coding rules MSC38-C" n end; @@ -6442,7 +6445,7 @@ and doExp local_env let action local_env asconst e _what = match e.expr_node with | A.COMMA _ | A.QUESTION _ | A.PAREN _ -> - Kernel.fatal "normalization of lval in compound assignment failed" + Kernel.fatal ~current:true "normalization of lval in compound assignment failed" | A.VARIABLE _ | A.UNARY (A.MEMOF, _) | (* Regular lvalues *) A.INDEX _ | A.MEMBEROF _ | A.MEMBEROFPTR _ | A.CAST _ (* GCC extension *) -> begin @@ -8486,7 +8489,7 @@ and createGlobal ghost logic_spec ((t,s,b,attr_list) : (typ * storage * bool * A Kernel.debug ~dkey:Kernel.dkey_typing_global "createGlobal: %s" n; (* If the global is a Frama-C builtin, set the generated flag *) if is_stdlib_macro n && get_current_stdheader () = "" then begin - Kernel.warning ~wkey:Kernel.wkey_cert_msc_38 + Kernel.warning ~wkey:Kernel.wkey_cert_msc_38 ~current:true "Attempt to declare %s as external identifier outside of the stdlib. \ It is supposed to be a macro name and cannot be declared. See CERT C \ coding rule MSC38-C" n @@ -8564,7 +8567,7 @@ and createGlobal ghost logic_spec ((t,s,b,attr_list) : (typ * storage * bool * A List.iter2 (fun x y -> if x != y then - Kernel.fatal + Kernel.fatal ~current:true "Function %s: formals are not shared between AST and \ FormalDecls table" vi.vname) l1 l2; -- GitLab From c18e4bc4a76364b20b522b7faf64a36eba6bd58d Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 11 Sep 2020 18:11:17 +0200 Subject: [PATCH 123/255] [kernel] Update tests --- tests/spec/oracle/annot_decl_bts1009.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.0.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.1.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.2.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.3.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.4.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.5.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.6.res.oracle | 2 +- tests/syntax/oracle/cert_msc_38.7.res.oracle | 2 +- tests/syntax/oracle/incomplete_struct_field.res.oracle | 3 ++- tests/syntax/oracle/mutually_recursive_struct.res.oracle | 3 ++- 11 files changed, 13 insertions(+), 11 deletions(-) diff --git a/tests/spec/oracle/annot_decl_bts1009.res.oracle b/tests/spec/oracle/annot_decl_bts1009.res.oracle index bbf8d6510c0..c947f45a80f 100644 --- a/tests/spec/oracle/annot_decl_bts1009.res.oracle +++ b/tests/spec/oracle/annot_decl_bts1009.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/spec/annot_decl_bts1009.i (no preprocessing) -[kernel:annot-error] Warning: +[kernel:annot-error] tests/spec/annot_decl_bts1009.i:5: Warning: Statement contract and ACSL pragmas over a local definition are not implemented. Ignoring annotation /* Generated by Frama-C */ void f(void) diff --git a/tests/syntax/oracle/cert_msc_38.0.res.oracle b/tests/syntax/oracle/cert_msc_38.0.res.oracle index f6f03be6c14..436be5934df 100644 --- a/tests/syntax/oracle/cert_msc_38.0.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.0.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:25: Warning: assert is a standard macro. Its definition cannot be suppressed, see CERT C coding rules MSC38-C [kernel] tests/syntax/cert_msc_38.c:25: User Error: Cannot resolve variable assert diff --git a/tests/syntax/oracle/cert_msc_38.1.res.oracle b/tests/syntax/oracle/cert_msc_38.1.res.oracle index 2a38adfac84..912e7c39eda 100644 --- a/tests/syntax/oracle/cert_msc_38.1.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.1.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:32: Warning: Attempt to declare errno as external identifier outside of the stdlib. It is supposed to be a macro name and cannot be declared. See CERT C coding rule MSC38-C [kernel] Warning: warning CERT:MSC:38 treated as deferred error. See above messages for more information. [kernel] Frama-C aborted: invalid user input. diff --git a/tests/syntax/oracle/cert_msc_38.2.res.oracle b/tests/syntax/oracle/cert_msc_38.2.res.oracle index 93f72be060a..9f32d360013 100644 --- a/tests/syntax/oracle/cert_msc_38.2.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.2.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:37: Warning: Attempt to declare math_errhandling as external identifier outside of the stdlib. It is supposed to be a macro name and cannot be declared. See CERT C coding rule MSC38-C [kernel] Warning: warning CERT:MSC:38 treated as deferred error. See above messages for more information. [kernel] Frama-C aborted: invalid user input. diff --git a/tests/syntax/oracle/cert_msc_38.3.res.oracle b/tests/syntax/oracle/cert_msc_38.3.res.oracle index f85b07111ff..1d21e57a88d 100644 --- a/tests/syntax/oracle/cert_msc_38.3.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.3.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:42: Warning: va_start is a standard macro. Its definition cannot be suppressed, see CERT C coding rules MSC38-C [kernel] tests/syntax/cert_msc_38.c:42: User Error: Cannot resolve variable va_start diff --git a/tests/syntax/oracle/cert_msc_38.4.res.oracle b/tests/syntax/oracle/cert_msc_38.4.res.oracle index e8c0de5ba19..a65e4b430e8 100644 --- a/tests/syntax/oracle/cert_msc_38.4.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.4.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:46: Warning: va_copy is a standard macro. Its definition cannot be suppressed, see CERT C coding rules MSC38-C [kernel] tests/syntax/cert_msc_38.c:46: User Error: Cannot resolve variable va_copy diff --git a/tests/syntax/oracle/cert_msc_38.5.res.oracle b/tests/syntax/oracle/cert_msc_38.5.res.oracle index 7d12efef567..38293bc7042 100644 --- a/tests/syntax/oracle/cert_msc_38.5.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.5.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:50: Warning: va_arg is a standard macro. Its definition cannot be suppressed, see CERT C coding rules MSC38-C [kernel] tests/syntax/cert_msc_38.c:50: User Error: Cannot resolve variable va_arg diff --git a/tests/syntax/oracle/cert_msc_38.6.res.oracle b/tests/syntax/oracle/cert_msc_38.6.res.oracle index cbd86b6a84b..5aad28f718a 100644 --- a/tests/syntax/oracle/cert_msc_38.6.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.6.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:54: Warning: va_end is a standard macro. Its definition cannot be suppressed, see CERT C coding rules MSC38-C [kernel] tests/syntax/cert_msc_38.c:54: User Error: Cannot resolve variable va_end diff --git a/tests/syntax/oracle/cert_msc_38.7.res.oracle b/tests/syntax/oracle/cert_msc_38.7.res.oracle index 6db601e9319..a13d4f25031 100644 --- a/tests/syntax/oracle/cert_msc_38.7.res.oracle +++ b/tests/syntax/oracle/cert_msc_38.7.res.oracle @@ -1,5 +1,5 @@ [kernel] Parsing tests/syntax/cert_msc_38.c (with preprocessing) -[kernel:CERT:MSC:38] Warning: +[kernel:CERT:MSC:38] tests/syntax/cert_msc_38.c:59: Warning: setjmp is a standard macro. Its definition cannot be suppressed, see CERT C coding rules MSC38-C [kernel] Warning: warning CERT:MSC:38 treated as deferred error. See above messages for more information. [kernel] Frama-C aborted: invalid user input. diff --git a/tests/syntax/oracle/incomplete_struct_field.res.oracle b/tests/syntax/oracle/incomplete_struct_field.res.oracle index d75500699ee..1da6f42644d 100644 --- a/tests/syntax/oracle/incomplete_struct_field.res.oracle +++ b/tests/syntax/oracle/incomplete_struct_field.res.oracle @@ -3,6 +3,7 @@ declaration of array of incomplete type 'struct _s` [kernel] tests/syntax/incomplete_struct_field.i:1: User Error: field `v' is declared with incomplete type struct _s [12] -[kernel] User Error: type struct _s is circular +[kernel] tests/syntax/incomplete_struct_field.i:1: User Error: + type struct _s is circular [kernel] User Error: stopping on file "tests/syntax/incomplete_struct_field.i" that has errors. [kernel] Frama-C aborted: invalid user input. diff --git a/tests/syntax/oracle/mutually_recursive_struct.res.oracle b/tests/syntax/oracle/mutually_recursive_struct.res.oracle index 56467d6859b..74ebf746db9 100644 --- a/tests/syntax/oracle/mutually_recursive_struct.res.oracle +++ b/tests/syntax/oracle/mutually_recursive_struct.res.oracle @@ -7,6 +7,7 @@ declaration of array of incomplete type 'struct S1` [kernel] tests/syntax/mutually_recursive_struct.i:6: User Error: field `s1' is declared with incomplete type struct S1 [2] -[kernel] User Error: type struct S2 is circular +[kernel] tests/syntax/mutually_recursive_struct.i:6: User Error: + type struct S2 is circular [kernel] User Error: stopping on file "tests/syntax/mutually_recursive_struct.i" that has errors. [kernel] Frama-C aborted: invalid user input. -- GitLab From 876a96c4adc6af8d2321afe375f4f8154153f198 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 14 Sep 2020 14:35:37 +0200 Subject: [PATCH 124/255] [headers] remove non-existing files --- headers/header_spec.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/headers/header_spec.txt b/headers/header_spec.txt index a201e0f32e7..92410411467 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -1369,8 +1369,6 @@ src/plugins/value/utils/library_functions.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/mark_noresults.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/eva_annotations.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/eva_annotations.mli: CEA_LGPL_OR_PROPRIETARY -src/plugins/value/utils/state_import.ml: CEA_LGPL_OR_PROPRIETARY -src/plugins/value/utils/state_import.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/structure.ml: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/structure.mli: CEA_LGPL_OR_PROPRIETARY src/plugins/value/utils/unit_tests.ml: CEA_LGPL_OR_PROPRIETARY -- GitLab From d41e9698c9e44b66145769be97ea5520eb0d73d6 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Mon, 14 Sep 2020 15:23:32 +0200 Subject: [PATCH 125/255] [eacsl] Rename `mmodel_analysis` to `memory_tracking` The functions `must_model` have also been renamed to `must_monitor`. --- ...{mmodel_analysis.ml => memory_tracking.ml} | 38 +++++++++---------- ...model_analysis.mli => memory_tracking.mli} | 8 ++-- 2 files changed, 23 insertions(+), 23 deletions(-) rename src/plugins/e-acsl/src/analyses/{mmodel_analysis.ml => memory_tracking.ml} (97%) rename src/plugins/e-acsl/src/analyses/{mmodel_analysis.mli => memory_tracking.mli} (90%) diff --git a/src/plugins/e-acsl/src/analyses/mmodel_analysis.ml b/src/plugins/e-acsl/src/analyses/memory_tracking.ml similarity index 97% rename from src/plugins/e-acsl/src/analyses/mmodel_analysis.ml rename to src/plugins/e-acsl/src/analyses/memory_tracking.ml index db85a8c4c96..e6225e41ed0 100644 --- a/src/plugins/e-acsl/src/analyses/mmodel_analysis.ml +++ b/src/plugins/e-acsl/src/analyses/memory_tracking.ml @@ -692,7 +692,7 @@ end = struct end -let consolidated_must_model_vi vi = +let consolidated_must_monitor_vi vi = if Env.is_consolidated () then Env.consolidated_mem vi else begin @@ -713,7 +713,7 @@ let consolidated_must_model_vi vi = Env.consolidated_mem vi end -let must_model_vi ?kf ?stmt vi = +let must_monitor_vi ?kf ?stmt vi = let _kf = match kf, stmt with | None, None | Some _, _ -> kf | None, Some stmt -> Some (Kernel_function.find_englobing_kf stmt) @@ -721,14 +721,14 @@ let must_model_vi ?kf ?stmt vi = (* [JS 2013/05/07] that is unsound to take the env from the given stmt in presence of aliasing with an address (see tests address.i). TODO: could be optimized though *) - consolidated_must_model_vi vi + consolidated_must_monitor_vi vi (* match stmt, kf with - | None, _ -> consolidated_must_model_vi vi + | None, _ -> consolidated_must_monitor_vi vi | Some _, None -> assert false | Some stmt, Some kf -> if not (Env.is_consolidated ()) then - ignore (consolidated_must_model_vi vi); + ignore (consolidated_must_monitor_vi vi); try let tbl = Env.find kf in try @@ -736,7 +736,7 @@ let must_model_vi ?kf ?stmt vi = Varinfo.Hptset.mem vi (Env.default_varinfos set) with Not_found -> (* new statement *) - consolidated_must_model_vi vi + consolidated_must_monitor_vi vi with Not_found -> (* [kf] is dead code *) false @@ -761,8 +761,8 @@ and apply_on_vi_base_from_exp f ?kf ?stmt e = match e.enode with | UnOp _ | SizeOf _ | SizeOfE _ | SizeOfStr _ | AlignOf _ | AlignOfE _ -> Options.fatal "[pre_analysis] unexpected expression %a" Exp.pretty e -let must_model_lval = apply_on_vi_base_from_lval must_model_vi -let must_model_exp = apply_on_vi_base_from_exp must_model_vi +let must_monitor_lval = apply_on_vi_base_from_lval must_monitor_vi +let must_monitor_exp = apply_on_vi_base_from_exp must_monitor_vi let must_never_monitor_lval ?kf ?stmt lv = apply_on_vi_base_from_lval @@ -782,27 +782,27 @@ let must_never_monitor_exp ?kf ?stmt lv = (** {1 Public API} *) (* ************************************************************************** *) -let must_model_vi ?kf ?stmt vi = +let must_monitor_vi ?kf ?stmt vi = not (must_never_monitor vi) && - (Options.Full_mmodel.get () - || Error.generic_handle (must_model_vi ?kf ?stmt) false vi) + (Options.Full_mtracking.get () + || Error.generic_handle (must_monitor_vi ?kf ?stmt) false vi) -let must_model_lval ?kf ?stmt lv = +let must_monitor_lval ?kf ?stmt lv = not (must_never_monitor_lval ?kf ?stmt lv) && - (Options.Full_mmodel.get () - || Error.generic_handle (must_model_lval ?kf ?stmt) false lv) + (Options.Full_mtracking.get () + || Error.generic_handle (must_monitor_lval ?kf ?stmt) false lv) -let must_model_exp ?kf ?stmt exp = +let must_monitor_exp ?kf ?stmt exp = not (must_never_monitor_exp ?kf ?stmt exp) && - (Options.Full_mmodel.get () - || Error.generic_handle (must_model_exp ?kf ?stmt) false exp) + (Options.Full_mtracking.get () + || Error.generic_handle (must_monitor_exp ?kf ?stmt) false exp) -let use_model () = +let use_monitoring () = not (Env.is_empty ()) - || Options.Full_mmodel.get () + || Options.Full_mtracking.get () || Env.has_heap_allocations () (* diff --git a/src/plugins/e-acsl/src/analyses/mmodel_analysis.mli b/src/plugins/e-acsl/src/analyses/memory_tracking.mli similarity index 90% rename from src/plugins/e-acsl/src/analyses/mmodel_analysis.mli rename to src/plugins/e-acsl/src/analyses/memory_tracking.mli index 8c4967c2797..07121a82a8e 100644 --- a/src/plugins/e-acsl/src/analyses/mmodel_analysis.mli +++ b/src/plugins/e-acsl/src/analyses/memory_tracking.mli @@ -28,18 +28,18 @@ open Cil_types val reset: unit -> unit (** Must be called to redo the analysis *) -val use_model: unit -> bool +val use_monitoring: unit -> bool (** Is one variable monitored (at least)? *) -val must_model_vi: ?kf:kernel_function -> ?stmt:stmt -> varinfo -> bool +val must_monitor_vi: ?kf:kernel_function -> ?stmt:stmt -> varinfo -> bool (** [must_model_vi ?kf ?stmt vi] returns [true] if the varinfo [vi] at the given [stmt] in the given function [kf] must be tracked by the memory model library. *) -val must_model_lval: ?kf:kernel_function -> ?stmt:stmt -> lval -> bool +val must_monitor_lval: ?kf:kernel_function -> ?stmt:stmt -> lval -> bool (** Same as {!must_model_vi}, for left-values *) -val must_model_exp: ?kf:kernel_function -> ?stmt:stmt -> exp -> bool +val must_monitor_exp: ?kf:kernel_function -> ?stmt:stmt -> exp -> bool (** Same as {!must_model_vi}, for expressions *) (* -- GitLab From 597a77f506a67aae2e9c27086b3cae1a32203e25 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Mon, 14 Sep 2020 15:24:07 +0200 Subject: [PATCH 126/255] [eacsl] Rename `mmodel_translate` to `memory_translate` --- .../code_generator/{mmodel_translate.ml => memory_translate.ml} | 0 .../code_generator/{mmodel_translate.mli => memory_translate.mli} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/plugins/e-acsl/src/code_generator/{mmodel_translate.ml => memory_translate.ml} (100%) rename src/plugins/e-acsl/src/code_generator/{mmodel_translate.mli => memory_translate.mli} (100%) diff --git a/src/plugins/e-acsl/src/code_generator/mmodel_translate.ml b/src/plugins/e-acsl/src/code_generator/memory_translate.ml similarity index 100% rename from src/plugins/e-acsl/src/code_generator/mmodel_translate.ml rename to src/plugins/e-acsl/src/code_generator/memory_translate.ml diff --git a/src/plugins/e-acsl/src/code_generator/mmodel_translate.mli b/src/plugins/e-acsl/src/code_generator/memory_translate.mli similarity index 100% rename from src/plugins/e-acsl/src/code_generator/mmodel_translate.mli rename to src/plugins/e-acsl/src/code_generator/memory_translate.mli -- GitLab From 815fd4cfeb4aaae76ecf7cae5f1be0d9975a011f Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Mon, 14 Sep 2020 15:25:57 +0200 Subject: [PATCH 127/255] [eacsl] Propagate renaming changes --- src/plugins/e-acsl/Makefile.in | 16 ++++++++-------- src/plugins/e-acsl/headers/header_spec.txt | 12 ++++++------ .../src/code_generator/global_observer.ml | 4 ++-- .../e-acsl/src/code_generator/injector.ml | 18 +++++++++--------- .../src/code_generator/literal_observer.ml | 2 +- .../src/code_generator/memory_observer.ml | 2 +- .../src/code_generator/memory_observer.mli | 2 +- .../e-acsl/src/code_generator/temporal.ml | 12 ++++++------ .../e-acsl/src/code_generator/translate.ml | 19 ++++++++++--------- 9 files changed, 44 insertions(+), 43 deletions(-) diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index 06edca93596..eb3472ecd74 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -55,7 +55,7 @@ SRC_PROJECT_INITIALIZER:=\ SRC_ANALYSES:= \ rte \ literal_strings \ - mmodel_analysis \ + memory_tracking \ exit_points \ lscope \ interval \ @@ -73,7 +73,7 @@ SRC_CODE_GENERATOR:= \ loops \ quantif \ at_with_lscope \ - mmodel_translate \ + memory_translate \ logic_functions \ logic_array \ translate \ @@ -114,9 +114,9 @@ PLUGIN_DEPENDENCIES:= RteGen EACSL_PLUGIN_DIR:=$(PLUGIN_DIR) # Suppress a spurious warning with OCaml >= 4.04.0 -$(EACSL_PLUGIN_DIR)/src/analyses/mmodel_analysis.cmo \ -$(EACSL_PLUGIN_DIR)/src/analyses/mmodel_analysis.cmi: E_ACSL_BFLAGS+= -w -60 -$(EACSL_PLUGIN_DIR)/src/analyses/mmodel_analysis.cmx: E_ACSL_OFLAGS+= -w -60 +$(EACSL_PLUGIN_DIR)/src/analyses/memory_tracking.cmo \ +$(EACSL_PLUGIN_DIR)/src/analyses/memory_tracking.cmi: E_ACSL_BFLAGS+= -w -60 +$(EACSL_PLUGIN_DIR)/src/analyses/memory_tracking.cmx: E_ACSL_OFLAGS+= -w -60 ############### # Local Flags # @@ -160,7 +160,7 @@ PLUGIN_TESTS_DIRS := \ arith \ memory \ gmp-only \ - full-mmodel \ + full-mtracking \ format \ temporal \ special @@ -291,8 +291,8 @@ EACSL_TEST_FILES = \ tests/test_config_ci.in \ tests/gmp-only/test_config_ci \ tests/gmp-only/test_config_dev \ - tests/full-mmodel/test_config_ci \ - tests/full-mmodel/test_config_dev \ + tests/full-mtracking/test_config_ci \ + tests/full-mtracking/test_config_dev \ tests/builtin/test_config_ci \ tests/builtin/test_config_dev \ tests/temporal/test_config_ci \ diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index f5d1c3fe39a..3a8a5772d08 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -44,8 +44,8 @@ src/analyses/literal_strings.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/literal_strings.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/lscope.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/lscope.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL -src/analyses/mmodel_analysis.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL -src/analyses/mmodel_analysis.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/analyses/memory_tracking.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/analyses/memory_tracking.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/rte.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/rte.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/typing.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL @@ -72,8 +72,8 @@ src/code_generator/loops.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/loops.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/memory_observer.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/memory_observer.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL -src/code_generator/mmodel_translate.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL -src/code_generator/mmodel_translate.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/memory_translate.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/memory_translate.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/quantif.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/quantif.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/rational.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL @@ -113,8 +113,8 @@ tests/builtin/test_config_ci: .ignore tests/builtin/test_config_dev: .ignore tests/format/test_config_ci: .ignore tests/format/test_config_dev: .ignore -tests/full-mmodel/test_config_ci: .ignore -tests/full-mmodel/test_config_dev: .ignore +tests/full-mtracking/test_config_ci: .ignore +tests/full-mtracking/test_config_dev: .ignore tests/gmp-only/test_config_ci: .ignore tests/gmp-only/test_config_dev: .ignore tests/temporal/test_config_ci: .ignore diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.ml b/src/plugins/e-acsl/src/code_generator/global_observer.ml index 0e6a3ac2302..023dd1cfc9d 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/global_observer.ml @@ -43,11 +43,11 @@ let is_empty () = Varinfo.Hashtbl.length tbl = 0 Initializers (used to capture literal strings) are added through [add_initializer] below. *) let add vi = - if Mmodel_analysis.must_model_vi vi then + if Memory_tracking.must_monitor_vi vi then Varinfo.Hashtbl.replace tbl vi (ref []) let add_initializer vi offset init = - if Mmodel_analysis.must_model_vi vi then + if Memory_tracking.must_monitor_vi vi then try let l = Varinfo.Hashtbl.find tbl vi in l := (offset, init) :: !l diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index cdc6486702d..c7ea8438a11 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -138,7 +138,7 @@ let add_initializer loc ?vi lv ?(post=false) stmt env kf = | Var vi, NoOffset -> vi.vglob || vi.vformal | _ -> false in - let must_model = Mmodel_analysis.must_model_lval ~stmt ~kf lv in + let must_model = Memory_tracking.must_monitor_lval ~stmt ~kf lv in if not (may_safely_ignore lv) && must_model then let before = Cil.mkStmt ~valid_sid:true stmt.skind in let new_stmt = @@ -515,7 +515,7 @@ and inject_in_block (env: Env.t) kf blk = if Functions.instrument kf then List.fold_left (fun acc vi -> - if Mmodel_analysis.must_model_vi ~kf vi + if Memory_tracking.must_monitor_vi ~kf vi then Smart_stmt.delete_stmt vi :: acc else acc) stmts @@ -530,7 +530,7 @@ and inject_in_block (env: Env.t) kf blk = blk.bstmts <- List.fold_left (fun acc vi -> - if Mmodel_analysis.must_model_vi vi && not vi.vdefined + if Memory_tracking.must_monitor_vi vi && not vi.vdefined then Smart_stmt.store_stmt vi :: acc else acc) blk.bstmts @@ -702,7 +702,7 @@ let surround_function_with kf fundec stmt_begin stmt_end = These functions track the usage of globals if the program being analyzed. *) let inject_global_handler file main = Options.feedback ~dkey ~level:2 "building global handler."; - if Mmodel_analysis.use_model () then + if Memory_tracking.use_monitoring () then (* Create [__e_acsl_globals_init] function *) let vi_init, fundec_init = Global_observer.mk_init_function () in let cil_fct_init = GFun(fundec_init, Location.unknown) in @@ -786,16 +786,16 @@ let inject_global_handler file main = file.globals <- file.globals @ globals_func (** Add a call to [__e_acsl_memory_init] and [__e_acsl_memory_clean] if the - memory model analysis is running. + memory tracking analysis is running. [__e_acsl_memory_init] initializes memory storage and potentially records program arguments. Parameters to [__e_acsl_memory_init] are addresses of program arguments or NULLs if [main] is declared without arguments. [__e_acsl_memory_clean] clean the memory allocated by [__e_acsl_memory_init]. *) -let inject_mmodel_handler main = +let inject_mtracking_handler main = (* Only inject memory init and memory clean if the memory model analysis is running *) - if Mmodel_analysis.use_model () then begin + if Memory_tracking.use_monitoring () then begin let loc = Location.unknown in let nulls = [ Cil.zero loc ; Cil.zero loc ] in let handle_main main = @@ -837,13 +837,13 @@ let inject_in_file file = if not (Global_observer.is_empty () && Literal_strings.is_empty ()) then inject_global_handler file main; file.globals <- Logic_functions.add_generated_functions file.globals; - inject_mmodel_handler main + inject_mtracking_handler main let reset_all ast = (* by default, do not run E-ACSL on the generated code *) Options.Run.off (); (* reset all the E-ACSL environments to their original states *) - Mmodel_analysis.reset (); + Memory_tracking.reset (); Logic_functions.reset (); Literal_strings.reset (); Global_observer.reset (); diff --git a/src/plugins/e-acsl/src/code_generator/literal_observer.ml b/src/plugins/e-acsl/src/code_generator/literal_observer.ml index 9cc7e7f8b5e..8b3bd0f9919 100644 --- a/src/plugins/e-acsl/src/code_generator/literal_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/literal_observer.ml @@ -52,7 +52,7 @@ let subst_all_literals_in_exp env kf e = (* the guard below could be optimized: if no annotation depends on this string, then it is not required to monitor it. (currently, the guard says: "no annotation uses the memory model" *) - | Const (CStr s) when Mmodel_analysis.use_model () -> + | Const (CStr s) when Memory_tracking.use_monitoring () -> let e, env = literal e.eloc !env_ref kf s in env_ref := env; Cil.ChangeTo e diff --git a/src/plugins/e-acsl/src/code_generator/memory_observer.ml b/src/plugins/e-acsl/src/code_generator/memory_observer.ml index 629e3043227..1babc64d924 100644 --- a/src/plugins/e-acsl/src/code_generator/memory_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/memory_observer.ml @@ -26,7 +26,7 @@ let tracking_stmt ?before fold mk_stmt env kf vars = if Functions.instrument kf then fold (fun vi env -> - if Mmodel_analysis.must_model_vi ~kf vi then + if Memory_tracking.must_monitor_vi ~kf vi then Env.add_stmt ?before env kf (mk_stmt vi) else env) diff --git a/src/plugins/e-acsl/src/code_generator/memory_observer.mli b/src/plugins/e-acsl/src/code_generator/memory_observer.mli index 24b45566587..7fb098d7655 100644 --- a/src/plugins/e-acsl/src/code_generator/memory_observer.mli +++ b/src/plugins/e-acsl/src/code_generator/memory_observer.mli @@ -27,7 +27,7 @@ open Cil_types open Cil_datatype val store: ?before:stmt -> Env.t -> kernel_function -> varinfo list -> Env.t -(** For each variable of the given list, if necessary according to the mmodel +(** For each variable of the given list, if necessary according to the mtracking analysis, add a call to [__e_acsl_store_block] in the given environment. *) val duplicate_store: diff --git a/src/plugins/e-acsl/src/code_generator/temporal.ml b/src/plugins/e-acsl/src/code_generator/temporal.ml index 96f5c22ee29..d0f6ced85f1 100644 --- a/src/plugins/e-acsl/src/code_generator/temporal.ml +++ b/src/plugins/e-acsl/src/code_generator/temporal.ml @@ -216,7 +216,7 @@ let mk_stmt_from_assign loc lhs rhs = (* Top-level handler for Set instructions *) let set_instr ?(post=false) current_stmt loc lhs rhs env kf = - if Mmodel_analysis.must_model_lval ~kf lhs then + if Memory_tracking.must_monitor_lval ~kf lhs then Extlib.may_map (fun stmt -> Env.add_stmt ~before:current_stmt ~post env kf stmt) ~dft:env @@ -248,7 +248,7 @@ end = struct Extlib.may_map (fun (_, rhs, flow) -> let env = - if Mmodel_analysis.must_model_exp ~kf param then + if Memory_tracking.must_monitor_exp ~kf param then let stmt = Mk.save_param ~loc flow rhs index in Env.add_stmt ~before:current_stmt ~post:false env kf stmt else env @@ -341,7 +341,7 @@ end = struct let alloc = not has_def in Extlib.may_map (fun lhs -> - if Mmodel_analysis.must_model_lval ~kf lhs then + if Memory_tracking.must_monitor_lval ~kf lhs then call_with_ret ~alloc current_stmt loc lhs env kf else env) ~dft:env @@ -371,7 +371,7 @@ end = struct inits let instr current_stmt vi li loc env kf = - if Mmodel_analysis.must_model_vi ~kf vi then + if Memory_tracking.must_monitor_vi ~kf vi then match li with | AssignInit init -> handle_init current_stmt NoOffset loc vi init env kf @@ -421,7 +421,7 @@ let handle_return_stmt loc ret env kf = | _ -> Options.fatal "Something other than Lval in return" let handle_return_stmt loc ret env kf = - if Mmodel_analysis.must_model_exp ~kf ret then + if Memory_tracking.must_monitor_exp ~kf ret then handle_return_stmt loc ret env kf else env @@ -491,7 +491,7 @@ let handle_function_parameters kf env = let env, _ = List.fold_left (fun (env, index) param -> let env = - if Mmodel_analysis.must_model_vi ~kf param + if Memory_tracking.must_monitor_vi ~kf param then track_argument param index env kf else env in diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 480059c4a51..882a4b41f47 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -583,7 +583,8 @@ and context_insensitive_term_to_exp kf env t = if Misc.is_set_of_ptr_or_array t1.term_type || Misc.is_set_of_ptr_or_array t2.term_type then (* case of arithmetic over set of pointers (due to use of ranges) - should have already been handled in [mmodel_call_with_ranges] *) + should have already been handled in [Memory_translate.call_with_ranges] + *) assert false; (* binary operation over pointers *) let ty = match t1.term_type with @@ -696,19 +697,19 @@ and context_insensitive_term_to_exp kf env t = e, env, sty, "" | Tbase_addr(BuiltinLabel Here, t) -> let name = "base_addr" in - let e, env = Mmodel_translate.call ~loc kf name Cil.voidPtrType env t in + let e, env = Memory_translate.call ~loc kf name Cil.voidPtrType env t in e, env, C_number, name | Tbase_addr _ -> not_yet env "labeled \\base_addr" | Toffset(BuiltinLabel Here, t) -> let size_t = Cil.theMachine.Cil.typeOfSizeOf in let name = "offset" in - let e, env = Mmodel_translate.call ~loc kf name size_t env t in + let e, env = Memory_translate.call ~loc kf name size_t env t in e, env, C_number, name | Toffset _ -> not_yet env "labeled \\offset" | Tblock_length(BuiltinLabel Here, t) -> let size_t = Cil.theMachine.Cil.typeOfSizeOf in let name = "block_length" in - let e, env = Mmodel_translate.call ~loc kf name size_t env t in + let e, env = Memory_translate.call ~loc kf name size_t env t in e, env, C_number, name | Tblock_length _ -> not_yet env "labeled \\block_length" | Tnull -> @@ -965,7 +966,7 @@ and named_predicate_content_to_exp ?name kf env p = | Pvalid_read _ -> "valid_read" | _ -> assert false in - Mmodel_translate.call_valid ~loc kf name Cil.intType env t + Memory_translate.call_valid ~loc kf name Cil.intType env t in if !is_visiting_valid then begin (* we already transformed \valid(t) into \initialized(&t) && \valid(t): @@ -996,7 +997,7 @@ and named_predicate_content_to_exp ?name kf env p = vi.vformal || vi.vglob || Functions.RTL.is_generated_name vi.vname -> Cil.one ~loc, env | _ -> - Mmodel_translate.call_with_size + Memory_translate.call_with_size ~loc kf "initialized" @@ -1007,7 +1008,7 @@ and named_predicate_content_to_exp ?name kf env p = | Pinitialized _ -> not_yet env "labeled \\initialized" | Pallocable _ -> not_yet env "\\allocate" | Pfreeable(BuiltinLabel Here, t) -> - Mmodel_translate.call ~loc kf "freeable" Cil.intType env t + Memory_translate.call ~loc kf "freeable" Cil.intType env t | Pfreeable _ -> not_yet env "labeled \\freeable" | Pfresh _ -> not_yet env "\\fresh" @@ -1095,8 +1096,8 @@ let () = Quantif.predicate_to_exp_ref := named_predicate_to_exp; At_with_lscope.term_to_exp_ref := term_to_exp; At_with_lscope.predicate_to_exp_ref := named_predicate_to_exp; - Mmodel_translate.term_to_exp_ref := term_to_exp; - Mmodel_translate.predicate_to_exp_ref := named_predicate_to_exp; + Memory_translate.term_to_exp_ref := term_to_exp; + Memory_translate.predicate_to_exp_ref := named_predicate_to_exp; Logic_functions.term_to_exp_ref := term_to_exp; Logic_functions.named_predicate_to_exp_ref := named_predicate_to_exp; Logic_array.translate_rte_ref := translate_rte -- GitLab From e385bffebff310b5d24adc1abd02471d2a3b71e8 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Mon, 14 Sep 2020 15:28:45 +0200 Subject: [PATCH 128/255] [eacsl] Rename `full-mmodel` option to `full-mtracking` - Deprecate old `full-mmodel` option in E-ACSL plugin and in `e-acsl-gcc.sh` - Create new `full-mtracking` option - Update documentation to use the new option --- .../e-acsl/doc/userman/limitations.tex | 8 +++---- src/plugins/e-acsl/doc/userman/provides.tex | 2 +- src/plugins/e-acsl/man/e-acsl-gcc.sh.1 | 2 +- src/plugins/e-acsl/scripts/e-acsl-gcc.comp | 4 ++-- src/plugins/e-acsl/scripts/e-acsl-gcc.sh | 21 +++++++++++++------ src/plugins/e-acsl/src/options.ml | 7 ++++--- src/plugins/e-acsl/src/options.mli | 2 +- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/src/plugins/e-acsl/doc/userman/limitations.tex b/src/plugins/e-acsl/doc/userman/limitations.tex index c42ab93808d..45caa5d91dc 100644 --- a/src/plugins/e-acsl/doc/userman/limitations.tex +++ b/src/plugins/e-acsl/doc/userman/limitations.tex @@ -87,9 +87,9 @@ plug-in is running (see examples of Sections~\ref{sec:no-main} and The instrumentation in the generated program is partial for every program without main containing memory-related annotations, except if the option -\optionuse{-}{e-acsl-full-mmodel} or the \eacsl plug-in (of \shortopt{M} option -of \eacslgcc) is provided. In that case, violations of such annotations are -undetected. +\optionuse{-}{e-acsl-full-mtracking} or the \eacsl plug-in (of \shortopt{M} +option of \eacslgcc) is provided. In that case, violations of such annotations +are undetected. Consider the following example. @@ -144,7 +144,7 @@ instrumented code (linked against this main) could print some warnings from the \index{Function!Undefined} The instrumentation in the generated program is partial for a program $p$ if $p$ -contains a memory-related annotation $a$ and an undefined function +contains a memory-related annotation $a$ and an undefined function $f$ such that: \begin{itemize} \item either $f$ has an (even indirect) effect on a left-value occurring in $a$; diff --git a/src/plugins/e-acsl/doc/userman/provides.tex b/src/plugins/e-acsl/doc/userman/provides.tex index accd222ac1c..f9dedfdf868 100644 --- a/src/plugins/e-acsl/doc/userman/provides.tex +++ b/src/plugins/e-acsl/doc/userman/provides.tex @@ -550,7 +550,7 @@ this means that is, however, still possible to systematically instrument the code for handling potential memory-related annotations even when it is not required. This feature can be enabled using the \shortopt{M} switch of \eacslgcc or -\shortopt{e-acsl-full-mmodel} option of the \eacsl plug-in. +\shortopt{e-acsl-full-mtracking} option of the \eacsl plug-in. \begin{important} The above-mentioned static analysis is probably the less robust part of \eacsl diff --git a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 index e4c6801d21f..39e15364d47 100644 --- a/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 +++ b/src/plugins/e-acsl/man/e-acsl-gcc.sh.1 @@ -99,7 +99,7 @@ pass additional arguments to the \fBFrama-C\fP pre-processor. .B -L, --frama-c-stdlib use the \fBFrama-C\fP standard library instead of a system-wide one. .TP -.B -M, --full-mmodel +.B -M, --full-mtracking maximize memory-related instrumentation. .TP .B --temporal diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp index 4e075e196a5..b05f8fe127e 100644 --- a/src/plugins/e-acsl/scripts/e-acsl-gcc.comp +++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.comp @@ -3,7 +3,7 @@ # This file is part of the Frama-C's E-ACSL plug-in. # # # # Copyright (C) 2012-2018 # -# CEA (Commissariat à l'énergie atomique et aux énergies # +# CEA (Commissariat � l'�nergie atomique et aux �nergies # # alternatives) # # # # you can redistribute it and/or modify it under the terms of the GNU # @@ -39,7 +39,7 @@ _eacsl_gcc() { --frama-c-extra= --frama-c= --gcc= --e-acsl-share= --memory-model= --e-acsl-extra= --compile --compile-only --print-mmodels --frama-c-only --instrumented-only - --gmp --full-mmodel --rte= --rte-select= --no-int-overflow + --gmp --full-mtracking --rte= --rte-select= --no-int-overflow --no-stdlib --frama-c-stdlib --libc-replacements --temporal --free-valid-address --weak-validity --validate-format-strings --heap-size --stack-size" diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh index c81e38218fb..fe84dce4a7f 100755 --- a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh +++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh @@ -32,6 +32,11 @@ error () { fi } +# Print a warning message to STDERR. +warning () { + echo "e-acsl-gcc: warning: $1" 1>&2 +} + # Check if a given executable name can be found by in the PATH has_tool() { which "$@" >/dev/null 2>&1 && return 0 || return 1 @@ -264,8 +269,8 @@ check_getopt; # Getopt options LONGOPTIONS="help,compile,compile-only,debug:,ocode:,oexec:,verbose:, - frama-c-only,extra-cpp-args:,frama-c-stdlib,full-mmodel,gmp,quiet,logfile:, - ld-flags:,cpp-flags:,frama-c-extra:,memory-model:,keep-going, + frama-c-only,extra-cpp-args:,frama-c-stdlib,full-mmodel,full-mtracking,gmp, + quiet,logfile:,ld-flags:,cpp-flags:,frama-c-extra:,memory-model:,keep-going, frama-c:,gcc:,e-acsl-share:,instrumented-only,rte:,oexec-e-acsl:, print-mmodels,rt-debug,rte-select:,then,e-acsl-extra:,check,fail-with-code:, temporal,weak-validity,stack-size:,heap-size:,rt-verbose,free-valid-address, @@ -292,7 +297,7 @@ OPTION_OUTPUT_EXEC="a.out" # Generated executable name OPTION_EACSL_OUTPUT_EXEC="" # Name of E-ACSL executable OPTION_EACSL="-e-acsl" # Specifies E-ACSL run OPTION_FRAMA_STDLIB="-no-frama-c-stdlib" # Use Frama-C stdlib -OPTION_FULL_MMODEL= # Instrument as much as possible +OPTION_FULL_MTRACKING= # Instrument as much as possible OPTION_GMP= # Use GMP integers everywhere OPTION_EACSL_MMODELS="segment" # Memory model used OPTION_EACSL_SHARE= # Custom E-ACSL share directory @@ -489,9 +494,13 @@ do OPTION_FRAMA_STDLIB="-frama-c-stdlib" ;; # Use as much memory-related instrumentation as possible - -M|--full-mmodel) + -M|--full-mtracking|--full-mmodel) + if [ "$i" = "--full-mmodel" ]; then + warning "--full-mmodel is a deprecated alias for option --full-mtracking." + warning "Please use --full-mtracking instead." + fi shift; - OPTION_FULL_MMODEL="-e-acsl-full-mmodel" + OPTION_FULL_MTRACKING="-e-acsl-full-mtracking" ;; # Use GMP everywhere -g|--gmp) @@ -780,7 +789,7 @@ if [ -n "$OPTION_EACSL" ]; then $OPTION_EACSL $OPTION_GMP $OPTION_LIBC_REPLACEMENTS - $OPTION_FULL_MMODEL + $OPTION_FULL_MTRACKING $OPTION_TEMPORAL $OPTION_VERBOSE $OPTION_DEBUG diff --git a/src/plugins/e-acsl/src/options.ml b/src/plugins/e-acsl/src/options.ml index 8c98ca16579..932ff7ea662 100644 --- a/src/plugins/e-acsl/src/options.ml +++ b/src/plugins/e-acsl/src/options.ml @@ -85,12 +85,13 @@ module Replace_libc_functions = RTL alternatives" end) -module Full_mmodel = +module Full_mtracking = False (struct - let option_name = "-e-acsl-full-mmodel" + let option_name = "-e-acsl-full-mtracking" let help = "maximal memory-related instrumentation" end) +let () = Full_mtracking.add_aliases ~deprecated:true [ "-e-acsl-full-mmodel" ] module Builtins = String_set @@ -142,7 +143,7 @@ let () = Cmdline.run_after_configuring_stage version let parameter_states = [ Valid.self; Gmp_only.self; - Full_mmodel.self; + Full_mtracking.self; Builtins.self; Temporal_validity.self; Validate_format_strings.self; diff --git a/src/plugins/e-acsl/src/options.mli b/src/plugins/e-acsl/src/options.mli index d5065c6a51d..ca303e1b515 100644 --- a/src/plugins/e-acsl/src/options.mli +++ b/src/plugins/e-acsl/src/options.mli @@ -25,7 +25,7 @@ include Plugin.S (** implementation of Log.S for E-ACSL *) module Run: Parameter_sig.Bool module Valid: Parameter_sig.Bool module Gmp_only: Parameter_sig.Bool -module Full_mmodel: Parameter_sig.Bool +module Full_mtracking: Parameter_sig.Bool module Project_name: Parameter_sig.String module Builtins: Parameter_sig.String_set module Temporal_validity: Parameter_sig.Bool -- GitLab From be960328cdff4f303e4d6c8d1e2d92b41c7bdeac Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Mon, 14 Sep 2020 15:29:08 +0200 Subject: [PATCH 129/255] [eacsl] Update tests --- src/plugins/e-acsl/examples/known_bugs/let-alias.c | 2 +- src/plugins/e-acsl/tests/bts/issue-eacsl-91.c | 2 +- src/plugins/e-acsl/tests/format/test_config_dev | 2 +- src/plugins/e-acsl/tests/full-mmodel/test_config_ci | 1 - src/plugins/e-acsl/tests/full-mmodel/test_config_dev | 1 - .../e-acsl/tests/{full-mmodel => full-mtracking}/README.md | 2 +- .../e-acsl/tests/{full-mmodel => full-mtracking}/addrOf.i | 0 .../oracle_ci/addrOf.res.oracle | 0 .../{full-mmodel => full-mtracking}/oracle_ci/gen_addrOf.c | 4 ++-- .../oracle_dev/addrOf.e-acsl.err.log | 0 src/plugins/e-acsl/tests/full-mtracking/test_config_ci | 1 + src/plugins/e-acsl/tests/full-mtracking/test_config_dev | 1 + 12 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 src/plugins/e-acsl/tests/full-mmodel/test_config_ci delete mode 100644 src/plugins/e-acsl/tests/full-mmodel/test_config_dev rename src/plugins/e-acsl/tests/{full-mmodel => full-mtracking}/README.md (87%) rename src/plugins/e-acsl/tests/{full-mmodel => full-mtracking}/addrOf.i (100%) rename src/plugins/e-acsl/tests/{full-mmodel => full-mtracking}/oracle_ci/addrOf.res.oracle (100%) rename src/plugins/e-acsl/tests/{full-mmodel => full-mtracking}/oracle_ci/gen_addrOf.c (92%) rename src/plugins/e-acsl/tests/{full-mmodel => full-mtracking}/oracle_dev/addrOf.e-acsl.err.log (100%) create mode 100644 src/plugins/e-acsl/tests/full-mtracking/test_config_ci create mode 100644 src/plugins/e-acsl/tests/full-mtracking/test_config_dev diff --git a/src/plugins/e-acsl/examples/known_bugs/let-alias.c b/src/plugins/e-acsl/examples/known_bugs/let-alias.c index 25af1ec3080..8529a446118 100644 --- a/src/plugins/e-acsl/examples/known_bugs/let-alias.c +++ b/src/plugins/e-acsl/examples/known_bugs/let-alias.c @@ -2,7 +2,7 @@ DONTRUN: */ -/* let binding on alias: only work with -e-acsl-full-mmodel; +/* let binding on alias: only work with -e-acsl-full-mtracking; should not be the case. */ int main(void) { diff --git a/src/plugins/e-acsl/tests/bts/issue-eacsl-91.c b/src/plugins/e-acsl/tests/bts/issue-eacsl-91.c index cc7640adddb..74b8476fdbf 100644 --- a/src/plugins/e-acsl/tests/bts/issue-eacsl-91.c +++ b/src/plugins/e-acsl/tests/bts/issue-eacsl-91.c @@ -1,7 +1,7 @@ /* run.config_ci COMMENT: frama-c/e-acsl#91, test for misplaced delete_block of local variable in switch. - STDOPT: #"-e-acsl-full-mmodel" + STDOPT: #"-e-acsl-full-mtracking" */ short a; char b() diff --git a/src/plugins/e-acsl/tests/format/test_config_dev b/src/plugins/e-acsl/tests/format/test_config_dev index 65de4748913..636b97b9214 100644 --- a/src/plugins/e-acsl/tests/format/test_config_dev +++ b/src/plugins/e-acsl/tests/format/test_config_dev @@ -1,2 +1,2 @@ -MACRO: ROOT_EACSL_GCC_OPTS_EXT --validate-format-strings --full-mmodel +MACRO: ROOT_EACSL_GCC_OPTS_EXT --validate-format-strings --full-mtracking MACRO: ROOT_EACSL_EXEC_FILTER @SEDCMD@ -e "s|/.*/share/e-acsl|FRAMAC_SHARE/e-acsl|" diff --git a/src/plugins/e-acsl/tests/full-mmodel/test_config_ci b/src/plugins/e-acsl/tests/full-mmodel/test_config_ci deleted file mode 100644 index 82cdcaaa69d..00000000000 --- a/src/plugins/e-acsl/tests/full-mmodel/test_config_ci +++ /dev/null @@ -1 +0,0 @@ -STDOPT: #"-e-acsl-full-mmodel" diff --git a/src/plugins/e-acsl/tests/full-mmodel/test_config_dev b/src/plugins/e-acsl/tests/full-mmodel/test_config_dev deleted file mode 100644 index 840cd7e754b..00000000000 --- a/src/plugins/e-acsl/tests/full-mmodel/test_config_dev +++ /dev/null @@ -1 +0,0 @@ -MACRO: ROOT_EACSL_GCC_OPTS_EXT --full-mmodel \ No newline at end of file diff --git a/src/plugins/e-acsl/tests/full-mmodel/README.md b/src/plugins/e-acsl/tests/full-mtracking/README.md similarity index 87% rename from src/plugins/e-acsl/tests/full-mmodel/README.md rename to src/plugins/e-acsl/tests/full-mtracking/README.md index 9e2bd153f80..6d17198369a 100644 --- a/src/plugins/e-acsl/tests/full-mmodel/README.md +++ b/src/plugins/e-acsl/tests/full-mtracking/README.md @@ -1 +1 @@ -Like runtime, but also test instrumentation with --e-acsl-full-mmodel +Like runtime, but also test instrumentation with --e-acsl-full-mtracking diff --git a/src/plugins/e-acsl/tests/full-mmodel/addrOf.i b/src/plugins/e-acsl/tests/full-mtracking/addrOf.i similarity index 100% rename from src/plugins/e-acsl/tests/full-mmodel/addrOf.i rename to src/plugins/e-acsl/tests/full-mtracking/addrOf.i diff --git a/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/addrOf.res.oracle b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/addrOf.res.oracle similarity index 100% rename from src/plugins/e-acsl/tests/full-mmodel/oracle_ci/addrOf.res.oracle rename to src/plugins/e-acsl/tests/full-mtracking/oracle_ci/addrOf.res.oracle diff --git a/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c similarity index 92% rename from src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c rename to src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c index 574d904ff3e..29818eff2cf 100644 --- a/src/plugins/e-acsl/tests/full-mmodel/oracle_ci/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c @@ -19,7 +19,7 @@ void f(void) int __gen_e_acsl_initialized; __gen_e_acsl_initialized = __e_acsl_initialized((void *)p,sizeof(int)); __e_acsl_assert(__gen_e_acsl_initialized,"Assertion","f", - "\\initialized(p)","tests/full-mmodel/addrOf.i",10); + "\\initialized(p)","tests/full-mtracking/addrOf.i",10); } /*@ assert \initialized(p); */ ; __e_acsl_delete_block((void *)(& p)); @@ -55,7 +55,7 @@ int main(void) __e_acsl_full_init((void *)(& x)); f(); __e_acsl_assert(& x == & x,"Assertion","main","&x == &x", - "tests/full-mmodel/addrOf.i",16); + "tests/full-mtracking/addrOf.i",16); /*@ assert &x ≡ &x; */ ; __e_acsl_full_init((void *)(& __retres)); __retres = 0; diff --git a/src/plugins/e-acsl/tests/full-mmodel/oracle_dev/addrOf.e-acsl.err.log b/src/plugins/e-acsl/tests/full-mtracking/oracle_dev/addrOf.e-acsl.err.log similarity index 100% rename from src/plugins/e-acsl/tests/full-mmodel/oracle_dev/addrOf.e-acsl.err.log rename to src/plugins/e-acsl/tests/full-mtracking/oracle_dev/addrOf.e-acsl.err.log diff --git a/src/plugins/e-acsl/tests/full-mtracking/test_config_ci b/src/plugins/e-acsl/tests/full-mtracking/test_config_ci new file mode 100644 index 00000000000..3b1ebb8a3ac --- /dev/null +++ b/src/plugins/e-acsl/tests/full-mtracking/test_config_ci @@ -0,0 +1 @@ +STDOPT: #"-e-acsl-full-mtracking" diff --git a/src/plugins/e-acsl/tests/full-mtracking/test_config_dev b/src/plugins/e-acsl/tests/full-mtracking/test_config_dev new file mode 100644 index 00000000000..bdb600fef3f --- /dev/null +++ b/src/plugins/e-acsl/tests/full-mtracking/test_config_dev @@ -0,0 +1 @@ +MACRO: ROOT_EACSL_GCC_OPTS_EXT --full-mtracking \ No newline at end of file -- GitLab From bd9be0d6555d2a553c1db812daacb6c34289563e Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 15 Sep 2020 15:21:34 +0200 Subject: [PATCH 130/255] [logic] allow empty list of arguments after an extension keyword. --- src/kernel_internals/parsing/logic_parser.mly | 15 ++++++++++++--- tests/spec/Extend.i | 1 + tests/spec/Extend.ml | 7 ++++++- tests/spec/oracle/Extend.res.oracle | 1 + 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/kernel_internals/parsing/logic_parser.mly b/src/kernel_internals/parsing/logic_parser.mly index 38d5b09db50..0bff4b69eda 100644 --- a/src/kernel_internals/parsing/logic_parser.mly +++ b/src/kernel_internals/parsing/logic_parser.mly @@ -1189,14 +1189,23 @@ ne_simple_clauses: | post_cond_kind full_lexpr clause_kw { missing 2 ";" $3 } | allocation clause_kw { missing 1 ";" $2 } | ASSIGNS full_assigns clause_kw { missing 2 ";" $3 } -| EXT_CONTRACT grammar_extension clause_kw { missing 1 ";" $3 } +| EXT_CONTRACT ne_grammar_extension clause_kw { missing 1 ";" $3 } ; -grammar_extension: -/* Grammar Extensibility for plugins */ +ne_grammar_extension: | full_zones { $1 } ; +/* possibly empty list of terms, for ACSL extensions registered by plugins. */ +grammar_extension: +| enter_kw_c_mode extension_content exit_kw_c_mode { $2 } +; + +extension_content: +| /* epsilon */ { [] } +| zones { $1 } +; + post_cond_kind: | post_cond { fst $1 } ; diff --git a/tests/spec/Extend.i b/tests/spec/Extend.i index ff81bb51cab..85228eb7dfd 100644 --- a/tests/spec/Extend.i +++ b/tests/spec/Extend.i @@ -48,6 +48,7 @@ void loop (void) { //@ for ca_foo: ca_foo \true; //@ ns_foo \true; //@ baz \true; + //@ empty_extension; /*@ loop invariant \true; */ while (0) { } } diff --git a/tests/spec/Extend.ml b/tests/spec/Extend.ml index 99c5ea7064b..71fcdbdc871 100644 --- a/tests/spec/Extend.ml +++ b/tests/spec/Extend.ml @@ -104,6 +104,10 @@ let type_bla typing_context _loc l = in Ext_preds l +let type_empty _ loc = function + | [] -> Ext_terms []; + | _ -> Kernel.abort ~loc "empty_extension should not have arguments" + let () = Acsl_extension.register_behavior "foo" type_foo false ; Acsl_extension.register_code_annot_next_loop "lfoo" type_foo false ; @@ -113,7 +117,8 @@ let () = Acsl_extension.register_behavior "bar" type_bar ~printer:print_bar ~visitor:visit_bar false ; Acsl_extension.register_behavior "bla" type_bla false ; - Acsl_extension.register_code_annot_next_both "baz" type_baz false + Acsl_extension.register_code_annot_next_both "baz" type_baz false; + Acsl_extension.register_code_annot "empty_extension" type_empty false let run () = Ast.compute (); diff --git a/tests/spec/oracle/Extend.res.oracle b/tests/spec/oracle/Extend.res.oracle index 6fb85da86ba..8bdcb407b18 100644 --- a/tests/spec/oracle/Extend.res.oracle +++ b/tests/spec/oracle/Extend.res.oracle @@ -55,6 +55,7 @@ void loop(void) /*@ for ca_foo: ca_foo \true; */ ; /*@ ns_foo \true; */ /*@ baz \true; */ + /*@ empty_extension ; */ /*@ loop invariant \true; */ while (1) break; return; -- GitLab From 3747bf6cb7fd013b4ba3b0f283deb225d2facc2e Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 15 Sep 2020 16:41:31 +0200 Subject: [PATCH 131/255] [eacsl] Update changelog --- src/plugins/e-acsl/doc/Changelog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog index 541d6252e8d..e861862d1ce 100644 --- a/src/plugins/e-acsl/doc/Changelog +++ b/src/plugins/e-acsl/doc/Changelog @@ -25,6 +25,10 @@ Plugin E-ACSL <next-release> ############################ +- E-ACSL [2020-09-15] Deprecate -e-acsl-full-mmodel in favor of + -e-acsl-full-mtracking. +- e-acsl-gcc [2020-09-15] Deprecate --full-mmodel in favor of + --full-mtracking. -* E-ACSL [2020-08-28] Fix crash that may occur when translating properties that have been proved valid by another plug-in (frama-c/e-acsl#106). -- GitLab From 62f96fde5cd68dc81b4af91c9283c5ac35683245 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Thu, 3 Sep 2020 14:11:03 +0200 Subject: [PATCH 132/255] [eacsl:runtime] Move files to thematic folders --- .../share/e-acsl/{ => instrumentation_model}/e_acsl_assert.h | 0 .../share/e-acsl/{ => instrumentation_model}/e_acsl_temporal.h | 0 .../{ => instrumentation_model}/e_acsl_temporal_timestamp.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_alias.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_bits.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_debug.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_malloc.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_printf.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_shexec.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_string.h | 0 src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_trace.h | 0 .../e-acsl/share/e-acsl/{ => libc_replacements}/e_acsl_format.h | 0 .../e-acsl/{ => libc_replacements}/e_acsl_libc_replacements.h | 0 .../share/e-acsl/{ => numerical_model}/e_acsl_floating_point.h | 0 .../e-acsl/share/e-acsl/{ => numerical_model}/e_acsl_gmp_api.h | 0 .../e-acsl/{ => observation_model}/bittree_model/e_acsl_bittree.h | 0 .../{ => observation_model}/bittree_model/e_acsl_bittree_api.h | 0 .../{ => observation_model}/bittree_model/e_acsl_bittree_mmodel.c | 0 .../e-acsl/share/e-acsl/{ => observation_model}/e_acsl_leak.h | 0 .../share/e-acsl/{ => observation_model}/e_acsl_safe_locations.h | 0 .../{ => observation_model}/segment_model/e_acsl_segment_mmodel.c | 0 .../segment_model/e_acsl_segment_tracking.h | 0 .../{ => observation_model}/segment_model/e_acsl_shadow_layout.h | 0 23 files changed, 0 insertions(+), 0 deletions(-) rename src/plugins/e-acsl/share/e-acsl/{ => instrumentation_model}/e_acsl_assert.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => instrumentation_model}/e_acsl_temporal.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => instrumentation_model}/e_acsl_temporal_timestamp.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_alias.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_bits.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_debug.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_malloc.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_printf.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_shexec.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_string.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => internals}/e_acsl_trace.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => libc_replacements}/e_acsl_format.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => libc_replacements}/e_acsl_libc_replacements.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => numerical_model}/e_acsl_floating_point.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => numerical_model}/e_acsl_gmp_api.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/bittree_model/e_acsl_bittree.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/bittree_model/e_acsl_bittree_api.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/bittree_model/e_acsl_bittree_mmodel.c (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/e_acsl_leak.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/e_acsl_safe_locations.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/segment_model/e_acsl_segment_mmodel.c (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/segment_model/e_acsl_segment_tracking.h (100%) rename src/plugins/e-acsl/share/e-acsl/{ => observation_model}/segment_model/e_acsl_shadow_layout.h (100%) diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_assert.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_assert.h rename to src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_temporal.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_temporal.h rename to src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_temporal_timestamp.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_temporal_timestamp.h rename to src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_alias.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_alias.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_alias.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_alias.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_bits.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_bits.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_debug.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_debug.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_malloc.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_malloc.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_printf.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_printf.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_printf.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_printf.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_shexec.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_shexec.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_string.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_string.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_string.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_string.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_trace.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_trace.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_format.h b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_format.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_format.h rename to src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_format.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_libc_replacements.h b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_libc_replacements.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_libc_replacements.h rename to src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_libc_replacements.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_floating_point.h b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_floating_point.h rename to src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_gmp_api.h b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_gmp_api.h rename to src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_api.h b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_api.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_api.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_api.h diff --git a/src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_mmodel.c similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c rename to src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_mmodel.c diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_leak.h b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_leak.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_leak.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_leak.h diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_safe_locations.h b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_safe_locations.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/e_acsl_safe_locations.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_safe_locations.h diff --git a/src/plugins/e-acsl/share/e-acsl/segment_model/e_acsl_segment_mmodel.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_mmodel.c similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/segment_model/e_acsl_segment_mmodel.c rename to src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_mmodel.c diff --git a/src/plugins/e-acsl/share/e-acsl/segment_model/e_acsl_segment_tracking.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/segment_model/e_acsl_segment_tracking.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h diff --git a/src/plugins/e-acsl/share/e-acsl/segment_model/e_acsl_shadow_layout.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h similarity index 100% rename from src/plugins/e-acsl/share/e-acsl/segment_model/e_acsl_shadow_layout.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h -- GitLab From 05be80b9c9b3a5eb6ef883bd40e0ff81fb253720 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Thu, 3 Sep 2020 14:12:17 +0200 Subject: [PATCH 133/255] [eacsl:runtime] Update rtl to separate header and source files --- src/plugins/e-acsl/share/e-acsl/e_acsl.h | 592 +-------- src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c | 138 +-- .../instrumentation_model/e_acsl_assert.c | 63 + .../instrumentation_model/e_acsl_assert.h | 127 +- .../instrumentation_model/e_acsl_temporal.c | 141 +++ .../instrumentation_model/e_acsl_temporal.h | 206 ++-- .../e_acsl_temporal_timestamp.h | 4 +- .../share/e-acsl/internals/e_acsl_alias.h | 3 +- .../share/e-acsl/internals/e_acsl_bits.c | 32 + .../share/e-acsl/internals/e_acsl_bits.h | 53 +- .../share/e-acsl/internals/e_acsl_debug.c | 94 ++ .../share/e-acsl/internals/e_acsl_debug.h | 51 +- .../share/e-acsl/internals/e_acsl_malloc.c | 57 + .../share/e-acsl/internals/e_acsl_malloc.h | 167 ++- .../e-acsl/internals/e_acsl_private_assert.c | 81 ++ .../e-acsl/internals/e_acsl_private_assert.h | 57 + .../{e_acsl_printf.h => e_acsl_rtl_io.c} | 103 +- .../share/e-acsl/internals/e_acsl_rtl_io.h | 98 ++ .../e-acsl/internals/e_acsl_rtl_string.c | 93 ++ .../{e_acsl_string.h => e_acsl_rtl_string.h} | 78 +- .../share/e-acsl/internals/e_acsl_shexec.c | 203 +++ .../share/e-acsl/internals/e_acsl_shexec.h | 165 +-- .../share/e-acsl/internals/e_acsl_trace.c | 111 ++ .../share/e-acsl/internals/e_acsl_trace.h | 84 +- .../{e_acsl_format.h => e_acsl_stdio.c} | 143 +-- .../e-acsl/libc_replacements/e_acsl_stdio.h | 121 ++ ...sl_libc_replacements.h => e_acsl_string.c} | 89 +- .../e-acsl/libc_replacements/e_acsl_string.h | 178 +++ .../numerical_model/e_acsl_floating_point.c | 65 + .../numerical_model/e_acsl_floating_point.h | 55 +- .../e-acsl/numerical_model/e_acsl_gmp_api.h | 6 +- .../bittree_model/e_acsl_bittree.c | 469 +++++++ .../bittree_model/e_acsl_bittree.h | 485 +------- .../bittree_model/e_acsl_bittree_api.h | 101 -- ...l.c => e_acsl_bittree_observation_model.c} | 126 +- .../e_acsl_bittree_omodel_debug.c | 50 + .../e_acsl_bittree_timestamp_retrieval.c | 61 + .../e-acsl/observation_model/e_acsl_heap.c | 33 + .../e-acsl/observation_model/e_acsl_heap.h | 52 + .../e_acsl_observation_model.c | 41 + .../e_acsl_observation_model.h | 330 +++++ .../internals/e_acsl_heap_tracking.c | 67 + .../e_acsl_heap_tracking.h} | 48 +- .../internals/e_acsl_omodel_debug.h | 74 ++ .../e_acsl_safe_locations.c} | 43 +- .../internals/e_acsl_safe_locations.h | 54 + .../internals/e_acsl_timestamp_retrieval.h | 53 + ...l.c => e_acsl_segment_observation_model.c} | 59 +- .../e_acsl_segment_omodel_debug.c | 53 + .../e_acsl_segment_timestamp_retrieval.c | 60 + .../segment_model/e_acsl_segment_tracking.c | 1076 ++++++++++++++++ .../segment_model/e_acsl_segment_tracking.h | 1088 +---------------- .../segment_model/e_acsl_shadow_layout.c | 227 ++++ .../segment_model/e_acsl_shadow_layout.h | 206 +--- 54 files changed, 4750 insertions(+), 3564 deletions(-) create mode 100644 src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c create mode 100644 src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.c create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.c create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.c create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.c create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.c create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.h rename src/plugins/e-acsl/share/e-acsl/internals/{e_acsl_printf.h => e_acsl_rtl_io.c} (82%) create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.h create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.c rename src/plugins/e-acsl/share/e-acsl/internals/{e_acsl_string.h => e_acsl_rtl_string.h} (69%) create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.c create mode 100644 src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.c rename src/plugins/e-acsl/share/e-acsl/libc_replacements/{e_acsl_format.h => e_acsl_stdio.c} (86%) create mode 100644 src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.h rename src/plugins/e-acsl/share/e-acsl/libc_replacements/{e_acsl_libc_replacements.h => e_acsl_string.c} (70%) create mode 100644 src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.h create mode 100644 src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.c delete mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_api.h rename src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/{e_acsl_bittree_mmodel.c => e_acsl_bittree_observation_model.c} (82%) create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_omodel_debug.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_timestamp_retrieval.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.h create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.c rename src/plugins/e-acsl/share/e-acsl/observation_model/{e_acsl_leak.h => internals/e_acsl_heap_tracking.h} (66%) create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_omodel_debug.h rename src/plugins/e-acsl/share/e-acsl/observation_model/{e_acsl_safe_locations.h => internals/e_acsl_safe_locations.c} (69%) create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.h create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_timestamp_retrieval.h rename src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/{e_acsl_segment_mmodel.c => e_acsl_segment_observation_model.c} (87%) create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_omodel_debug.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_timestamp_retrieval.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.c create mode 100644 src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl.h b/src/plugins/e-acsl/share/e-acsl/e_acsl.h index e046cc017a7..4bbbe5c05e0 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl.h +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl.h @@ -21,550 +21,86 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl.h + * \file * \brief Public C API of E-ACSL Runtime Library * * Functions and variables with non-static linkage used for instrumentation. ***************************************************************************/ -#ifndef E_ACSL_MMODEL_H -#define E_ACSL_MMODEL_H +/* Memory model settings + * Memory model: + * E_ACSL_BITTREE_MMODEL - use Patricia-trie (tree-based) memory model, or + * E_ACSL_SEGMENT_MMODEL - use segment-based (shadow) memory model + * Verbosity level: + * E_ACSL_VERBOSE - put an executable in verbose mode that + * prints extra messages (unset by default) + * Debug Features: + * E_ACSL_DEBUG - enable debug features in RTL (unset by default) + * E_ACSL_DEBUG_VERBOSE - verbose debug output (via DVLOG macro) + * E_ACSL_DEBUG_LOG - name of the log file where debug messages are + * output. The file name should be unquoted string with '-' + * (set by default) indicating a standard stream + * Validity: + * E_ACSL_WEAK_VALIDITY - use notion of weak validity + * Given an expression `(p+i)`, where `p` is a pointer and `i` is an + * integer offset weak validity indicates that `(p+i)` is valid if it + * belongs to memory allocation. In strong validity `(p+i)` is valid + * iff both `p` and `(p+i)` belong to memory allocation and to the same + * memory block. + * Temporal analysis: + * E_ACSL_TEMPORAL - enable temporal analysis in RTL + * Assertions: + * E_ACSL_NO_ASSERT_FAIL - do not issue abort signal of E-ACSL + * assertion failure + * E_ACSL_FAIL_EXITCODE - do not issue abort signal but exit with a + * given code + * Shadow spaces (only for segment model): + * E_ACSL_STACK_SIZE - size (in MB) of the tracked program stack + * E_ACSL_HEAP_SIZE - size (in MB) of the tracked program heap + * String functions: + * E_ACSL_NO_COMPILER_BUILTINS - if undefined (default) then use + * compiler builtin string functions (e.g., memset -> __builtin_memset) + * Behaviour of assert: + * E_ACSL_EXTERNAL_ASSERT - if this macro is defined then function + * `__e_acsl_assert` is excluded from compilation. This is to allow + * providing alternative definitions of assertions by users. + * Memory deallocation: + * E_ACSL_FREE_VALID_ADDRESS -- Clause 7.20.3.2 of C99 standard states + * that NULL is a valid input to free: + * "The free function causes the space pointed to by ptr [its argument] + * to be deallocated, that is, made available for further allocation. + * If ptr is a null pointer, no action occurs." + * Yet, some tools insist that it is a bug. For instance, there is a + * bunch of test cases in Toyota ITC Benchmarks. To make such tools + * happy the following option is introduced. By default it should be + * undefined (disabled) though. +*/ + +/************************************************************************/ +/*** User API {{{ ***/ +/************************************************************************/ + +#include "instrumentation_model/e_acsl_assert.h" +#include "observation_model/e_acsl_heap.h" -#include <stddef.h> -#include <stdio.h> -#include "e_acsl_alias.h" - -/************************************************************************/ -/*** API Prefixes {{{ ***/ -/************************************************************************/ - -/* Assert */ -#define sound_verdict export_alias(sound_verdict) -#define assert export_alias(assert) - -/* Tracking */ -#define delete_block export_alias(delete_block) -#define store_block export_alias(store_block) -#define store_block_duplicate export_alias(store_block_duplicate) - -/* Predicates */ -#define offset export_alias(offset) -#define base_addr export_alias(base_addr) -#define block_length export_alias(block_length) -#define valid_read export_alias(valid_read) -#define valid export_alias(valid) -#define initialized export_alias(initialized) -#define freeable export_alias(freeable) - -/* Block initialization */ -#define mark_readonly export_alias(mark_readonly) -#define initialize export_alias(initialize) -#define full_init export_alias(full_init) - -/* Libc drop-in replacements */ -#define builtin_strlen export_alias(builtin_strlen) -#define builtin_strcpy export_alias(builtin_strcpy) -#define builtin_strncpy export_alias(builtin_strncpy) -#define builtin_strcat export_alias(builtin_strcat) -#define builtin_strncat export_alias(builtin_strncat) -#define builtin_strncat export_alias(builtin_strncat) -#define builtin_strcmp export_alias(builtin_strcmp) -#define builtin_strncmp export_alias(builtin_strncmp) -#define builtin_memcpy export_alias(builtin_memcpy) -#define builtin_memset export_alias(builtin_memset) -#define builtin_memcmp export_alias(builtin_memcmp) -#define builtin_memmove export_alias(builtin_memmove) - -/* stdio.h replacement functions */ -#define builtin_printf export_alias(builtin_printf) -#define builtin_fprintf export_alias(builtin_fprintf) -#define builtin_dprintf export_alias(builtin_dprintf) -#define builtin_sprintf export_alias(builtin_sprintf) -#define builtin_snprintf export_alias(builtin_snprintf) -#define builtin_syslog export_alias(builtin_syslog) - -/* Memory state initialization */ -#define memory_clean export_alias(memory_clean) -#define mspaces_init export_alias(mspaces_init) -#define memory_init export_alias(memory_init) - -/* Heap size */ -#define heap_allocation_size export_alias(heap_allocation_size) -#define get_heap_allocation_size export_alias(get_heap_allocation_size) - -/* Temporal analysis */ -/* No need to encapsulate via ifdef: using these extra definitions does - not hurt, otherwise need to pass additional parameters to frama-c */ -#define temporal_store_nblock export_alias(temporal_store_nblock) -#define temporal_store_nreferent export_alias(temporal_store_nreferent) -#define temporal_save_nblock_parameter export_alias(temporal_save_nblock_parameter) -#define temporal_save_nreferent_parameter export_alias(temporal_save_nreferent_parameter) -#define temporal_save_copy_parameter export_alias(temporal_save_copy_parameter) -#define temporal_pull_parameter export_alias(temporal_pull_parameter) -#define temporal_save_return export_alias(temporal_save_return) -#define temporal_reset_parameters export_alias(temporal_reset_parameters) -#define temporal_pull_return export_alias(temporal_pull_return) -#define temporal_reset_return export_alias(temporal_reset_return) -#define temporal_memcpy export_alias(temporal_memcpy) -#define temporal_memset export_alias(temporal_memset) - -/* Infinity values for floating point types */ -#define math_HUGE_VAL export_alias(math_HUGE_VAL) -#define math_HUGE_VALF export_alias(math_HUGE_VALF) -#define math_INFINITY export_alias(math_INFINITY) -#define floating_point_exception export_alias(floating_point_exception) -/* }}} */ - -/************************************************************************/ -/*** Assertion {{{ ***/ -/************************************************************************/ - -/*! \brief Runtime assertion verifying a given predicate - * \param pred integer code of a predicate - * \param kind C string representing a kind an annotation (e.g., "Assertion") - * \param fct - * \param pred_txt stringified predicate - * \param file un-instrumented file of predicate placement - * \param line line of predicate placement in the un-instrumented file */ -/*@ requires pred != 0; - @ assigns \nothing; */ -void assert(int pred, const char *kind, const char *fct, const char *pred_txt, - const char * file, int line) - __attribute__((FC_BUILTIN)); -/* }}} */ - -/************************************************************************/ -/*** Dynamic memory allocation {{{ ***/ -/************************************************************************/ - -/*! \brief Drop-in replacement for \p malloc with memory tracking enabled. - * For further information, see \p malloc(3). */ -void * malloc(size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Drop-in replacement for \p calloc with memory tracking enabled. - * For further information, see \p calloc(3). */ -void * calloc(size_t nbr_elt, size_t size_elt) - __attribute__((FC_BUILTIN)); - -/*! \brief Drop-in replacement for \p realloc with memory tracking enabled. - * For further information, see realloc(3) */ -void * realloc(void * ptr, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Drop-in replacement for \p free with memory tracking enabled. - * For further information, see \p free(3). */ -void free(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Allocate `size` bytes of memory such that the allocation's base - * address is an even multiple of alignment. - * - * \param alignment - should be the power of two - * \param size - should be the multiple of alignment - * \return - pointer to the allocated memory if the restrictions placed on size - * and alignment parameters hold. NULL is returned otherwise. */ -void *aligned_alloc(size_t alignment, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Allocate size bytes and place the address of the allocated memory in - * `*memptr`. The address of the allocated memory will be a multiple of - * `alignment`, which must be a power of two and a multiple of `sizeof(void*)`. - * If size is 0, then the value placed in *memptr is NULL. */ -int posix_memalign(void **memptr, size_t alignment, size_t size) - __attribute__((FC_BUILTIN)); /* }}} */ /************************************************************************/ -/*** Memory tracking {{{ ***/ +/*** Generated code API {{{ ***/ /************************************************************************/ -/*! \brief Initialize memory locations. */ -void mspaces_init() - __attribute__((FC_BUILTIN)); - -/*! \brief Initialize memory tracking state. - * Called before any other statement in \p main */ -/*@ assigns \nothing; */ -void memory_init(int *argc_ref, char ***argv, size_t ptr_size) - __attribute__((FC_BUILTIN)); - -/*! \brief Clean-up memory tracking state before a program's termination. */ -/*@ assigns \nothing; */ -void memory_clean(void) - __attribute__((FC_BUILTIN)); - -/*! \brief Store stack or globally-allocated memory block - * starting at an address given by \p ptr. - * - * \param ptr base address of the tracked memory block - * \param size size of the tracked block in bytes */ -/*@ ensures \result == ptr; - @ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; */ -void * store_block(void * ptr, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Same as `store_block`, but first check - * checks whether a block with a base address given by `ptr` exists in the - * tracked allocation and remove it before storing a new block. - * - * \param ptr base address of the tracked memory block - * \param size size of the tracked block in bytes */ -/*@ ensures \result == ptr; - @ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; */ -void * store_block_duplicate(void * ptr, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Remove a memory block which base address is \p ptr from tracking. */ -/*@ assigns \nothing; */ -void delete_block(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Mark the \p size bytes starting at an address given by \p ptr as - * initialized. */ -/*@ assigns \nothing; */ -void initialize(void * ptr, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Mark all bytes belonging to a memory block which start address is - * given by \p ptr as initialized. */ -/*@ assigns \nothing; */ -void full_init(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Mark a memory block which start address is given by \p ptr as - * read-only. */ -/*@ assigns \nothing; */ -void mark_readonly(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief A variable holding a byte size of tracked heap allocation. */ -extern size_t heap_allocation_size; - -/*@ predicate diffSize{L1,L2}(integer i) = - \at(heap_allocation_size, L1) - - \at(heap_allocation_size, L2) == i; */ - -/*! \brief Return the cumulative size (in bytes) of tracked heap allocation. */ -/*@ assigns \result \from heap_allocation_size; */ -size_t get_heap_allocation_size(void) - __attribute__((FC_BUILTIN)); +#include "observation_model/e_acsl_observation_model.h" +#include "instrumentation_model/e_acsl_temporal.h" +#include "numerical_model/e_acsl_floating_point.h" +#include "numerical_model/e_acsl_gmp_api.h" /* }}} */ /************************************************************************/ -/*** E-ACSL predicates {{{ ***/ +/*** Builtins {{{ ***/ /************************************************************************/ -/*!\brief Implementation of the \b \\freeable predicate of E-ACSL. - * - * Evaluate to a non-zero value if \p ptr points to a start address of - * a block allocated via \p malloc, \p calloc or \p realloc. */ -/*@ assigns \result \from ptr; */ -int freeable(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Implementation of the \b \\valid predicate of E-ACSL. - * - * \\valid evaluates an expression of the form `p+i`, where `p` is a pointer - * and `i` is an integer offset and returns `true` if both `p` and `p+i` belong - * to the same allocated memory block. - * - * @param ptr - memory address under question - * @param size - the byte-length (starting from `ptr`) of the memory area which - * needs to be valid - * @param base - if `ptr` can be represented by the expression `p+i` then - * `base` refers to `p` - * @param addrof_base - if `ptr` can be represented by the expression `p+i` - * then `addrof_base` refers to `&p`. For the cases when the address of `p` - * cannot be taken (e.g., address of a static array or a constant value - * casted to a pointer) then `addrof_base` is zero. - * - * @returns - * `true` if regions `[ptr, ptr + size]` and `[base, base + size]` are - * writable and lie within the same memory block and `false` otherwise. - * If `weak validity` is used (see macro `E_ACSL_WEAK_VALIDITY`) - * then only region `[ptr, ptr + size]` should lie within the same block - * and be writable. - */ -/*@ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; - @ behavior valid: - @ assumes \valid(((char *)ptr)+(0..size-1)); - @ assumes - @ size <= 0 || - @ ! \separated(((char *)ptr)+(0..size-1), - @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); - @ ensures \result == 1; - @ behavior invalid_ptr: - @ assumes ! \valid(((char *)ptr)+(0..size-1)); - @ ensures \result == 0; - @ behavior separated_ptr: - @ assumes size > 0; - @ assumes \separated(((char *)ptr)+(0..size-1), - @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); - @ ensures \result == 0; - @ complete behaviors; - @ disjoint behaviors; - @ */ -int valid(void * ptr, size_t size, void *base, void *addrof_base) - __attribute__((FC_BUILTIN)); - -/*! \brief Implementation of the \b \\valid_read predicate of E-ACSL. - * - * Same as ::valid except the checked memory locations are only - * required to be allocated. */ -/*@ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; - @ behavior valid: - @ assumes \valid_read(((char *)ptr)+(0..size-1)); - @ assumes - @ size <= 0 || - @ ! \separated(((char *)ptr)+(0..size-1), - @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); - @ ensures \result == 1; - @ behavior invalid_ptr: - @ assumes ! \valid_read(((char *)ptr)+(0..size-1)); - @ ensures \result == 0; - @ behavior separated_ptr: - @ assumes size > 0; - @ assumes \separated(((char *)ptr)+(0..size-1), - @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); - @ ensures \result == 0; - @ complete behaviors; - @ disjoint behaviors; - @ */ -int valid_read(void * ptr, size_t size, void *base, void *addrof_base) - __attribute__((FC_BUILTIN)); - -/*! \brief Implementation of the \b \\base_addr predicate of E-ACSL. - * Return the base address of the memory block containing an address given - * by \p ptr */ -/*@ ensures \result == \base_addr(ptr); - @ assigns \result \from ptr; */ -void * base_addr(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Implementation of the \b \\block_length predicate of E-ACSL. - * Return the byte length of the memory block of the block containing a memory - * address given by \p ptr */ -/*@ ensures \result == \block_length(ptr); - @ assigns \result \from ptr; */ -size_t block_length(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Implementation of the \b \\offset predicate of E-ACSL. - * Return the byte offset of address given by \p ptr within a memory blocks - * it belongs to */ -/*@ ensures \result == \offset(ptr); - @ assigns \result \from ptr; */ -size_t offset(void * ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Implementation of the \b \\initialized predicate of E-ACSL. - * Return a non-zero value if \p size bytes starting from an address given by - * \p ptr are initialized and zero otherwise. */ -/*@ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; - @ behavior initialized: - @ assumes \initialized(((char *)ptr)+(0..size-1)); - @ ensures \result == 1; - @ behavior uninitialized: - @ assumes ! \initialized(((char *)ptr)+(0..size-1)); - @ ensures \result == 0; - @ complete behaviors; - @ disjoint behaviors; - @ */ -int initialized(void * ptr, size_t size) - __attribute__((FC_BUILTIN)); -/* }}} */ - -/************************************************************************/ -/*** Drop-in replacement functions {{{ ***/ -/************************************************************************/ - -/*@ assigns dest[0..] \from src[0..]; - @ assigns \result \from dest; - @ ensures \result == dest; */ -char *builtin_strcpy(char *dest, const char *src) - __attribute__((FC_BUILTIN)); - -/*@ assigns dest[0..n - 1] \from src[0..n-1]; - @ assigns \result \from dest; - @ ensures \result == dest; */ -char *builtin_strncpy(char *dest, const char *src, size_t n) - __attribute__((FC_BUILTIN)); - -/*@ assigns \result \from s[0..]; */ -size_t builtin_strlen(const char *s) - __attribute__((FC_BUILTIN)); - -/*@ assigns dest[..] \from src[0..]; - @ assigns \result \from dest; - @ ensures \result == dest; */ -char *builtin_strcat(char *dest, const char *src) - __attribute__((FC_BUILTIN)); - -/*@ assigns dest[..] \from src[0..n]; - @ assigns \result \from dest; - @ ensures \result == dest; */ -char *builtin_strncat(char *dest, const char *src, size_t n) - __attribute__((FC_BUILTIN)); - -/*@ assigns \result \from s1[0..], s2[0..]; */ -int builtin_strcmp(const char *s1, const char *s2) - __attribute__((FC_BUILTIN)); - -/*@ assigns \result \from s1[0..n-1], s2[0..n-1]; */ -int builtin_strncmp(const char *s1, const char *s2, size_t n) - __attribute__((FC_BUILTIN)); - -/*@ assigns ((char*)dest)[0..n-1] \from ((char*)src)[0..n-1]; - @ assigns \result \from dest; - @ ensures \result == dest; */ -void *builtin_memcpy(void *dest, const void *src, size_t n) - __attribute__((FC_BUILTIN)); - -/*@ assigns ((char*)s)[0..n-1] \from c; - @ assigns \result \from s; - @ ensures \result == s; */ -void *builtin_memset(void *s, int c, size_t n) - __attribute__((FC_BUILTIN)); - -/*@ assigns ((char*)dest)[0..n-1] \from ((char*)src)[0..n-1]; - @ assigns \result \from dest; - @ ensures \result == dest; */ -void *builtin_memmove(void *dest, const void *src, size_t n) - __attribute__((FC_BUILTIN)); - -/*@ assigns \result \from ((char*)s1)[0..n-1], ((char*)s2)[0..n-1]; */ -int builtin_memcmp(const void *s1, const void *s2, size_t n) - __attribute__((FC_BUILTIN)); - -/* }}} */ - -/************************************************************************/ -/*** Format functions {{{ ***/ -/************************************************************************/ - -/** \brief `printf` with error checking. */ -int builtin_printf(const char *fmtdesc, const char *fmt, ...) - __attribute__((FC_BUILTIN)); - -/** \brief `fprintf` with error checking. */ -int builtin_fprintf(const char *fmtdesc, FILE *stream, const char *fmt, ...) - __attribute__((FC_BUILTIN)); - -/** \brief `dprintf` with error checking. */ -int builtin_dprintf(const char *fmtdesc, int fd, const char *fmt, ...) - __attribute__((FC_BUILTIN)); - -/** \brief `sprintf` with error checking. */ -int builtin_sprintf(const char *fmtdesc, char *str, const char *fmt, ...) - __attribute__((FC_BUILTIN)); - -/** \brief `snprintf` with error checking. */ -int builtin_snprintf - (const char *fmtdesc, char *str, size_t size, const char *fmt, ...) - __attribute__((FC_BUILTIN)); - -/** \brief `syslog` with error checking. */ -int builtin_syslog(const char *fmtdesc, int priority, const char *fmt, ...) - __attribute__((FC_BUILTIN)); -/* }}} */ - -/************************************************************************/ -/*** Machine-dependent infinity values for flating points {{{ ***/ -/************************************************************************/ - -/* Positive infinity for doubles: same as HUGE_VAL */ -extern double math_HUGE_VAL - __attribute__((FC_BUILTIN)); - -/* Positive infinity for floats: same as HUGE_VALF */ -extern float math_HUGE_VALF - __attribute__((FC_BUILTIN)); - -/* Representation of infinity value for doubles: same as INFINITY */ -extern double math_INFINITY - __attribute__((FC_BUILTIN)); - -/* Check for floating point exception at a given execution point */ -extern void floating_point_exception(const char *s) - __attribute__((FC_BUILTIN)); -/* }}} */ - -/************************************************************************/ -/*** Temporal analysis {{{ ***/ -/************************************************************************/ - -/*! \brief Take origin number of a memory block containing `block_addr` and - * store it as a referent number of a pointer given by `ptr_addr`. */ -/*@ assigns \nothing; */ -void temporal_store_nblock(void *ptr_addr, void *block_addr) - __attribute__((FC_BUILTIN)); - -/*! \brief Same as `temporal_store_nblock` but take a referent - * number of `block_addr` instead */ -/*@ assigns \nothing; */ -void temporal_store_nreferent(void *ptr_addr, void *block_addr) - __attribute__((FC_BUILTIN)); - -/*! \brief store struct { .ptr = ptr, .temporal_flow = TReferentN } - * in the global parameter array. */ -/*@ assigns \nothing; */ -void temporal_save_nreferent_parameter(void *ptr, unsigned int param) - __attribute__((FC_BUILTIN)); - -/*! \brief store struct { .ptr = ptr, .temporal_flow = TBlockN } - * in the global parameter array. */ -/*@ assigns \nothing; */ -void temporal_save_nblock_parameter(void *ptr, unsigned int param) - __attribute__((FC_BUILTIN)); - -/*! \brief store struct { .ptr = ptr, .temporal_flow = TCopy } in the global - * parameter array. */ -/*@ assigns \nothing; */ -void temporal_save_copy_parameter(void *ptr, unsigned int param) - __attribute__((FC_BUILTIN)); - -/*! \brief Assign a referent number of `ptr` based on the record in the global - * parameter array at index `param`. */ -/*@ assigns \nothing; */ -void temporal_pull_parameter(void *ptr, unsigned int param, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Nullify global parameter array */ -/*@ assigns \nothing; */ -void temporal_reset_parameters() - __attribute__((FC_BUILTIN)); - -/*! \brief Save temporal referent number of `ptr` in a placeholder variable - * tracking the referent number of a function's return. */ -/*@ assigns \nothing; */ -void temporal_save_return(void *ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Take a temporal referent stored in the placeholder tracking return - * values as a temporal referent number of `ptr`. */ -/*@ assigns \nothing; */ -void temporal_pull_return(void *ptr) - __attribute__((FC_BUILTIN)); - -/*! \brief Nullify a placeholder variable tracking the referent number of a - * function's return. */ -/*@ assigns \nothing; */ -void temporal_reset_return() - __attribute__((FC_BUILTIN)); - -/*! \brief Copy temporal shadow data from [src, src + size] to - * [dest, dest + size]. Counterpart of the memcpy function */ -/*@ assigns \nothing; */ -void temporal_memcpy(void *dest, void *src, size_t size) - __attribute__((FC_BUILTIN)); - -/*! \brief Set temporal shadow data from [src, src + size] to 0. - * Counterpart of memset the function */ -/*@ assigns \nothing; */ -void temporal_memset(void *dest, int n, size_t size) - __attribute__((FC_BUILTIN)); +#include "libc_replacements/e_acsl_stdio.h" +#include "libc_replacements/e_acsl_string.h" /* }}} */ -#endif diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c index eb405faf53b..15c2a8b2491 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c @@ -20,122 +20,32 @@ /* */ /**************************************************************************/ -/*! *********************************************************************** - * \file e_acsl_rtl.c - * \brief RTL configuration and assembly -***************************************************************************/ - /* Get default definitions and macros e.g., PATH_MAX */ #ifndef _DEFAULT_SOURCE # define _DEFAULT_SOURCE 1 #endif -#include "e_acsl_alias.h" -#include "e_acsl_malloc.h" -#include "e_acsl_string.h" -#include "e_acsl_bits.h" -#include "e_acsl_printf.h" -#include "e_acsl_debug.h" -#include "e_acsl_shexec.h" -#include "e_acsl_trace.h" -#include "e_acsl_assert.h" -#include "e_acsl_floating_point.h" -#include "e_acsl_safe_locations.h" -#include "e_acsl_temporal_timestamp.h" -#include "e_acsl.h" - -/* Memory model settings - * Memory model: - * E_ACSL_BITTREE_MMODEL - use Patricia-trie (tree-based) memory model, or - * E_ACSL_SEGMENT_MMODEL - use segment-based (shadow) memory model - * Verbosity level: - * E_ACSL_VERBOSE - put an executable in verbose mode that - * prints extra messages (unset by default) - * Debug Features: - * E_ACSL_DEBUG - enable debug features in RTL (unset by default) - * E_ACSL_DEBUG_VERBOSE - verbose debug output (via DVLOG macro) - * E_ACSL_DEBUG_LOG - name of the log file where debug messages are - * output. The file name should be unquoted string with '-' - * (set by default) indicating a standard stream - * Validity: - * E_ACSL_WEAK_VALIDITY - use notion of weak validity - * Given an expression `(p+i)`, where `p` is a pointer and `i` is an - * integer offset weak validity indicates that `(p+i)` is valid if it - * belongs to memory allocation. In strong validity `(p+i)` is valid - * iff both `p` and `(p+i)` belong to memory allocation and to the same - * memory block. - * Temporal analysis: - * E_ACSL_TEMPORAL - enable temporal analysis in RTL - * Assertions: - * E_ACSL_NO_ASSERT_FAIL - do not issue abort signal of E-ACSL - * assertion failure - * E_ACSL_FAIL_EXITCODE - do not issue abort signal but exit with a - * given code - * Shadow spaces (only for segment model): - * E_ACSL_STACK_SIZE - size (in MB) of the tracked program stack - * E_ACSL_HEAP_SIZE - size (in MB) of the tracked program heap - * String functions: - * E_ACSL_NO_COMPILER_BUILTINS - if undefined (default) then use - * compiler builtin string functions (e.g., memset -> __builtin_memset) - * Behaviour of assert: - * E_ACSL_EXTERNAL_ASSERT - if this macro is defined then function - * `__e_acsl_assert` is excluded from compilation. This is to allow - * providing alternative definitions of assertions by users. - * Memory deallocation: - * E_ACSL_FREE_VALID_ADDRESS -- Clause 7.20.3.2 of C99 standard states - * that NULL is a valid input to free: - * "The free function causes the space pointed to by ptr [its argument] - * to be deallocated, that is, made available for further allocation. - * If ptr is a null pointer, no action occurs." - * Yet, some tools insist that it is a bug. For instance, there is a - * bunch of test cases in Toyota ITC Benchmarks. To make such tools - * happy the following option is introduced. By default it should be - * undefined (disabled) though. -*/ - -/* Functionality tracking leaks is shared between models */ -#include "e_acsl_leak.h" - -/* Print a header indicating current configuration of a run to STDIN. */ -static void describe_run(); - -/* Select memory model, either segment-based or bittree-based model should - be defined */ -#if defined E_ACSL_SEGMENT_MMODEL -# include "segment_model/e_acsl_segment_mmodel.c" -#elif defined E_ACSL_BITTREE_MMODEL -# include "bittree_model/e_acsl_bittree_mmodel.c" -#else -# error "No E-ACSL memory model defined. Aborting compilation" -#endif - -/* Headers containing implementation of functions belonging to the E-ACSL - external API shared across different memory models */ -#include "e_acsl_libc_replacements.h" /* */ -#include "e_acsl_format.h" /* format functions with error checking */ -#include "e_acsl_temporal.h" /* temporal analysis */ - -#ifdef E_ACSL_WEAK_VALIDITY -# define E_ACSL_VALIDITY_DESC "weak" -#else -# define E_ACSL_VALIDITY_DESC "strong" -#endif - -/* Print basic configuration before each run */ -static void describe_run() { -#if defined(E_ACSL_VERBOSE) - rtl_printf("/* ========================================================= */\n"); - rtl_printf(" * E-ACSL instrumented run\n" ); - rtl_printf(" * Memory tracking: %s\n", E_ACSL_MMODEL_DESC); -#ifdef E_ACSL_SEGMENT_MMODEL - rtl_printf(" * Heap %d MB\n", E_ACSL_HEAP_SIZE); - rtl_printf(" * Stack %d MB\n", E_ACSL_STACK_SIZE); -#endif - rtl_printf(" * Temporal checks: %s\n", E_ACSL_TEMPORAL_DESC); - rtl_printf(" * Execution mode: %s\n", E_ACSL_DEBUG_DESC); - rtl_printf(" * Assertions mode: %s\n", E_ACSL_ASSERT_NO_FAIL_DESC); - rtl_printf(" * Validity notion: %s\n", E_ACSL_VALIDITY_DESC); - rtl_printf(" * Format Checks: %s\n", E_ACSL_FORMAT_VALIDITY_DESC); - rtl_printf("/* ========================================================= */\n"); -#endif -} +// Internals +#include "internals/e_acsl_bits.c" +#include "internals/e_acsl_debug.c" +#include "internals/e_acsl_malloc.c" +#include "internals/e_acsl_private_assert.c" +#include "internals/e_acsl_rtl_io.c" +#include "internals/e_acsl_rtl_string.c" +#include "internals/e_acsl_shexec.c" +#include "internals/e_acsl_trace.c" + +// Instrumentation model +#include "instrumentation_model/e_acsl_assert.c" +#include "instrumentation_model/e_acsl_temporal.c" + +// Observation model +#include "observation_model/e_acsl_heap.c" +#include "observation_model/e_acsl_observation_model.c" + +// Numerical model +#include "numerical_model/e_acsl_floating_point.c" + +// Libc replacements +#include "libc_replacements/e_acsl_stdio.c" +#include "libc_replacements/e_acsl_string.c" diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c new file mode 100644 index 00000000000..5ede932a5a8 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.c @@ -0,0 +1,63 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief E-ACSL assertions and abort statements implementation. +***************************************************************************/ + +#include <stdlib.h> + +#include "../internals/e_acsl_private_assert.h" +#include "../internals/e_acsl_rtl_io.h" + +#include "e_acsl_assert.h" + +int runtime_sound_verdict = 1; + +#ifndef E_ACSL_EXTERNAL_ASSERT +/*! \brief Default implementation of E-ACSL runtime assertions */ +void runtime_assert(int predicate, const char *kind, const char *fct, + const char *pred_txt, const char * file, int line) { + if (runtime_sound_verdict) { + if (! predicate) { + STDERR("%s: In function '%s'\n" + "%s:%d: Error: %s failed:\n" + "\tThe failing predicate is:\n" + "\t%s.\n", + file, fct, file, line, kind, pred_txt); +#ifndef E_ACSL_NO_ASSERT_FAIL /* Do fail on assertions */ +#ifdef E_ACSL_FAIL_EXITCODE /* Fail by exit with a given code */ + exit(E_ACSL_FAIL_EXITCODE); +#else + raise_abort(file, line); /* Raise abort signal */ +#endif +#endif + } + } else + STDERR("%s: In function '%s'\n" + "%s:%d: Warning: no sound verdict for %s (guess: %s).\n" + "\tthe considered predicate is:\n" + "\t%s\n", + file, fct, file, line, kind, predicate ? "ok": "FAIL", pred_txt); +} +#endif diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h index baadfa94781..9bdf8a8b12e 100644 --- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_assert.h @@ -21,124 +21,35 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_assert.h + * \file * \brief E-ACSL assertions and abort statements. ***************************************************************************/ #ifndef E_ACSL_ASSERT_H #define E_ACSL_ASSERT_H -#include <sys/types.h> -#include <signal.h> -#include <limits.h> -#include "e_acsl_alias.h" -#include "e_acsl_printf.h" -#include "e_acsl_string.h" -#include "e_acsl_trace.h" +#include "../internals/e_acsl_alias.h" -#define runtime_assert export_alias(assert) #define runtime_sound_verdict export_alias(sound_verdict) - -/*! \brief Drop-in replacement for abort function */ -#define runtime_abort() exec_abort(__LINE__, __FILE__) - -/*! \brief Output a message to error stream using printf-like format string - * and abort the execution. - * - * This is a wrapper for \p eprintf combined with \p abort */ -static void vabort(char *fmt, ...); - -/*! \brief Assert with printf-like error message support */ -#define vassert(expr, fmt, ...) \ - vassert_fail(expr, __LINE__, __FILE__, fmt, __VA_ARGS__) - -/* This ::exec_abort replaces `abort` via a macro at the top of this file */ -static void exec_abort(int line, const char *file) { -#ifdef E_ACSL_DEBUG -#ifndef E_ACSL_NO_TRACE - trace(); -#endif -#endif - raise(SIGABRT); -} - -/*! \brief Print a message to stderr and abort the execution */ -static void vabort(char *fmt, ...) { - va_list va; - sigset_t defer_abrt; - sigemptyset(&defer_abrt); - sigaddset(&defer_abrt,SIGABRT); - sigprocmask(SIG_BLOCK,&defer_abrt,NULL); - va_start(va,fmt); - _format(NULL,_charc_stderr,fmt,va); - va_end(va); - sigprocmask(SIG_UNBLOCK,&defer_abrt,NULL); - runtime_abort(); -} - -static void vassert_fail(int expr, int line, char *file, char *fmt, ...) { - if (!expr) { - char *afmt = "%s at %s:%d\n"; - char buf [strlen(fmt) + strlen(afmt) + PATH_MAX + 11]; - rtl_sprintf(buf, afmt, fmt, file, line); - fmt = buf; - - va_list va; - va_start(va,fmt); - _format(NULL,_charc_stderr,fmt,va); - va_end(va); - runtime_abort(); - } -} - -#ifdef E_ACSL_NO_ASSERT_FAIL -# define E_ACSL_ASSERT_NO_FAIL_DESC "pass through" -#else -# define E_ACSL_ASSERT_NO_FAIL_DESC "abort" -#endif +#define runtime_assert export_alias(assert) /*! E-ACSL instrumentation automatically sets this global to 0 if its verdict becomes unsound. TODO: may only happen for annotations containing memory-related properties. For arithmetic properties, the verdict is always sound (?). */ -int runtime_sound_verdict = 1; - -#ifndef E_ACSL_EXTERNAL_ASSERT -/*! \brief Default implementation of E-ACSL runtime assertions */ -void runtime_assert(int predicate, const char *kind, const char *fct, - const char *pred_txt, const char * file, int line) { - if (runtime_sound_verdict) { - if (! predicate) { - STDERR("%s: In function '%s'\n" - "%s:%d: Error: %s failed:\n" - "\tThe failing predicate is:\n" - "\t%s.\n", - file, fct, file, line, kind, pred_txt); -#ifndef E_ACSL_NO_ASSERT_FAIL /* Do fail on assertions */ -#ifdef E_ACSL_FAIL_EXITCODE /* Fail by exit with a given code */ - exit(E_ACSL_FAIL_EXITCODE); -#else - runtime_abort(); /* Raise abort signal */ -#endif -#endif - } - } else - STDERR("%s: In function '%s'\n" - "%s:%d: Warning: no sound verdict for %s (guess: %s).\n" - "\tthe considered predicate is:\n" - "\t%s\n", - file, fct, file, line, kind, predicate ? "ok": "FAIL", pred_txt); -} -#endif - -/* Instances of assertions shared accross different memory models */ - -/*! \brief Abort the execution if the size of the pointer computed during - * instrumentation (\p _ptr_sz) does not match the size of the pointer used - * by a compiler (\p void*) */ -#define arch_assert(_ptr_sz) \ - vassert(_ptr_sz == sizeof(void*), \ - "Mismatch of instrumentation- and compile-time pointer sizes: " \ - "%lu vs %lu\n", _ptr_sz, sizeof(void*)) - -#endif +extern int runtime_sound_verdict; + +/*! \brief Runtime assertion verifying a given predicate + * \param pred integer code of a predicate + * \param kind C string representing a kind an annotation (e.g., "Assertion") + * \param fct + * \param pred_txt stringified predicate + * \param file un-instrumented file of predicate placement + * \param line line of predicate placement in the un-instrumented file */ +/*@ requires pred != 0; + @ assigns \nothing; */ +void runtime_assert(int pred, const char *kind, const char *fct, const char *pred_txt, + const char * file, int line) + __attribute__((FC_BUILTIN)); + +#endif // E_ACSL_ASSERT_H \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.c new file mode 100644 index 00000000000..92f8f71d164 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.c @@ -0,0 +1,141 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#ifdef E_ACSL_TEMPORAL + +#include <stddef.h> + +#include "../internals/e_acsl_private_assert.h" +#include "../observation_model/internals/e_acsl_omodel_debug.h" +#include "../observation_model/internals/e_acsl_timestamp_retrieval.h" +#include "e_acsl_temporal_timestamp.h" + +#include "e_acsl_temporal.h" + +/* Temporal store {{{ */ +void temporal_store_nblock(void *lhs, void *rhs) { + store_temporal_referent(lhs, origin_timestamp(rhs)); +} + +void temporal_store_nreferent(void *lhs, void *rhs) { + store_temporal_referent(lhs, referent_timestamp(rhs)); +} +/* }}} */ + +/* Memcpy/memset {{{ */ +void temporal_memcpy(void *dest, void *src, size_t size) { + /* Memcpy is only relevant for pointers here, so if there is a + * copy under a pointer's size then there no point in copying memory*/ + if (size >= sizeof(void*)) { + DVALIDATE_ALLOCATED(src, size, src); + DVALIDATE_WRITEABLE(dest, size, dest); + void *dest_shadow = (void *)temporal_referent_shadow(dest); + void *src_shadow = (void *)temporal_referent_shadow(src); + memcpy(dest_shadow, src_shadow, size); + } +} + +void temporal_memset(void *dest, int c, size_t size) { + DVALIDATE_WRITEABLE(dest, size, dest); + void *dest_shadow = (void *)temporal_referent_shadow(dest); + memset(dest_shadow, 0, size); +} +/* }}} */ + +/* Function parameters {{{ */ +void temporal_save_nblock_parameter(void *ptr, unsigned int param) { + parameter_referents[param].ptr = ptr; + parameter_referents[param].temporal_flow = TBlockN; +} + +void temporal_save_nreferent_parameter(void *ptr, unsigned int param) { + parameter_referents[param].ptr = ptr; + parameter_referents[param].temporal_flow = TReferentN; +} + +void temporal_save_copy_parameter(void *ptr, unsigned int param) { + parameter_referents[param].ptr = ptr; + parameter_referents[param].temporal_flow = TCopy; +} + +void temporal_pull_parameter(void *ptr, unsigned int param, size_t size) { + struct temporal_parameter *tpar = ¶meter_referents[param]; + switch(tpar->temporal_flow) { + case TBlockN: + store_temporal_referent(ptr, origin_timestamp(tpar->ptr)); + break; + case TReferentN: + store_temporal_referent(ptr, referent_timestamp(tpar->ptr)); + break; + case TCopy: + temporal_memcpy(ptr, tpar->ptr, size); + break; + default: + private_assert(0, "Unreachable", NULL); + } +} + +void temporal_reset_parameters() { + reset_parameter_referents(); +} +/* }}} */ + +/* Return values {{{ */ +void temporal_save_return(void *ptr) { + return_referent = (ptr, sizeof(void*)) ? referent_timestamp(ptr) : 0; +} + +void temporal_pull_return(void *ptr) { + store_temporal_referent(ptr, return_referent); +} + +void temporal_reset_return() { + return_referent = 0; +} +/* }}} */ + +/* Temporal valid {{{ */ +int temporal_valid(void *ptr, void *addr_of_ptr) { + /* Could check for NULL, but since temporal_valid if ran by `valid`, this + * has been already checked. + * FIXME: If the address of pointer and the pointer itself reference the same + * address the access is deemed temporally valid by default. + * One issue associated with such checking is the case when a pointer points + * to itself. One way to address such issue is to mark pointers, arrays and + * integers differently. Here one can use the "readonly" bit to mark + * something which does not need to be checked (e.g. arrays) and then + * recognise this mark. Blocks can be recognised as readonly by using range + * checking. For instance if some existing block belongs to a text segment + * then it is readonly. */ + if (addr_of_ptr && (uintptr_t)ptr != (uintptr_t)addr_of_ptr) { + /* The case where there is an actual pointer pointing to some memory + * chunk, otherwise temporal valid holds trivially since the block points + * to itself */ + uint32_t stored_referent = referent_timestamp(addr_of_ptr); + uint32_t actual_referent = origin_timestamp(ptr); + return stored_referent == actual_referent; + } + return 1; +} +/* }}} */ + +#endif // E_ACSL_TEMPORAL \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.h index a29dcd32ed0..37ea0f3a6be 100644 --- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.h +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal.h @@ -27,137 +27,111 @@ #ifndef E_ACSL_TEMPORAL_H #define E_ACSL_TEMPORAL_H -#include "e_acsl_temporal_timestamp.h" - -#ifdef E_ACSL_TEMPORAL -#define E_ACSL_TEMPORAL_DESC "enabled" - -/* Temporal timestamp retrieval [forward declarations] {{{ */ -/*! \brief Return origin time stamp associated with a memory block containing - * address given by `ptr`. `0` indicates an invalid timestamp, i.e., timestamp - * of a memory block which does not exist. */ -static uint32_t origin_timestamp(void *ptr); - -/*! \brief Return address of referent shadow */ -static uintptr_t temporal_referent_shadow(void *addr); - -/*! \brief Return referent time stamp associated with a pointer which address - * is given by `ptr`. This function expects that `ptr` is allocated and at - * least `sizeof(uintptr_t)` bytes long */ -uint32_t referent_timestamp(void *ptr); - -/*! \brief Store a referent number `ref` in the shadow of `ptr` */ -void store_temporal_referent(void *ptr, uint32_t ref); -/* }}} */ +#include <stddef.h> + +#include "../internals/e_acsl_alias.h" + +/* No need to encapsulate via ifdef: using these extra definitions does + not hurt, otherwise need to pass additional parameters to frama-c */ +#define temporal_store_nblock export_alias(temporal_store_nblock) +#define temporal_store_nreferent export_alias(temporal_store_nreferent) +#define temporal_save_nblock_parameter export_alias(temporal_save_nblock_parameter) +#define temporal_save_nreferent_parameter export_alias(temporal_save_nreferent_parameter) +#define temporal_save_copy_parameter export_alias(temporal_save_copy_parameter) +#define temporal_pull_parameter export_alias(temporal_pull_parameter) +#define temporal_save_return export_alias(temporal_save_return) +#define temporal_reset_parameters export_alias(temporal_reset_parameters) +#define temporal_pull_return export_alias(temporal_pull_return) +#define temporal_reset_return export_alias(temporal_reset_return) +#define temporal_memcpy export_alias(temporal_memcpy) +#define temporal_memset export_alias(temporal_memset) /* Temporal store {{{ */ -void temporal_store_nblock(void *lhs, void *rhs) { - store_temporal_referent(lhs, origin_timestamp(rhs)); -} -void temporal_store_nreferent(void *lhs, void *rhs) { - store_temporal_referent(lhs, referent_timestamp(rhs)); -} +/*! \brief Take origin number of a memory block containing `block_addr` and + * store it as a referent number of a pointer given by `ptr_addr`. */ +/*@ assigns \nothing; */ +void temporal_store_nblock(void *lhs, void *rhs) + __attribute__((FC_BUILTIN)); + +/*! \brief Same as `temporal_store_nblock` but take a referent + * number of `block_addr` instead */ +/*@ assigns \nothing; */ +void temporal_store_nreferent(void *lhs, void *rhs) + __attribute__((FC_BUILTIN)); /* }}} */ /* Memcpy/memset {{{ */ -void temporal_memcpy(void *dest, void *src, size_t size) { - /* Memcpy is only relevant for pointers here, so if there is a - * copy under a pointer's size then there no point in copying memory*/ - if (size >= sizeof(void*)) { - DVALIDATE_ALLOCATED(src, size, src); - DVALIDATE_WRITEABLE(dest, size, dest); - void *dest_shadow = (void *)temporal_referent_shadow(dest); - void *src_shadow = (void *)temporal_referent_shadow(src); - memcpy(dest_shadow, src_shadow, size); - } -} - -void temporal_memset(void *dest, int c, size_t size) { - DVALIDATE_WRITEABLE(dest, size, dest); - void *dest_shadow = (void *)temporal_referent_shadow(dest); - memset(dest_shadow, 0, size); -} + +/*! \brief Copy temporal shadow data from [src, src + size] to + * [dest, dest + size]. Counterpart of the memcpy function */ +/*@ assigns \nothing; */ +void temporal_memcpy(void *dest, void *src, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Set temporal shadow data from [src, src + size] to 0. + * Counterpart of memset the function */ +/*@ assigns \nothing; */ +void temporal_memset(void *dest, int c, size_t size) + __attribute__((FC_BUILTIN)); /* }}} */ /* Function parameters {{{ */ -void temporal_save_nblock_parameter(void *ptr, unsigned int param) { - parameter_referents[param].ptr = ptr; - parameter_referents[param].temporal_flow = TBlockN; -} - -void temporal_save_nreferent_parameter(void *ptr, unsigned int param) { - parameter_referents[param].ptr = ptr; - parameter_referents[param].temporal_flow = TReferentN; -} - -void temporal_save_copy_parameter(void *ptr, unsigned int param) { - parameter_referents[param].ptr = ptr; - parameter_referents[param].temporal_flow = TCopy; -} - -void temporal_pull_parameter(void *ptr, unsigned int param, size_t size) { - struct temporal_parameter *tpar = ¶meter_referents[param]; - switch(tpar->temporal_flow) { - case TBlockN: - store_temporal_referent(ptr, origin_timestamp(tpar->ptr)); - break; - case TReferentN: - store_temporal_referent(ptr, referent_timestamp(tpar->ptr)); - break; - case TCopy: - temporal_memcpy(ptr, tpar->ptr, size); - break; - default: - vassert(0, "Unreachable", NULL); - } -} - -void temporal_reset_parameters() { - reset_parameter_referents(); -} + +/*! \brief store struct { .ptr = ptr, .temporal_flow = TBlockN } + * in the global parameter array. */ +/*@ assigns \nothing; */ +void temporal_save_nblock_parameter(void *ptr, unsigned int param) + __attribute__((FC_BUILTIN)); + +/*! \brief store struct { .ptr = ptr, .temporal_flow = TReferentN } + * in the global parameter array. */ +/*@ assigns \nothing; */ +void temporal_save_nreferent_parameter(void *ptr, unsigned int param) + __attribute__((FC_BUILTIN)); + +/*! \brief store struct { .ptr = ptr, .temporal_flow = TCopy } in the global + * parameter array. */ +/*@ assigns \nothing; */ +void temporal_save_copy_parameter(void *ptr, unsigned int param) + __attribute__((FC_BUILTIN)); + +/*! \brief Assign a referent number of `ptr` based on the record in the global + * parameter array at index `param`. */ +/*@ assigns \nothing; */ +void temporal_pull_parameter(void *ptr, unsigned int param, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Nullify global parameter array */ +/*@ assigns \nothing; */ +void temporal_reset_parameters() + __attribute__((FC_BUILTIN)); /* }}} */ /* Return values {{{ */ -void temporal_save_return(void *ptr) { - return_referent = (ptr, sizeof(void*)) ? referent_timestamp(ptr) : 0; -} -void temporal_pull_return(void *ptr) { - store_temporal_referent(ptr, return_referent); -} - -void temporal_reset_return() { - return_referent = 0; -} +/*! \brief Save temporal referent number of `ptr` in a placeholder variable + * tracking the referent number of a function's return. */ +/*@ assigns \nothing; */ +void temporal_save_return(void *ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Take a temporal referent stored in the placeholder tracking return + * values as a temporal referent number of `ptr`. */ +/*@ assigns \nothing; */ +void temporal_pull_return(void *ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Nullify a placeholder variable tracking the referent number of a + * function's return. */ +/*@ assigns \nothing; */ +void temporal_reset_return() + __attribute__((FC_BUILTIN)); /* }}} */ /* Temporal valid {{{ */ -int temporal_valid(void *ptr, void *addr_of_ptr) { - /* Could check for NULL, but since temporal_valid if ran by `valid`, this - * has been already checked. - * FIXME: If the address of pointer and the pointer itself reference the same - * address the access is deemed temporally valid by default. - * One issue associated with such checking is the case when a pointer points - * to itself. One way to address such issue is to mark pointers, arrays and - * integers differently. Here one can use the "readonly" bit to mark - * something which does not need to be checked (e.g. arrays) and then - * recognise this mark. Blocks can be recognised as readonly by using range - * checking. For instance if some existing block belongs to a text segment - * then it is readonly. */ - if (addr_of_ptr && (uintptr_t)ptr != (uintptr_t)addr_of_ptr) { - /* The case where there is an actual pointer pointing to some memory - * chunk, otherwise temporal valid holds trivially since the block points - * to itself */ - uint32_t stored_referent = referent_timestamp(addr_of_ptr); - uint32_t actual_referent = origin_timestamp(ptr); - return stored_referent == actual_referent; - } - return 1; -} +int temporal_valid(void *ptr, void *addr_of_ptr); /* }}} */ -#else -# define E_ACSL_TEMPORAL_DESC "disabled" -#endif -#endif + +#endif // E_ACSL_TEMPORAL_H diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h index 7fb60f307fd..9a5275bfc15 100644 --- a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h @@ -28,9 +28,11 @@ #ifndef E_ACSL_TEMPORAL_TIMESTAMP_H /*{{{*/ #define E_ACSL_TEMPORAL_TIMESTAMP_H +#ifdef E_ACSL_TEMPORAL /*{{{*/ + +#include "../internals/e_acsl_rtl_string.h" #include <stdint.h> -#ifdef E_ACSL_TEMPORAL /*{{{*/ /*! Temporal time stamp generator variable * Time stamp is generated by incrementing `temporal_timestamp` variable. * Value distribution is as follows: diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_alias.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_alias.h index 481fbc8ece8..b462be35082 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_alias.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_alias.h @@ -21,8 +21,7 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_alias.h - * + * \file * \brief Function aliasing ***************************************************************************/ diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.c new file mode 100644 index 00000000000..2799c505d4a --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.c @@ -0,0 +1,32 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "e_acsl_bits.h" + +/* Check if we have little-endian and abort the execution otherwise. */ +#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ +# error "Big-endian byte order is unsupported" +#elif __BYTE_ORDER__ == __ORDER_PDP_ENDIAN__ +# error "PDP-endian byte order is unsupported" +#elif __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ +# error "Unknown byte order" +#endif diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.h index bb35a3cda56..84a2238ffb0 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_bits.h @@ -24,7 +24,7 @@ * \file e_acsl_bits.h * \brief Bit-level manipulations and endianness checks. * - * Should be included after e_acsl_printf.h and e_acsl_string.h headers. + * Should be included after e_acsl_rtl_io.h and e_acsl_rtl_string.h headers. * * FIXME: Present implementation is built for little-endian byte order. That * is, the implementation assumes that least significant bytes are stored at @@ -41,58 +41,49 @@ #include <stdint.h> #include <stddef.h> -/* Check if we have little-endian and abort the execution otherwise. */ -#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ -# error "Big-endian byte order is unsupported" -#elif __BYTE_ORDER__ == __ORDER_PDP_ENDIAN__ -# error "PDP-endian byte order is unsupported" -#elif __BYTE_ORDER__ != __ORDER_LITTLE_ENDIAN__ -# error "Unknown byte order" -#endif - /* Bit-level manipulations {{{ */ -/* 64-bit type with all bits set to ones */ +/** 64-bit type with all bits set to ones */ #define ONE UINT64_MAX -/* 64-bit type with all bits set to zeroes */ +/** 64-bit type with all bits set to zeroes */ #define ZERO (~ONE) -/* Set a given bit in a number to '1' (least-significant bit is at index zero). +/** Set a given bit in a number to '1' (least-significant bit is at index zero). * Example: * int x = 0; // x => 0000 0000 ... * bitset(0, x) // x => 1000 0000 ... * bitset(7, x) // x => 1000 0001 ... */ #define setbit(_bit,_number) (_number |= 1 << _bit) -/* Same as bitset but the `_bit` bit is cleared (i.e., set of zero) */ +/** Same as bitset but the `_bit` bit is cleared (i.e., set of zero) */ #define clearbit(_bit, _number) (_number &= ~(1 << _bit)) -/* Evaluate to a non-zero value if a given bit in a number is set to 1. +/** Evaluate to a non-zero value if a given bit in a number is set to 1. * int x = 1; // x => 1000 0000 ... * checkbit(0, x) // 1 * checkbit(1, x) // 0 */ #define checkbit(_bit, _number) ((_number >> _bit) & 1) -/* Toggle a given bit. +/** Toggle a given bit. * Example: * int x = 4; // x => 0010 0000 ... * togglebit(3, x); // x => 0000 0000 ... * togglebit(3, x); // x => 0010 0000 ... */ #define togglebit(_bit, _number) (_number ^= 1 << _bit) -/* Set a given bit to a specified value (e.g., 0 or 1). */ +/** Set a given bit to a specified value (e.g., 0 or 1). */ #define changebit(_bit, _val, _number) \ (_number ^= (-_val ^ _number) & (1 << _bit)) -/* Set up to 64 bits from left to right to ones. +/** Set up to 64 bits from left to right to ones. * Example: * int x = 0; // x => 00000000 00000000 ... * setbits64(11, x) // => 11111111 11100000 ... * setbits64(64, x) // => behaviour undefined */ #define setbits64(_bits, _number) (_number |= ~(ONE << _bits)) -/* Set up to 64 bits from left to right to ones skiping `_skip` leftmost bits +/** Set up to 64 bits from left to right to ones skiping `_skip` leftmost bits * Example: * int x = 0; // x => 00000000 00000000 ... * setbits64(11, x, 2) // => 00111111 11111000 ... @@ -100,7 +91,7 @@ #define setbits64_skip(_bits, _number, _skip) \ (_number |= ~(ONE << _bits) << _skip) -/* Evaluate to 1 if up to 64 bits from left to right in `_number` are set: +/** Evaluate to 1 if up to 64 bits from left to right in `_number` are set: * Example: * int x = 31; // x => 11111000 00000000 ... * checkbits64(4, x) // => 1 @@ -110,7 +101,7 @@ #define checkbits64(_bits, _number) \ ((_number & ~(ONE << _bits)) == (~(ONE << _bits))) -/* Same as checkbits64 but with skipping `_skip` leftmost bits +/** Same as checkbits64 but with skipping `_skip` leftmost bits * Example: * int x = 124; // x => 00111100 00000000 ... * checkbits64_skip(3, x, 2) // => 1 @@ -121,19 +112,19 @@ #define checkbits64_skip(_bits, _number, _skip) \ ((_number & ~(ONE << _bits) << _skip) == (~(ONE << _bits) << _skip)) -/* Same as `setbits64' but clear the bits (set to zeroes). */ +/** Same as `setbits64' but clear the bits (set to zeroes). */ #define clearbits64(_bits, _number) (_number &= ONE << _bits) -/* Set `_bits' bits from right to the left starting from a 64-bit boundary. +/** Set `_bits' bits from right to the left starting from a 64-bit boundary. * Example: * long x = 0; // x => ... 00000000 00000000 00000000 00000000 * setbits64_right(10, x) // x => ... 00000000 00000000 00000011 11111111 */ #define setbits64_right(_bits, _number) (_number |= ~(ONE >> _bits)) -/* Same as setbits64_right but clears bits (sets to zeroes) */ +/** Same as setbits64_right but clears bits (sets to zeroes) */ #define clearbits64_right(_bits, _number) (_number &= ONE >> _bits) -/* Set `size' bits starting from an address given by `ptr' to ones. +/** Set `size' bits starting from an address given by `ptr' to ones. * Example: * char a[4]; * memset(a,0,4); // => 00000000 00000000 00000000 00000000 @@ -146,7 +137,7 @@ static inline void setbits(size_t size, void *ptr) { setbits64(size%64, *(lp+i)); } -/* Same as `setbits' but clear the bits (set to zeroes). */ +/** Same as `setbits' but clear the bits (set to zeroes). */ static inline void clearbits(size_t size, void *ptr) { size_t i; int64_t *lp = (int64_t*)ptr; @@ -155,7 +146,7 @@ static inline void clearbits(size_t size, void *ptr) { clearbits64(size%64, *(lp+i)); } -/* Same as `setbits' but clear the bits (set to zeroes). */ +/** Same as `setbits' but clear the bits (set to zeroes). */ static inline int checkbits(size_t size, void *ptr) { size_t i; int64_t *lp = (int64_t*)ptr; @@ -166,7 +157,7 @@ static inline int checkbits(size_t size, void *ptr) { return checkbits64(size%64, *(lp+i)); } -/* Same as `setbits' but set the bits from right to left +/** Same as `setbits' but set the bits from right to left * Example: * char a[4]; * memset(a,0,4); // => 00000000 00000000 00000000 00000000 @@ -179,7 +170,7 @@ static inline void setbits_right(size_t size, void *ptr) { setbits64_right(size%64, *(lp-i)); } -/* Same as `setbits_right' but clear the bits (set to zeroes). */ +/** Same as `setbits_right' but clear the bits (set to zeroes). */ static inline void clearbits_right(size_t size, void *ptr) { size_t i = 0; int64_t *lp = (int64_t*)ptr - 1; @@ -187,5 +178,5 @@ static inline void clearbits_right(size_t size, void *ptr) { *(lp-i) &= ZERO; clearbits64_right(size%64, *(lp-i)); } -/* }}} */ -#endif + +#endif // E_ACSL_BITS_H \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.c new file mode 100644 index 00000000000..0c42873864c --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.c @@ -0,0 +1,94 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include <sys/stat.h> +#include <fcntl.h> + +#include "../observation_model/internals/e_acsl_omodel_debug.h" +#include "e_acsl_private_assert.h" +#include "e_acsl_rtl_io.h" + +#include "e_acsl_debug.h" + +/** Debugging support {{{ + * Enabled in the presence of the E_ACSL_DEBUG macro */ +#ifdef E_ACSL_DEBUG + +/*! \brief Name of the debug log file */ +static const char *dlog_name = TOSTRING(E_ACSL_DEBUG_LOG); + +// Global vars initialization +int dlog_fd = -1; +int debug_stop_number = 0; + +void initialize_report_file(int *argc, char ***argv) { + /* Redirect the log to stderr is just set to be defined or set to '-' */ + if (!strcmp(dlog_name, "-") || !strcmp(dlog_name, "1")) { + dlog_fd = 2; + } else { + dlog_fd = open(dlog_name, O_WRONLY | O_CREAT | O_TRUNC |O_NONBLOCK + | O_NOCTTY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); + } + if (dlog_fd == -1) + private_abort("Cannot open file descriptor for %s\n", dlog_name); +} + +#endif // E_ACSL_DEBUG +// }}} + +#ifdef E_ACSL_WEAK_VALIDITY +# define E_ACSL_VALIDITY_DESC "weak" +#else +# define E_ACSL_VALIDITY_DESC "strong" +#endif + +#ifdef E_ACSL_NO_ASSERT_FAIL +# define E_ACSL_ASSERT_NO_FAIL_DESC "pass through" +#else +# define E_ACSL_ASSERT_NO_FAIL_DESC "abort" +#endif + +#ifdef E_ACSL_TEMPORAL +#define E_ACSL_TEMPORAL_DESC "enabled" +#else +# define E_ACSL_TEMPORAL_DESC "disabled" +#endif // E_ACSL_TEMPORAL + +#ifndef E_ACSL_VALIDATE_FORMAT_STRINGS +# define E_ACSL_FORMAT_VALIDITY_DESC "disabled" +#else +# define E_ACSL_FORMAT_VALIDITY_DESC "enabled" +#endif // E_ACSL_VALIDATE_FORMAT_STRINGS + +void describe_run() { +#if defined(E_ACSL_VERBOSE) + rtl_printf("/* ========================================================= */\n"); + rtl_printf(" * E-ACSL instrumented run\n" ); + rtl_printf(" * Execution mode: %s\n", E_ACSL_DEBUG_DESC); + describe_observation_model(); + rtl_printf(" * Assertions mode: %s\n", E_ACSL_ASSERT_NO_FAIL_DESC); + rtl_printf(" * Validity notion: %s\n", E_ACSL_VALIDITY_DESC); + rtl_printf(" * Temporal checks: %s\n", E_ACSL_TEMPORAL_DESC); + rtl_printf(" * Format Checks: %s\n", E_ACSL_FORMAT_VALIDITY_DESC); + rtl_printf("/* ========================================================= */\n"); +#endif +} \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.h index 0a047997ee7..3a7612806f1 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_debug.h @@ -21,14 +21,13 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_debug.h + * \file * \brief Debug-level functions and macros ***************************************************************************/ + #ifndef E_ACSL_DEBUG_H #define E_ACSL_DEBUG_H -static void vabort(char *fmt, ...); - /* Stringification macros {{{ */ #ifndef E_ACSL_STRINGIFICATION #define E_ACSL_STRINGIFICATION @@ -42,26 +41,20 @@ static void vabort(char *fmt, ...); * Enabled in the presence of the E_ACSL_DEBUG macro */ #ifdef E_ACSL_DEBUG -#include <sys/types.h> -#include <sys/stat.h> -#include <fcntl.h> -#include "e_acsl_printf.h" -#include "e_acsl_string.h" -#include "e_acsl_trace.h" -#include "e_acsl_assert.h" - #define E_ACSL_DEBUG_DESC "debug" +#include "e_acsl_private_assert.h" +#include "e_acsl_rtl_io.h" + +#include <stdio.h> + /* Default location of the E_ACSL log file */ #ifndef E_ACSL_DEBUG_LOG # define E_ACSL_DEBUG_LOG - #endif -/*! \brief Name of the debug log file */ -static const char *dlog_name = TOSTRING(E_ACSL_DEBUG_LOG); - /*! \brief File descriptor associated with the debug log file */ -static int dlog_fd = -1; +int dlog_fd; /*! \brief Output a message to a log file */ #define DLOG(...) rtl_dprintf(dlog_fd, __VA_ARGS__) @@ -73,29 +66,17 @@ static int dlog_fd = -1; #endif /*! \brief Debug-time assertion based on assert (see e_acsl_assert.h) */ -#define DASSERT(_e) vassert(_e,TOSTRING(_e),NULL) +#define DASSERT(_e) private_assert(_e,TOSTRING(_e),NULL) /*! \brief Debug-time assertion based on vassert (see e_acsl_assert.h) */ -#define DVASSERT(_expr, _fmt, ...) vassert(_expr, _fmt, __VA_ARGS__) +#define DVASSERT(_expr, _fmt, ...) private_assert(_expr, _fmt, __VA_ARGS__) /*! \brief Initialize debug report file: * - open file descriptor * - add program arguments to the log */ -static void initialize_report_file(int *argc, char ***argv) { - /* Redirect the log to stderr is just set to be defined or set to '-' */ - if (!strcmp(dlog_name, "-") || !strcmp(dlog_name, "1")) { - dlog_fd = 2; - } else { - dlog_fd = open(dlog_name, O_WRONLY | O_CREAT | O_TRUNC |O_NONBLOCK - | O_NOCTTY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH); - } - if (dlog_fd == -1) - vabort("Cannot open file descriptor for %s\n", dlog_name); -} - -static int debug_stop_number = 0; -int getchar(void); +void initialize_report_file(int *argc, char ***argv); +int debug_stop_number; #define DSTOP { \ DLOG(" << ***** " "Debug Stop %d in '%s' at %s:%d" " ***** >> ", \ ++debug_stop_number, __func__, __FILE__, __LINE__); \ @@ -110,6 +91,10 @@ int getchar(void); # define DVLOG(...) # define DASSERT(_e) # define DVASSERT(_expr, _fmt, ...) -#endif -#endif +#endif // E_ACSL_DEBUG // }}} + +/*! Print a header indicating current configuration of a run to STDIN. */ +void describe_run(); + +#endif // E_ACSL_DEBUG_H diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.c new file mode 100644 index 00000000000..da258a76512 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.c @@ -0,0 +1,57 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "e_acsl_malloc.h" + +struct memory_spaces mem_spaces = { + .rtl_mspace = NULL, + .heap_mspace = NULL, + .heap_start = 0, + .heap_end = 0, + .heap_mspace_least = 0, +}; + +/* \brief Create two memory spaces, one for RTL and the other for application + memory. This function *SHOULD* be called before any allocations are made + otherwise execution fails */ +void make_memory_spaces(size_t rtl_size, size_t heap_size) { + mem_spaces.rtl_mspace = create_mspace(rtl_size, 0); + mem_spaces.heap_mspace = create_mspace(heap_size, 0); + /* Do not use `mspace_least_addr` here, as it returns the address of the + mspace header. */ + mem_spaces.heap_start = (uintptr_t)mspace_malloc(mem_spaces.heap_mspace,1); + mem_spaces.heap_end = mem_spaces.heap_start + heap_size; + /* Save initial least address of heap memspace. This address is used later + to check whether memspace has been moved. */ + mem_spaces.heap_mspace_least = (uintptr_t)mspace_least_addr(mem_spaces.heap_mspace); +} + +void destroy_memory_spaces() { + destroy_mspace(mem_spaces.rtl_mspace); + destroy_mspace(mem_spaces.heap_mspace); +} + +int is_pow_of_2(size_t x) { + while (((x & 1) == 0) && x > 1) /* while x is even and > 1 */ + x >>= 1; + return (x == 1); +} diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.h index 3ba677ed085..46eab5f161a 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_malloc.h @@ -21,9 +21,15 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_malloc.h - * + * \file * \brief E-ACSL memory allocation bindings. + * + * Memory allocated for internal use of RTL and for the use by the application + * is split into two mspaces (memory spaces). Memory allocation itself is + * delegated to a slightly customised version of dlmalloc shipped with the + * RTL. The overall pattern is as follows: + * mspace space = create_mspace(capacity, locks); + * char *p = mspace_malloc(space, size); ***************************************************************************/ #ifndef E_ACSL_MALLOC_H @@ -32,12 +38,7 @@ #include <stdint.h> #include <stddef.h> -/* Memory allocated for internal use of RTL and for the use by the application - * is split into two mspaces (memory spaces). Memory allocation itself is - * delegated to a slightly customised version of dlmalloc shipped with the - * RTL. The overall pattern is as follows: - * mspace space = create_mspace(capacity, locks); - * char *p = mspace_malloc(space, size); */ +#include "e_acsl_alias.h" /* Block size units in bytes */ #define KB (1024) //!< Bytes in a kilobyte @@ -47,99 +48,95 @@ #define MB_SZ(_s) (_s/MB) //!< Convert bytes to megabytes #define GB_SZ(_s) (_s/GB) //!< Convert bytes to gigabytes +/************************************************************************/ +/*** Mspace initialization {{{ ***/ +/************************************************************************/ + +#define make_memory_spaces export_alias(make_memory_spaces) +#define destroy_memory_spaces export_alias(destroy_memory_spaces) + +/*! \brief Create two memory spaces, one for RTL and the other for application + memory. This function *SHOULD* be called before any allocations are made + otherwise execution fails */ +void make_memory_spaces(size_t rtl_size, size_t heap_size); + +/*! \brief Destroy the memory spaces created with `make_memory_spaces()`. */ +void destroy_memory_spaces(); + +/* }}} */ + + +/************************************************************************/ +/*** Mspace allocators (from dlmalloc) {{{ ***/ +/************************************************************************/ + +#define create_mspace export_alias(create_mspace) +#define destroy_mspace export_alias(destroy_mspace) +#define mspace_least_addr export_alias(mspace_least_addr) +#define mspace_malloc export_alias(mspace_malloc) +#define mspace_free export_alias(mspace_free) +#define mspace_calloc export_alias(mspace_calloc) +#define mspace_realloc export_alias(mspace_realloc) +#define mspace_posix_memalign export_alias(mspace_posix_memalign) +#define mspace_aligned_alloc export_alias(mspace_aligned_alloc) + typedef void* mspace; -static struct memory_spaces { +struct memory_spaces { mspace rtl_mspace; /* `private` (RTL) mspace */ mspace heap_mspace; /* `public` (application) mspace */ uintptr_t heap_start; /* least address in application mspace */ uintptr_t heap_end; /* greatest address in application mspace */ uintptr_t heap_mspace_least; /* Initial least address in heap mspace */ -} mem_spaces; - -/* While it is possible to generate prefixes using an extra level of - * indirection with macro definitions it is probably best not to do it, - * becomes barely readable ...*/ - -/* Mspace allocators {{{ */ -extern mspace __e_acsl_create_mspace(size_t, int); -extern size_t __e_acsl_destroy_mspace(mspace); -extern void* __e_acsl_mspace_malloc(mspace, size_t); -extern void __e_acsl_mspace_free(mspace, void*); -extern void* __e_acsl_mspace_calloc(mspace msp, size_t, size_t); -extern void* __e_acsl_mspace_realloc(mspace msp, void*, size_t); -extern void* __e_acsl_mspace_aligned_alloc(mspace, size_t, size_t); -extern int __e_acsl_mspace_posix_memalign(mspace, void **, size_t, size_t); -extern void* __e_acsl_mspace_least_addr(mspace); - -#define create_mspace __e_acsl_create_mspace -#define destroy_mspace __e_acsl_destroy_mspace -#define mspace_least_addr __e_acsl_mspace_least_addr -#define mspace_malloc __e_acsl_mspace_malloc -#define mspace_free __e_acsl_mspace_free -#define mspace_calloc __e_acsl_mspace_calloc -#define mspace_realloc __e_acsl_mspace_realloc -#define mspace_posix_memalign __e_acsl_mspace_posix_memalign -#define mspace_aligned_alloc __e_acsl_mspace_aligned_alloc +}; +extern struct memory_spaces mem_spaces; + +extern mspace create_mspace(size_t, int); +extern size_t destroy_mspace(mspace); +extern void* mspace_malloc(mspace, size_t); +extern void mspace_free(mspace, void*); +extern void* mspace_calloc(mspace msp, size_t, size_t); +extern void* mspace_realloc(mspace msp, void*, size_t); +extern void* mspace_aligned_alloc(mspace, size_t, size_t); +extern int mspace_posix_memalign(mspace, void **, size_t, size_t); +extern void* mspace_least_addr(mspace); + /* }}} */ -/* Public allocators used within RTL to override standard allocation {{{ */ +/************************************************************************/ +/*** Public allocators {{{ ***/ +/************************************************************************/ + +/* Used within RTL to override standard allocation */ /* Shortcuts for public allocation functions */ -# define public_malloc(...) mspace_malloc(mem_spaces.heap_mspace, __VA_ARGS__) -# define public_realloc(...) mspace_realloc(mem_spaces.heap_mspace, __VA_ARGS__) -# define public_calloc(...) mspace_calloc(mem_spaces.heap_mspace, __VA_ARGS__) -# define public_free(...) mspace_free(mem_spaces.heap_mspace, __VA_ARGS__) -# define public_aligned_alloc(...) mspace_aligned_alloc(mem_spaces.heap_mspace, __VA_ARGS__) -# define public_posix_memalign(...) mspace_posix_memalign(mem_spaces.heap_mspace, __VA_ARGS__) -/* }}} */ -/* Private allocators usable within RTL and GMP {{{ */ -void * __e_acsl_private_malloc(size_t sz) { - return mspace_malloc(mem_spaces.rtl_mspace, sz); -} +#define public_malloc(...) mspace_malloc(mem_spaces.heap_mspace, __VA_ARGS__) +#define public_realloc(...) mspace_realloc(mem_spaces.heap_mspace, __VA_ARGS__) +#define public_calloc(...) mspace_calloc(mem_spaces.heap_mspace, __VA_ARGS__) +#define public_free(...) mspace_free(mem_spaces.heap_mspace, __VA_ARGS__) +#define public_aligned_alloc(...) mspace_aligned_alloc(mem_spaces.heap_mspace, __VA_ARGS__) +#define public_posix_memalign(...) mspace_posix_memalign(mem_spaces.heap_mspace, __VA_ARGS__) -void *__e_acsl_private_calloc(size_t nmemb, size_t sz) { - return mspace_calloc(mem_spaces.rtl_mspace, nmemb, sz); -} +/* }}} */ -void *__e_acsl_private_realloc(void *p, size_t sz) { - return mspace_realloc(mem_spaces.rtl_mspace, p, sz); -} +/************************************************************************/ +/*** Private allocators usable within RTL and GMP {{{ ***/ +/************************************************************************/ -void __e_acsl_private_free(void *p) { - mspace_free(mem_spaces.rtl_mspace, p); -} +#define private_malloc(...) mspace_malloc(mem_spaces.rtl_mspace, __VA_ARGS__) +#define private_calloc(...) mspace_calloc(mem_spaces.rtl_mspace, __VA_ARGS__) +#define private_realloc(...) mspace_realloc(mem_spaces.rtl_mspace, __VA_ARGS__) +#define private_free(...) mspace_free(mem_spaces.rtl_mspace, __VA_ARGS__) -#define private_malloc __e_acsl_private_malloc -#define private_calloc __e_acsl_private_calloc -#define private_realloc __e_acsl_private_realloc -#define private_free __e_acsl_private_free /* }}} */ -/* \brief Create two memory spaces, one for RTL and the other for application - memory. This function *SHOULD* be called before any allocations are made - otherwise execution fails */ -static void make_memory_spaces(size_t rtl_size, size_t heap_size) { - mem_spaces.rtl_mspace = create_mspace(rtl_size, 0); - mem_spaces.heap_mspace = create_mspace(heap_size, 0); - /* Do not use `mspace_least_addr` here, as it returns the address of the - mspace header. */ - mem_spaces.heap_start = (uintptr_t)mspace_malloc(mem_spaces.heap_mspace,1); - mem_spaces.heap_end = mem_spaces.heap_start + heap_size; - /* Save initial least address of heap memspace. This address is used later - to check whether memspace has been moved. */ - mem_spaces.heap_mspace_least = (uintptr_t)mspace_least_addr(mem_spaces.heap_mspace); -} - -static void destroy_memory_spaces() { - destroy_mspace(mem_spaces.rtl_mspace); - destroy_mspace(mem_spaces.heap_mspace); -} +/************************************************************************/ +/*** Useful functions {{{ ***/ +/************************************************************************/ /* \return a true value if x is a power of 2 and false otherwise */ -static int powof2(size_t x) { - while (((x & 1) == 0) && x > 1) /* while x is even and > 1 */ - x >>= 1; - return (x == 1); -} -#endif +int is_pow_of_2(size_t x); + +/* }}} */ + +#endif // E_ACSL_MALLOC_H \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.c new file mode 100644 index 00000000000..94516feab17 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.c @@ -0,0 +1,81 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/* Get default definitions and macros e.g., PATH_MAX */ +// #ifndef _DEFAULT_SOURCE +// # define _DEFAULT_SOURCE 1 +// #endif + +#include <limits.h> +#include <signal.h> +#include <stdarg.h> +#include <stddef.h> + +#include "e_acsl_rtl_io.h" +#include "e_acsl_trace.h" + +#include "e_acsl_private_assert.h" + +#define prepend_file_line(file, line, fmt) \ + do { \ + char * afmt = "%s:%d: %s\n"; \ + char buf[strlen(fmt) + strlen(afmt) + PATH_MAX + 11]; \ + rtl_sprintf(buf, afmt, file, line, fmt); \ + fmt = buf; \ + } while (0) + +void raise_abort(const char *file, int line) { +#ifdef E_ACSL_DEBUG +#ifndef E_ACSL_NO_TRACE + trace(); +#endif +#endif + raise(SIGABRT); +} + +void private_abort_fail(const char * file, int line, char *fmt, ...) { + va_list va; + sigset_t defer_abrt; + sigemptyset(&defer_abrt); + sigaddset(&defer_abrt,SIGABRT); + sigprocmask(SIG_BLOCK,&defer_abrt,NULL); + va_start(va,fmt); + rtl_veprintf(fmt, va); + va_end(va); + sigprocmask(SIG_UNBLOCK,&defer_abrt,NULL); + raise_abort(file, line); +} + +void private_assert_fail(int expr, const char *file, int line, char *fmt, ...) { + if (!expr) { + char * afmt = "%s:%d: %s"; + char buf[strlen(fmt) + strlen(afmt) + PATH_MAX + 11]; + rtl_sprintf(buf, afmt, file, line, fmt); + fmt = buf; + + va_list va; + va_start(va,fmt); + rtl_veprintf(fmt, va); + va_end(va); + raise_abort(file, line); + } +} diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.h new file mode 100644 index 00000000000..b4d9b1ef28d --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_private_assert.h @@ -0,0 +1,57 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief E-ACSL assertions and abort statements implementation. +***************************************************************************/ + +#ifndef E_ACSL_PRIVATE_ASSERT +#define E_ACSL_PRIVATE_ASSERT + +/*! \brief Assert with printf-like error message support */ +#define private_assert(expr, fmt_and_args...) \ + private_assert_fail(expr, __FILE__, __LINE__, fmt_and_args) + +/*! \brief Output a message to error stream using printf-like format string + * and abort the execution. + * + * This is a wrapper for \p eprintf combined with \p abort */ +#define private_abort(fmt_and_args...) \ + private_abort_fail(__FILE__, __LINE__, fmt_and_args) + + +void private_assert_fail(int expr, const char *file, int line, char *fmt, ...); +void private_abort_fail(const char * file, int line, char *fmt, ...); +void raise_abort(const char * file, int line); + +/* Instances of assertions shared accross different memory models */ + +/*! \brief Abort the execution if the size of the pointer computed during + * instrumentation (\p _ptr_sz) does not match the size of the pointer used + * by a compiler (\p void*) */ +#define arch_assert(_ptr_sz) \ + private_assert(_ptr_sz == sizeof(void*), \ + "Mismatch of instrumentation- and compile-time pointer sizes: " \ + "%lu vs %lu\n", _ptr_sz, sizeof(void*)) + +#endif // E_ACSL_PRIVATE_ASSERT diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_printf.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.c similarity index 82% rename from src/plugins/e-acsl/share/e-acsl/internals/e_acsl_printf.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.c index c54588f7f65..5453030b537 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_printf.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.c @@ -37,65 +37,15 @@ /****************************************************************************/ /*! *********************************************************************** - * \file e_acsl_printf.h + * \file * \brief Malloc and stdio free implementation printf. - * - * Supported format strings: - * - Flag characters: - * - 0 - the following value will be is zero-padded. - * - * - Field width: - * - Optional positive decimal integer following flag characters. - * - * - Length modifier: - * - l - the following integer conversion corresponds to a long int or - * unsigned long int argument. - * - * - Standard conversion specifiers: - * - d - signed integers. - * - u - unsigned integers. - * - f - floating point numbers. Floating point numbers do not support - * - precision specification. - * - x,X - hexadecimal numbers. - * - p - void pointers. - * - * - Non-standard conversion specifiers: - * - a - memory-address. - * - b, B - print field width bits of a number left-to-right (b) or - * right-to-left (B). Unless specified field-width of 8 is used. Bits - * over a 64-bit boundary are ignored. - * - v, V - print first field width bits of a memory region given by a - * void pointer left-to-right (v) or right-to-left (V). Unless specified - * field-width of 8 is used. ***************************************************************************/ -#ifndef E_ACSL_PRINTF_H -#define E_ACSL_PRINTF_H - -#include <unistd.h> -#include <stdint.h> #include <stdarg.h> -#include "e_acsl_alias.h" - -/* ****************** */ -/* Public API */ -/* ****************** */ - -/* Replacement for printf with support for the above specifiers */ -static int rtl_printf(char *fmt, ...); - -/* Same as printf but write to a string buffer */ -static int rtl_sprintf(char* s, char *fmt, ...); - -/* Same as printf but write to the error stream. */ -static int rtl_eprintf(char *fmt, ...); - -/* Same as printf but write to a file descriptor. */ -static int rtl_dprintf(int fd, char *fmt, ...); +#include <stdint.h> +#include <unistd.h> -/* ****************** */ -/* Implementation */ -/* ****************** */ +#include "e_acsl_rtl_io.h" typedef void (*putcf) (void*,char); @@ -402,41 +352,56 @@ static void _charc_literal (void* p, char c) { } } -static int rtl_printf(char *fmt, ...) { +int rtl_printf(char *fmt, ...) { va_list va; va_start(va,fmt); - _format(NULL,_charc_stdout,fmt,va); + int result = rtl_vprintf(fmt, va); va_end(va); + return result; +} + +int rtl_vprintf(char *fmt, va_list vlist) { + _format(NULL, _charc_stdout, fmt, vlist); return 1; } -static int rtl_eprintf(char *fmt, ...) { +int rtl_eprintf(char *fmt, ...) { va_list va; va_start(va,fmt); - _format(NULL,_charc_stderr,fmt,va); + int result = rtl_veprintf(fmt, va); va_end(va); + return result; +} + +int rtl_veprintf(char *fmt, va_list vlist) { + _format(NULL, _charc_stderr, fmt, vlist); return 1; } -static int rtl_dprintf(int fd, char *fmt, ...) { +int rtl_dprintf(int fd, char *fmt, ...) { va_list va; va_start(va,fmt); - intptr_t fd_long = fd; - _format((void*)fd_long,_charc_file,fmt,va); + int result = rtl_vdprintf(fd, fmt, va); va_end(va); + return result; +} + +int rtl_vdprintf(int fd, char *fmt, va_list vlist) { + intptr_t fd_long = fd; + _format((void*)fd_long, _charc_file, fmt, vlist); return 1; } -static int rtl_sprintf(char* s, char *fmt, ...) { +int rtl_sprintf(char* s, char *fmt, ...) { va_list va; va_start(va,fmt); - _format(&s,putcp,fmt,va); - putcp(&s,0); + int result = rtl_vsprintf(s, fmt, va); va_end(va); - return 1; + return result; } -#define STDOUT(...) rtl_printf(__VA_ARGS__) -#define STDERR(...) rtl_eprintf(__VA_ARGS__) - -#endif +int rtl_vsprintf(char *s, char *fmt, va_list vlist) { + _format(&s, putcp, fmt, vlist); + putcp(&s,0); + return 1; +} \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.h new file mode 100644 index 00000000000..839bfe24fb3 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_io.h @@ -0,0 +1,98 @@ +/****************************************************************************/ +/* */ +/* Copyright (c) 2004,2012 Kustaa Nyholm / SpareTimeLabs */ +/* */ +/* All rights reserved. */ +/* */ +/* Redistribution and use in source and binary forms, with or without */ +/* modification, are permitted provided that the following conditions */ +/* are met: */ +/* */ +/* Redistributions of source code must retain the above copyright */ +/* notice, this list of conditions and the following disclaimer. */ +/* */ +/* Redistributions in binary form must reproduce the above copyright */ +/* notice, this list of conditions and the following disclaimer in the */ +/* documentation and/or other materials provided with the distribution. */ +/* */ +/* Neither the name of the Kustaa Nyholm or SpareTimeLabs nor the names */ +/* of its contributors may be used to endorse or promote products derived */ +/* from this software without specific prior written permission. */ +/* */ +/* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ +/* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ +/* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR */ +/* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT */ +/* HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, */ +/* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */ +/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, */ +/* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY */ +/* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */ +/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */ +/* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +/* */ +/* File modified by CEA (Commissariat à l'énergie atomique et aux */ +/* énergies alternatives). */ +/* */ +/****************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Malloc and stdio free implementation printf. + * + * Supported format strings: + * - Flag characters: + * - 0 - the following value will be is zero-padded. + * + * - Field width: + * - Optional positive decimal integer following flag characters. + * + * - Length modifier: + * - l - the following integer conversion corresponds to a long int or + * unsigned long int argument. + * + * - Standard conversion specifiers: + * - d - signed integers. + * - u - unsigned integers. + * - f - floating point numbers. Floating point numbers do not support + * - precision specification. + * - x,X - hexadecimal numbers. + * - p - void pointers. + * + * - Non-standard conversion specifiers: + * - a - memory-address. + * - b, B - print field width bits of a number left-to-right (b) or + * right-to-left (B). Unless specified field-width of 8 is used. Bits + * over a 64-bit boundary are ignored. + * - v, V - print first field width bits of a memory region given by a + * void pointer left-to-right (v) or right-to-left (V). Unless specified + * field-width of 8 is used. +***************************************************************************/ + +#ifndef E_ACSL_RTL_IO_H +#define E_ACSL_RTL_IO_H + +#include <stdarg.h> + +#define STDOUT(...) rtl_printf(__VA_ARGS__) +#define STDERR(...) rtl_eprintf(__VA_ARGS__) + +/* Replacement for printf with support for the above specifiers */ +int rtl_printf(char *fmt, ...); +int rtl_vprintf(char *fmt, va_list vlist); + +/* Same as printf but write to a string buffer */ +int rtl_sprintf(char* s, char *fmt, ...); +int rtl_vsprintf(char *s, char *fmt, va_list vlist); + +/* Same as printf but write to the error stream. */ +int rtl_eprintf(char *fmt, ...); +int rtl_veprintf(char *fmt, va_list vlist); + +/* Same as printf but write to a file descriptor. */ +int rtl_dprintf(int fd, char *fmt, ...); +int rtl_vdprintf(int fd, char *fmt, va_list vlist); + +int rtl_vformat_stderr(); + +#endif // E_ACSL_RTL_IO_H \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.c new file mode 100644 index 00000000000..d908c0f23b8 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.c @@ -0,0 +1,93 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "e_acsl_malloc.h" + +#include "e_acsl_rtl_string.h" + +char *nstrcat(char *dest, const char *src) { + memcpy(dest + strlen(dest), src, strlen(src) + 1); + return dest; +} + +char *nstrdup(const char *s) { + if (s) { + size_t len = strlen(s) + 1; + void *n = private_malloc(len); + return (n == NULL) ? NULL : (char*)memcpy(n, s, len); + } + return NULL; +} + +char *sappend(char *dest, const char *src, const char *delim) { + if (!dest && src) + dest = nstrdup(src); + else if (src && dest) { + size_t ldelim = delim ? strlen(delim) : 0; + size_t len = strlen(src) + strlen(dest) + 1; + if (ldelim) + len += ldelim; + dest = private_realloc(dest, len); + if (ldelim) + dest = nstrcat(dest, delim); + dest = nstrcat(dest, src); + } + return dest; +} + +int endswith(char *str, char *pat) { + if (str && pat) { + size_t slen = strlen(str); + size_t plen = strlen(pat); + if (slen >= plen) { + str += slen - plen; + return strncmp(str, pat, plen); + } + } + return 1; +} + +#define ZERO_BLOCK_SIZE 1024 +static unsigned char zeroblock [ZERO_BLOCK_SIZE]; + +int zeroed_out(const void *p, size_t size) { + size_t lim = size/ZERO_BLOCK_SIZE, + rem = size%ZERO_BLOCK_SIZE; + unsigned char *pc = (unsigned char *)p; + + size_t i; + for (i = 0; i < lim; i++) { + if (memcmp(pc, &zeroblock, ZERO_BLOCK_SIZE)) + return 0; + pc += ZERO_BLOCK_SIZE; + } + return !memcmp(pc, &zeroblock, rem); +} + +int charcount(const char *s, char c) { + int count = 0; + while ((s = strchr(s,c)) != NULL) { + count++; + s++; + } + return count; +} diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_string.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.h similarity index 69% rename from src/plugins/e-acsl/share/e-acsl/internals/e_acsl_string.h rename to src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.h index 5dcc1d08774..392b53cdbbb 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_string.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_rtl_string.h @@ -21,7 +21,7 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_string.h + * \file * \brief Replacement of system-wide \p <string.h> header for use with E-ACSL * runtime library. * @@ -36,8 +36,8 @@ * of string.h functions use GLIBC-based implementations. ***************************************************************************/ -#ifndef E_ACSL_STD_STRING_H -#define E_ACSL_STD_STRING_H +#ifndef E_ACSL_RTL_STRING_H +#define E_ACSL_RTL_STRING_H #ifndef E_ACSL_NO_COMPILER_BUILTINS # define memset __builtin_memset @@ -57,23 +57,12 @@ #endif #include <stddef.h> -#include "e_acsl_malloc.h" /* \brief Local version of `strcat` */ -static char *nstrcat(char *dest, const char *src) { - memcpy(dest + strlen(dest), src, strlen(src) + 1); - return dest; -} +char *nstrcat(char *dest, const char *src); /* \brief Local version of `strdup` */ -static char *nstrdup(const char *s) { - if (s) { - size_t len = strlen(s) + 1; - void *n = private_malloc(len); - return (n == NULL) ? NULL : (char*)memcpy(n, s, len); - } - return NULL; -} +char *nstrdup(const char *s); /* \brief Append `src` to `dest` by re-allocating `dest`. * @@ -83,64 +72,19 @@ static char *nstrdup(const char *s) { * `delim` is appended to `dest` before `src` * * \return Result of concatenation of `dest` and `src` */ -static char *sappend(char *dest, const char *src, const char *delim) { - if (!dest && src) - dest = nstrdup(src); - else if (src && dest) { - size_t ldelim = delim ? strlen(delim) : 0; - size_t len = strlen(src) + strlen(dest) + 1; - if (ldelim) - len += ldelim; - dest = private_realloc(dest, len); - if (ldelim) - dest = nstrcat(dest, delim); - dest = nstrcat(dest, src); - } - return dest; -} +char *sappend(char *dest, const char *src, const char *delim); /** \brief Return 0 if C string `str` ends with string `pat` and a non-zero * value otherwise. The function assumes that both, `str` and `path` are valid, * NUL-terminated C strings. If any of the input strings are NULLs, a non-zero * value is returned. */ -static int endswith(char *str, char *pat) { - if (str && pat) { - size_t slen = strlen(str); - size_t plen = strlen(pat); - if (slen >= plen) { - str += slen - plen; - return strncmp(str, pat, plen); - } - } - return 1; -} - -#define ZERO_BLOCK_SIZE 1024 -static unsigned char zeroblock [ZERO_BLOCK_SIZE]; +int endswith(char *str, char *pat); /** \brief Return a non-zero value if `size` bytes past address `p` are * nullified and zero otherwise. */ -static int zeroed_out(const void *p, size_t size) { - size_t lim = size/ZERO_BLOCK_SIZE, - rem = size%ZERO_BLOCK_SIZE; - unsigned char *pc = (unsigned char *)p; - - size_t i; - for (i = 0; i < lim; i++) { - if (memcmp(pc, &zeroblock, ZERO_BLOCK_SIZE)) - return 0; - pc += ZERO_BLOCK_SIZE; - } - return !memcmp(pc, &zeroblock, rem); -} +int zeroed_out(const void *p, size_t size); /** \brief Count the number of occurrences of char `c` in a string `s` */ -static int charcount(const char *s, char c) { - int count = 0; - while ((s = strchr(s,c)) != NULL) { - count++; - s++; - } - return count; -} -#endif +int charcount(const char *s, char c); + +#endif // E_ACSL_RTL_STRING_H diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.c new file mode 100644 index 00000000000..e13e8dfdaa1 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.c @@ -0,0 +1,203 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Implementation for running shell commands +***************************************************************************/ + +#include <errno.h> +#include <stddef.h> +#include <sys/types.h> +#include <sys/wait.h> +#include <unistd.h> + +#include "e_acsl_malloc.h" +#include "e_acsl_rtl_string.h" + +#include "e_acsl_shexec.h" + +/* \brief Read characters from a buffer associated with a file descriptor into + * a C string + * + * Read a string from a buffer associated with a file descriptor by allocating + * a string of an initial size and increasing the size of a buffer with + * realloc. This is for the cases when we can not quickly seek through the + * file and identify the size of a buffer associated with a file descriptor + * + * \param fd - file descriptor to read from + * \param bufsize - the number of characters we read a t a time + * + * \return NUL-terminated C string on success + * \return NULL on failure */ +static char* fd_read (int fd, short bufsize) { + /* Read `buffer_size` chars at a time */ + short buffer_size = bufsize*sizeof(char); + /* Size of the fetched string */ + int size = buffer_size; + /* Buffer where for read data */ + char *buffer = (char*)private_malloc(size); + /* The number of read bytes */ + short fetched = 0; + int rd = 0; /* Count of fetched characters */ + + /* Each time the pointer is moved by `size - buffer_size`. + * This is because initially the size of `buffer` is `buffer_size`. */ + while ((fetched = read(fd, buffer + size - buffer_size, buffer_size))) { + rd += fetched; + if (fetched != -1) { + size += fetched*sizeof(char); + buffer = private_realloc(buffer, size + 1); + } else { + return NULL; + } + } + buffer[rd] = '\0'; + return buffer; +} + +/* Execute a command in the shell and place results to data */ +static ipr_t* __shexec (ipr_t *data) { + int outfd[2], errfd[2], infd[2]; + int oldstdout, oldstderr, oldstdin; + + if (pipe(infd)) /* From where parent is going to read */ + data->error = nstrdup("Can not create a pipe for STDIN"); + if (pipe(outfd)) /* From where parent is going to read */ + data->error = nstrdup("Can not create a pipe for STDOUT"); + if (pipe(errfd)) /* From where parent is going to read */ + data->error = nstrdup("Can not create a pipe for STDERR"); + + /* Immediately return if reading from one of the STD pipes failed */ + if (data->error) + return data; + + /* Save stdin, stdout and stderr */ + oldstdin = dup(0); + oldstdout = dup(1); + oldstderr = dup(2); + + /* Close stdin, stdout and stderr */ + close(0); + close(1); + close(2); + + dup2(infd[0], 0); /* Make the read end of infd as STDIN */ + dup2(outfd[1],1); /* Make the write end of outfd as STDOUT */ + dup2(errfd[1],2); /* Make the write end of outfd as STDERR */ + + pid_t pid = fork(); + + if(!pid) { + /* Close the streams as they are not required for a child */ + close(infd[0]); close(outfd[0]); close(errfd[0]); + close(infd[1]); close(outfd[1]); close(errfd[1]); + + execvp(data->argv[0],data->argv); + if (errno) { + data->error = nstrdup("Failed to execute:\n "); + char **arg = data->argv - 1; + while(*++arg) + data->error = sappend(*arg, data->error, " "); + } + } else { + close(0); + close(1); + close(2); + dup2(oldstdin, 0); + dup2(oldstdout,1); + dup2(oldstderr,2); + close(outfd[1]); + close(errfd[1]); + close(infd[0]); + + /* If data->stdin string is supplied, write that string to the child's + stdin first */ + if (data->stdins) /* Return NULL if write fails */ + if (write(infd[1], data->stdins, strlen(data->stdins)) == -1) + return NULL; + + /* Read from child's stdout and stderr */ + data->stdouts = fd_read(outfd[0], 256); + if (!data->stdouts) + data->error = nstrdup("Error reading from STDOUT pipe"); + data->stderrs = fd_read(errfd[0], 256); + if (!data->stderrs) + data->error = nstrdup("Error reading from STDERR pipe"); + + /* Close file descriptors that are still open */ + close(outfd[0]); /* read end of STDOUT */ + close(errfd[0]); /* read end of STDERR */ + close(infd[1]); /* write end of STDIN */ + + int status; + waitpid(pid, &status, 0); /* wait for the child to finish */ + + data->exit_status = WEXITSTATUS(status); /* exit status */ + data->pid = pid; /* process number */ + data->signaled = WIFSIGNALED(status); /* signal caught */ + data->signo = WTERMSIG(status); /* signal number caught */ + return data; + } + return NULL; +} + +/* \brief Deallocate an `ipr_t` structure returned by `shexec` */ +static void free_ipr (ipr_t* ipr) { + if (ipr) { + if (ipr->stdouts) + private_free(ipr->stdouts); + if (ipr->stderrs) + private_free(ipr->stderrs); + if (ipr->error) + private_free(ipr->error); + if (ipr->stdins) + private_free(ipr->stdins); + private_free(ipr); + } +} + +/* \brief Execute a command given via parameter `data` in the current shell + * and return the dynamically allocated struct `ipr_t` which captures the + * results of the command's execution. + * + * \param data - command to execute. `data` is expected to be a NULL-terminated + * array of C strings. + * \param sin - if not NULL, a C string given via `sin` is supplied as standard + * input to the executed command. + * \return - heap-allocated struct `ipr_t` which describes the output of the + * executed command. Deallocation of this struct must be performed via the + * `free_ipr` function. */ +ipr_t* shexec (char **data, const char *sin) { + /* Allocate and initialise the `ipr_t` struct to store the results + * of the command execution */ + ipr_t *ipr = (ipr_t*)private_malloc(sizeof(ipr_t)); + ipr->stderrs = NULL; + ipr->stdouts = NULL; + ipr->stdins = nstrdup(sin); + ipr->argv = data; + ipr->exit_status = 0; + ipr->pid = 0; + ipr->signaled = 0; + /* Run the command returning a pointer to `ipr_t` */ + return __shexec(ipr); +} diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.h index b2a297d5a98..16cb2d9a1d3 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_shexec.h @@ -21,19 +21,14 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_shexec.h + * \file * \brief Interface for running shell commands ***************************************************************************/ #ifndef E_ACSL_SHEXEC_H #define E_ACSL_SHEXEC_H -#include <stddef.h> #include <sys/types.h> -#include <sys/wait.h> -#include <unistd.h> -#include <errno.h> -#include "e_acsl_string.h" /*! \class ipr_t * \brief Result struct for `shexec` function -- execute a command in the @@ -60,146 +55,6 @@ typedef struct { char *error; } ipr_t; -/* \brief Read characters from a buffer associated with a file descriptor into - * a C string - * - * Read a string from a buffer associated with a file descriptor by allocating - * a string of an initial size and increasing the size of a buffer with - * realloc. This is for the cases when we can not quickly seek through the - * file and identify the size of a buffer associated with a file descriptor - * - * \param fd - file descriptor to read from - * \param bufsize - the number of characters we read a t a time - * - * \return NUL-terminated C string on success - * \return NULL on failure */ -static char* fd_read (int fd, short bufsize) { - /* Read `buffer_size` chars at a time */ - short buffer_size = bufsize*sizeof(char); - /* Size of the fetched string */ - int size = buffer_size; - /* Buffer where for read data */ - char *buffer = (char*)private_malloc(size); - /* The number of read bytes */ - short fetched = 0; - int rd = 0; /* Count of fetched characters */ - - /* Each time the pointer is moved by `size - buffer_size`. - * This is because initially the size of `buffer` is `buffer_size`. */ - while ((fetched = read(fd, buffer + size - buffer_size, buffer_size))) { - rd += fetched; - if (fetched != -1) { - size += fetched*sizeof(char); - buffer = private_realloc(buffer, size + 1); - } else { - return NULL; - } - } - buffer[rd] = '\0'; - return buffer; -} - -/* Execute a command in the shell and place results to data */ -static ipr_t* __shexec (ipr_t *data) { - int outfd[2], errfd[2], infd[2]; - int oldstdout, oldstderr, oldstdin; - - if (pipe(infd)) /* From where parent is going to read */ - data->error = nstrdup("Can not create a pipe for STDIN"); - if (pipe(outfd)) /* From where parent is going to read */ - data->error = nstrdup("Can not create a pipe for STDOUT"); - if (pipe(errfd)) /* From where parent is going to read */ - data->error = nstrdup("Can not create a pipe for STDERR"); - - /* Immediately return if reading from one of the STD pipes failed */ - if (data->error) - return data; - - /* Save stdin, stdout and stderr */ - oldstdin = dup(0); - oldstdout = dup(1); - oldstderr = dup(2); - - /* Close stdin, stdout and stderr */ - close(0); - close(1); - close(2); - - dup2(infd[0], 0); /* Make the read end of infd as STDIN */ - dup2(outfd[1],1); /* Make the write end of outfd as STDOUT */ - dup2(errfd[1],2); /* Make the write end of outfd as STDERR */ - - pid_t pid = fork(); - - if(!pid) { - /* Close the streams as they are not required for a child */ - close(infd[0]); close(outfd[0]); close(errfd[0]); - close(infd[1]); close(outfd[1]); close(errfd[1]); - - execvp(data->argv[0],data->argv); - if (errno) { - data->error = nstrdup("Failed to execute:\n "); - char **arg = data->argv - 1; - while(*++arg) - data->error = sappend(*arg, data->error, " "); - } - } else { - close(0); - close(1); - close(2); - dup2(oldstdin, 0); - dup2(oldstdout,1); - dup2(oldstderr,2); - close(outfd[1]); - close(errfd[1]); - close(infd[0]); - - /* If data->stdin string is supplied, write that string to the child's - stdin first */ - if (data->stdins) /* Return NULL if write fails */ - if (write(infd[1], data->stdins, strlen(data->stdins)) == -1) - return NULL; - - /* Read from child's stdout and stderr */ - data->stdouts = fd_read(outfd[0], 256); - if (!data->stdouts) - data->error = nstrdup("Error reading from STDOUT pipe"); - data->stderrs = fd_read(errfd[0], 256); - if (!data->stderrs) - data->error = nstrdup("Error reading from STDERR pipe"); - - /* Close file descriptors that are still open */ - close(outfd[0]); /* read end of STDOUT */ - close(errfd[0]); /* read end of STDERR */ - close(infd[1]); /* write end of STDIN */ - - int status; - waitpid(pid, &status, 0); /* wait for the child to finish */ - - data->exit_status = WEXITSTATUS(status); /* exit status */ - data->pid = pid; /* process number */ - data->signaled = WIFSIGNALED(status); /* signal caught */ - data->signo = WTERMSIG(status); /* signal number caught */ - return data; - } - return NULL; -} - -/* \brief Deallocate an `ipr_t` structure returned by `shexec` */ -static void free_ipr (ipr_t* ipr) { - if (ipr) { - if (ipr->stdouts) - private_free(ipr->stdouts); - if (ipr->stderrs) - private_free(ipr->stderrs); - if (ipr->error) - private_free(ipr->error); - if (ipr->stdins) - private_free(ipr->stdins); - private_free(ipr); - } -} - /* \brief Execute a command given via parameter `data` in the current shell * and return the dynamically allocated struct `ipr_t` which captures the * results of the command's execution. @@ -211,18 +66,6 @@ static void free_ipr (ipr_t* ipr) { * \return - heap-allocated struct `ipr_t` which describes the output of the * executed command. Deallocation of this struct must be performed via the * `free_ipr` function. */ -static ipr_t* shexec (char **data, const char *sin) { - /* Allocate and initialise the `ipr_t` struct to store the results - * of the command execution */ - ipr_t *ipr = (ipr_t*)private_malloc(sizeof(ipr_t)); - ipr->stderrs = NULL; - ipr->stdouts = NULL; - ipr->stdins = nstrdup(sin); - ipr->argv = data; - ipr->exit_status = 0; - ipr->pid = 0; - ipr->signaled = 0; - /* Run the command returning a pointer to `ipr_t` */ - return __shexec(ipr); -} -#endif +ipr_t* shexec (char **data, const char *sin); + +#endif // E_ACSL_SHEXEC_H diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.c b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.c new file mode 100644 index 00000000000..892f53f5c20 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.c @@ -0,0 +1,111 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/* Get default definitions and macros e.g., PATH_MAX */ +// #ifndef _DEFAULT_SOURCE +// # define _DEFAULT_SOURCE 1 +// #endif + +#include <limits.h> +#include <stddef.h> + +#include "e_acsl_malloc.h" +#include "e_acsl_rtl_io.h" +#include "e_acsl_rtl_string.h" +#include "e_acsl_shexec.h" + +#include "e_acsl_trace.h" + +extern void *__libc_stack_end; + +struct frame_layout { + void *next; + void *return_address; +}; + +/* The following implementation of malloc-free backtrace [native_backtrace] + is mostly taken from Glibc-2.22 (see file debug/backtrace.c) */ +static int native_backtrace (void **array, int size) { + struct frame_layout *current; + void *top_frame, + *top_stack; + int cnt = 0; + + top_frame = __builtin_frame_address(0); + /* Some notion of current stack. Need not be exactly the top of the stack, + just something somewhere in the current frame. */ + top_stack = ({ char __csf; &__csf; }); + + /* We skip the call to this function, it makes no sense to record it. */ + current = ((struct frame_layout *) top_frame); + while (cnt < size) { + /* Assume that the stack grows downwards */ + if ((void *) current < top_stack || !((void *) current < __libc_stack_end)) + /* This means the address is out of range. Note that for the + toplevel we see a frame pointer with value NULL which clearly is + out of range. */ + break; + array[cnt++] = current->return_address; + current = ((struct frame_layout *) (current->next)); + } + return cnt; +} + +void trace() { +# ifdef __linux__ + + int size = 24; + void **bb = private_malloc(sizeof(void*)*size); + native_backtrace(bb, size); + + char executable [PATH_MAX]; + rtl_sprintf(executable, "/proc/%d/exe", getpid()); + + STDOUT("/** Backtrace **************************/\n"); + int counter = 0; + while (*bb) { + char *addr = (char*)private_malloc(21); + rtl_sprintf(addr,"%p", *bb); + char *ar[] = { "addr2line", "-f", "-p", "-C", "-s", "-e", + executable, addr, NULL}; + ipr_t *ipr = shexec(ar, NULL); + char *prefix = (counter) ? " - " : ""; + if (ipr) { + char *outs = (char*)ipr->stdouts; + if (outs) { + outs[strlen(outs)-1] = '\0'; + if (strlen(outs) && endswith(outs, "??:0") && endswith(outs, "??:?")) { + STDOUT("%s%s\n", prefix, outs); + } + } else { + char *errs = (char*)ipr->stderrs; + if (errs) { + STDOUT("%s\n", errs); + } + } + } + bb++; + counter++; + } + STDOUT("/***************************************/\n"); +# endif /* __linux__ */ +} diff --git a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.h b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.h index e74e612a604..415efece25c 100644 --- a/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.h +++ b/src/plugins/e-acsl/share/e-acsl/internals/e_acsl_trace.h @@ -21,90 +21,14 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_trace.h + * \file * \brief Interface for producing backtrace. Requires GLIBC. ***************************************************************************/ #ifndef E_ACSL_TRACE_H #define E_ACSL_TRACE_H -#include <stddef.h> -#include <limits.h> -#include "e_acsl_printf.h" -#include "e_acsl_shexec.h" +/*! Print the backtrace to stdout */ +void trace(); -extern void *__libc_stack_end; - -struct frame_layout { - void *next; - void *return_address; -}; - -/* The following implementation of malloc-free backtrace [native_backtrace] - is mostly taken from Glibc-2.22 (see file debug/backtrace.c) */ -static int native_backtrace (void **array, int size) { - struct frame_layout *current; - void *top_frame, - *top_stack; - int cnt = 0; - - top_frame = __builtin_frame_address(0); - /* Some notion of current stack. Need not be exactly the top of the stack, - just something somewhere in the current frame. */ - top_stack = ({ char __csf; &__csf; }); - - /* We skip the call to this function, it makes no sense to record it. */ - current = ((struct frame_layout *) top_frame); - while (cnt < size) { - /* Assume that the stack grows downwards */ - if ((void *) current < top_stack || !((void *) current < __libc_stack_end)) - /* This means the address is out of range. Note that for the - toplevel we see a frame pointer with value NULL which clearly is - out of range. */ - break; - array[cnt++] = current->return_address; - current = ((struct frame_layout *) (current->next)); - } - return cnt; -} - -static void trace() { -# ifdef __linux__ - - int size = 24; - void **bb = private_malloc(sizeof(void*)*size); - native_backtrace(bb, size); - - char executable [PATH_MAX]; - rtl_sprintf(executable, "/proc/%d/exe", getpid()); - - STDOUT("/** Backtrace **************************/\n"); - int counter = 0; - while (*bb) { - char *addr = (char*)private_malloc(21); - rtl_sprintf(addr,"%p", *bb); - char *ar[] = { "addr2line", "-f", "-p", "-C", "-s", "-e", - executable, addr, NULL}; - ipr_t *ipr = shexec(ar, NULL); - char *prefix = (counter) ? " - " : ""; - if (ipr) { - char *outs = (char*)ipr->stdouts; - if (outs) { - outs[strlen(outs)-1] = '\0'; - if (strlen(outs) && endswith(outs, "??:0") && endswith(outs, "??:?")) { - STDOUT("%s%s\n", prefix, outs); - } - } else { - char *errs = (char*)ipr->stderrs; - if (errs) { - STDOUT("%s\n", errs); - } - } - } - bb++; - counter++; - } - STDOUT("/***************************************/\n"); -# endif /* __linux__ */ -} -#endif +#endif // E_ACSL_TRACE_H diff --git a/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_format.h b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.c similarity index 86% rename from src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_format.h rename to src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.c index 01235311270..d2df8a78b73 100644 --- a/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_format.h +++ b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.c @@ -20,72 +20,20 @@ /* */ /**************************************************************************/ -/*! *********************************************************************** - * \file e_acsl_format.h - * \brief Validating format strings with respect to arguments and their types - * - * Detection of format string vulnerabilities and other violations - * related to improper use of formats in printf-like functions are addressed - * as follows. Each call to a format function `f` (e.g. printf) - * is replaced by a call to an analysis function `f'`. The signature of `f'` is - * similar to that of `f'` except it has an additional argument. This argument - * is a literal string where each character describes the type of a variadic - * argument in the original call to `f`. - * - * For instance: - * `printf("Str=%s, Int=%d ", str, num);` - * is replaced by - * `__e_acsl_builtin_printf("sd", "Str=%s, Int=%d", str, num);` - * Note the first argument "sd". It indicates that `printf` was invoked - * with two variadic arguments of types `char*` (specified via 's') - * and `int` (`d`). Such single-character types are further called - * |abbreviated| types. See ::abbr2str function for details. - * - * Execution of __e_acsl_builtin_printf checks that - * - format string is a NUL-terminated C string - * - all directives in the format string are well-formed (as per C99 standard) - * - each formatting directive has a corresponding variadic argument. - * Excessive arguments (for which there are no directives) are allowed - * but otherwise ignored. - * - the types of variadic arguments provided via a call match the types - * expected by the respective format directives. This check includes checking - * for signedness. For instance, - * __e_acsl_builtin_printf("d", "%u", n); - * will abort because the formatting directive expects its argument to be an - * unsigned integer, whereas `n` is a signed integer (indicated by "d") in - * the first argument to `__e_acsl_builtin_printf`. Bear in mind though that - * char, short, and float types are the subjects to default promotions. That - * is, `char` and `short` are promoted to `int` and `float` is promoted to - * double. Frama-C enforces such promotions by adding explicit casts. - * - variadic arguments corresponding to `%s` conversion specifiers describe - * valid C strings (NUL-terminated arrays of characters belonging to program - * allocation) - * - variadic arguments corresponding to `%n` conversion specifiers describe - * valid integer pointers - * Execution of __e_acsl_builtin_dprintf additionally checks that - * - the file descriptor designated for writing is open - * Execution of __e_acsl_builtin_fprintf additionally checks that - * - the stream designated for writing is valid - * Execution of __e_acsl_builtin_sprintf and __e_acsl_builtin_sprintf - * additionally check that - * - memory buffers designated for writing are allocated, writable and provide - * sufficient space for storing the results -***************************************************************************/ - -#ifndef E_ACSL_FORMAT_H -#define E_ACSL_FORMAT_H - -#ifndef E_ACSL_VALIDATE_FORMAT_STRINGS -# define E_ACSL_FORMAT_VALIDITY_DESC "disabled" -#else -# define E_ACSL_FORMAT_VALIDITY_DESC "enabled" - -#include <stdlib.h> -#include <features.h> +#ifdef E_ACSL_VALIDATE_FORMAT_STRINGS + +#include <fcntl.h> +#include <limits.h> #include <stdint.h> -#include <stdio.h> #include <wctype.h> -#include <fcntl.h> + +#include "../internals/e_acsl_malloc.h" +#include "../internals/e_acsl_private_assert.h" +#include "../internals/e_acsl_rtl_io.h" +#include "../internals/e_acsl_rtl_string.h" +#include "e_acsl_string.h" + +#include "e_acsl_stdio.h" #define FMT_ERROR "Format error: " #define INT_ERROR "Internal error: " @@ -179,7 +127,7 @@ static abbrev_t size2abbri(int size, int sign) { return sign ? ILong : IULong; else if (size == sizeof(long long int)) return sign ? ILongLong : IULongLong; - vabort(INT_ERROR "integral type corresponding to size %d unknown\n", size); + private_abort(INT_ERROR "integral type corresponding to size %d unknown\n", size); return '\0'; } @@ -207,7 +155,7 @@ static char abbr2ptr(char c) { case ILongLong: return PLongLong; case IULongLong: return PULongLong; default: - vabort(INT_ERROR "Unexpected abbreviated type %c\n", c); + private_abort(INT_ERROR "Unexpected abbreviated type %c\n", c); } return '\0'; } @@ -355,7 +303,7 @@ static char *fetch_format_argno(char *fmt, format_directive *dir, /* make sure that numbered and non-numbered directives are not mixed */ if (prev && prev->arg.expl != dir->arg.expl) - vabort(FMT_ERROR + private_abort(FMT_ERROR "\"%s\": numbered and non-numbered directives cannot be mixed\n", dir->format); @@ -370,7 +318,7 @@ static char *fetch_format_flags(char *fmt, format_directive *dir) { if (!dir->flags._f) \ { dir->flags._f = 1; } \ else \ - { vabort(FMT_ERROR "flag %s has already been set\n", #_f); } + { private_abort(FMT_ERROR "flag %s has already been set\n", #_f); } while (is_flag_char(*fmt)) { dir->flags.specified = 1; @@ -413,7 +361,7 @@ static char *fetch_format_field_width(char *fmt, format_directive *dir) { } else { /* ... or a positive decimal integer */ if (isdigit(*fmt)) { if (*fmt == '0') { - vabort(FMT_ERROR + private_abort(FMT_ERROR "field width in format cannot start with zero (%s)\n", dir->format); }; while (isdigit(*fmt)) { @@ -491,7 +439,7 @@ static char *fetch_format_length(char *fmt, format_directive *dir) { /* Make sure that the length modifier (if there is one) belongs to a right character class */ - vassert(dir->length.mod == '\0' || is_length_char(dir->length.mod), + private_assert(dir->length.mod == '\0' || is_length_char(dir->length.mod), INT_ERROR "Bad length modifier: '%c'\n", dir->length.mod); if (dir->length.bytes) { @@ -510,11 +458,11 @@ static char *fetch_format_length(char *fmt, format_directive *dir) { /* which has been fetched at the start matches the one we have arrived at */ if (!is_specifier_char(dir->specifier)) { if (dir->specifier == '%') - vabort(FMT_ERROR "in directive '%s'." + private_abort(FMT_ERROR "in directive '%s'." "the complete conversion specification for '%%' is '%%%%'\n", dir->format); else - vabort(FMT_ERROR "illegal format specifier '%c'\n", dir->specifier); + private_abort(FMT_ERROR "illegal format specifier '%c'\n", dir->specifier); } return ++fmt; } /* }}} */ @@ -590,7 +538,7 @@ static void release_directives(const char *fmt, format_directive ** dirs) { /* Format string validation (well-formedness) {{{ */ static inline void validate_application(format_directive *dir, char *allowed, char* kind, char *desc) { - vassert(strchr(allowed, dir->specifier) != NULL, FMT_ERROR + private_assert(strchr(allowed, dir->specifier) != NULL, FMT_ERROR "wrong application of %s [%s] to format specifier [%c]\n", desc, kind, dir->specifier); } @@ -619,7 +567,7 @@ static void validate_applications(format_directive *dir) { /* No flags should be used if 'n' specifier is given */ if (dir->flags.specified && dir->specifier == 'n') - vabort(FMT_ERROR "one of more flags with [n] specifier\n", NULL); + private_abort(FMT_ERROR "one of more flags with [n] specifier\n", NULL); /* ==== Precision ==== */ desc = "precision"; @@ -637,7 +585,7 @@ static void validate_applications(format_directive *dir) { desc = "field width"; if (dir->specifier == 'n' && dir->field_width != INT_MIN) - vabort(FMT_ERROR "field width used with [n] specifier\n", NULL); + private_abort(FMT_ERROR "field width used with [n] specifier\n", NULL); /* ==== Length modifiers ==== */ desc = "length modifier"; @@ -646,7 +594,7 @@ static void validate_applications(format_directive *dir) { conversion specifiers. 'L' applies to a, A, e, E, f, F, g, or G. */ if (dir->length.mod != '\0') { /* Make sure the length specifier is one of the allowed ones */ - vassert(is_length_char(dir->length.mod), + private_assert(is_length_char(dir->length.mod), FMT_ERROR "bad length specifier [%c]\n", dir->length.mod); /* Conver length modifier to a string */ @@ -675,7 +623,7 @@ static void validate_applications(format_directive *dir) { validate_application(dir, "aAeEfFgG", lm_kind, desc); break; default: - vabort(INT_ERROR "unexpected length modifier %c\n", lm_kind); + private_abort(INT_ERROR "unexpected length modifier %c\n", lm_kind); } } } @@ -704,7 +652,7 @@ static abbrev_t infer_integral_abbr(format_directive *dir, int sgn) { case '\0': return (sgn ? IInt : IUInt); } - vabort(INT_ERROR "unexpected length modifier: '%c'\n", dir->length.mod); + private_abort(INT_ERROR "unexpected length modifier: '%c'\n", dir->length.mod); return '\0'; } @@ -728,7 +676,7 @@ static abbrev_t infer_n_abbr(format_directive *dir) { case '\0': return PInt; default: - vabort(INT_ERROR "unexpected length modifier '%c'\n", dir->length.mod); + private_abort(INT_ERROR "unexpected length modifier '%c'\n", dir->length.mod); } return '\0'; } @@ -746,7 +694,7 @@ static void validate_format_type { abbrev_t actual_t = fmtdesc[dir->arg.index]; if (actual_t != expected_t) { - vabort("%s: directive %d ('%s') expects argument of type '%s'" + private_abort("%s: directive %d ('%s') expects argument of type '%s'" " but the corresponding argument has type '%s'\n", func, dir->arg.index + 1, dir->directive, abbr2str(expected_t), abbr2str(actual_t)); @@ -769,19 +717,19 @@ static long validate_format_string_argument (wide) ? valid_nwstring((wchar_t*)s, limit, 0) : valid_nstring(s, limit, 0); switch(size) { case -1: - vabort + private_abort ("%s: attempt to access unallocated memory via directive %d ('%s')\n", func, dir->arg.index + 1, dir->directive); case -2: - vabort(INT_ERROR + private_abort(INT_ERROR "%s: writeable check unexpectedly failed in directive %d ('%s')\n", func, dir->arg.index + 1, dir->directive); case -3: - vabort("%s: attempt to access partially unallocated memory " + private_abort("%s: attempt to access partially unallocated memory " "via directive %d ('%s')\n", func, dir->arg.index + 1, dir->directive); case -4: - vabort("%s: unterminated string in directive %d ('%s')\n", + private_abort("%s: unterminated string in directive %d ('%s')\n", func, dir->arg.index + 1, dir->directive); } return size; @@ -793,7 +741,7 @@ static void validate_overlapping_buffer(char *buffer, size_t buf_sz, void *arg, size_t arg_sz, const char *func, format_directive *dir) { if (buffer) { if (!disjoint_spaces((uintptr_t)buffer, buf_sz, (uintptr_t)arg, arg_sz)) - vabort("%s: output buffer overlaps with argument %d (%s)\n", + private_abort("%s: output buffer overlaps with argument %d (%s)\n", func, dir->arg.index + 1, dir->directive); } } @@ -817,7 +765,7 @@ static void validate_format /* Check that format string is valid first */ if (valid_string((char*)fmt, 0) < 0) - vabort("%s: invalid format string (unallocated or unterminated)\n", func); + private_abort("%s: invalid format string (unallocated or unterminated)\n", func); /* Parse format string and generate format directives */ format_directive ** dirs = get_format_directives((char*)fmt); @@ -841,7 +789,7 @@ static void validate_format format directive in the format string there should be a corresponding argument except for literal directive `%%` */ if (argno >= arglen) - vabort("%s: directive %d (%s) in format \"%s\" has no argument\n", + private_abort("%s: directive %d (%s) in format \"%s\" has no argument\n", func, dir->arg.index + 1, dir->directive, dir->format); /* Shortcut for `validate_format_type` function */ @@ -906,7 +854,7 @@ static void validate_format case 'p': validate_type(PVoid); if (!allocated(addr, 1, addr)) - vabort("%s: argument %d of directive %s not allocated\n", func, + private_abort("%s: argument %d of directive %s not allocated\n", func, argno + 1, dir->directive); validate_overlapping_buffer (buffer, buf_size, (void*)addr, 1, func, dir); @@ -919,14 +867,14 @@ static void validate_format sure that the provided pointer corresponds to writeable memory. */ int size = dir->length.bytes == 0 ? sizeof(int) : dir->length.bytes; if (!writeable(addr, size, addr)) - vabort("%s: argument %d of directive %s not allocated or writeable\n", + private_abort("%s: argument %d of directive %s not allocated or writeable\n", func, argno, dir->directive); validate_overlapping_buffer (buffer, buf_size, (void*)addr, size, func, dir); break; } default: - vabort(INT_ERROR "Unexpected format specifier '%c'\n", dir->specifier); + private_abort(INT_ERROR "Unexpected format specifier '%c'\n", dir->specifier); } dirs++; #undef validate_type @@ -949,18 +897,18 @@ int builtin_fprintf(const char *fmtdesc, FILE *stream, const char *fmt, ...) { va_start(ap, fmt); /* First check that stream belongs to allocated space */ if (!allocated((uintptr_t)stream, 1, (uintptr_t)stream)) - vabort("fprintf: attempt to write to an invalid stream\n", NULL); + private_abort("fprintf: attempt to write to an invalid stream\n", NULL); /* Check if stream is a valid stream and that is open */ int fd = fileno(stream); if (fd == -1) - vabort("fprintf: attempt to write to an invalid stream\n", NULL); + private_abort("fprintf: attempt to write to an invalid stream\n", NULL); /* Since we have a file descriptor check if it is open. This may not be really necessary since `fileno` should be able to tell us that. Does not hurt though. That's a fast check. It should be noted that `fileno` is a POSIX function and not in the C99 standard. */ if (fcntl(fd, F_GETFD) == -1) - vabort("fprintf: attempt to write to a closed stream\n", NULL); + private_abort("fprintf: attempt to write to a closed stream\n", NULL); validate_format(fmtdesc, fmt, ap, "fprintf", NULL, 0); va_start(ap, fmt); @@ -972,7 +920,7 @@ int builtin_dprintf(const char *fmtdesc, int fd, const char *fmt, ...) { va_start(ap, fmt); /* Make sure that the designated file descriptor is open */ if (fcntl(fd, F_GETFD) == -1) - vabort("dprintf: attempt to write to a closed file descriptor %d\n", fd); + private_abort("dprintf: attempt to write to a closed file descriptor %d\n", fd); validate_format(fmtdesc, fmt, ap, "dprintf", NULL, 0); va_start(ap, fmt); return vdprintf(fd, fmt, ap); @@ -989,7 +937,7 @@ int builtin_sprintf(const char *fmtdesc, char *buffer, const char *fmt, ...) { va_start(ap, fmt); int len = vsnprintf(NULL, 0, fmt, ap); if (!writeable((uintptr_t)buffer, len + 1, (uintptr_t)buffer)) - vabort("sprintf: output buffer is unallocated or has insufficient length " + private_abort("sprintf: output buffer is unallocated or has insufficient length " "to store %d characters or not writeable\n", len + 1); va_start(ap, fmt); validate_format(fmtdesc, fmt, ap, "sprintf", buffer, len + 1); @@ -1005,7 +953,7 @@ int builtin_snprintf(const char *fmtdesc, char *buffer, size_t size, /* Check that the input buffer is large enough. However, if there are zero characters to write, it does not matter */ if (size > 0 && !writeable((uintptr_t)buffer, size, (uintptr_t)buffer)) - vabort("sprintf: output buffer is unallocated or has insufficient length " + private_abort("sprintf: output buffer is unallocated or has insufficient length " "to store %d characters and \\0 terminator or not writeable\n", size); va_start(ap, fmt); return vsnprintf(buffer, size, fmt, ap); @@ -1020,5 +968,4 @@ int builtin_syslog(const char *fmtdesc, int priority, const char *fmt, ...) { } /* }}} */ -#endif /* E_ACSL_VALIDATE_FORMAT_STRINGS */ -#endif /* E_ACSL_FORMAT_H */ +#endif // E_ACSL_VALIDATE_FORMAT_STRINGS diff --git a/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.h b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.h new file mode 100644 index 00000000000..00906c5fd2b --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_stdio.h @@ -0,0 +1,121 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Validating format strings with respect to arguments and their types + * + * Detection of format string vulnerabilities and other violations + * related to improper use of formats in printf-like functions are addressed + * as follows. Each call to a format function `f` (e.g. printf) + * is replaced by a call to an analysis function `f'`. The signature of `f'` is + * similar to that of `f'` except it has an additional argument. This argument + * is a literal string where each character describes the type of a variadic + * argument in the original call to `f`. + * + * For instance: + * `printf("Str=%s, Int=%d ", str, num);` + * is replaced by + * `__e_acsl_builtin_printf("sd", "Str=%s, Int=%d", str, num);` + * Note the first argument "sd". It indicates that `printf` was invoked + * with two variadic arguments of types `char*` (specified via 's') + * and `int` (`d`). Such single-character types are further called + * |abbreviated| types. See ::abbr2str function for details. + * + * Execution of __e_acsl_builtin_printf checks that + * - format string is a NUL-terminated C string + * - all directives in the format string are well-formed (as per C99 standard) + * - each formatting directive has a corresponding variadic argument. + * Excessive arguments (for which there are no directives) are allowed + * but otherwise ignored. + * - the types of variadic arguments provided via a call match the types + * expected by the respective format directives. This check includes checking + * for signedness. For instance, + * __e_acsl_builtin_printf("d", "%u", n); + * will abort because the formatting directive expects its argument to be an + * unsigned integer, whereas `n` is a signed integer (indicated by "d") in + * the first argument to `__e_acsl_builtin_printf`. Bear in mind though that + * char, short, and float types are the subjects to default promotions. That + * is, `char` and `short` are promoted to `int` and `float` is promoted to + * double. Frama-C enforces such promotions by adding explicit casts. + * - variadic arguments corresponding to `%s` conversion specifiers describe + * valid C strings (NUL-terminated arrays of characters belonging to program + * allocation) + * - variadic arguments corresponding to `%n` conversion specifiers describe + * valid integer pointers + * Execution of __e_acsl_builtin_dprintf additionally checks that + * - the file descriptor designated for writing is open + * Execution of __e_acsl_builtin_fprintf additionally checks that + * - the stream designated for writing is valid + * Execution of __e_acsl_builtin_sprintf and __e_acsl_builtin_sprintf + * additionally check that + * - memory buffers designated for writing are allocated, writable and provide + * sufficient space for storing the results +***************************************************************************/ + +#ifndef E_ACSL_STDIO_H +#define E_ACSL_STDIO_H + +#include <stddef.h> +#include <stdio.h> + +#include "../internals/e_acsl_alias.h" + +/* No need to encapsulate via ifdef: using these extra definitions does + not hurt, otherwise need to pass additional parameters to frama-c */ +#define builtin_printf export_alias(builtin_printf) +#define builtin_fprintf export_alias(builtin_fprintf) +#define builtin_dprintf export_alias(builtin_dprintf) +#define builtin_sprintf export_alias(builtin_sprintf) +#define builtin_snprintf export_alias(builtin_snprintf) +#define builtin_syslog export_alias(builtin_syslog) + +/* Printf and friends {{{ */ + +/** \brief `printf` with error checking. */ +int builtin_printf(const char *fmtdesc, const char *fmt, ...) + __attribute__((FC_BUILTIN)); + +/** \brief `fprintf` with error checking. */ +int builtin_fprintf(const char *fmtdesc, FILE *stream, const char *fmt, ...) + __attribute__((FC_BUILTIN)); + +/** \brief `dprintf` with error checking. */ +int builtin_dprintf(const char *fmtdesc, int fd, const char *fmt, ...) + __attribute__((FC_BUILTIN)); + +/** \brief `sprintf` with error checking. */ +int builtin_sprintf(const char *fmtdesc, char *buffer, const char *fmt, ...) + __attribute__((FC_BUILTIN)); + +/** \brief `snprintf` with error checking. */ +int builtin_snprintf(const char *fmtdesc, char *buffer, size_t size, + const char *fmt, ...) + __attribute__((FC_BUILTIN)); + +/** \brief `syslog` with error checking. */ +int builtin_syslog(const char *fmtdesc, int priority, const char *fmt, ...) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +#endif // E_ACSL_STDIO_H diff --git a/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_libc_replacements.h b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.c similarity index 70% rename from src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_libc_replacements.h rename to src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.c index d48693d0c5f..05d54981e64 100644 --- a/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_libc_replacements.h +++ b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.c @@ -20,37 +20,15 @@ /* */ /**************************************************************************/ -/*! *********************************************************************** - * \file e_acsl_libc_replacements.h - * \brief Drop-in replacements for C library functions -***************************************************************************/ +#include "../internals/e_acsl_private_assert.h" +#include "../internals/e_acsl_rtl_string.h" +#include "../observation_model/e_acsl_observation_model.h" -#ifndef E_ACSL_LIBC_REPLACEMENTS_H -#define E_ACSL_LIBC_REPLACEMENTS_H - -/************************************************************************/ -/*** Support functionality {{{ ***/ -/************************************************************************/ +#include "e_acsl_string.h" /* *** String validation {{{ */ -/*! \brief Determine if `s` describes a C string up to length `n`. - - @return the index of `\0` character (i.e., the length of the string) - if `s` is a valid pointer of byte-size `len`, and - - `n` is negative and there is `\0` between `s` and the end of - the block `s` points to. - - `n` is positive and there is `\0` at index `i` (`i` < `n`) - and `s+i` belongs to the same block as `s`. - @return `n` if there is no `\0` between `s` and `s+n-1` but both - `s` and `s+n-1` belong to the same block. - - @return -1 if `s` does not belong to tracked allocation - @return -2 if `wrtbl` is set to a non-zero value and `s` is read-only - @return -3 if there is no `\0` between `s` and the end of its block and - `s+n-1` is unallocated or belongs to a different block. - @return -4 if `n` is negative and `s` is not NUL-terminated */ -static long valid_nstring(char *s, long n, int wrtbl) { +long valid_nstring(char *s, long n, int wrtbl) { if (n == 0) return n; @@ -73,12 +51,7 @@ static long valid_nstring(char *s, long n, int wrtbl) { return -1 /* Not allocated */; } -/*!\brief Same as ::valid_nstring but for wide characters. - - This function is very similar to ::valid_nstring. It is possible make it - more concise (say define it as a macro with types provided explicitly) yet - it is left this way for readibility reasons. */ -static long valid_nwstring(wchar_t *s, long n, int wrtbl) { +long valid_nwstring(wchar_t *s, long n, int wrtbl) { if (n == 0) return n; @@ -101,16 +74,6 @@ static long valid_nwstring(wchar_t *s, long n, int wrtbl) { return -1 /* Not allocated */; } -/*! \brief Same as ::valid_nstring but check a NUL-terminated string */ -static long inline valid_string(char *s, int wrtbl) { - return valid_nstring(s, -1, wrtbl); -} - -/*! \brief same as ::valid_string but for wide characters */ -static long inline valid_wstring(wchar_t *s, int wrtbl) { - return valid_nwstring(s, -1, wrtbl); -} - static long validate_string (char *s, long n, int wrtbl, const char *fun, const char *desc) { @@ -118,16 +81,16 @@ static long validate_string switch(size) { case -1: - vabort("%s: %sstring unallocated\n", fun, desc); + private_abort("%s: %sstring unallocated\n", fun, desc); case -2: - vabort("%s: %sstring is not writable\n", fun, desc); + private_abort("%s: %sstring is not writable\n", fun, desc); case -3: - vabort("%s: %sstring has insufficient length\n", fun, desc); + private_abort("%s: %sstring has insufficient length\n", fun, desc); case -4: - vabort("%s: %sstring not NUL-terminated\n", fun, desc); + private_abort("%s: %sstring not NUL-terminated\n", fun, desc); } /* at this point negative return values should have been handled */ - vassert(size >= 0, "unexpected return value of %d\n", size); + private_assert(size >= 0, "unexpected return value of %d\n", size); return size; } @@ -145,10 +108,7 @@ static inline long validate_allocated_string /* }}} */ /* *** Memory spaces {{{ */ -/** \brief Return a true value if memory spaces given by intervals - [s1, s1 + s1_sz] and [s2, s2 + s2_sz] are disjoint */ -static inline int disjoint_spaces - (uintptr_t s1, size_t s1_sz, uintptr_t s2, size_t s2_sz) +int disjoint_spaces(uintptr_t s1, size_t s1_sz, uintptr_t s2, size_t s2_sz) { return s1 + s1_sz <= s2 || s2 + s2_sz <= s1; } @@ -157,7 +117,7 @@ static inline void validate_allocated_space (void *p, size_t sz, const char *func, const char *space) { if (!allocated((uintptr_t)p, sz, (uintptr_t)p)) { - vabort("%s: unallocated (or insufficient) space in %s\n", func, space); + private_abort("%s: unallocated (or insufficient) space in %s\n", func, space); } } @@ -165,10 +125,10 @@ static inline void validate_writeable_space(void *p, size_t sz, const char *func, const char *space) { if (!writeable((uintptr_t)p, sz, (uintptr_t)p)) { if (writeable((uintptr_t)p, 1, (uintptr_t)p)) { - vabort("%s: insufficient space in %s, " + private_abort("%s: insufficient space in %s, " "at least %lu bytes required\n", func, space, sz); } else { - vabort("%s: %s space unallocated or cannot be written\n", func, space); + private_abort("%s: %s space unallocated or cannot be written\n", func, space); } } } @@ -177,7 +137,7 @@ static inline void validate_overlapping_spaces (uintptr_t s1, size_t s1_sz, uintptr_t s2, size_t s2_sz, const char *func) { if (!disjoint_spaces(s1, s1_sz, s2, s2_sz)) - vabort("%s: overlapping memory areas\n", func); + private_abort("%s: overlapping memory areas\n", func); } /* }}} */ /* }}} */ @@ -186,12 +146,10 @@ static inline void validate_overlapping_spaces /*** strlen/strcpy/strcat/strcmp {{{ ***/ /************************************************************************/ -/* drop-in replacement for `strlen` */ size_t builtin_strlen(const char *s) { return validate_allocated_string((char*)s, -1, "strlen", "input "); } -/* drop-in replacement for `strcpy` */ char *builtin_strcpy(char *dest, const char *src) { // `src` string should be a valid NUL-terminated C string size_t size = @@ -205,7 +163,6 @@ char *builtin_strcpy(char *dest, const char *src) { return strcpy(dest, src); } -/* drop-in replacement for `strncpy` */ char *builtin_strncpy(char *dest, const char *src, size_t n) { /* `src` should be a valid string up to `nth` character */ validate_allocated_string((char*)src, n, "strncpy", "source string "); @@ -216,7 +173,6 @@ char *builtin_strncpy(char *dest, const char *src, size_t n) { return strncpy(dest, src, n); } -/* drop-in replacement for `strcmp` */ int builtin_strcmp(const char *s1, const char *s2) { /* both strings should be valid NUL-terminated strings */ validate_allocated_string((char*)s1, -1, "strcmp", "string 1 "); @@ -224,7 +180,6 @@ int builtin_strcmp(const char *s1, const char *s2) { return strcmp(s1, s2); } -/* drop-in replacement for `strcmp` */ int builtin_strncmp(const char *s1, const char *s2, size_t n) { /* both strings should be valid up to nth character */ validate_allocated_string((char*)s1, n, "strncmp", "string 1 "); @@ -232,7 +187,6 @@ int builtin_strncmp(const char *s1, const char *s2, size_t n) { return strncmp(s1, s2, n); } -/* drop-in replacement for `strcat` */ char *builtin_strcat(char *dest, const char *src) { long src_sz = validate_allocated_string((char*)src, -1, "strcat", "source string "); @@ -240,7 +194,7 @@ char *builtin_strcat(char *dest, const char *src) { validate_writeable_string((char*)dest, -1, "strcat", "destination string "); size_t avail_sz = block_length(dest) - offset(dest); if (!(avail_sz >= src_sz + dest_sz + 1)) { - vabort("strcat: insufficient space in destination string, " + private_abort("strcat: insufficient space in destination string, " "available: %lu bytes, requires at least %lu bytes\n", avail_sz, src_sz + dest_sz + 1); } @@ -249,14 +203,13 @@ char *builtin_strcat(char *dest, const char *src) { return strcat(dest, src); } -/* drop-in replacement for `strncat` */ char *builtin_strncat(char *dest, const char *src, size_t n) { validate_allocated_string((char*)src, n, "strncat", "source string "); long dest_sz = validate_writeable_string((char*)dest, -1, "strcat", "destination string "); size_t avail_sz = block_length(dest) - offset(dest); if (!(avail_sz >= n + dest_sz + 1)) { - vabort("strncat: insufficient space in destination string, " + private_abort("strncat: insufficient space in destination string, " "available: %lu bytes, requires at least %lu bytes\n", avail_sz, n + dest_sz + 1); } @@ -270,7 +223,6 @@ char *builtin_strncat(char *dest, const char *src, size_t n) { /*** memcpy/memcmp/memset/memmove {{{ ***/ /************************************************************************/ -/* drop-in replacement for `memcpy` */ void *builtin_memcpy(void *dest, const void *src, size_t n) { validate_allocated_space((void*)src, n, "memcpy", "source space "); validate_writeable_space((void*)dest, n, "memcpy", "destination space "); @@ -278,13 +230,11 @@ void *builtin_memcpy(void *dest, const void *src, size_t n) { return memcpy(dest, src, n); } -/* drop-in replacement for `memset` */ void *builtin_memset(void *s, int c, size_t n) { validate_writeable_space((void*)s, n, "memset", "space "); return memset(s, c, n); } -/* drop-in replacement for `memcmp` */ int builtin_memcmp(const void *s1, const void *s2, size_t n) { validate_allocated_space((void*)s1, n, "memcmp", "space 1 "); validate_allocated_space((void*)s2, n, "memcmp", "space 1 "); @@ -292,7 +242,6 @@ int builtin_memcmp(const void *s1, const void *s2, size_t n) { return memcmp(s1, s2, n); } -/* drop-in replacement for `memmove` */ void *builtin_memmove(void *dest, const void *src, size_t n) { validate_allocated_space((void*)src, n, "memcmp", "source space "); validate_writeable_space((void*)dest, n, "memcmp", "destination space "); @@ -300,4 +249,4 @@ void *builtin_memmove(void *dest, const void *src, size_t n) { } /* }}} */ -#endif + diff --git a/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.h b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.h new file mode 100644 index 00000000000..e1bb8fdb9a1 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/libc_replacements/e_acsl_string.h @@ -0,0 +1,178 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Drop-in replacements for C library functions from string.h +***************************************************************************/ + +#ifndef E_ACSL_STRING_H +#define E_ACSL_STRING_H + +#include <stddef.h> +#include <stdint.h> + +#include "../internals/e_acsl_alias.h" + +#define builtin_strlen export_alias(builtin_strlen) +#define builtin_strcpy export_alias(builtin_strcpy) +#define builtin_strncpy export_alias(builtin_strncpy) +#define builtin_strcat export_alias(builtin_strcat) +#define builtin_strncat export_alias(builtin_strncat) +#define builtin_strncat export_alias(builtin_strncat) +#define builtin_strcmp export_alias(builtin_strcmp) +#define builtin_strncmp export_alias(builtin_strncmp) +#define builtin_memcpy export_alias(builtin_memcpy) +#define builtin_memset export_alias(builtin_memset) +#define builtin_memcmp export_alias(builtin_memcmp) +#define builtin_memmove export_alias(builtin_memmove) + +/************************************************************************/ +/*** Support functionality {{{ ***/ +/************************************************************************/ + +/* *** String validation {{{ */ + +/*! \brief Determine if `s` describes a C string up to length `n`. + + @return the index of `\0` character (i.e., the length of the string) + if `s` is a valid pointer of byte-size `len`, and + - `n` is negative and there is `\0` between `s` and the end of + the block `s` points to. + - `n` is positive and there is `\0` at index `i` (`i` < `n`) + and `s+i` belongs to the same block as `s`. + @return `n` if there is no `\0` between `s` and `s+n-1` but both + `s` and `s+n-1` belong to the same block. + + @return -1 if `s` does not belong to tracked allocation + @return -2 if `wrtbl` is set to a non-zero value and `s` is read-only + @return -3 if there is no `\0` between `s` and the end of its block and + `s+n-1` is unallocated or belongs to a different block. + @return -4 if `n` is negative and `s` is not NUL-terminated */ +long valid_nstring(char *s, long n, int wrtbl); + +/*!\brief Same as ::valid_nstring but for wide characters. + + This function is very similar to ::valid_nstring. It is possible make it + more concise (say define it as a macro with types provided explicitly) yet + it is left this way for readibility reasons. */ +long valid_nwstring(wchar_t *s, long n, int wrtbl); + +/*! \brief Same as ::valid_nstring but check a NUL-terminated string */ +long inline valid_string(char *s, int wrtbl) { + return valid_nstring(s, -1, wrtbl); +} + +/*! \brief same as ::valid_string but for wide characters */ +long inline valid_wstring(wchar_t *s, int wrtbl) { + return valid_nwstring(s, -1, wrtbl); +} +/* }}} */ + +/* *** Memory spaces {{{ */ +/** \brief Return a true value if memory spaces given by intervals + [s1, s1 + s1_sz] and [s2, s2 + s2_sz] are disjoint */ +int disjoint_spaces(uintptr_t s1, size_t s1_sz, uintptr_t s2, size_t s2_sz); +/* }}} */ +/* }}} */ + +/************************************************************************/ +/*** strlen/strcpy/strcat/strcmp {{{ ***/ +/************************************************************************/ + +/* drop-in replacement for `strlen` */ +/*@ assigns \result \from s[0..]; */ +size_t builtin_strlen(const char *s) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `strcpy` */ +/*@ assigns dest[0..] \from src[0..]; + @ assigns \result \from dest; + @ ensures \result == dest; */ +char *builtin_strcpy(char *dest, const char *src) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `strncpy` */ +/*@ assigns dest[0..n - 1] \from src[0..n-1]; + @ assigns \result \from dest; + @ ensures \result == dest; */ +char *builtin_strncpy(char *dest, const char *src, size_t n) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `strcmp` */ +/*@ assigns \result \from s1[0..], s2[0..]; */ +int builtin_strcmp(const char *s1, const char *s2) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `strncmp` */ +/*@ assigns \result \from s1[0..n-1], s2[0..n-1]; */ +int builtin_strncmp(const char *s1, const char *s2, size_t n) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `strcat` */ +/*@ assigns dest[..] \from src[0..]; + @ assigns \result \from dest; + @ ensures \result == dest; */ +char *builtin_strcat(char *dest, const char *src) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `strncat` */ +/*@ assigns dest[..] \from src[0..n]; + @ assigns \result \from dest; + @ ensures \result == dest; */ +char *builtin_strncat(char *dest, const char *src, size_t n) + __attribute__((FC_BUILTIN)); +/* }}} */ + +/************************************************************************/ +/*** memcpy/memcmp/memset/memmove {{{ ***/ +/************************************************************************/ + +/* drop-in replacement for `memcpy` */ +/*@ assigns ((char*)dest)[0..n-1] \from ((char*)src)[0..n-1]; + @ assigns \result \from dest; + @ ensures \result == dest; */ +void *builtin_memcpy(void *dest, const void *src, size_t n) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `memset` */ +/*@ assigns ((char*)s)[0..n-1] \from c; + @ assigns \result \from s; + @ ensures \result == s; */ +void *builtin_memset(void *s, int c, size_t n) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `memcmp` */ +/*@ assigns \result \from ((char*)s1)[0..n-1], ((char*)s2)[0..n-1]; */ +int builtin_memcmp(const void *s1, const void *s2, size_t n) + __attribute__((FC_BUILTIN)); + +/* drop-in replacement for `memmove` */ +/*@ assigns ((char*)dest)[0..n-1] \from ((char*)src)[0..n-1]; + @ assigns \result \from dest; + @ ensures \result == dest; */ +void *builtin_memmove(void *dest, const void *src, size_t n) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +#endif // E_ACSL_STRING_H diff --git a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.c b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.c new file mode 100644 index 00000000000..5f36c078a23 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.c @@ -0,0 +1,65 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include <fenv.h> +#include <math.h> +#include <stddef.h> + +#include "../internals/e_acsl_rtl_io.h" + +#include "e_acsl_floating_point.h" + +// Initialization +double math_HUGE_VAL = 0.0; +float math_HUGE_VALF = 0.0; +double math_INFINITY = 0.0; + +void init_infinity_values() { + /* Initialize E-ACSL infinity values */ + math_HUGE_VAL = HUGE_VAL; + math_HUGE_VALF = HUGE_VALF; + math_INFINITY = INFINITY; + /* Clear exceptions buffers */ + feclearexcept(FE_ALL_EXCEPT); +} + +void floating_point_exception(const char *exp) { + int except = fetestexcept(FE_ALL_EXCEPT); + char *resp = NULL; + if (except) { + if (fetestexcept(FE_DIVBYZERO)) + resp = "Division by zero"; + else if (fetestexcept(FE_INEXACT)) + resp = "Rounded result of an operation is not equal to the infinite precision result"; + else if (fetestexcept(FE_INVALID)) + resp = "Result of a floating-point operation is not well-defined"; + else if (fetestexcept(FE_OVERFLOW)) + resp = "Floating-point overflow"; + else if (fetestexcept(FE_UNDERFLOW)) + resp = "Floating-point underflow"; + } + if (resp) { + rtl_printf("Execution of the statement `%s` leads to a floating point exception\n", exp); + rtl_printf("Exception: %s\n", resp); + } + feclearexcept(FE_ALL_EXCEPT); +} diff --git a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.h b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.h index 569a8245965..f9023747544 100644 --- a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.h +++ b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_floating_point.h @@ -21,17 +21,19 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_floating_point.h + * \file * \brief Functionality related to processing of floating point values ***************************************************************************/ #ifndef E_ACSL_FLOATING_POINT_H #define E_ACSL_FLOATING_POINT_H -#include "e_acsl.h" -#include <math.h> -#include <float.h> -#include <fenv.h> +#include "../internals/e_acsl_alias.h" + +#define math_HUGE_VAL export_alias(math_HUGE_VAL) +#define math_HUGE_VALF export_alias(math_HUGE_VALF) +#define math_INFINITY export_alias(math_INFINITY) +#define floating_point_exception export_alias(floating_point_exception) /* Below variables hold infinity values for floating points defined in math.h. Most of them are defined as macros that expand to built-in function calls. @@ -48,11 +50,14 @@ */ /** \brief Positive infinity for doubles: same as HUGE_VAL */ -double math_HUGE_VAL = 0.0; +extern double math_HUGE_VAL + __attribute__((FC_BUILTIN)); /** \brief Positive infinity for floats: same as HUGE_VALF */ -float math_HUGE_VALF = 0.0; +extern float math_HUGE_VALF + __attribute__((FC_BUILTIN)); /** \brief Representation of infinity value for doubles: same as INFINITY */ -double math_INFINITY = 0.0; +extern double math_INFINITY + __attribute__((FC_BUILTIN)); /* FIXME: An additional variable that should be added to this list is long double math_HUGE_VALL; @@ -60,35 +65,9 @@ double math_INFINITY = 0.0; are unsupported Value plug-in analysis who start throwing errors once test suite is ran. */ -static void init_infinity_values() { - /* Initialize E-ACSL infinity values */ - math_HUGE_VAL = HUGE_VAL; - math_HUGE_VALF = HUGE_VALF; - math_INFINITY = INFINITY; - /* Clear exceptions buffers */ - feclearexcept(FE_ALL_EXCEPT); -} +void init_infinity_values(); -void floating_point_exception(const char *exp) { - int except = fetestexcept(FE_ALL_EXCEPT); - char *resp = NULL; - if (except) { - if (fetestexcept(FE_DIVBYZERO)) - resp = "Division by zero"; - else if (fetestexcept(FE_INEXACT)) - resp = "Rounded result of an operation is not equal to the infinite precision result"; - else if (fetestexcept(FE_INVALID)) - resp = "Result of a floating-point operation is not well-defined"; - else if (fetestexcept(FE_OVERFLOW)) - resp = "Floating-point overflow"; - else if (fetestexcept(FE_UNDERFLOW)) - resp = "Floating-point underflow"; - } - if (resp) { - rtl_printf("Execution of the statement `%s` leads to a floating point exception\n", exp); - rtl_printf("Exception: %s\n", resp); - } - feclearexcept(FE_ALL_EXCEPT); -} +void floating_point_exception(const char *exp) + __attribute__((FC_BUILTIN)); -#endif +#endif // E_ACSL_FLOATING_POINT_H diff --git a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h index 38c3716db07..f7df545a7bf 100644 --- a/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h +++ b/src/plugins/e-acsl/share/e-acsl/numerical_model/e_acsl_gmp_api.h @@ -21,7 +21,7 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_gmp.h + * \file * \brief Prototypes of functions belonging to GNU Multiple * Precision Arithmetic Library (GMP) used within E-ACSL ***************************************************************************/ @@ -33,8 +33,8 @@ #ifndef E_ACSL_GMP_API_H #define E_ACSL_GMP_API_H -#include "stdlib.h" -#include "e_acsl_alias.h" +#include <stddef.h> +#include "../internals/e_acsl_alias.h" #define mpz_struct export_alias(mpz_struct) #define mpz_t export_alias(mpz_t) diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.c b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.c new file mode 100644 index 00000000000..5492782fdd0 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.c @@ -0,0 +1,469 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Patricia Trie API Implementation +***************************************************************************/ + +#include "../../internals/e_acsl_malloc.h" + +#include "e_acsl_bittree.h" + +#define WORDBITS __WORDSIZE + +static size_t mask(size_t, size_t); + +#if WORDBITS == 16 + +static const size_t Tmasks[] = { +0x0,0x8000,0xc000,0xe000,0xf000,0xf800,0xfc00,0xfe00,0xff00,0xff80,0xffc0, +0xffe0,0xfff0,0xfff8,0xfffc,0xfffe,0xffff}; + +static const int Teq[] = {0,-1,3,-3,6,-5,7,-7,12,-9,11,-11,14,-13,15,16,-16}; +static const int Tneq[] = {0,0,1,-2,2,-4,5,-6,4,-8,9,-10,10,-12,13,-14,-15}; + +#elif WORDBITS == 32 + +static const size_t Tmasks[] = { +0x0,0x80000000,0xc0000000,0xe0000000,0xf0000000,0xf8000000,0xfc000000, +0xfe000000,0xff000000,0xff800000,0xffc00000,0xffe00000,0xfff00000,0xfff80000, +0xfffc0000,0xfffe0000,0xffff0000,0xffff8000,0xffffc000,0xffffe000,0xfffff000, +0xfffff800,0xfffffc00,0xfffffe00,0xffffff00,0xffffff80,0xffffffc0,0xffffffe0, +0xfffffff0,0xfffffff8,0xfffffffc,0xfffffffe,0xffffffff}; + +static const int Teq[] = + { 0,-1,3,-3,6,-5,7,-7,12,-9,11,-11,14,-13,15,-15,24,-17,19,-19,22, + -21,23,-23,28,-25,27,-27,30,-29,31,32,-32 }; + +static const int Tneq[] = + { 0,0,1,-2,2,-4,5,-6,4,-8,9,-10,10,-12,13,-14,8,-16,17,-18,18,-20,21,-22,20, + -24,25,-26,26,-28,29,-30,-31 }; + +#else /* WORDBITS == 64 */ + +static const size_t Tmasks[] = { +0x0,0x8000000000000000,0xc000000000000000,0xe000000000000000,0xf000000000000000, +0xf800000000000000,0xfc00000000000000,0xfe00000000000000,0xff00000000000000, +0xff80000000000000,0xffc0000000000000,0xffe0000000000000,0xfff0000000000000, +0xfff8000000000000,0xfffc000000000000,0xfffe000000000000,0xffff000000000000, +0xffff800000000000,0xffffc00000000000,0xffffe00000000000,0xfffff00000000000, +0xfffff80000000000,0xfffffc0000000000,0xfffffe0000000000,0xffffff0000000000, +0xffffff8000000000,0xffffffc000000000,0xffffffe000000000,0xfffffff000000000, +0xfffffff800000000,0xfffffffc00000000,0xfffffffe00000000,0xffffffff00000000, +0xffffffff80000000,0xffffffffc0000000,0xffffffffe0000000,0xfffffffff0000000, +0xfffffffff8000000,0xfffffffffc000000,0xfffffffffe000000,0xffffffffff000000, +0xffffffffff800000,0xffffffffffc00000,0xffffffffffe00000,0xfffffffffff00000, +0xfffffffffff80000,0xfffffffffffc0000,0xfffffffffffe0000,0xffffffffffff0000, +0xffffffffffff8000,0xffffffffffffc000,0xffffffffffffe000,0xfffffffffffff000, +0xfffffffffffff800,0xfffffffffffffc00,0xfffffffffffffe00,0xffffffffffffff00, +0xffffffffffffff80,0xffffffffffffffc0,0xffffffffffffffe0,0xfffffffffffffff0, +0xfffffffffffffff8,0xfffffffffffffffc,0xfffffffffffffffe,0xffffffffffffffff}; + +static const int Teq[] = + { 0,-1,3,-3,6,-5,7,-7,12,-9,11,-11,14,-13,15,-15,24,-17,19,-19,22,-21,23,-23, + 28,-25,27,-27,30,-29,31,-31,48,-33,35,-35,38,-37,39,-39,44,-41,43,-43,46, + -45,47,-47,56,-49,51,-51,54,-53,55,-55,60,-57,59,-59,62,-61,63,64,-64 }; + +static const int Tneq[] = + { 0,0,1,-2,2,-4,5,-6,4,-8,9,-10,10,-12,13,-14,8,-16,17,-18,18,-20,21,-22,20, + -24,25,-26,26,-28,29,-30,16,-32,33,-34,34,-36,37,-38,36,-40,41,-42,42,-44, + 45,-46,40,-48,49,-50,50,-52,53,-54,52,-56,57,-58,58,-60,61,-62,-63 }; + +#endif + +/*! \brief Root node of the bitree */ +static bt_node * bt_root = NULL; + +/* common prefix of two addresses */ +/*@ assigns \nothing; + @ ensures \forall int i; + 0 <= i <= WORDBITS + ==> (Tmasks[i] & a) == (Tmasks[i] & b) + ==> \result >= Tmasks[i]; + @ ensures (a & \result) == (b & \result); + @ ensures \exists int i; 0 <= i <= WORDBITS && \result == Tmasks[i]; + @*/ +static size_t mask(size_t a, size_t b) { + size_t nxor = ~(a ^ b), ret; + int i = WORDBITS/2; /* dichotomic search, starting in the middle */ + /*cpt_mask++;*/ + + /* if the current mask matches we use transition from Teq, else from Tneq + we stop as soon as i is negative, meaning that we found the mask + a negative element i from Teq or Tneq means stop and return Tmasks[-i] */ + /*@ loop invariant -WORDBITS <= i <= WORDBITS; + @ loop assigns i; + @*/ + while(i > 0) { + //@ assert 0 < i <= WORDBITS; + //@ assert \valid(Tmasks+i); + if (nxor >= Tmasks[i]) + //@ assert \valid(Teq+i); + i = Teq[i]; + else + //@ assert \valid(Tneq+i); + i = Tneq[i]; + } + + //@ assert -WORDBITS <= i <= 0; + ret = Tmasks[-i]; + DASSERT ((a & ret) == (b & ret)); + return ret; +} + + +/* called from bt_remove */ +/* the block we are looking for has to be in the tree */ +/*@ requires \valid(ptr); + @ requires \valid(bt_root); + @ assigns \nothing; + @ ensures \valid(\result); + @ ensures \result->leaf == ptr; + @*/ +static bt_node * bt_get_leaf_from_block (bt_block * ptr) { + bt_node * curr = bt_root; + DASSERT(bt_root != NULL); + DASSERT(ptr != NULL); + + /*@ loop assigns curr; + @*/ + while(!curr->is_leaf) { + // the prefix is consistent + DASSERT((curr->addr & curr->mask) == (ptr->ptr & curr->mask)); + // two children + DASSERT(curr->left != NULL && curr->right != NULL); + // the prefix of one child is consistent + if((curr->right->addr & curr->right->mask) + == (ptr->ptr & curr->right->mask)) + curr = curr->right; + else if((curr->left->addr & curr->left->mask) + == (ptr->ptr & curr->left->mask)) + curr = curr->left; + else + vassert(0, "Unreachable", NULL); + } + DASSERT(curr->is_leaf); + DASSERT(curr->leaf == ptr); + return curr; +} + + +/* remove the block from the structure */ +/* the block we are looking for has to be in the tree */ +/*@ requires \valid(ptr); + @*/ +static void bt_remove (bt_block * ptr) { + bt_node * leaf_to_delete = bt_get_leaf_from_block (ptr); + DASSERT(leaf_to_delete->leaf == ptr); + + if(leaf_to_delete->parent == NULL) + // the leaf is the root + bt_root = NULL; + else { + bt_node * sibling, * parent; + parent = leaf_to_delete->parent; + sibling = (leaf_to_delete == parent->left) ? parent->right : parent->left; + DASSERT(sibling != NULL); + // copying all sibling's fields into the parent's + parent->is_leaf = sibling->is_leaf; + parent->addr = sibling->addr; + parent->mask = sibling->mask; + parent->left = sibling->left; + parent->right = sibling->right; + parent->leaf = sibling->leaf; + if(!sibling->is_leaf) { + sibling->left->parent = parent; + sibling->right->parent = parent; + } + private_free(sibling); + /* necessary ? -- begin */ + if(parent->parent != NULL) { + parent->parent->mask = mask(parent->parent->left->addr + & parent->parent->left->mask, + parent->parent->right->addr + & parent->parent->right->mask); + } + /* necessary ? -- end */ + } + private_free(leaf_to_delete); +} + + +/* called from bt_insert */ +/* the returned node will be the sibling of the soon to be added node */ +/*@ requires \valid(ptr); + @ requires \valid(bt_root); + @ assigns \nothing; + @ ensures \valid(\result); + @*/ +static bt_node * bt_most_similar_node (bt_block * ptr) { + bt_node * curr = bt_root; + size_t left_prefix, right_prefix; + DASSERT(ptr != NULL); + DASSERT(bt_root != NULL); + + while(1) { + if(curr->is_leaf) + return curr; + DASSERT(curr->left != NULL && curr->right != NULL); + left_prefix = mask(curr->left->addr & curr->left->mask, ptr->ptr); + right_prefix = mask(curr->right->addr & curr->right->mask, ptr->ptr); + if(left_prefix > right_prefix) + curr = curr->left; + else if(right_prefix > left_prefix) + curr = curr->right; + else + return curr; + } +} + +/* add a block in the structure */ +/*@ requires \valid(ptr); + @*/ +static void bt_insert (bt_block * ptr) { + bt_node * new_leaf; + DASSERT(ptr != NULL); + + new_leaf = private_malloc(sizeof(bt_node)); + DASSERT(new_leaf != NULL); + new_leaf->is_leaf = 1; + new_leaf->addr = ptr->ptr; + new_leaf->mask = Tmasks[WORDBITS]; /* ~0ul */ + new_leaf->left = NULL; + new_leaf->right = NULL; + new_leaf->parent = NULL; + new_leaf->leaf = ptr; + + if(bt_root == NULL) + bt_root = new_leaf; + else { + bt_node * sibling = bt_most_similar_node (ptr), * parent, * aux; + + DASSERT(sibling != NULL); + parent = private_malloc(sizeof(bt_node)); + DASSERT(parent != NULL); + parent->is_leaf = 0; + parent->addr = sibling->addr & new_leaf->addr; + /*parent->mask = mask(sibling->addr & sibling->mask, ptr->ptr);*/ + parent->leaf = NULL; + if(new_leaf->addr <= sibling->addr) { + parent->left = new_leaf; + parent->right = sibling; + } else { + parent->left = sibling; + parent->right = new_leaf; + } + new_leaf->parent = parent; + + if(sibling == bt_root) { + parent->parent = NULL; + parent->mask = mask(sibling->addr & sibling->mask, ptr->ptr); + bt_root = parent; + } else { + if (sibling->parent->left == sibling) + sibling->parent->left = parent; + else + sibling->parent->right = parent; + parent->parent = sibling->parent; + + /* necessary ? -- begin */ + aux = parent; + aux->mask = mask(aux->left->addr & aux->left->mask, + aux->right->addr & aux->right->mask); + /* necessary ? -- end */ + } + sibling->parent = parent; + if(!sibling->is_leaf) + sibling->mask = mask(sibling->left->addr & sibling->left->mask, + sibling->right->addr & sibling->right->mask); + + DASSERT((parent->left == sibling && parent->right == new_leaf) + || (parent->left == new_leaf && parent->right == sibling)); + } +} + +/* return the block B such as: begin addr of B == ptr if such a block exists, + return NULL otherwise */ +/*@ assigns \nothing; + @ ensures \valid(\result); + @ ensures \result == \null || \result->ptr == (size_t)ptr; + @*/ +static bt_block * bt_lookup (void * ptr) { + bt_node * tmp = bt_root; + DASSERT(bt_root != NULL); + DASSERT(ptr != NULL); + + /*@ loop assigns tmp; + @*/ + while(!tmp->is_leaf) { + // if the ptr we are looking for does not share the prefix of tmp + if((tmp->addr & tmp->mask) != ((size_t)ptr & tmp->mask)) + return NULL; + + // two children + DASSERT(tmp->left != NULL && tmp->right != NULL); + // the prefix of one child is consistent + if((tmp->right->addr & tmp->right->mask) + == ((size_t)ptr & tmp->right->mask)) + tmp = tmp->right; + else if((tmp->left->addr & tmp->left->mask) + == ((size_t)ptr & tmp->left->mask)) + tmp = tmp->left; + else + return NULL; + } + + if(tmp->leaf->ptr != (size_t)ptr) + return NULL; + return tmp->leaf; +} + +/* return the block B containing ptr, such as : + begin addr of B <= ptr < (begin addr + size) of B + or NULL if such a block does not exist */ +static bt_block * bt_find (void * ptr) { + bt_node * tmp = bt_root; + if(bt_root == NULL || ptr == NULL) + return NULL; + + bt_node * other_choice = NULL; + + while(1) { + if(tmp->is_leaf) { + /* tmp cannot contain ptr because its begin addr is higher */ + if(tmp->addr > (size_t)ptr) + return NULL; + + /* tmp->addr <= ptr, tmp may contain ptr + ptr is contained if tmp is large enough (begin addr + size) */ + else if((size_t)ptr < tmp->leaf->size + tmp->addr + || (tmp->leaf->size == 0 && (size_t)ptr == tmp->leaf->ptr)) + return tmp->leaf; + /* tmp->addr <= ptr, but tmp->addr is not large enough */ + else + return NULL; + } + + DASSERT(tmp->left != NULL && tmp->right != NULL); + + /* the right child has the highest address, so we test it first */ + if(((size_t)tmp->right->addr & tmp->right->mask) + <= ((size_t)ptr & tmp->right->mask)) { + other_choice = tmp->left; + tmp = tmp->right; + } + else if(((size_t)tmp->left->addr & tmp->left->mask) + <= ((size_t)ptr & tmp->left->mask)) + tmp = tmp->left; + else { + if(other_choice == NULL) + return NULL; + else { + tmp = other_choice; + other_choice = NULL; + } + } + } +} + +/*******************/ +/* CLEAN */ +/*******************/ +/* erase information about initialization of a block */ +static void bt_clean_block_init (bt_block * ptr) { + if(ptr->init_ptr != NULL) { + private_free(ptr->init_ptr); + ptr->init_ptr = NULL; + } + ptr->init_bytes = 0; +} + +/* erase all information about a block */ +static void bt_clean_block (bt_block * ptr) { + if(ptr) { + bt_clean_block_init(ptr); + private_free(ptr); + } +} + +/* called from bt_clean */ +/* recursively erase the content of the structure */ +static void bt_clean_rec (bt_node * ptr) { + if(ptr == NULL) return; + else if(ptr->is_leaf) { + bt_clean_block(ptr->leaf); + ptr->leaf = NULL; + } + else { + bt_clean_rec(ptr->left); + bt_clean_rec(ptr->right); + ptr->left = ptr->right = NULL; + } + private_free(ptr); +} + +/* erase the content of the structure */ +static void bt_clean () { + bt_clean_rec(bt_root); + bt_root = NULL; +} + +/*********************/ +/* DEBUG */ +/*********************/ +#ifdef E_ACSL_DEBUG +static void bt_print_block(bt_block * ptr) { + if (ptr != NULL) { + DLOG("%a; %lu Bytes; %slitteral; [init] : %d ", + (char*)ptr->ptr, ptr->size, + ptr->is_readonly ? "" : "not ", ptr->init_bytes); + if(ptr->init_ptr != NULL) { + unsigned i; + for(i = 0; i < ptr->size/8; i++) + DLOG("%b ", ptr->init_ptr[i]); + } + DLOG("\n"); + } +} + +static void bt_print_node(bt_node * ptr, int depth) { + int i; + if(ptr == NULL) + return; + for(i = 0; i < depth; i++) + DLOG(" "); + if(ptr->is_leaf) + bt_print_block(ptr->leaf); + else { + DLOG("%p -- %p\n", (void*)ptr->mask, (void*)ptr->addr); + bt_print_node(ptr->left, depth+1); + bt_print_node(ptr->right, depth+1); + } +} + +static void bt_print_tree() { + DLOG("------------DEBUG\n"); + bt_print_node(bt_root, 0); + DLOG("-----------------\n"); +} +#endif diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h index 4d6e5b87353..ed2c18bc0c4 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h @@ -21,449 +21,84 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_bittree.h - * \brief Patricia Trie API Implementation + * \file + * \brief Patricia Trie API ***************************************************************************/ #ifndef E_ACSL_BITTREE #define E_ACSL_BITTREE -#define WORDBITS __WORDSIZE - -static size_t mask(size_t, size_t); - -#if WORDBITS == 16 - -static const size_t Tmasks[] = { -0x0,0x8000,0xc000,0xe000,0xf000,0xf800,0xfc00,0xfe00,0xff00,0xff80,0xffc0, -0xffe0,0xfff0,0xfff8,0xfffc,0xfffe,0xffff}; - -static const int Teq[] = {0,-1,3,-3,6,-5,7,-7,12,-9,11,-11,14,-13,15,16,-16}; -static const int Tneq[] = {0,0,1,-2,2,-4,5,-6,4,-8,9,-10,10,-12,13,-14,-15}; - -#elif WORDBITS == 32 - -static const size_t Tmasks[] = { -0x0,0x80000000,0xc0000000,0xe0000000,0xf0000000,0xf8000000,0xfc000000, -0xfe000000,0xff000000,0xff800000,0xffc00000,0xffe00000,0xfff00000,0xfff80000, -0xfffc0000,0xfffe0000,0xffff0000,0xffff8000,0xffffc000,0xffffe000,0xfffff000, -0xfffff800,0xfffffc00,0xfffffe00,0xffffff00,0xffffff80,0xffffffc0,0xffffffe0, -0xfffffff0,0xfffffff8,0xfffffffc,0xfffffffe,0xffffffff}; - -static const int Teq[] = - { 0,-1,3,-3,6,-5,7,-7,12,-9,11,-11,14,-13,15,-15,24,-17,19,-19,22, - -21,23,-23,28,-25,27,-27,30,-29,31,32,-32 }; - -static const int Tneq[] = - { 0,0,1,-2,2,-4,5,-6,4,-8,9,-10,10,-12,13,-14,8,-16,17,-18,18,-20,21,-22,20, - -24,25,-26,26,-28,29,-30,-31 }; - -#else /* WORDBITS == 64 */ - -static const size_t Tmasks[] = { -0x0,0x8000000000000000,0xc000000000000000,0xe000000000000000,0xf000000000000000, -0xf800000000000000,0xfc00000000000000,0xfe00000000000000,0xff00000000000000, -0xff80000000000000,0xffc0000000000000,0xffe0000000000000,0xfff0000000000000, -0xfff8000000000000,0xfffc000000000000,0xfffe000000000000,0xffff000000000000, -0xffff800000000000,0xffffc00000000000,0xffffe00000000000,0xfffff00000000000, -0xfffff80000000000,0xfffffc0000000000,0xfffffe0000000000,0xffffff0000000000, -0xffffff8000000000,0xffffffc000000000,0xffffffe000000000,0xfffffff000000000, -0xfffffff800000000,0xfffffffc00000000,0xfffffffe00000000,0xffffffff00000000, -0xffffffff80000000,0xffffffffc0000000,0xffffffffe0000000,0xfffffffff0000000, -0xfffffffff8000000,0xfffffffffc000000,0xfffffffffe000000,0xffffffffff000000, -0xffffffffff800000,0xffffffffffc00000,0xffffffffffe00000,0xfffffffffff00000, -0xfffffffffff80000,0xfffffffffffc0000,0xfffffffffffe0000,0xffffffffffff0000, -0xffffffffffff8000,0xffffffffffffc000,0xffffffffffffe000,0xfffffffffffff000, -0xfffffffffffff800,0xfffffffffffffc00,0xfffffffffffffe00,0xffffffffffffff00, -0xffffffffffffff80,0xffffffffffffffc0,0xffffffffffffffe0,0xfffffffffffffff0, -0xfffffffffffffff8,0xfffffffffffffffc,0xfffffffffffffffe,0xffffffffffffffff}; - -static const int Teq[] = - { 0,-1,3,-3,6,-5,7,-7,12,-9,11,-11,14,-13,15,-15,24,-17,19,-19,22,-21,23,-23, - 28,-25,27,-27,30,-29,31,-31,48,-33,35,-35,38,-37,39,-39,44,-41,43,-43,46, - -45,47,-47,56,-49,51,-51,54,-53,55,-55,60,-57,59,-59,62,-61,63,64,-64 }; - -static const int Tneq[] = - { 0,0,1,-2,2,-4,5,-6,4,-8,9,-10,10,-12,13,-14,8,-16,17,-18,18,-20,21,-22,20, - -24,25,-26,26,-28,29,-30,16,-32,33,-34,34,-36,37,-38,36,-40,41,-42,42,-44, - 45,-46,40,-48,49,-50,50,-52,53,-54,52,-56,57,-58,58,-60,61,-62,-63 }; - +#include <stddef.h> +#include <stdint.h> + +/*! \brief Structure representing an allocated memory block */ +struct bt_block { + size_t ptr; //!< Base address + size_t size; //!< Block length (in bytes) + unsigned char * init_ptr; //!< Per-bit initialization + size_t init_bytes; //!< Number of initialized bytes within a block + int is_readonly; //!< True if a block is marked read-only + int is_freeable; //!< True if a block can be de-allocated using `free` +#ifdef E_ACSL_DEBUG + size_t line; //!< Line number where this block was recorded + char* file; //!< File name where this block was recorded #endif +#ifdef E_ACSL_TEMPORAL + uint32_t timestamp; //!< Temporal timestamp of a block's creation + void *temporal_shadow; //!< Temporal shadow for storing referent numbers +#endif +}; -/*! \brief Root node of the bitree */ -static bt_node * bt_root = NULL; - -/* common prefix of two addresses */ -/*@ assigns \nothing; - @ ensures \forall int i; - 0 <= i <= WORDBITS - ==> (Tmasks[i] & a) == (Tmasks[i] & b) - ==> \result >= Tmasks[i]; - @ ensures (a & \result) == (b & \result); - @ ensures \exists int i; 0 <= i <= WORDBITS && \result == Tmasks[i]; - @*/ -static size_t mask(size_t a, size_t b) { - size_t nxor = ~(a ^ b), ret; - int i = WORDBITS/2; /* dichotomic search, starting in the middle */ - /*cpt_mask++;*/ - - /* if the current mask matches we use transition from Teq, else from Tneq - we stop as soon as i is negative, meaning that we found the mask - a negative element i from Teq or Tneq means stop and return Tmasks[-i] */ - /*@ loop invariant -WORDBITS <= i <= WORDBITS; - @ loop assigns i; - @*/ - while(i > 0) { - //@ assert 0 < i <= WORDBITS; - //@ assert \valid(Tmasks+i); - if (nxor >= Tmasks[i]) - //@ assert \valid(Teq+i); - i = Teq[i]; - else - //@ assert \valid(Tneq+i); - i = Tneq[i]; - } - - //@ assert -WORDBITS <= i <= 0; - ret = Tmasks[-i]; - DASSERT ((a & ret) == (b & ret)); - return ret; -} - - -/* called from bt_remove */ -/* the block we are looking for has to be in the tree */ -/*@ requires \valid(ptr); - @ requires \valid(bt_root); - @ assigns \nothing; - @ ensures \valid(\result); - @ ensures \result->leaf == ptr; - @*/ -static bt_node * bt_get_leaf_from_block (bt_block * ptr) { - bt_node * curr = bt_root; - DASSERT(bt_root != NULL); - DASSERT(ptr != NULL); - - /*@ loop assigns curr; - @*/ - while(!curr->is_leaf) { - // the prefix is consistent - DASSERT((curr->addr & curr->mask) == (ptr->ptr & curr->mask)); - // two children - DASSERT(curr->left != NULL && curr->right != NULL); - // the prefix of one child is consistent - if((curr->right->addr & curr->right->mask) - == (ptr->ptr & curr->right->mask)) - curr = curr->right; - else if((curr->left->addr & curr->left->mask) - == (ptr->ptr & curr->left->mask)) - curr = curr->left; - else - vassert(0, "Unreachable", NULL); - } - DASSERT(curr->is_leaf); - DASSERT(curr->leaf == ptr); - return curr; -} - - -/* remove the block from the structure */ -/* the block we are looking for has to be in the tree */ -/*@ requires \valid(ptr); - @*/ -static void bt_remove (bt_block * ptr) { - bt_node * leaf_to_delete = bt_get_leaf_from_block (ptr); - DASSERT(leaf_to_delete->leaf == ptr); - - if(leaf_to_delete->parent == NULL) - // the leaf is the root - bt_root = NULL; - else { - bt_node * sibling, * parent; - parent = leaf_to_delete->parent; - sibling = (leaf_to_delete == parent->left) ? parent->right : parent->left; - DASSERT(sibling != NULL); - // copying all sibling's fields into the parent's - parent->is_leaf = sibling->is_leaf; - parent->addr = sibling->addr; - parent->mask = sibling->mask; - parent->left = sibling->left; - parent->right = sibling->right; - parent->leaf = sibling->leaf; - if(!sibling->is_leaf) { - sibling->left->parent = parent; - sibling->right->parent = parent; - } - private_free(sibling); - /* necessary ? -- begin */ - if(parent->parent != NULL) { - parent->parent->mask = mask(parent->parent->left->addr - & parent->parent->left->mask, - parent->parent->right->addr - & parent->parent->right->mask); - } - /* necessary ? -- end */ - } - private_free(leaf_to_delete); -} - - -/* called from bt_insert */ -/* the returned node will be the sibling of the soon to be added node */ -/*@ requires \valid(ptr); - @ requires \valid(bt_root); - @ assigns \nothing; - @ ensures \valid(\result); - @*/ -static bt_node * bt_most_similar_node (bt_block * ptr) { - bt_node * curr = bt_root; - size_t left_prefix, right_prefix; - DASSERT(ptr != NULL); - DASSERT(bt_root != NULL); - - while(1) { - if(curr->is_leaf) - return curr; - DASSERT(curr->left != NULL && curr->right != NULL); - left_prefix = mask(curr->left->addr & curr->left->mask, ptr->ptr); - right_prefix = mask(curr->right->addr & curr->right->mask, ptr->ptr); - if(left_prefix > right_prefix) - curr = curr->left; - else if(right_prefix > left_prefix) - curr = curr->right; - else - return curr; - } -} - -/* add a block in the structure */ -/*@ requires \valid(ptr); - @*/ -static void bt_insert (bt_block * ptr) { - bt_node * new_leaf; - DASSERT(ptr != NULL); - - new_leaf = private_malloc(sizeof(bt_node)); - DASSERT(new_leaf != NULL); - new_leaf->is_leaf = 1; - new_leaf->addr = ptr->ptr; - new_leaf->mask = Tmasks[WORDBITS]; /* ~0ul */ - new_leaf->left = NULL; - new_leaf->right = NULL; - new_leaf->parent = NULL; - new_leaf->leaf = ptr; - - if(bt_root == NULL) - bt_root = new_leaf; - else { - bt_node * sibling = bt_most_similar_node (ptr), * parent, * aux; - - DASSERT(sibling != NULL); - parent = private_malloc(sizeof(bt_node)); - DASSERT(parent != NULL); - parent->is_leaf = 0; - parent->addr = sibling->addr & new_leaf->addr; - /*parent->mask = mask(sibling->addr & sibling->mask, ptr->ptr);*/ - parent->leaf = NULL; - if(new_leaf->addr <= sibling->addr) { - parent->left = new_leaf; - parent->right = sibling; - } else { - parent->left = sibling; - parent->right = new_leaf; - } - new_leaf->parent = parent; - - if(sibling == bt_root) { - parent->parent = NULL; - parent->mask = mask(sibling->addr & sibling->mask, ptr->ptr); - bt_root = parent; - } else { - if (sibling->parent->left == sibling) - sibling->parent->left = parent; - else - sibling->parent->right = parent; - parent->parent = sibling->parent; - - /* necessary ? -- begin */ - aux = parent; - aux->mask = mask(aux->left->addr & aux->left->mask, - aux->right->addr & aux->right->mask); - /* necessary ? -- end */ - } - sibling->parent = parent; - if(!sibling->is_leaf) - sibling->mask = mask(sibling->left->addr & sibling->left->mask, - sibling->right->addr & sibling->right->mask); - - DASSERT((parent->left == sibling && parent->right == new_leaf) - || (parent->left == new_leaf && parent->right == sibling)); - } -} - -/* return the block B such as: begin addr of B == ptr if such a block exists, - return NULL otherwise */ -/*@ assigns \nothing; - @ ensures \valid(\result); - @ ensures \result == \null || \result->ptr == (size_t)ptr; - @*/ -static bt_block * bt_lookup (void * ptr) { - bt_node * tmp = bt_root; - DASSERT(bt_root != NULL); - DASSERT(ptr != NULL); - - /*@ loop assigns tmp; - @*/ - while(!tmp->is_leaf) { - // if the ptr we are looking for does not share the prefix of tmp - if((tmp->addr & tmp->mask) != ((size_t)ptr & tmp->mask)) - return NULL; - - // two children - DASSERT(tmp->left != NULL && tmp->right != NULL); - // the prefix of one child is consistent - if((tmp->right->addr & tmp->right->mask) - == ((size_t)ptr & tmp->right->mask)) - tmp = tmp->right; - else if((tmp->left->addr & tmp->left->mask) - == ((size_t)ptr & tmp->left->mask)) - tmp = tmp->left; - else - return NULL; - } - - if(tmp->leaf->ptr != (size_t)ptr) - return NULL; - return tmp->leaf; -} - -/* return the block B containing ptr, such as : - begin addr of B <= ptr < (begin addr + size) of B - or NULL if such a block does not exist */ -static bt_block * bt_find (void * ptr) { - bt_node * tmp = bt_root; - if(bt_root == NULL || ptr == NULL) - return NULL; +typedef struct bt_block bt_block; - bt_node * other_choice = NULL; +/*! \brief Structure representing a bittree node */ +struct bt_node { + int is_leaf; + size_t addr, mask; + struct bt_node * left, * right, * parent; + bt_block * leaf; +}; - while(1) { - if(tmp->is_leaf) { - /* tmp cannot contain ptr because its begin addr is higher */ - if(tmp->addr > (size_t)ptr) - return NULL; +typedef struct bt_node bt_node; - /* tmp->addr <= ptr, tmp may contain ptr - ptr is contained if tmp is large enough (begin addr + size) */ - else if((size_t)ptr < tmp->leaf->size + tmp->addr - || (tmp->leaf->size == 0 && (size_t)ptr == tmp->leaf->ptr)) - return tmp->leaf; - /* tmp->addr <= ptr, but tmp->addr is not large enough */ - else - return NULL; - } +/*! \brief Remove a block from the structure */ +static void bt_remove(bt_block *b); - DASSERT(tmp->left != NULL && tmp->right != NULL); +/*! \brief Add a block to the structure */ +static void bt_insert(bt_block *b); - /* the right child has the highest address, so we test it first */ - if(((size_t)tmp->right->addr & tmp->right->mask) - <= ((size_t)ptr & tmp->right->mask)) { - other_choice = tmp->left; - tmp = tmp->right; - } - else if(((size_t)tmp->left->addr & tmp->left->mask) - <= ((size_t)ptr & tmp->left->mask)) - tmp = tmp->left; - else { - if(other_choice == NULL) - return NULL; - else { - tmp = other_choice; - other_choice = NULL; - } - } - } -} +/*! \brief Look-up a memory block by its base address + NB: The function assumes that such a block exists. */ +static bt_block * bt_lookup(void *ptr); -/*******************/ -/* CLEAN */ -/*******************/ -/* erase information about initialization of a block */ -static void bt_clean_block_init (bt_block * ptr) { - if(ptr->init_ptr != NULL) { - private_free(ptr->init_ptr); - ptr->init_ptr = NULL; - } - ptr->init_bytes = 0; -} +/*! \brief Find a memory block containing a given memory address + * + * Return block B such that: + * `\base_addr(B->ptr) <= ptr < (\base_addr(B->ptr) + size)` + * or NULL if such a block does not exist. */ +static bt_block * bt_find(void *ptr); -/* erase all information about a block */ -static void bt_clean_block (bt_block * ptr) { - if(ptr) { - bt_clean_block_init(ptr); - private_free(ptr); - } -} +/*! \brief Erase the contents of the structure */ +static void bt_clean(void); -/* called from bt_clean */ -/* recursively erase the content of the structure */ -static void bt_clean_rec (bt_node * ptr) { - if(ptr == NULL) return; - else if(ptr->is_leaf) { - bt_clean_block(ptr->leaf); - ptr->leaf = NULL; - } - else { - bt_clean_rec(ptr->left); - bt_clean_rec(ptr->right); - ptr->left = ptr->right = NULL; - } - private_free(ptr); -} +/*! \brief Erase information about a block's initialization */ +static void bt_clean_block_init(bt_block *b); -/* erase the content of the structure */ -static void bt_clean () { - bt_clean_rec(bt_root); - bt_root = NULL; -} +/*! \brief Erase all information about a given block */ +static void bt_clean_block(bt_block *b); -/*********************/ -/* DEBUG */ -/*********************/ #ifdef E_ACSL_DEBUG -static void bt_print_block(bt_block * ptr) { - if (ptr != NULL) { - DLOG("%a; %lu Bytes; %slitteral; [init] : %d ", - (char*)ptr->ptr, ptr->size, - ptr->is_readonly ? "" : "not ", ptr->init_bytes); - if(ptr->init_ptr != NULL) { - unsigned i; - for(i = 0; i < ptr->size/8; i++) - DLOG("%b ", ptr->init_ptr[i]); - } - DLOG("\n"); - } -} +/*! \brief Print information about a given block */ +static void bt_print_block(bt_block *b); -static void bt_print_node(bt_node * ptr, int depth) { - int i; - if(ptr == NULL) - return; - for(i = 0; i < depth; i++) - DLOG(" "); - if(ptr->is_leaf) - bt_print_block(ptr->leaf); - else { - DLOG("%p -- %p\n", (void*)ptr->mask, (void*)ptr->addr); - bt_print_node(ptr->left, depth+1); - bt_print_node(ptr->right, depth+1); - } -} +/*! \brief Recursively print the contents of the bittree starting from a + * given node */ +/*@ assigns \nothing; */ +static void bt_print_node(bt_node * ptr, int depth); -static void bt_print_tree() { - DLOG("------------DEBUG\n"); - bt_print_node(bt_root, 0); - DLOG("-----------------\n"); -} -#endif +/*! \brief Print the contents of the entire bittree */ +/*@ assigns \nothing; */ +static void bt_print(); #endif + +#endif // E_ACSL_BITTREE diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_api.h b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_api.h deleted file mode 100644 index 55cb8c25d24..00000000000 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_api.h +++ /dev/null @@ -1,101 +0,0 @@ -/**************************************************************************/ -/* */ -/* This file is part of the Frama-C's E-ACSL plug-in. */ -/* */ -/* Copyright (C) 2012-2020 */ -/* CEA (Commissariat à l'énergie atomique et aux énergies */ -/* alternatives) */ -/* */ -/* you can redistribute it and/or modify it under the terms of the GNU */ -/* Lesser General Public License as published by the Free Software */ -/* Foundation, version 2.1. */ -/* */ -/* It is distributed in the hope that it will be useful, */ -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ -/* GNU Lesser General Public License for more details. */ -/* */ -/* See the GNU Lesser General Public License version 2.1 */ -/* for more details (enclosed in the file licenses/LGPLv2.1). */ -/* */ -/**************************************************************************/ - -/*! *********************************************************************** - * \file e_acsl_bittree_api.h - * \brief Patricia Trie API -***************************************************************************/ - -#ifndef E_ACSL_BITTREE_API -#define E_ACSL_BITTREE_API - -/*! \brief Structure representing an allocated memory block */ -struct bt_block { - size_t ptr; //!< Base address - size_t size; //!< Block length (in bytes) - unsigned char * init_ptr; //!< Per-bit initialization - size_t init_bytes; //!< Number of initialized bytes within a block - int is_readonly; //!< True if a block is marked read-only - int is_freeable; //!< True if a block can be de-allocated using `free` -#ifdef E_ACSL_DEBUG - size_t line; //!< Line number where this block was recorded - char* file; //!< File name where this block was recorded -#endif -#ifdef E_ACSL_TEMPORAL - uint32_t timestamp; //!< Temporal timestamp of a block's creation - void *temporal_shadow; //!< Temporal shadow for storing referent numbers -#endif -}; - -typedef struct bt_block bt_block; - -/*! \brief Structure representing a bittree node */ -struct bt_node { - int is_leaf; - size_t addr, mask; - struct bt_node * left, * right, * parent; - bt_block * leaf; -}; - -typedef struct bt_node bt_node; - -/*! \brief Remove a block from the structure */ -static void bt_remove(bt_block *b); - -/*! \brief Add a block to the structure */ -static void bt_insert(bt_block *b); - -/*! \brief Look-up a memory block by its base address - NB: The function assumes that such a block exists. */ -static bt_block * bt_lookup(void *ptr); - -/*! \brief Find a memory block containing a given memory address - * - * Return block B such that: - * `\base_addr(B->ptr) <= ptr < (\base_addr(B->ptr) + size)` - * or NULL if such a block does not exist. */ -static bt_block * bt_find(void *ptr); - -/*! \brief Erase the contents of the structure */ -static void bt_clean(void); - -/*! \brief Erase information about a block's initialization */ -static void bt_clean_block_init(bt_block *b); - -/*! \brief Erase all information about a given block */ -static void bt_clean_block(bt_block *b); - -#ifdef E_ACSL_DEBUG -/*! \brief Print information about a given block */ -static void bt_print_block(bt_block *b); - -/*! \brief Recursively print the contents of the bittree starting from a - * given node */ -/*@ assigns \nothing; */ -static void bt_print_node(bt_node * ptr, int depth); - -/*! \brief Print the contents of the entire bittree */ -/*@ assigns \nothing; */ -static void bt_print(); -#endif - -#endif diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_mmodel.c b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_observation_model.c similarity index 82% rename from src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_mmodel.c rename to src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_observation_model.c index de92f7da1d8..7e856ef6c22 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_mmodel.c +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_observation_model.c @@ -21,16 +21,20 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_bittree_mmodel.c + * \file * \brief Implementation of E-ACSL public API using a memory model based * on Patricia Trie. See e_acsl.h for details. ***************************************************************************/ -# include "e_acsl_bittree_api.h" -# include "e_acsl_bittree.h" +#include "../../internals/e_acsl_debug.h" +#include "../../internals/e_acsl_malloc.h" +#include "../../internals/e_acsl_private_assert.h" +#include "../../instrumentation_model/e_acsl_temporal.h" +#include "../../numerical_model/e_acsl_floating_point.h" +#include "../internals/e_acsl_safe_locations.h"" +#include "e_acsl_bittree.h" -static inline int allocated(uintptr_t addr, long size, uintptr_t base_ptr); -static inline int writeable(uintptr_t addr, long size, uintptr_t base_ptr); +#include "../e_acsl_observation_model.h" /* Public API {{{ */ /* Debug */ @@ -43,27 +47,6 @@ static inline int writeable(uintptr_t addr, long size, uintptr_t base_ptr); #endif /* }}} */ -#define E_ACSL_MMODEL_DESC "patricia trie" - -/* Assertions in debug mode */ -#ifdef E_ACSL_DEBUG -/* Assert that memory block [_addr, _addr + _size] is allocated */ -# define DVALIDATE_ALLOCATED(_addr, _size, _base) \ - vassert(allocated((uintptr_t)_addr, _size, (uintptr_t)_base), \ - "Operation on unallocated block [%a + %lu] with base %a\n", \ - _addr, _size, _base); - -/* Assert that memory block [_addr, _addr + _size] is allocated - * and can be written to */ -# define DVALIDATE_WRITEABLE(_addr, _size, _base) \ - vassert(writeable((uintptr_t)_addr, _size, (uintptr_t)_base), \ - "Operation on unallocated block [%a + %lu] with base %a\n", \ - _addr, _size, _base); -#else -#define DVALIDATE_ALLOCATED(_ptr, _size, _base) -#define DVALIDATE_WRITEABLE(_ptr, _size, _base) -#endif - /**************************/ /* SUPPORT {{{ */ /**************************/ @@ -223,7 +206,7 @@ int initialized(void * ptr, size_t size) { size_t block_length(void* ptr) { bt_block * blk = bt_find(ptr); /* Hard failure when un-allocated memory is used */ - vassert(blk != NULL, "\\block_length of unallocated memory", NULL); + private_assert(blk != NULL, "\\block_length of unallocated memory", NULL); return blk->size; } @@ -243,27 +226,6 @@ static bt_block* lookup_allocated(void* ptr, size_t size, void *ptr_base) { return (blk->size - ((size_t)ptr - blk->ptr) >= size) ? blk : NULL; } -/** \brief same as ::lookup_allocated but return either `1` or `0` depending - on whether the memory block described by this function's arguments is - allocated or not. - NOTE: Should have same signature in all models. */ -static inline int allocated(uintptr_t addr, long size, uintptr_t base) { - return lookup_allocated((void*)addr, size, (void*)base) == NULL ? 0 : 1; -} - -/** \brief Return 1 if a given memory location is read-only and 0 otherwise */ -static int readonly (void *ptr) { - bt_block * blk = bt_find(ptr); - vassert(blk != NULL, "Readonly on unallocated memory", NULL); - return blk->is_readonly; -} - -/** \brief same as ::allocated but returns `0` if the memory block described - by the arguments cannot be written to */ -static inline int writeable(uintptr_t addr, long size, uintptr_t base_ptr) { - return allocated(addr, size, base_ptr) && !readonly((void*)addr); -} - /* return whether the size bytes of ptr are readable/writable */ int valid(void* ptr, size_t size, void *ptr_base, void *addrof_base) { bt_block * blk = lookup_allocated(ptr, size, ptr_base); @@ -287,14 +249,14 @@ int valid_read(void* ptr, size_t size, void *ptr_base, void *addrof_base) { /* return the base address of the block containing ptr */ void* base_addr(void* ptr) { bt_block * tmp = bt_find(ptr); - vassert(tmp != NULL, "\\base_addr of unallocated memory", NULL); + private_assert(tmp != NULL, "\\base_addr of unallocated memory", NULL); return (void*)tmp->ptr; } /* return the offset of `ptr` within its block */ size_t offset(void* ptr) { bt_block * tmp = bt_find(ptr); - vassert(tmp != NULL, "\\offset of unallocated memory", NULL); + private_assert(tmp != NULL, "\\offset of unallocated memory", NULL); return ((uintptr_t)ptr - tmp->ptr); } /* }}} */ @@ -309,12 +271,12 @@ size_t offset(void* ptr) { void* store_block(void *ptr, size_t size) { #ifdef E_ACSL_DEBUG if (ptr == NULL) - vabort("Attempt to record NULL block"); + private_abort("Attempt to record NULL block"); else { char *check = (char*)ptr; bt_block *exitsing_block = bt_find(ptr); if (exitsing_block) { - vabort("\nRecording %a [%lu] at %s:%d failed." + private_abort("\nRecording %a [%lu] at %s:%d failed." " Overlapping block %a [%lu] found at %s:%d\n", ptr, size, cloc.file, cloc.line, base_addr(check), block_length(check), exitsing_block->file, exitsing_block->line); @@ -322,7 +284,7 @@ void* store_block(void *ptr, size_t size) { check += size - 1; exitsing_block = bt_find(check); if (exitsing_block) { - vabort("\nRecording %a [%lu] at %d failed." + private_abort("\nRecording %a [%lu] at %d failed." " Overlapping block %a [%lu] found at %s:%d\n", ptr, size, cloc.file, cloc.line, base_addr(check), block_length(check), exitsing_block->file, exitsing_block->line); @@ -372,14 +334,14 @@ void delete_block(void *ptr) { #ifdef E_ACSL_DEBUG /* Make sure the recorded block is not NULL */ if (!ptr) - vabort("Attempt to delete NULL block"); + private_abort("Attempt to delete NULL block"); #endif if (ptr != NULL) { bt_block *tmp = bt_lookup(ptr); #ifdef E_ACSL_DEBUG /* Make sure the removed block exists in the tracked allocation */ if (!tmp) - vabort("Attempt to delete untracked block"); + private_abort("Attempt to delete untracked block"); #endif if (tmp) { bt_clean_block_init(tmp); @@ -400,7 +362,7 @@ void* store_block_duplicate(void* ptr, size_t size) { #ifdef E_ACSL_DEBUG /* Make sure that duplicate block, if so is of the same length */ if (tmp->size != size) - vabort("Attempt to store duplicate block of different length"); + private_abort("Attempt to store duplicate block of different length"); #endif delete_block(ptr); } @@ -440,7 +402,7 @@ void *aligned_alloc(size_t alignment, size_t size) { - size and alignment are greater than zero - alignment is a power of 2 - size is a multiple of alignment */ - if (!size || !alignment || !powof2(alignment) || (size%alignment)) + if (!size || !alignment || !is_pow_of_2(alignment) || (size%alignment)) return NULL; void *res = public_aligned_alloc(alignment, size); @@ -453,7 +415,7 @@ int posix_memalign(void **memptr, size_t alignment, size_t size) { /* Check if: * - size and alignment are greater than zero * - alignment is a power of 2 and a multiple of sizeof(void*) */ - if (!size || !alignment || !powof2(alignment) || alignment%sizeof(void*)) + if (!size || !alignment || !is_pow_of_2(alignment) || alignment%sizeof(void*)) return -1; /* Make sure that the first argument to posix memalign is indeed allocated */ @@ -538,13 +500,13 @@ void free(void *ptr) { if (ptr == NULL) { /* Fail if instructed to treat NULL input to free as invalid. */ #ifdef E_ACSL_FREE_VALID_ADDRESS - vabort("NULL pointer in free\n"); + private_abort("NULL pointer in free\n"); #endif return; } bt_block *res = bt_lookup(ptr); if (!res) { - vabort("Not a start of block (%a) in free\n", ptr); + private_abort("Not a start of block (%a) in free\n", ptr); } else { update_heap_allocation(-res->size); public_free(ptr); @@ -617,11 +579,12 @@ void memory_init(int *argc_ref, char ***argv_ref, size_t ptr_size) { /* Tracking safe locations */ collect_safe_locations(); int i; - for (i = 0; i < safe_location_counter; i++) { - void *addr = (void*)safe_locations[i].address; - uintptr_t len = safe_locations[i].length; + for (i = 0; i < get_safe_location_count(); i++) { + memory_location * loc = get_safe_location(i); + void *addr = (void*)loc->address; + uintptr_t len = loc->length; store_block(addr, len); - if (safe_locations[i].is_initialized) + if (loc->is_initialized) initialize(addr, len); } init_infinity_values(); @@ -658,7 +621,8 @@ void delete_block_debug(char *file, int line, void* ptr) { update_cloc(file, line); bt_block * tmp = bt_lookup(ptr); if (!tmp) { - vabort("Block with base address %a not found in the memory model at %s:%d", + private_abort( + "Block with base address %a not found in the memory model at %s:%d", ptr, file, line); } delete_block(ptr); @@ -676,35 +640,3 @@ void block_info(char *p) { } #endif /* }}} */ - -/* Local operations on temporal timestamps {{{ */ -/* Remaining functionality (shared between all models) is located in e_acsl_temporal.h */ -#ifdef E_ACSL_TEMPORAL -static uint32_t origin_timestamp(void *ptr) { - bt_block * blk = bt_find(ptr); - return blk != NULL ? blk->timestamp : INVALID_TEMPORAL_TIMESTAMP; -} - -static uintptr_t temporal_referent_shadow(void *ptr) { - bt_block *blk = bt_find(ptr); - vassert(blk != NULL, - "referent timestamp on unallocated memory address %a", (uintptr_t)ptr); - vassert(blk->temporal_shadow != NULL, - "no temporal shadow of block with base address", (uintptr_t)blk->ptr); - return (uintptr_t)blk->temporal_shadow + offset(ptr); -} - -static uint32_t referent_timestamp(void *ptr) { - bt_block * blk = bt_find(ptr); - if (blk != NULL) - return *((uint32_t*)temporal_referent_shadow(ptr)); - else - return INVALID_TEMPORAL_TIMESTAMP; -} - -static void store_temporal_referent(void *ptr, uint32_t ref) { - uint32_t *shadow = (uint32_t*)temporal_referent_shadow(ptr); - *shadow = ref; -} -#endif -/* }}} */ diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_omodel_debug.c b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_omodel_debug.c new file mode 100644 index 00000000000..75a3feca780 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_omodel_debug.c @@ -0,0 +1,50 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "../../internals/e_acsl_private_assert.h" +#include "e_acsl_bittree.h" + +#include "../internals/e_acsl_omodel_debug.h" + +#define E_ACSL_MMODEL_DESC "patricia trie" + +void describe_observation_model() { + rtl_printf(" * Memory tracking: %s\n", E_ACSL_MMODEL_DESC); +} + +/** \brief same as ::lookup_allocated but return either `1` or `0` depending + on whether the memory block described by this function's arguments is + allocated or not. + NOTE: Should have same signature in all models. */ +int allocated(uintptr_t addr, long size, uintptr_t base) { + return lookup_allocated((void*)addr, size, (void*)base) == NULL ? 0 : 1; +} + +int readonly (void *ptr) { + bt_block * blk = bt_find(ptr); + private_assert(blk != NULL, "Readonly on unallocated memory", NULL); + return blk->is_readonly; +} + +int writeable(uintptr_t addr, long size, uintptr_t base_ptr) { + return allocated(addr, size, base_ptr) && !readonly((void*)addr); +} \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_timestamp_retrieval.c b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_timestamp_retrieval.c new file mode 100644 index 00000000000..12d3a4c02bc --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/bittree_model/e_acsl_bittree_timestamp_retrieval.c @@ -0,0 +1,61 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "../../internals/e_acsl_private_assert.h" +#include "e_acsl_bittree.h" +#ifdef E_ACSL_TEMPORAL +# include "../../instrumentation_model/e_acsl_temporal_timestamp.h" +#endif + +#include "../internals/e_acsl_timestamp_retrieval.h" + +/* Local operations on temporal timestamps {{{ */ +/* Remaining functionality (shared between all models) is located in e_acsl_temporal.h */ +#ifdef E_ACSL_TEMPORAL +uint32_t origin_timestamp(void *ptr) { + bt_block * blk = bt_find(ptr); + return blk != NULL ? blk->timestamp : INVALID_TEMPORAL_TIMESTAMP; +} + +uintptr_t temporal_referent_shadow(void *ptr) { + bt_block *blk = bt_find(ptr); + private_assert(blk != NULL, + "referent timestamp on unallocated memory address %a", (uintptr_t)ptr); + private_assert(blk->temporal_shadow != NULL, + "no temporal shadow of block with base address", (uintptr_t)blk->ptr); + return (uintptr_t)blk->temporal_shadow + offset(ptr); +} + +uint32_t referent_timestamp(void *ptr) { + bt_block * blk = bt_find(ptr); + if (blk != NULL) + return *((uint32_t*)temporal_referent_shadow(ptr)); + else + return INVALID_TEMPORAL_TIMESTAMP; +} + +void store_temporal_referent(void *ptr, uint32_t ref) { + uint32_t *shadow = (uint32_t*)temporal_referent_shadow(ptr); + *shadow = ref; +} +#endif +/* }}} */ diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.c b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.c new file mode 100644 index 00000000000..1737cc9b970 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.c @@ -0,0 +1,33 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "internals/e_acsl_heap_tracking.h" + +#include "e_acsl_heap.h" + +size_t get_heap_allocation_size(void) { + return get_heap_internal_allocation_size(); +} + +size_t get_heap_allocated_blocks(void) { + return get_heap_internal_allocated_blocks(); +} diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.h b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.h new file mode 100644 index 00000000000..b3e521c2046 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_heap.h @@ -0,0 +1,52 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief User API to query E-ACSL about the state of heap allocation. +***************************************************************************/ + +#ifndef E_ACSL_HEAP +#define E_ACSL_HEAP + +#include <stddef.h> +#include "../internals/e_acsl_alias.h" + +#define heap_allocation_size export_alias(heap_allocation_size) +#define heap_allocated_blocks export_alias(heap_allocated_blocks) +#define get_heap_allocation_size export_alias(get_heap_allocation_size) +#define get_heap_allocated_blocks export_alias(get_heap_allocated_blocks) + +/*! \brief A variable holding the number of bytes in heap application allocation. */ +extern size_t heap_allocation_size; +/*! \brief A variable holding the number of blocks in heap application allocation. */ +extern size_t heap_allocated_blocks; + +/*! Return the number of bytes in heap application allocation. */ +size_t get_heap_allocation_size() + __attribute__((FC_BUILTIN)); + +/*! Return the number of blocks in heap application allocation. */ +size_t get_heap_allocated_blocks() + __attribute__((FC_BUILTIN)); + +#endif // E_ACSL_HEAP \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.c b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.c new file mode 100644 index 00000000000..b87a3541763 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.c @@ -0,0 +1,41 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "internals/e_acsl_heap_tracking.c" +#include "internals/e_acsl_safe_locations.c" + +/* Select memory model, either segment-based or bittree-based model should + be defined */ +#if defined E_ACSL_SEGMENT_MMODEL +# include "segment_model/e_acsl_segment_observation_model.c" +# include "segment_model/e_acsl_segment_tracking.c" +# include "segment_model/e_acsl_shadow_layout.c" +# include "segment_model/e_acsl_segment_omodel_debug.c" +# include "segment_model/e_acsl_segment_timestamp_retrieval.c" +#elif defined E_ACSL_BITTREE_MMODEL +# include "bittree_model/e_acsl_bittree_observation_model.c" +# include "bittree_model/e_acsl_bittree.c" +# include "bittree_model/e_acsl_bittree_omodel_debug.c" +# include "bittree_model/e_acsl_bittree_timestamp_retrieval.c" +#else +# error "No E-ACSL memory model defined. Aborting compilation" +#endif diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h new file mode 100644 index 00000000000..d4b158004a2 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_observation_model.h @@ -0,0 +1,330 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Observation model API + * + * Functions and variables with non-static linkage used for memory + * observation. +***************************************************************************/ + +#ifndef E_ACSL_OBSERVATION_MODEL_H +#define E_ACSL_OBSERVATION_MODEL_H + +#include <stddef.h> +#include <stdint.h> +#include "../internals/e_acsl_alias.h" +#include "e_acsl_heap.h" + +/************************************************************************/ +/*** API Prefixes {{{ ***/ +/************************************************************************/ + +/* Memory state initialization */ +#define memory_init export_alias(memory_init) +#define memory_clean export_alias(memory_clean) + +/* Tracking */ +#define store_block export_alias(store_block) +#define store_block_duplicate export_alias(store_block_duplicate) +#define delete_block export_alias(delete_block) + +/* Predicates */ +#define offset export_alias(offset) +#define base_addr export_alias(base_addr) +#define block_length export_alias(block_length) +#define valid_read export_alias(valid_read) +#define valid export_alias(valid) +#define initialized export_alias(initialized) +#define freeable export_alias(freeable) + +/* Block initialization */ +#define mark_readonly export_alias(mark_readonly) +#define initialize export_alias(initialize) +#define full_init export_alias(full_init) + +/* }}} */ + +/************************************************************************/ +/*** Dynamic memory allocation {{{ ***/ +/************************************************************************/ + +/*! \brief Drop-in replacement for \p malloc with memory tracking enabled. + * For further information, see \p malloc(3). + * + * NOTE: This malloc returns a `NULL` pointer if the requested size is `0`. + * Such behaviour is compliant with the C99 standard, however it differs from + * the behaviour of the GLIBC malloc, which returns a zero-size block instead. + * The standard indicates that a return value for a zero-sized allocation + * is implementation specific: + * "If the size of the space requested is zero, the behaviour is + * implementation-defined: either a null pointer is returned, or the + * behaviour is as if the size were some non-zero value, except that the + * returned pointer shall not be used to access an object." */ +/*@ + assigns __e_acsl_heap_allocation_size \from size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from size, __e_acsl_heap_allocated_blocks; + */ +void * malloc(size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Drop-in replacement for \p calloc with memory tracking enabled. + * For further information, see \p calloc(3). */ +/*@ + assigns __e_acsl_heap_allocation_size \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:nbr_elt, indirect:size_elt, __e_acsl_heap_allocated_blocks; + */ +void * calloc(size_t nbr_elt, size_t size_elt) + __attribute__((FC_BUILTIN)); + +/*! \brief Drop-in replacement for \p realloc with memory tracking enabled. + * For further information, see realloc(3) */ +/*@ + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + */ +void * realloc(void * ptr, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Drop-in replacement for \p free with memory tracking enabled. + * For further information, see \p free(3). */ +/*@ + assigns __e_acsl_heap_allocation_size \from __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from __e_acsl_heap_allocated_blocks; + */ +void free(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Allocate `size` bytes of memory such that the allocation's base + * address is an even multiple of alignment. + * + * \param alignment - should be the power of two + * \param size - should be the multiple of alignment + * \return - pointer to the allocated memory if the restrictions placed on size + * and alignment parameters hold. NULL is returned otherwise. */ +/*@ + assigns __e_acsl_heap_allocation_size \from indirect:alignment, size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:alignment, size, __e_acsl_heap_allocated_blocks; + */ +void *aligned_alloc(size_t alignment, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Allocate size bytes and place the address of the allocated memory in + * `*memptr`. The address of the allocated memory will be a multiple of + * `alignment`, which must be a power of two and a multiple of `sizeof(void*)`. + * If size is 0, then the value placed in *memptr is NULL. */ +/*@ + assigns __e_acsl_heap_allocation_size \from indirect:alignment, size, __e_acsl_heap_allocation_size; + assigns __e_acsl_heap_allocated_blocks \from indirect:alignment, size, __e_acsl_heap_allocated_blocks; + */ +int posix_memalign(void **memptr, size_t alignment, size_t size) + __attribute__((FC_BUILTIN)); +/* }}} */ + +/************************************************************************/ +/*** Memory tracking {{{ ***/ +/************************************************************************/ + +/*! \brief Initialize memory tracking state. + * Called before any other statement in \p main */ +/*@ assigns \nothing; */ +void memory_init(int *argc_ref, char ***argv, size_t ptr_size) + __attribute__((FC_BUILTIN)); + +/*! \brief Clean-up memory tracking state before a program's termination. */ +/*@ assigns \nothing; */ +void memory_clean(void) + __attribute__((FC_BUILTIN)); + +/*! \brief Store stack or globally-allocated memory block + * starting at an address given by \p ptr. + * + * \param ptr base address of the tracked memory block + * \param size size of the tracked block in bytes */ +/*@ ensures \result == ptr; + @ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; */ +void * store_block(void * ptr, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Same as `store_block`, but first check + * checks whether a block with a base address given by `ptr` exists in the + * tracked allocation and remove it before storing a new block. + * + * \param ptr base address of the tracked memory block + * \param size size of the tracked block in bytes */ +/*@ ensures \result == ptr; + @ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; */ +void * store_block_duplicate(void * ptr, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Remove a memory block which base address is \p ptr from tracking. */ +/*@ assigns \nothing; */ +void delete_block(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Mark the \p size bytes starting at an address given by \p ptr as + * initialized. */ +/*@ assigns \nothing; */ +void initialize(void * ptr, size_t size) + __attribute__((FC_BUILTIN)); + +/*! \brief Mark all bytes belonging to a memory block which start address is + * given by \p ptr as initialized. */ +/*@ assigns \nothing; */ +void full_init(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Mark a memory block which start address is given by \p ptr as + * read-only. */ +/*@ assigns \nothing; */ +void mark_readonly(void * ptr) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +/************************************************************************/ +/*** E-ACSL predicates {{{ ***/ +/************************************************************************/ + +/*!\brief Implementation of the \b \\freeable predicate of E-ACSL. + * + * Evaluate to a non-zero value if \p ptr points to a start address of + * a block allocated via \p malloc, \p calloc or \p realloc. */ +/*@ assigns \result \from ptr; */ +int freeable(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Implementation of the \b \\valid predicate of E-ACSL. + * + * \\valid evaluates an expression of the form `p+i`, where `p` is a pointer + * and `i` is an integer offset and returns `true` if both `p` and `p+i` belong + * to the same allocated memory block. + * + * @param ptr - memory address under question + * @param size - the byte-length (starting from `ptr`) of the memory area which + * needs to be valid + * @param base - if `ptr` can be represented by the expression `p+i` then + * `base` refers to `p` + * @param addrof_base - if `ptr` can be represented by the expression `p+i` + * then `addrof_base` refers to `&p`. For the cases when the address of `p` + * cannot be taken (e.g., address of a static array or a constant value + * casted to a pointer) then `addrof_base` is zero. + * + * @returns + * `true` if regions `[ptr, ptr + size]` and `[base, base + size]` are + * writable and lie within the same memory block and `false` otherwise. + * If `weak validity` is used (see macro `E_ACSL_WEAK_VALIDITY`) + * then only region `[ptr, ptr + size]` should lie within the same block + * and be writable. + */ +/*@ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; + @ behavior valid: + @ assumes \valid(((char *)ptr)+(0..size-1)); + @ assumes + @ size <= 0 || + @ ! \separated(((char *)ptr)+(0..size-1), + @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); + @ ensures \result == 1; + @ behavior invalid_ptr: + @ assumes ! \valid(((char *)ptr)+(0..size-1)); + @ ensures \result == 0; + @ behavior separated_ptr: + @ assumes size > 0; + @ assumes \separated(((char *)ptr)+(0..size-1), + @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); + @ ensures \result == 0; + @ complete behaviors; + @ disjoint behaviors; + @ */ +int valid(void * ptr, size_t size, void *base, void *addrof_base) + __attribute__((FC_BUILTIN)); + +/*! \brief Implementation of the \b \\valid_read predicate of E-ACSL. + * + * Same as ::valid except the checked memory locations are only + * required to be allocated. */ +/*@ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; + @ behavior valid: + @ assumes \valid_read(((char *)ptr)+(0..size-1)); + @ assumes + @ size <= 0 || + @ ! \separated(((char *)ptr)+(0..size-1), + @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); + @ ensures \result == 1; + @ behavior invalid_ptr: + @ assumes ! \valid_read(((char *)ptr)+(0..size-1)); + @ ensures \result == 0; + @ behavior separated_ptr: + @ assumes size > 0; + @ assumes \separated(((char *)ptr)+(0..size-1), + @ ((char *)\base_addr(base))+(0..\block_length(base)-1)); + @ ensures \result == 0; + @ complete behaviors; + @ disjoint behaviors; + @ */ +int valid_read(void * ptr, size_t size, void *base, void *addrof_base) + __attribute__((FC_BUILTIN)); + +/*! \brief Implementation of the \b \\base_addr predicate of E-ACSL. + * Return the base address of the memory block containing an address given + * by \p ptr */ +/*@ ensures \result == \base_addr(ptr); + @ assigns \result \from ptr; */ +void * base_addr(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Implementation of the \b \\block_length predicate of E-ACSL. + * Return the byte length of the memory block of the block containing a memory + * address given by \p ptr */ +/*@ ensures \result == \block_length(ptr); + @ assigns \result \from ptr; */ +size_t block_length(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Implementation of the \b \\offset predicate of E-ACSL. + * Return the byte offset of address given by \p ptr within a memory blocks + * it belongs to */ +/*@ ensures \result == \offset(ptr); + @ assigns \result \from ptr; */ +size_t offset(void * ptr) + __attribute__((FC_BUILTIN)); + +/*! \brief Implementation of the \b \\initialized predicate of E-ACSL. + * Return a non-zero value if \p size bytes starting from an address given by + * \p ptr are initialized and zero otherwise. */ +/*@ assigns \result \from *(((char*)ptr)+(0..size-1)), ptr, size; + @ behavior initialized: + @ assumes \initialized(((char *)ptr)+(0..size-1)); + @ ensures \result == 1; + @ behavior uninitialized: + @ assumes ! \initialized(((char *)ptr)+(0..size-1)); + @ ensures \result == 0; + @ complete behaviors; + @ disjoint behaviors; + @ */ +int initialized(void * ptr, size_t size) + __attribute__((FC_BUILTIN)); + +/* }}} */ + +#endif // E_ACSL_OBSERVATION_MODEL_H \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.c b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.c new file mode 100644 index 00000000000..39a5efb21a3 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.c @@ -0,0 +1,67 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "../../internals/e_acsl_rtl_io.h" +#include "e_acsl_heap_tracking.h" + +/* Variable tracking byte-count of user-allocated heap memory. */ +static size_t heap_internal_allocation_size = 0; +/* Read-only version of the variable above exposed to the user in + * `e_acsl_heap.h` */ +size_t __e_acsl_heap_allocation_size = 0; + +/* Variable tracking count of heap memory blocks */ +static size_t heap_internal_allocated_blocks = 0; +/* Read-only version of the variable above exposed to the user in + * `e_acsl_heap.h` */ +size_t __e_acsl_heap_allocated_blocks = 0; + +size_t get_heap_internal_allocation_size(void) { + return heap_internal_allocation_size; +} + +size_t get_heap_internal_allocated_blocks(void) { + return heap_internal_allocated_blocks; +} + +void update_heap_allocation(long size) { + heap_internal_allocation_size += size; + if (size > 0) + ++heap_internal_allocated_blocks; + else if (size < 0) + --heap_internal_allocated_blocks; + + // Update read-only versions of the variables + __e_acsl_heap_allocation_size = heap_internal_allocation_size; + __e_acsl_heap_allocated_blocks = heap_internal_allocated_blocks; +} + +void report_heap_leaks() { +#if defined(E_ACSL_VERBOSE) || defined(E_ACSL_DEBUG) + size_t size = get_heap_allocation_size(); + size_t blocks = get_heap_allocated_blocks(); + if (size) { + rtl_printf(" *** WARNING: Leaked %lu bytes of heap memory in %ld block%s\n", + size, blocks, (blocks == 1) ? "" : "s"); + } +#endif +} diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_leak.h b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.h similarity index 66% rename from src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_leak.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.h index 5e119663064..eb8610314f2 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_leak.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_heap_tracking.h @@ -21,50 +21,26 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_leak.h - * + * \file * \brief Functionality to report/track memory leaks. Shared between models ***************************************************************************/ -#ifndef E_ACSL_HEAP_LEAK_H -#define E_ACSL_HEAP_LEAK_H +#ifndef E_ACSL_HEAP_TRACKING +#define E_ACSL_HEAP_TRACKING -#include "e_acsl.h" - -/* Variable tracking byte-count of user-allocated heap memory. - Visible externally via __e_acsl_ prefix */ -size_t heap_allocation_size = 0; - -/* Variable tracking count of heap memory blocks */ -static size_t heap_allocated_blocks = 0; +#include <stddef.h> /* Return the number of bytes in heap application allocation */ -size_t get_heap_allocation_size(void) { - return heap_allocation_size; -} +size_t get_heap_internal_allocation_size(void); /* Return the number of blocks in heap application allocation */ -static inline size_t get_heap_allocated_blocks(void) { - return heap_allocated_blocks; -} +size_t get_heap_internal_allocated_blocks(void); /* Update heap allocation stats */ -static void update_heap_allocation(long size) { - heap_allocation_size += size; - if (size > 0) - heap_allocated_blocks++; - else if (size < 0) - heap_allocated_blocks--; -} +void update_heap_allocation(long size); + +/* If E_ACSL_VERBOSE or E_ACSL_DEBUG are set, print a message if there is still + * some allocated memory on the heap. */ +void report_heap_leacks(); -static void report_heap_leaks() { -#if defined(E_ACSL_VERBOSE) || defined(E_ACSL_DEBUG) - size_t size = get_heap_allocation_size(); - size_t blocks = get_heap_allocated_blocks(); - if (size) { - rtl_printf(" *** WARNING: Leaked %lu bytes of heap memory in %ld block%s\n", - size, blocks, (blocks == 1) ? "" : "s"); - } -#endif -} -#endif +#endif // E_ACSL_HEAP_TRACKING \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_omodel_debug.h b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_omodel_debug.h new file mode 100644 index 00000000000..19d8c34e4be --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_omodel_debug.h @@ -0,0 +1,74 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#ifndef E_ACSL_OMODEL_DEBUG_H +#define E_ACSL_OMODEL_DEBUG_H + +#include <stdint.h> +#include "../../internals/e_acsl_rtl_string.h" + +/* Assertions in debug mode */ +#ifdef E_ACSL_DEBUG + +/* Assert that a memory block [_addr, _addr + _size] is nullified */ +# define DVALIDATE_NULLIFIED(_addr, _size) \ + DVASSERT(zeroed_out((void *)_addr, _size), \ + "Block [%a, %a+%lu] not nullified", _addr, _addr, _size) + +/* Assert that memory block [_addr, _addr + _size] is allocated */ +# define DVALIDATE_ALLOCATED(_addr, _size, _base) \ + private_assert(allocated((uintptr_t)_addr, _size, (uintptr_t)_base), \ + "Operation on unallocated block [%a + %lu] with base %a\n", \ + _addr, _size, _base); + +/* Assert that memory block [_addr, _addr + _size] is allocated + * and can be written to */ +# define DVALIDATE_WRITEABLE(_addr, _size, _base) \ + private_assert(writeable((uintptr_t)_addr, _size, (uintptr_t)_base), \ + "Operation on unallocated block [%a + %lu] with base %a\n", \ + _addr, _size, _base); + +#else +# define DVALIDATE_NULLIFIED(_addr, _size) +# define DVALIDATE_ALLOCATED(_ptr, _size, _base) +# define DVALIDATE_WRITEABLE(_ptr, _size, _base) +#endif + +/*! Print to stdout the parameters of the model */ +void describe_observation_model(); + +/*! \brief Return a non-zero value if a memory region of length `size` + * starting at address `addr` belongs to an allocated (tracked) memory + * block and a 0 otherwise. + * + * Note the third argument `base_ptr` that represents the base of a pointer, + * i.e., `addr` of the form `base_ptr + i`, where `i` is some integer index. + */ +int allocated(uintptr_t addr, long size, uintptr_t base_ptr); + +/** \brief Return 1 if a given memory location is read-only and 0 otherwise */ +int readonly (void *ptr); + +/** \brief Return 1 if a given memory location is writable and 0 otherwise */ +int writeable(uintptr_t addr, long size, uintptr_t base_ptr); + +#endif // E_ACSL_OMODEL_DEBUG_H diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_safe_locations.h b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.c similarity index 69% rename from src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_safe_locations.h rename to src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.c index 250bef39e76..86d1ad4e0a6 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/e_acsl_safe_locations.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.c @@ -20,31 +20,10 @@ /* */ /**************************************************************************/ -/*! *********************************************************************** - * \file e_acsl_malloc.h - * - * \brief E-ACSL memory allocation bindings. -***************************************************************************/ - -/* Declaration of memory locations considered safe before a program starts. - * Most of these should be declared somewhere in start procedures of c - * and gcc libraries. One example of a safe location is errno. */ - -#ifndef E_ACSL_SAFE_LOCATIONS_H -#define E_ACSL_SAFE_LOCATIONS_H - #include <stdio.h> -#include <stdint.h> #include <errno.h> -/* Simple representation of a safe location */ -struct memory_location { - uintptr_t address; /* Address */ - uintptr_t length; /* Byte-length */ - int is_initialized; /* Notion of initialization */ -}; - -typedef struct memory_location memory_location; +#include "e_acsl_safe_locations.h" /* An array storing safe locations up to `safe_location_counter` position. * This array should be initialized via a below function called @@ -58,20 +37,18 @@ static int safe_location_counter = 0; safe_location_counter++; \ } -#ifdef errno -#undef errno -extern __thread int errno; -#endif - -extern FILE *stdin; /* Standard input stream. */ -extern FILE *stdout; /* Standard output stream. */ -extern FILE *stderr; /* Standard error output stream. */ - -static void collect_safe_locations() { +void collect_safe_locations() { /* Tracking of errno and standard streams */ add_safe_location((uintptr_t)&errno, sizeof(int), "errno"); add_safe_location((uintptr_t)stdout, sizeof(FILE), "stdout"); add_safe_location((uintptr_t)stderr, sizeof(FILE), "stderr"); add_safe_location((uintptr_t)stdin, sizeof(FILE), "stdin"); } -#endif + +size_t get_safe_locations_count() { + return safe_location_counter; +} + +memory_location * get_safe_location(size_t i) { + return &safe_locations[i]; +} diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.h b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.h new file mode 100644 index 00000000000..fa24ba37f87 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_safe_locations.h @@ -0,0 +1,54 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * + * Declaration of memory locations considered safe before a program starts. + * Most of these should be declared somewhere in start procedures of c + * and gcc libraries. One example of a safe location is errno. +***************************************************************************/ + +#ifndef E_ACSL_SAFE_LOCATIONS_H +#define E_ACSL_SAFE_LOCATIONS_H + +#include <stdint.h> +#include <stddef.h> + +/* Simple representation of a safe location */ +struct memory_location { + uintptr_t address; /* Address */ + uintptr_t length; /* Byte-length */ + int is_initialized; /* Notion of initialization */ +}; +typedef struct memory_location memory_location; + +/*! Initialize the array of safe locations */ +void collect_safe_locations(); + +/*! \return the number of safe locations collected */ +size_t get_safe_locations_count(); + +/*! \return The i-th safe location collected */ +memory_location * get_safe_location(size_t i); + +#endif // E_ACSL_SAFE_LOCATIONS_H diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_timestamp_retrieval.h b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_timestamp_retrieval.h new file mode 100644 index 00000000000..209cd495263 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/internals/e_acsl_timestamp_retrieval.h @@ -0,0 +1,53 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Temporal timestamp retrieval +***************************************************************************/ + +#ifndef E_ACSL_TIMESTAMP_RETRIEVAL_H +#define E_ACSL_TIMESTAMP_RETRIEVAL_H + +#ifdef E_ACSL_TEMPORAL + +#include <stdint.h> + +/*! \brief Return origin time stamp associated with a memory block containing + * address given by `ptr`. `0` indicates an invalid timestamp, i.e., timestamp + * of a memory block which does not exist. */ +uint32_t origin_timestamp(void *ptr); + +/*! \brief Return address of referent shadow */ +uintptr_t temporal_referent_shadow(void *addr); + +/*! \brief Return referent time stamp associated with a pointer which address + * is given by `ptr`. This function expects that `ptr` is allocated and at + * least `sizeof(uintptr_t)` bytes long */ +uint32_t referent_timestamp(void *ptr); + +/*! \brief Store a referent number `ref` in the shadow of `ptr` */ +void store_temporal_referent(void *ptr, uint32_t ref); + +#endif // E_ACSL_TEMPORAL + +#endif // E_ACSL_TIMESTAMP_RETRIEVAL_H \ No newline at end of file diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_mmodel.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_observation_model.c similarity index 87% rename from src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_mmodel.c rename to src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_observation_model.c index ee3a15532d6..b08cea658aa 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_mmodel.c +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_observation_model.c @@ -21,17 +21,25 @@ /**************************************************************************/ /*! *********************************************************************** - * \file e_acsl_segment_mmodel.c + * \file * \brief Implementation of E-ACSL public API for a segment (shadow) memory * model. See e_acsl.h for details. ***************************************************************************/ -#include <sys/time.h> -#include <sys/resource.h> -#include "e_acsl_shadow_layout.h" +#include <stddef.h> +#include <stdint.h> + +#include "../../internals/e_acsl_debug.h" +#include "../../internals/e_acsl_malloc.h" +#include "../../internals/e_acsl_private_assert.h" +#include "../../instrumentation_model/e_acsl_temporal.h" +#include "../../numerical_model/e_acsl_floating_point.h" +#include "../internals/e_acsl_safe_locations.h" #include "e_acsl_segment_tracking.h" +#include "e_acsl_shadow_layout.h" -#define E_ACSL_MMODEL_DESC "shadow memory" +#include "../internals/e_acsl_timestamp_retrieval.h" +#include "../e_acsl_observation_model.h" void * store_block(void *ptr, size_t size) { /* Only stack-global memory blocks are recorded explicitly via this function. @@ -236,11 +244,12 @@ void memory_init(int *argc_ref, char *** argv_ref, size_t ptr_size) { /* Tracking safe locations */ collect_safe_locations(); int i; - for (i = 0; i < safe_location_counter; i++) { - void *addr = (void*)safe_locations[i].address; - uintptr_t len = safe_locations[i].length; + for (i = 0; i < get_safe_locations_count(); i++) { + memory_location * loc = get_safe_location(i); + void *addr = (void*)loc->address; + uintptr_t len = loc->length; shadow_alloca(addr, len); - if (safe_locations[i].is_initialized) + if (loc->is_initialized) initialize(addr, len); } init_infinity_values(); @@ -253,35 +262,3 @@ void memory_clean(void) { report_heap_leaks(); } /* }}} */ - -/* Local operations on temporal timestamps {{{ */ -/* Remaining functionality (shared between all models) is located in e_acsl_temporal.h */ -#ifdef E_ACSL_TEMPORAL -static uintptr_t temporal_referent_shadow(void *addr) { - TRY_SEGMENT(addr, - return TEMPORAL_HEAP_SHADOW(addr), - return TEMPORAL_SECONDARY_STATIC_SHADOW(addr)); - return 0; -} - -static uint32_t origin_timestamp(void *ptr) { - TRY_SEGMENT_WEAK(ptr, - return heap_origin_timestamp((uintptr_t)ptr), - return static_origin_timestamp((uintptr_t)ptr)); - return INVALID_TEMPORAL_TIMESTAMP; -} - -static uint32_t referent_timestamp(void *ptr) { - TRY_SEGMENT(ptr, - return heap_referent_timestamp((uintptr_t)ptr), - return static_referent_timestamp((uintptr_t)ptr)); - return INVALID_TEMPORAL_TIMESTAMP; -} - -static void store_temporal_referent(void *ptr, uint32_t ref) { - TRY_SEGMENT(ptr, - heap_store_temporal_referent((uintptr_t)ptr, ref), - static_store_temporal_referent((uintptr_t)ptr,ref)); -} -#endif -/* }}} */ diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_omodel_debug.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_omodel_debug.c new file mode 100644 index 00000000000..9be75d5bb9e --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_omodel_debug.c @@ -0,0 +1,53 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "../../internals/e_acsl_rtl_io.h" +#include "e_acsl_segment_tracking.h" +#include "e_acsl_shadow_layout.h" + +#include "../internals/e_acsl_omodel_debug.h" + +#define E_ACSL_MMODEL_DESC "shadow memory" + +void describe_observation_model() { + rtl_printf(" * Memory tracking: %s\n", E_ACSL_MMODEL_DESC); + rtl_printf(" * Heap %d MB\n", E_ACSL_HEAP_SIZE); + rtl_printf(" * Stack %d MB\n", E_ACSL_STACK_SIZE); +} + +int allocated(uintptr_t addr, long size, uintptr_t base) { + TRY_SEGMENT_WEAK(addr, + return heap_allocated(addr, size, base), + return static_allocated(addr, size, base)); + if (!IS_ON_VALID(addr)) + return 0; + return 0; +} + +int readonly (void *ptr) { + uintptr_t addr = (uintptr_t)ptr; + return IS_ON_GLOBAL(addr) && global_readonly(addr) ? 1 : 0; +} + +int writeable(uintptr_t addr, long size, uintptr_t base_ptr) { + return allocated(addr, size, base_ptr) && !readonly((void*)addr); +} diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_timestamp_retrieval.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_timestamp_retrieval.c new file mode 100644 index 00000000000..6e4edc7b1ec --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_timestamp_retrieval.c @@ -0,0 +1,60 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include "e_acsl_segment_tracking.h" +#ifdef E_ACSL_TEMPORAL +# include "../../instrumentation_model/e_acsl_temporal_timestamp.h" +#endif + +#include "../internals/e_acsl_timestamp_retrieval.h" + +/* Local operations on temporal timestamps {{{ */ +/* Remaining functionality (shared between all models) is located in e_acsl_temporal.h */ +#ifdef E_ACSL_TEMPORAL +uintptr_t temporal_referent_shadow(void *addr) { + TRY_SEGMENT(addr, + return TEMPORAL_HEAP_SHADOW(addr), + return TEMPORAL_SECONDARY_STATIC_SHADOW(addr)); + return 0; +} + +uint32_t origin_timestamp(void *ptr) { + TRY_SEGMENT_WEAK(ptr, + return heap_origin_timestamp((uintptr_t)ptr), + return static_origin_timestamp((uintptr_t)ptr)); + return INVALID_TEMPORAL_TIMESTAMP; +} + +uint32_t referent_timestamp(void *ptr) { + TRY_SEGMENT(ptr, + return heap_referent_timestamp((uintptr_t)ptr), + return static_referent_timestamp((uintptr_t)ptr)); + return INVALID_TEMPORAL_TIMESTAMP; +} + +void store_temporal_referent(void *ptr, uint32_t ref) { + TRY_SEGMENT(ptr, + heap_store_temporal_referent((uintptr_t)ptr, ref), + static_store_temporal_referent((uintptr_t)ptr,ref)); +} +#endif +/* }}} */ diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.c new file mode 100644 index 00000000000..657fc838530 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.c @@ -0,0 +1,1076 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include <stddef.h> +#include <stdint.h> + +#include "../../internals/e_acsl_bits.h" +#include "../../internals/e_acsl_rtl_string.h" +#include "../../instrumentation_model/e_acsl_temporal_timestamp.h" +#include "../internals/e_acsl_omodel_debug.h" +#include "e_acsl_shadow_layout.h" + +#include "e_acsl_segment_tracking.h" + +/* Segment settings and shadow values interpretation {{{ */ + +/*! \brief Decrease _n to be a multiple of _m */ +#define ALIGN_LEFT(_n, _m) (_n - _n%_m) + +/*! \brief Increase _n to be a multiple of _m */ +#define ALIGN_RIGHT(_n, _m) (_n + ((_n%_m) ? (_m - _n%_m) : 0)) + +/*! \brief Heap shadow address aligned at a segment boundary */ +#define ALIGNED_HEAP_SHADOW(_addr) \ + HEAP_SHADOW(ALIGN_LEFT(_addr,HEAP_SEGMENT)) + +/* \brief Maximal size_t value that does not cause overflow via addition + * when segment size is added. */ +static const size_t max_allocated = ALIGN_LEFT(SIZE_MAX,HEAP_SEGMENT); + +/* \brief Return actual allocation size which takes into account aligned + * allocation. In the present implementation it is the requested size of + * a heap block aligned at a segment boundary */ +#define ALLOC_SIZE(_s) \ + (_s < max_allocated ? ALIGN_RIGHT(_s, HEAP_SEGMENT) : 0) + +/** \brief Evaluate to `true` if address _addr belongs to a memory block + * with base address _base and length _length */ +#define BELONGS(_addr, _base, _length) \ + (_addr >= _base && _addr < _base + _length) + +/*! \brief For short blocks numbers 1 to 36 represent lengths and offsets, + * such that: + * - 0 -> length 0, offset 0 + * - 1 -> length 1, offset 0, + * - 2 -> length 2, offset 0, + * - 3 -> length 2, offset 1 and so on. + * + * The below data is used to identify lengths and offsets: + * Given x is a number from [1, 36] range: + * - short_lengths[x] -> length of a block + * - short_offsets[x] -> offset within a block */ +static const char short_lengths[] = { + 0, + 1, + 2,2, + 3,3,3, + 4,4,4,4, + 5,5,5,5,5, + 6,6,6,6,6,6, + 7,7,7,7,7,7,7, + 8,8,8,8,8,8,8,8 +}; + +static const char short_offsets[] = { + 0, + 0, + 0,1, + 0,1,2, + 0,1,2,3, + 0,1,2,3,4, + 0,1,2,3,4,5, + 0,1,2,3,4,5,6, + 0,1,2,3,4,5,6,7 +}; + +/*! \brief Mask for marking a heap segment as initialized. + * For instance, let `uintptr_t *p' point to the start of a heap segment + * in the heap shadow, then 'p[1] | heap_init_mask` sets initialization bits. + * NOTE: This approach cannot deal with segments larger than 64 bits. */ +static const uint64_t heap_init_mask = ~(ONE << HEAP_SEGMENT); + +/*! \brief Masks for checking of initialization of global/stack allocated blocks. + * A byte allocated globally or on stack is deemed initialized if its + * least significant bit is set to `1' and uninitialized otherwise. + * The binary representation is then as follows (assuming the leftmost + * bit is the least significant one): + * + * 00000000 00000000 00000000 00000000 ... (0) + * 10000000 00000000 00000000 00000000 ... (1) + * 10000000 10000000 00000000 00000000 ... (257) + * 10000000 10000000 10000000 00000000 ... (65793) + * 10000000 10000000 10000000 10000000 ... (16843009) + * ... + * + * For instance, mark first X bytes of a number N as initialised: + * N |= static_init_masks[X] */ +static const uint64_t static_init_masks [] = { + 0, /* 0 bytes */ + 1, /* 1 byte */ + 257, /* 2 bytes */ + 65793, /* 3 bytes */ + 16843009, /* 4 bytes */ + 4311810305, /* 5 bytes */ + 1103823438081, /* 6 bytes */ + 282578800148737, /* 7 bytes */ + 72340172838076673 /* 8 bytes */ +}; + +/*! \brief Bit masks for setting read-only (second least significant) bits. + * Binary representation (assuming the least significant bit is the + * leftmost bit) is follows: + * + * 00000000 00000000 00000000 00000000 ... (0) + * 01000000 00000000 00000000 00000000 ... (2) + * 01000000 01000000 00000000 00000000 ... (514) + * 01000000 01000000 01000000 00000000 ... (131586) + * 01000000 01000000 01000000 01000000 ... (33686018) + * ... + * + * For instance, mark first X bytes of a number N as read-only: + * N |= static_readonly_masks[X] */ +static const uint64_t static_readonly_masks [] = { + 0, /* 0 bytes */ + 2, /* 1 byte */ + 514, /* 2 bytes */ + 131586, /* 3 bytes */ + 33686018, /* 4 bytes */ + 8623620610, /* 5 bytes */ + 2207646876162, /* 6 bytes */ + 565157600297474, /* 7 bytes */ + 144680345676153346 /* 8 bytes */ +}; +/* }}} */ + +/* Runtime assertions (debug mode) {{{ */ +#ifdef E_ACSL_DEBUG +void validate_shadow_layout() { + /* Check that the struct holding memory layout is marked as initialized. */ + DVALIDATE_MEMORY_INIT; + + /* Each segment has 3 partitions: + - application memory + - primary/secondary shadows */ + int num_partitions = sizeof(mem_partitions)/sizeof(memory_partition*); + int num_seg_in_part = 3; +#ifdef E_ACSL_TEMPORAL + num_seg_in_part = 5; +#endif + int num_segments = num_partitions*num_seg_in_part; + uintptr_t segments[num_segments][2]; + + size_t i; + for (i = 0; i < num_partitions; i++) { + memory_partition *p = mem_partitions[i]; + segments[num_seg_in_part*i][0] = p->application.start; + segments[num_seg_in_part*i][1] = p->application.end; + segments[num_seg_in_part*i+1][0] = p->primary.start; + segments[num_seg_in_part*i+1][1] = p->primary.end; + segments[num_seg_in_part*i+2][0] = p->secondary.start; + segments[num_seg_in_part*i+2][1] = p->secondary.end; +#ifdef E_ACSL_TEMPORAL + segments[num_seg_in_part*i+3][0] = p->temporal_primary.start; + segments[num_seg_in_part*i+3][1] = p->temporal_primary.end; + segments[num_seg_in_part*i+4][0] = p->temporal_secondary.start; + segments[num_seg_in_part*i+4][1] = p->temporal_secondary.end; +#endif + } + + /* Make sure all segments (shadow or otherwise) are disjoint */ + size_t j; + for (int i = 0; i < num_segments; i++) { + uintptr_t *src = segments[i]; + DVASSERT(src[0] < src[1], + "Segment start is greater than segment end %lu < %lu\n", src[0], src[1]); + for (j = 0; j < num_segments; j++) { + if (i != j) { + uintptr_t *dest = segments[j]; + DVASSERT(src[1] < dest[0] || src[0] > dest[1], + "Segment [%lu, %lu] overlaps with segment [%lu, %lu]", + src[0], src[1], dest[0], dest[1]); + } + } + } +} +#endif +/* }}} */ + +/* E-ACSL predicates {{{ */ +uintptr_t predicate(uintptr_t addr, char p) { + TRY_SEGMENT( + addr, + return heap_info((uintptr_t)addr, p), + return static_info((uintptr_t)addr, p)); + return 0; +} +/* }}} */ + +/* Static allocation {{{ */ + +/** The below numbers identify offset "bases" for short block lengths. + * An offset base is a number (a code) that represents the length of a + * short block with a byte offset of `0`. + * For instance, for a block of 4 bytes its offset base if 7, that is + * length 4, offset 0 => 7, + * length 4, offset 1 => 8, + * length 4, offset 2 => 9, + * length 4, offset 3 => 10, + * and then for a block of 5 bytes its base offset if 11 etc. */ +static const char short_offsets_base [] = { 0, 1, 2, 4, 7, 11, 16, 22, 29 }; + +/** Shadow masks for setting values of short blocks */ +static const uint64_t short_shadow_masks[] = { + 0UL, + 4UL, + 3080UL, + 1578000UL, + 673456156UL, + 258640982060UL, + 92703853921344UL, + 31644393008028760UL, + 10415850140873816180UL +}; + +void shadow_alloca(void *ptr, size_t size) { + DVALIDATE_IS_ON_STATIC(ptr, size); +#ifdef E_ACSL_TEMPORAL + /* Make sure that during temporal analysis there is + * sufficient space to store an origin timestamp. + * NOTE: This does not apply to globals, because all the globals + * have the timestamp of `1`. */ + if (!IS_ON_GLOBAL(ptr)) { + DVALIDATE_STATIC_SUFFICIENTLY_ALIGNED((uintptr_t)ptr, 4); + } +#endif + + unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(ptr); + uint64_t *prim_shadow_alt = (uint64_t *)PRIMARY_SHADOW(ptr); + unsigned int *sec_shadow = (unsigned int*)SECONDARY_SHADOW(ptr); + + /* Make sure shadows are nullified */ + DVALIDATE_NULLIFIED(prim_shadow, size); + DVALIDATE_NULLIFIED(sec_shadow, size); + + /* Flip read-only bit for zero-size blocks. That is, physically it exists + * but one cannot write to it. Further, the flipped read-only bit will also + * identify such block as allocated */ + if (!size) + setbit(READONLY_BIT, prim_shadow[0]); + + unsigned int i, j = 0, k = 0; + if (IS_LONG_BLOCK(size)) { /* Long blocks */ + unsigned int i, j = 0, k = 0; + int boundary = LONG_BLOCK_BOUNDARY(size); + for (i = 0; i < boundary; i += LONG_BLOCK) { + /* Set-up a secondary shadow segment */ + sec_shadow[j++] = size; + sec_shadow[j++] = i; + /* Set primary shadow offsets */ + prim_shadow_alt[k++] = LONG_BLOCK_MASK; + } + + /* Write out the remainder */ + for (i = boundary; i < size; i++) { + unsigned char offset = i%LONG_BLOCK + LONG_BLOCK_INDEX_START + LONG_BLOCK; + prim_shadow[i] = (offset << 2); + } + } else { /* Short blocks */ + for (i = 0; i < size; i++) { + unsigned char code = short_offsets_base[size] + i; + prim_shadow[i] = (code << 2); + } + } +#ifdef E_ACSL_TEMPORAL /*{{{*/ + /* Store a temporal origin timestamp in the first 4 bytes of a temporal + * shadow. This, however applies only to TLS of stack blocks. Global blocks + * are never deallocated, an origin time stamp of any global block is given + * via `GLOBAL_TEMPORAL_TIMESTAMP` */ + if (!IS_ON_GLOBAL(ptr)) { + uint32_t* temporal_shadow = (uint32_t*)TEMPORAL_PRIMARY_STATIC_SHADOW(ptr); + *temporal_shadow = NEW_TEMPORAL_TIMESTAMP(); + } +#endif /*}}} E_ACSL_TEMPORAL*/ +} +/* }}} */ + +/* Deletion of static blocks {{{ */ +void shadow_freea(void *ptr) { + DVALIDATE_STATIC_LOCATION(ptr); + DASSERT(ptr == (void*)_base_addr(ptr)); + size_t size = _block_length(ptr); + memset((void*)PRIMARY_SHADOW(ptr), 0, size); + memset((void*)SECONDARY_SHADOW(ptr), 0, size); +#ifdef E_ACSL_TEMPORAL /*{{{*/ + memset((void*)TEMPORAL_PRIMARY_STATIC_SHADOW(ptr), 0, size); + memset((void*)TEMPORAL_SECONDARY_STATIC_SHADOW(ptr), 0, size); +#endif /*}}} E_ACSL_TEMPORAL*/ +} +/* }}} */ + +/* Static querying {{{ */ + +/*! \brief Checking whether a globally allocated memory block containing an + * address _addr has read-only access. Note, this is light checking that + * relies on the fact that a single block cannot contain read/write and + * read-only parts, that is to check whether the block has read-only access it + * is sufficient to check any of its bytes. */ +#define global_readonly(_addr) \ + checkbit(READONLY_BIT, (*(char*)PRIMARY_GLOBAL_SHADOW(addr))) + +int static_allocated(uintptr_t addr, long size, uintptr_t base_ptr) { + unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(addr); + /* Unless the address belongs to tracked allocation 0 is returned */ + if (prim_shadow[0]) { + unsigned int code = (prim_shadow[0] >> 2); + unsigned int long_block = (code >= LONG_BLOCK_INDEX_START); + size_t length, offset; + if (long_block) { + offset = code - LONG_BLOCK_INDEX_START; + unsigned int *sec_shadow = + (unsigned int*)SECONDARY_SHADOW(addr - offset) ; + length = sec_shadow[0]; + offset = sec_shadow[1] + offset; + } else { + offset = short_offsets[code]; + length = short_lengths[code]; + } + +#ifndef E_ACSL_WEAK_VALIDITY + if (addr != base_ptr) { + return BELONGS(base_ptr, addr - offset, length) + && offset + size <= length; + } +#endif + return offset + size <= length; + } + return 0; +} + +int static_initialized(uintptr_t addr, long size) { + /* Return 0 right away if the address does not belong to + * static allocation */ + if (!static_allocated(addr, size, addr)) + return 0; + DVALIDATE_STATIC_ACCESS(addr, size); + + int result = 1; + uint64_t *shadow = (uint64_t*)PRIMARY_SHADOW(addr); + while (size > 0) { + int rem = (size >= ULONG_BYTES) ? ULONG_BYTES : size; + uint64_t mask = static_init_masks[rem]; + size -= ULONG_BYTES; + /* Note that most of the blocks checked for initialization will be smaller + * than 64 bits, therefore in most cases it is more efficient to complete + * the loop rather than do a test and return if the result is false */ + result = result && (((*shadow) & mask) == mask); + shadow++; + } + return result; +} + +uintptr_t static_info(uintptr_t addr, char type) { + DVALIDATE_STATIC_LOCATION(addr); + unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(addr); + + /* Unless the address belongs to tracked allocation 0 is returned */ + if (prim_shadow[0]) { + unsigned int code = (prim_shadow[0] >> 2); + unsigned int long_block = (code >= LONG_BLOCK_INDEX_START); + if (long_block) { + unsigned int offset = code - LONG_BLOCK_INDEX_START; + unsigned int *sec_shadow = + (unsigned int*)SECONDARY_SHADOW(addr - offset) ; + switch(type) { + case 'B': /* Base address */ + return addr - offset - sec_shadow[1]; + case 'O': /* Offset */ + return sec_shadow[1] + offset; + case 'L': /* Length */ + return sec_shadow[0]; + default: + DASSERT(0 && "Unknown static query type"); + } + } else { + switch(type) { + case 'B': /* Base address */ + return addr - short_offsets[code]; + case 'O': /* Offset */ + return short_offsets[code]; + case 'L': /* Length */ + return short_lengths[code]; + default: + DASSERT(0 && "Unknown static query type"); + } + } + } + return 0; +} + +#ifdef E_ACSL_TEMPORAL /*{{{*/ +uint32_t static_temporal_info(uintptr_t addr, int origin) { + /* NOTE: No checking for allocated blocks, since an invalid + timestamp is zero and ununsed memory is nullified then an invalid + timestamp is also returned for allocated memory */ + if (origin) { + int allocated = static_allocated_one(addr); + if (allocated && !IS_ON_GLOBAL(addr)) { + uintptr_t base = static_info(addr, 'B'); + return *((uint32_t*)TEMPORAL_PRIMARY_STATIC_SHADOW(base)); + } else if (allocated && IS_ON_GLOBAL(addr)) { + return GLOBAL_TEMPORAL_TIMESTAMP; + } else { + return INVALID_TEMPORAL_TIMESTAMP; + } + } else { + return *((uint32_t*)TEMPORAL_SECONDARY_STATIC_SHADOW(addr)); + } +} + +void static_store_temporal_referent(uintptr_t addr, uint32_t ref) { + DVALIDATE_STATIC_ACCESS(addr, PTR_SZ); + *((uint32_t*)TEMPORAL_SECONDARY_STATIC_SHADOW(addr)) = ref; +} +#endif/*}}} E_ACSL_TEMPORAL*/ +/* }}} */ + +/* Static initialization {{{ */ +void initialize_static_region(uintptr_t addr, long size) { + DVALIDATE_STATIC_ACCESS(addr, size); + DVASSERT(!(addr - _base_addr(addr) + size > _block_length(addr)), + "Attempt to initialize %lu bytes past block boundaries\n" + "starting at %a with block length %lu at base address %a\n", + size, addr, _block_length(addr), _base_addr(addr)); + + /* Below code marks `size` bytes following `addr` in the stack shadow as + * initialized. That is, least significant bits of all 9 bytes following + * `addr` should be flipped to ones. While this is a common pattern in this + * program, here are some explanations. + * + * Here we grab a shadow region and initialize 8 (::ULONG_SIZE) bits at a + * time using masks stored in ::static_init_masks. This few lines below are + * better explained using an example. Let's say we need to mark 9 bytes as + * initialized starting from some address `addr`. + * + * In order to do that we first grab a shadow region storing it in `shadow`. + * For the first 8 bytes we grab a mask stored at ::static_init_masks[8]: + * `10000000 10000000 10000000 10000000 10000000 10000000 10000000 10000000` + * That is, `*shadow |= static_init_masks[8]` sets 8 lowest significant bits + * of the 8 bytes following *shadow to ones. + * + * After that we need to mark the remaining 1 bite as initialized. For that + * we grab mask ::static_init_masks[1]: + * `10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000` + * That is, `*shadow |= static_init_masks[1]` will set only the least + * significant bit in *shadow. */ + + uint64_t *shadow = (uint64_t*)PRIMARY_SHADOW(addr); + while (size > 0) { + int rem = (size >= ULONG_BYTES) ? ULONG_BYTES : size; + size -= ULONG_BYTES; + *shadow |= static_init_masks[rem]; + shadow++; + } +} +/* }}} */ + +/* Read-only {{{ */ +void mark_readonly_region (uintptr_t addr, long size) { + /* Since read-only blocks can only be stored in the globals segments (e.g., + * TEXT), this function required ptr carry a global address. */ + DASSERT(IS_ON_GLOBAL(addr)); + DASSERT(static_allocated_one(addr)); + DVASSERT(!(addr - _base_addr(addr) + size > _block_length(addr)), + "Attempt to mark read-only %lu bytes past block boundaries\n" + "starting at %a with block length %lu at base address %a\n", + size, addr, _block_length(addr), _base_addr(addr)); + + /* See comments in ::initialize_static_region for details */ + uint64_t *shadow = (uint64_t*)PRIMARY_GLOBAL_SHADOW(addr); + while (size > 0) { + int rem = (size >= ULONG_BYTES) ? ULONG_BYTES : size; + size -= ULONG_BYTES; + *shadow |= static_readonly_masks[rem]; + shadow++; + } +} +/* }}} */ + +/* Heap allocation {{{ (malloc/calloc) */ + +/*! \brief Create a heap shadow for an allocated memory block starting at `ptr` + * and of length `size`. Optionally mark it as initialized if `init` + * evaluates to a non-zero value. + * \b NOTE: This function assumes that `ptr` is a base address of a + * heap-allocated memory block, such that HEAP_SEGMENT bytes preceding `ptr` + * correspond to `unusable space`. + * \b WARNING: Current implementation assumes that the size of a heap segment + * does not exceed 64 bytes. */ +static void set_heap_segment(void *ptr, size_t size, size_t alloc_size, + size_t init, const char *function) { + + /* Make sure that heap memspace has not been moved. This is likely if + a really large chunk has been requested to be allocated. */ + private_assert(mem_spaces.heap_mspace_least == + (uintptr_t)mspace_least_addr(mem_spaces.heap_mspace), + "Exceeded heap allocation limit of %luMB -- heap memory space moved. \n", + E_ACSL_HEAP_SIZE); + + /* Similar check, make sure that allocated space does not exceed given + allocation limit for mspace */ + uintptr_t max_addr = (uintptr_t)ptr + alloc_size; + private_assert(mem_spaces.heap_end > max_addr, + "Exceeded heap allocation limit of %luMB\n", E_ACSL_HEAP_SIZE); + + DVALIDATE_MEMORY_INIT; + /* Ensure the shadowed block in on the tracked heap portion */ + DVALIDATE_IS_ON_HEAP(((uintptr_t)ptr) - HEAP_SEGMENT, size); + DVALIDATE_ALIGNMENT(ptr); /* Make sure alignment is right */ + update_heap_allocation(size); /* Adjust tracked allocation size */ + + /* Get aligned size of the block, i.e., an actual size of the + * allocated block */ + unsigned char *shadow = (unsigned char*)HEAP_SHADOW(ptr); + + /* Make sure shadow is nullified before setting it */ + DVALIDATE_NULLIFIED(shadow, alloc_size); + + /* The overall number of block segments in a tracked memory block */ + size_t segments = alloc_size/HEAP_SEGMENT; + uintptr_t *segment = (uintptr_t*)(shadow); + segment[1] = size; + +#ifdef E_ACSL_TEMPORAL /*{{{*/ + /* 4 bytes following a block's length store an origin timestamp */ + segment[2] = NEW_TEMPORAL_TIMESTAMP(); +#endif /*}}} E_ACSL_TEMPORAL*/ + + int i; + /* Write the offsets per segment */ + for (i = 0; i < segments; i++) { + segment = (uintptr_t*)(shadow + i*HEAP_SEGMENT); + *segment = (uintptr_t)ptr; + } + + /* If init is a non-zero value then mark all allocated bytes as initialized */ + if (init) { + memset((void*)HEAP_INIT_SHADOW(ptr), (unsigned int)ONE, alloc_size/8); + } +} + +void* malloc(size_t size) { + + size_t alloc_size = ALLOC_SIZE(size); + + /* Return NULL if the size is too large to be aligned */ + char* res; + if (alloc_size) { + mspaces_init(); + res = (char*)public_malloc(alloc_size); + } else + res = NULL; + + if (res) { + /* Make sure there is sufficient room in shadow */ + set_heap_segment(res, size, alloc_size, 0, "malloc"); + } + + return res; +} + +void* calloc(size_t nmemb, size_t size) { + /* Since both `nmemb` and `size` are both of size `size_t` the multiplication + * of the arguments (which gives the actual allocation size) might lead to an + * integer overflow. The below code checks for an overflow and sets the + * `alloc_size` (argument a memory allocation function) to zero. */ + size = (size && nmemb > SIZE_MAX/size) ? 0 : nmemb*size; + + size_t alloc_size = ALLOC_SIZE(size); + + /* Since aligned size is required by the model do the allocation through + * `malloc` and nullify the memory space by hand */ + char* res; + if (size) { + mspaces_init(); + res = (char*)public_malloc(alloc_size); + } else + res = NULL; + + if (res) { + /* Make sure there is sufficient room in shadow */ + memset(res, 0, size); + set_heap_segment(res, size, alloc_size, 1, "calloc"); + } + return res; +} + +void *shadow_copy(const void *ptr, size_t size, int init) { + char *ret = (init) ? calloc(1, size) : malloc(size); + private_assert(ret != NULL, "Shadow copy failed\n", NULL); + /* Shadow copy is internal, therefore heap status should not be updated. + Since it is set via `set_heap_segment`, it needs to be reverted back. */ + update_heap_allocation(-size); + return memcpy(ret, ptr, size); +} +/* }}} */ + +/* Heap deallocation (free) {{{ */ + +/*! \brief Remove a memory block with base address given by `ptr` from tracking. + * This function effectively nullifies block shadow tracking an application + * block. + * + * NOTE: ::unset_heap_segment assumes that `ptr` is a base address of an + * allocated heap memory block, i.e., `freeable(ptr)` evaluates to true. + * + * \param ptr - base address of the memory block to be removed from tracking + * \param init - if evaluated to a non-zero value then initialization shadow + * of the memory block with base address `ptr` is nullified as well. + * \param function - name of the de-allocation function (e.g., `free` or `cfree`) +*/ +static void unset_heap_segment(void *ptr, int init, const char *function) { + DVALIDATE_MEMORY_INIT; + DVALIDATE_FREEABLE(((uintptr_t)ptr)); + /* Base address of shadow block */ + uintptr_t *base_shadow = (uintptr_t*)HEAP_SHADOW(ptr); + /* Physical allocation size */ + size_t alloc_size = ALLOC_SIZE(base_shadow[1]); + /* Actual block length */ + size_t length = base_shadow[1]; + /* Nullify shadow block */ + memset(base_shadow, ZERO, alloc_size); + /* Adjust tracked allocation size */ + update_heap_allocation(-length); +#ifdef E_ACSL_TEMPORAL /*{{{*/ + /* Nullify temporal shadow */ + uintptr_t *t_base_shadow = (uintptr_t*)TEMPORAL_HEAP_SHADOW(ptr); + memset(t_base_shadow, ZERO, alloc_size); +#endif /*}}} E_ACSL_TEMPORAL*/ + /* Nullify init shadow */ + if (init) { + memset((void*)HEAP_INIT_SHADOW(ptr), 0, alloc_size/8); + } +} + +void free(void *ptr) { + if (ptr == NULL) { +/* Fail if instructed to treat NULL input to free as invalid. */ +#ifdef E_ACSL_FREE_VALID_ADDRESS + private_abort("NULL pointer in free\n"); +#endif + return; + } + + if (ptr != NULL) { /* NULL is a valid behaviour */ + if (freeable(ptr)) { + unset_heap_segment(ptr, 1, "free"); + public_free(ptr); + } else { + private_abort("Not a start of block (%a) in free\n", ptr); + } + } +} +/* }}} */ + +/* Heap reallocation (realloc) {{{ */ +void* realloc(void *ptr, size_t size) { + char *res = NULL; /* Resulting pointer */ + /* If the pointer is NULL then realloc is equivalent to malloc(size) */ + if (ptr == NULL) + return malloc(size); + /* If the pointer is not NULL and the size is zero then realloc is + * equivalent to free(ptr) */ + else if (ptr != NULL && size == 0) { + free(ptr); + } else { + if (freeable(ptr)) { /* ... and can be used as an input to `free` */ + size_t alloc_size = ALLOC_SIZE(size); + res = public_realloc(ptr, alloc_size); + DVALIDATE_ALIGNMENT(res); + + /* realloc succeeds, otherwise nothing needs to be done */ + if (res != NULL) { + size_t alloc_size = ALLOC_SIZE(size); + size_t old_size = _block_length(ptr); + size_t old_alloc_size = ALLOC_SIZE(old_size); + + /* Nullify old representation */ + unset_heap_segment(ptr, 0, "realloc"); + + /* Set up new block shadow */ + set_heap_segment(res, size, alloc_size, 0, "realloc"); + + /* Move init shadow */ + unsigned char* old_init_shadow = (unsigned char*)HEAP_INIT_SHADOW(ptr); + unsigned char* new_init_shadow = (unsigned char*)HEAP_INIT_SHADOW(res); + + /* If realloc truncates allocation in the old init shadow it is first + * needed to clear the old init shadow from the boundary of the old + * shadow block to the size of the new allocation */ + if (old_size > size) { + clearbits_right( + old_alloc_size - size, + old_init_shadow + old_alloc_size/8); + } + + /* Now init shadow can be moved (if needed), keep in mind that + * segment base addresses are aligned at a boundary of something + * divisible by 8, so instead of moving actual bits here the + * segments are moved to avoid dealing with bit-level operations + * on incomplete bytes. */ + if (res != ptr) { + size_t copy_size = (old_size > size) ? alloc_size : old_alloc_size; + memcpy(new_init_shadow, old_init_shadow, copy_size); + memset(old_init_shadow, 0, copy_size); + } + } + } else { + private_abort("Not a start of block (%a) in realloc\n", ptr); + } + } + return res; +} +/* }}} */ + +/* Heap aligned allocation (aligned_alloc) {{{ */ +void *aligned_alloc(size_t alignment, size_t size) { + /* Check if: + * - size and alignment are greater than zero + * - alignment is a power of 2 + * - size is a multiple of alignment */ + if (!size || !alignment || !is_pow_of_2(alignment) || (size%alignment)) + return NULL; + + char *res = public_aligned_alloc(alignment, size); + + if (res) { + set_heap_segment(res, size, ALLOC_SIZE(size), 0, "aligned_alloc"); + } + + return (void*)res; +} +/* }}} */ + +/* Heap aligned allocation (posix_memalign) {{{ */ +int posix_memalign(void **memptr, size_t alignment, size_t size) { + /* Check if: + * - size and alignment are greater than zero + * - alignment is a power of 2 and a multiple of sizeof(void*) */ + if (!size || !alignment || !is_pow_of_2(alignment) || alignment%sizeof(void*)) + return -1; + + /* Make sure that the first argument to posix memalign is indeed allocated */ + private_assert(allocated((uintptr_t)memptr, sizeof(void*), (uintptr_t)memptr), + "\\invalid memptr in posix_memalign", NULL); + + int res = public_posix_memalign(memptr, alignment, size); + if (!res) { + set_heap_segment(*memptr, size, ALLOC_SIZE(size), 0, "posix_memalign"); + } + return res; +} +/* }}} */ + +/* Heap querying {{{ */ +int heap_allocated(uintptr_t addr, size_t size, uintptr_t base_ptr) { + /* Base address of the shadow segment the address belongs to */ + uintptr_t *shadow = (uintptr_t*)HEAP_SHADOW(addr - addr%HEAP_SEGMENT); + + /* Non-zero if the segment belongs to heap allocation */ + if (shadow[0]) { + uintptr_t *base_shadow = + (uintptr_t*)HEAP_SHADOW(base_ptr - base_ptr%HEAP_SEGMENT); + uintptr_t *first_segment = (uintptr_t*)HEAP_SHADOW(shadow[0]); + /* shadow[0] - base address of the tracked block + * fist_segment[1] - length (i.e., location in the first segment + * after base address) + * offset is the difference between the address and base address (shadow[0]) + * Then an address belongs to heap allocation if + * offset + size <= length + * + * Additionally, if strong validity is enforced + * (i.e., E_ACSL_WEAK_VALIDITY macro undefined) make sure that both + * `addr` and `base_ptr` belong to the same block. */ +#ifndef E_ACSL_WEAK_VALIDITY + return base_shadow[0] == shadow[0] && + (addr - shadow[0]) + size <= first_segment[1]; +#else + return (addr - shadow[0]) + size <= first_segment[1]; +#endif + } + return 0; +} + +int freeable(void *ptr) { /* + */ + uintptr_t addr = (uintptr_t)ptr; + /* Address is not on the program's heap, so cannot be freed */ + if (!IS_ON_HEAP(addr)) + return 0; + + /* Address of the shadow segment the address belongs to */ + uintptr_t *shadow = (uintptr_t*)ALIGNED_HEAP_SHADOW(addr); + /* Non-zero if the segment belongs to heap allocation with *shadow + * capturing the base address of the tracked block */ + if (*shadow) { + /* Block is freeable if `addr` is the base address of its block */ + return (uintptr_t)*shadow == addr; + } + return 0; +} + +uintptr_t heap_info(uintptr_t addr, char type) { + /* Ensure that `addr` is an allocated location on a program's heap */ + DVALIDATE_HEAP_ACCESS(addr, 1); + /* Base address of the shadow segment the address belongs to. + * First `sizeof(uintptr_t)` bytes of each segment store application-level + * base address of the tracked block */ + uintptr_t *aligned_shadow = (uintptr_t*)ALIGNED_HEAP_SHADOW(addr); + + switch(type) { + case 'B': /* Base address */ + return *aligned_shadow; + case 'L': { /* Block length */ + /* Pointer to the first-segment in the shadow block */ + uintptr_t *base_segment = (uintptr_t*)HEAP_SHADOW(*aligned_shadow); + /* Length of the stored block is captured in `sizeof(uintptr_t)` bytes + * past `sizeof(uintptr_t)` tracking the base address */ + return base_segment[1]; + } + case 'O': + /* Offset of a given address within its block. This is the difference + * between the input address and the base address of the block. */ + return addr - *aligned_shadow; + default: + DASSERT(0 && "Unknown heap query type"); + } + return 0; +} + +int heap_initialized(uintptr_t addr, long len) { + /* Base address of a shadow segment addr belongs to */ + unsigned char *shadow = (unsigned char*)(HEAP_INIT_SHADOW(addr)); + + /* See comments in the `initialize_heap_region` function for more details */ + unsigned skip = (addr - HEAP_START)%8; + unsigned set; + if (skip) { + set = 8 - skip; + set = (len > set) ? set : len; + len -= set; + unsigned char mask = 0; + setbits64_skip(set,mask,skip); + + if (*shadow != mask) + return 0; + } + if (len > 0) + return checkbits(len, shadow); + return 1; +} +/* }}} */ + +/* Heap temporal querying {{{*/ +#ifdef E_ACSL_TEMPORAL +uint32_t heap_temporal_info(uintptr_t addr, int origin) { + /* NOTE: No checking for allocated blocks, since an invalid + timestamp is zero and unused memory is nullified then an invalid + timestamp is also returned for allocated memory */ + if (origin) { + uintptr_t *aligned_shadow = (uintptr_t*)ALIGNED_HEAP_SHADOW(addr); + uintptr_t *base_shadow = (uintptr_t*)HEAP_SHADOW(*aligned_shadow); + return (uint32_t)base_shadow[2]; + } else { + return *((uint32_t*)TEMPORAL_HEAP_SHADOW(addr)); + } +} + +void heap_store_temporal_referent(uintptr_t addr, uint32_t ref) { + DVALIDATE_HEAP_ACCESS(addr, PTR_SZ); + uint32_t *temporal_shadow = (uint32_t*)TEMPORAL_HEAP_SHADOW(addr); + *temporal_shadow = ref; +} +#endif/*}}} E_ACSL_TEMPORAL*/ + +/* Heap initialization {{{ */ +void initialize_heap_region(uintptr_t addr, long len) { + DVALIDATE_HEAP_ACCESS(addr, len); + DVASSERT(!(addr - _base_addr(addr) + len > _block_length(addr)), + "Attempt to initialize %lu bytes past block boundaries\n" + "starting at %a with block length %lu at base address %a\n", + len, addr, _block_length(addr), _base_addr(addr)); + + /* Address within init shadow tracking initialization */ + unsigned char *shadow = (unsigned char*)(HEAP_INIT_SHADOW(addr)); + + /* First check whether the address in the init shadow is divisible by 8 + * (i.e., located on a byte boundary) */ + /* Leading bits in `*shadow` byte which do not need to be set + * (i.e., skipped) */ + short skip = (addr - HEAP_START)%8; + if (skip) { + /* The remaining bits in the shadow byte */ + short set = 8 - skip; + /* The length of initialized region can be short (shorter then the + * above remainder). Adjust the number of bits to set accordingly. */ + set = (len > set) ? set : len; + len -= set; + setbits64_skip(set, *shadow, skip); + /* Move to the next location if there are more bits to set */ + shadow++; + } + + if (len > 0) { + /* Set the remaining bits. Note `shadow` is now aligned at a byte + * boundary, thus one can set `len` bits starting with address given by + * `shadow` */ + setbits(len, shadow); + } +} +/* }}} */ + +/* Internal state print (debug mode) {{{ */ +#ifdef E_ACSL_DEBUG +void printbyte(unsigned char c, char buf[]) { + if (c >> 2 < LONG_BLOCK_INDEX_START) { + rtl_sprintf(buf, "PRIMARY: I{%u} RO{%u} OF{%2u} => %u[%u]", + checkbit(INIT_BIT,c), checkbit(READONLY_BIT,c), c >> 2, + short_lengths[c >> 2], short_offsets[c >> 2]); + } else { + rtl_sprintf(buf, "SECONDARY: I{%u} RO{%u} OF{%u} => %4u", + checkbit(INIT_BIT,c), checkbit(READONLY_BIT,c), + (c >> 2), (c >> 2) - LONG_BLOCK_INDEX_START); + } +} + +void print_static_shadows(uintptr_t addr, size_t size) { + char prim_buf[256]; + char sec_buf[256]; + + unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(addr); + unsigned int *sec_shadow = (unsigned int*)SECONDARY_SHADOW(addr); + + int i, j = 0; + for (i = 0; i < size; i++) { + sec_buf[0] = '\0'; + printbyte(prim_shadow[i], prim_buf); + if (IS_LONG_BLOCK(size) && (i%LONG_BLOCK) == 0) { + j += 2; + if (i < LONG_BLOCK_BOUNDARY(size)) { + rtl_sprintf(sec_buf, " %a SZ{%u} OF{%u}", + &sec_shadow[j], sec_shadow[j-2], sec_shadow[j-1]); + } + if (i) { + DLOG("---------------------------------------------\n"); + } + } + DLOG("| [%2d] %a | %s || %s\n", i, &prim_shadow[i], prim_buf, sec_buf); + } +#ifdef E_ACSL_TEMPORAL /* {{{ */ + uint32_t* origin_shadow = (uint32_t*)TEMPORAL_PRIMARY_STATIC_SHADOW(addr); + uint32_t* ref_shadow = (uint32_t*)TEMPORAL_SECONDARY_STATIC_SHADOW(addr); + DLOG(" | > Blk ID: %u\n", i, *origin_shadow); + for (i = 0; i < size; i+=PTR_SZ) + DLOG(" | > Ref ID[%u]: %u\n", i/8, *(ref_shadow + 1)); +#endif /*}}} E_ACSL_TEMPORAL*/ +} + +void print_heap_shadows(uintptr_t addr) { + unsigned char *block_shadow = (unsigned char*)HEAP_SHADOW(addr); + unsigned char *init_shadow = (unsigned char*)HEAP_INIT_SHADOW(addr); + + size_t length = (size_t)((uintptr_t*)(block_shadow))[1]; + size_t alloc_size = ALLOC_SIZE(length); + size_t segments = alloc_size/HEAP_SEGMENT; + uintptr_t *segment = (uintptr_t*)(block_shadow); + + DLOG(" | === Block Shadow ======================================\n"); + DLOG(" | Access addr: %a\n", addr); + DLOG(" | Block Shadow: %a\n", block_shadow); + DLOG(" | Init Shadow: %a\n", init_shadow); + DLOG(" | Segments: %lu\n", segments); + DLOG(" | Actual size: %lu bytes\n", alloc_size); + DLOG(" | Tracked Length: %lu bytes\n", length); + + if (zeroed_out(block_shadow, alloc_size)) + DLOG(" | << Nullified >> \n"); + +#ifdef E_ACSL_TEMPORAL /*{{{*/ + DLOG(" | Origin TS: %u\n", (uint32_t)segment[2]); +#endif /*}}}*/ + + size_t i; + for (i = 0; i < segments; i++) { + segment = (uintptr_t*)(block_shadow + i*HEAP_SEGMENT); + DLOG(" | Segment: %lu, Base: %a \n", i, *segment); + } + + DLOG(" | Initialization: \n | "); + for (i = 0; i < alloc_size/8; i++) { + if (i > 0 && (i*8)%HEAP_SEGMENT == 0) + DLOG("\n | "); + DLOG("%8b ", init_shadow[i], init_shadow[i]); + } + DLOG("\n"); +} + +void print_shadows(uintptr_t addr, size_t size) { + if (IS_ON_STATIC(addr)) + print_static_shadows(addr, size); + else if (IS_ON_HEAP(addr)) + print_heap_shadows(addr); +} + +void print_memory_segment(struct memory_segment *p, char *lab, int off) { + DLOG(" %s: %lu MB [%lu, %lu]", lab, MB_SZ(p->size), p->start, p->end); + if (off) + DLOG("{ Offset: %ld }", p->shadow_offset); + DLOG("\n"); +} + +void print_memory_partition(struct memory_partition *p) { + print_memory_segment(&p->application, "Application", 0); + print_memory_segment(&p->primary, "Primary ", 1); + print_memory_segment(&p->secondary, "Secondary ", 1); +#ifdef E_ACSL_TEMPORAL + print_memory_segment(&p->temporal_primary, "Temporal Primary ", 1); + print_memory_segment(&p->temporal_secondary, "Temporal Secondary ", 1); +#endif +} + +void print_shadow_layout() { + DLOG(">>> HEAP ---------------------\n"); + print_memory_partition(&mem_layout.heap); + DLOG(">>> STACK --------------------\n"); + print_memory_partition(&mem_layout.stack); + DLOG(">>> GLOBAL -------------------\n"); + print_memory_partition(&mem_layout.global); + DLOG(">>> TLS ----------------------\n"); + print_memory_partition(&mem_layout.tls); + DLOG(">>> --------------------------\n"); +} + +const char* which_segment(uintptr_t addr) { + const char *loc = NULL; + if (IS_ON_STACK(addr)) + loc = "stack"; + else if (IS_ON_HEAP(addr)) + loc = "heap"; + else if (IS_ON_GLOBAL(addr)) + loc = "global"; + else if (IS_ON_TLS(addr)) + loc = "TLS"; + else + loc = "untracked"; + return loc; +} +#endif +/* }}} */ diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h index d2400f592b3..465ed429342 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h @@ -25,6 +25,12 @@ * \brief Core functionality of the segment-based memory model ***************************************************************************/ +#ifndef E_ACSL_SEGMENT_TRACKING_H +#define E_ACSL_SEGMENT_TRACKING_H + +#include <stddef.h> +#include <stdint.h> + /* Segment settings and shadow values interpretation {{{ */ /* This file implements segment-based and offset-based shadow memory models @@ -98,123 +104,6 @@ * offset at which to read meta-data is (51 - 48). */ #define LONG_BLOCK_INDEX_START 48 -/*! \brief Decrease _n to be a multiple of _m */ -#define ALIGN_LEFT(_n, _m) (_n - _n%_m) - -/*! \brief Increase _n to be a multiple of _m */ -#define ALIGN_RIGHT(_n, _m) (_n + ((_n%_m) ? (_m - _n%_m) : 0)) - -/*! \brief Heap shadow address aligned at a segment boundary */ -#define ALIGNED_HEAP_SHADOW(_addr) \ - HEAP_SHADOW(ALIGN_LEFT(_addr,HEAP_SEGMENT)) - -/* \brief Maximal size_t value that does not cause overflow via addition - * when segment size is added. */ -static const size_t max_allocated = ALIGN_LEFT(SIZE_MAX,HEAP_SEGMENT); - -/* \brief Return actual allocation size which takes into account aligned - * allocation. In the present implementation it is the requested size of - * a heap block aligned at a segment boundary */ -#define ALLOC_SIZE(_s) \ - (_s < max_allocated ? ALIGN_RIGHT(_s, HEAP_SEGMENT) : 0) - -/** \brief Evaluate to `true` if address _addr belongs to a memory block - * with base address _base and length _length */ -#define BELONGS(_addr, _base, _length) \ - (_addr >= _base && _addr < _base + _length) - -/*! \brief For short blocks numbers 1 to 36 represent lengths and offsets, - * such that: - * - 0 -> length 0, offset 0 - * - 1 -> length 1, offset 0, - * - 2 -> length 2, offset 0, - * - 3 -> length 2, offset 1 and so on. - * - * The below data is used to identify lengths and offsets: - * Given x is a number from [1, 36] range: - * - short_lengths[x] -> length of a block - * - short_offsets[x] -> offset within a block */ -static const char short_lengths[] = { - 0, - 1, - 2,2, - 3,3,3, - 4,4,4,4, - 5,5,5,5,5, - 6,6,6,6,6,6, - 7,7,7,7,7,7,7, - 8,8,8,8,8,8,8,8 -}; - -static const char short_offsets[] = { - 0, - 0, - 0,1, - 0,1,2, - 0,1,2,3, - 0,1,2,3,4, - 0,1,2,3,4,5, - 0,1,2,3,4,5,6, - 0,1,2,3,4,5,6,7 -}; - -/*! \brief Mask for marking a heap segment as initialized. - * For instance, let `uintptr_t *p' point to the start of a heap segment - * in the heap shadow, then 'p[1] | heap_init_mask` sets initialization bits. - * NOTE: This approach cannot deal with segments larger than 64 bits. */ -static const uint64_t heap_init_mask = ~(ONE << HEAP_SEGMENT); - -/*! \brief Masks for checking of initialization of global/stack allocated blocks. - * A byte allocated globally or on stack is deemed initialized if its - * least significant bit is set to `1' and uninitialized otherwise. - * The binary representation is then as follows (assuming the leftmost - * bit is the least significant one): - * - * 00000000 00000000 00000000 00000000 ... (0) - * 10000000 00000000 00000000 00000000 ... (1) - * 10000000 10000000 00000000 00000000 ... (257) - * 10000000 10000000 10000000 00000000 ... (65793) - * 10000000 10000000 10000000 10000000 ... (16843009) - * ... - * - * For instance, mark first X bytes of a number N as initialised: - * N |= static_init_masks[X] */ -static const uint64_t static_init_masks [] = { - 0, /* 0 bytes */ - 1, /* 1 byte */ - 257, /* 2 bytes */ - 65793, /* 3 bytes */ - 16843009, /* 4 bytes */ - 4311810305, /* 5 bytes */ - 1103823438081, /* 6 bytes */ - 282578800148737, /* 7 bytes */ - 72340172838076673 /* 8 bytes */ -}; - -/*! \brief Bit masks for setting read-only (second least significant) bits. - * Binary representation (assuming the least significant bit is the - * leftmost bit) is follows: - * - * 00000000 00000000 00000000 00000000 ... (0) - * 01000000 00000000 00000000 00000000 ... (2) - * 01000000 01000000 00000000 00000000 ... (514) - * 01000000 01000000 01000000 00000000 ... (131586) - * 01000000 01000000 01000000 01000000 ... (33686018) - * ... - * - * For instance, mark first X bytes of a number N as read-only: - * N |= static_readonly_masks[X] */ -static const uint64_t static_readonly_masks [] = { - 0, /* 0 bytes */ - 2, /* 1 byte */ - 514, /* 2 bytes */ - 131586, /* 3 bytes */ - 33686018, /* 4 bytes */ - 8623620610, /* 5 bytes */ - 2207646876162, /* 6 bytes */ - 565157600297474, /* 7 bytes */ - 144680345676153346 /* 8 bytes */ -}; /* }}} */ /* Runtime assertions (debug mode) {{{ */ @@ -228,54 +117,7 @@ static const uint64_t static_readonly_masks [] = { /* Debug function making sure that the order of program segments is as expected * and that the program and the shadow segments used do not overlap. */ -static void validate_shadow_layout() { - /* Check that the struct holding memory layout is marked as initialized. */ - DVALIDATE_MEMORY_INIT; - - /* Each segment has 3 partitions: - - application memory - - primary/secondary shadows */ - int num_partitions = sizeof(mem_partitions)/sizeof(memory_partition*); - int num_seg_in_part = 3; -#ifdef E_ACSL_TEMPORAL - num_seg_in_part = 5; -#endif - int num_segments = num_partitions*num_seg_in_part; - uintptr_t segments[num_segments][2]; - - size_t i; - for (i = 0; i < num_partitions; i++) { - memory_partition *p = mem_partitions[i]; - segments[num_seg_in_part*i][0] = p->application.start; - segments[num_seg_in_part*i][1] = p->application.end; - segments[num_seg_in_part*i+1][0] = p->primary.start; - segments[num_seg_in_part*i+1][1] = p->primary.end; - segments[num_seg_in_part*i+2][0] = p->secondary.start; - segments[num_seg_in_part*i+2][1] = p->secondary.end; -#ifdef E_ACSL_TEMPORAL - segments[num_seg_in_part*i+3][0] = p->temporal_primary.start; - segments[num_seg_in_part*i+3][1] = p->temporal_primary.end; - segments[num_seg_in_part*i+4][0] = p->temporal_secondary.start; - segments[num_seg_in_part*i+4][1] = p->temporal_secondary.end; -#endif - } - - /* Make sure all segments (shadow or otherwise) are disjoint */ - size_t j; - for (int i = 0; i < num_segments; i++) { - uintptr_t *src = segments[i]; - DVASSERT(src[0] < src[1], - "Segment start is greater than segment end %lu < %lu\n", src[0], src[1]); - for (j = 0; j < num_segments; j++) { - if (i != j) { - uintptr_t *dest = segments[j]; - DVASSERT(src[1] < dest[0] || src[0] > dest[1], - "Segment [%lu, %lu] overlaps with segment [%lu, %lu]", - src[0], src[1], dest[0], dest[1]); - } - } - } -} +void validate_shadow_layout(); /* Assert that memory layout has been initialized and all segments appear * in the expected order */ @@ -365,34 +207,17 @@ static void validate_shadow_layout() { for (_i = 0; _i < _len; _i++) { \ uintptr_t _prev = _addr - _i; \ if (static_allocated_one(_prev)) { \ - vassert(_base_addr(_prev) != _prev, \ + private_assert(_base_addr(_prev) != _prev, \ "Potential backward overlap of: \n previous block [%a]\n" \ " with allocated block [%a]\n", _prev, _addr); \ } \ uintptr_t _next = _addr + _i; \ - vassert(!static_allocated_one(_next), \ + private_assert(!static_allocated_one(_next), \ "Potential forward overlap of:\n following block location [%a]\n" \ " with allocated block [%a]\n", _next, _addr); \ } \ } -/* Assert that a memory block [_addr, _addr + _size] is nullified */ -# define DVALIDATE_NULLIFIED(_addr, _size) \ - DVASSERT(zeroed_out((void *)_addr, _size), \ - "Block [%a, %a+%lu] not nullified", _addr, _addr, _size) - -/* Assert that memory block [_addr, _addr + _size] is allocated */ -# define DVALIDATE_ALLOCATED(_addr, _size, _base) \ - vassert(allocated((uintptr_t)_addr, _size, (uintptr_t)_base), \ - "Operation on unallocated block [%a + %lu] with base %a\n", \ - _addr, _size, _base); - -/* Assert that memory block [_addr, _addr + _size] is allocated - * and can be written to */ -# define DVALIDATE_WRITEABLE(_addr, _size, _base) \ - vassert(writeable((uintptr_t)_addr, _size, (uintptr_t)_base), \ - "Operation on unallocated block [%a + %lu] with base %a\n", \ - _addr, _size, _base); #else /*! \cond exclude from doxygen */ # define DVALIDATE_MEMORY_INIT @@ -401,7 +226,6 @@ static void validate_shadow_layout() { # define DVALIDATE_STATIC_ACCESS # define DVALIDATE_STATIC_LOCATION # define DVALIDATE_ALIGNMENT -# define DVALIDATE_NULLIFIED # define DVALIDATE_IS_ON # define DVALIDATE_IS_ON_HEAP # define DVALIDATE_IS_ON_STACK @@ -411,23 +235,12 @@ static void validate_shadow_layout() { # define DVALIDATE_FREEABLE # define DVALIDATE_STATIC_FREE # define DVALIDATE_HEAP_FREE -# define DVALIDATE_ALLOCATED -# define DVALIDATE_WRITEABLE # define DVALIDATE_STATIC_SUFFICIENTLY_ALIGNED /*! \endcond */ #endif /* }}} */ /* E-ACSL predicates {{{ */ -/* See definitions for documentation */ -static void *shadow_copy(const void *ptr, size_t size, int init); -static uintptr_t heap_info(uintptr_t addr, char type); -static uintptr_t static_info(uintptr_t addr, char type); -static int heap_allocated(uintptr_t addr, size_t size, uintptr_t base_ptr); -static int static_allocated(uintptr_t addr, long size, uintptr_t base_ptr); -static int allocated(uintptr_t addr, long size, uintptr_t base_ptr); -static int writeable(uintptr_t addr, long size, uintptr_t base_ptr); -static int readonly (void *ptr); /*! \brief Quick test to check if a static location belongs to allocation. * This macro really belongs where static_allocated is defined, but @@ -457,7 +270,7 @@ static int readonly (void *ptr); #define TRY_SEGMENT(_addr, _heap_stmt, _static_stmt) { \ TRY_SEGMENT_WEAK(_addr, _heap_stmt, _static_stmt) \ else { \ - vassert(0, "Use of invalid address %a in %s\n", _addr, __func__); \ + private_assert(0, "Use of invalid address %a in %s\n", _addr, __func__); \ } \ } @@ -468,13 +281,7 @@ static int readonly (void *ptr); * * \param uintptr_t addr - a memory address * \param char p - predicate type. See ::static_info for further details. */ -static uintptr_t predicate(uintptr_t addr, char p) { - TRY_SEGMENT( - addr, - return heap_info((uintptr_t)addr, p), - return static_info((uintptr_t)addr, p)); - return 0; -} +uintptr_t predicate(uintptr_t addr, char p); /*! \brief Return the byte length of the memory block containing `_addr` */ #define _block_length(_addr) predicate((uintptr_t)_addr, 'L') @@ -483,113 +290,19 @@ static uintptr_t predicate(uintptr_t addr, char p) { /* }}} */ /* Static allocation {{{ */ - -/** The below numbers identify offset "bases" for short block lengths. - * An offset base is a number (a code) that represents the length of a - * short block with a byte offset of `0`. - * For instance, for a block of 4 bytes its offset base if 7, that is - * length 4, offset 0 => 7, - * length 4, offset 1 => 8, - * length 4, offset 2 => 9, - * length 4, offset 3 => 10, - * and then for a block of 5 bytes its base offset if 11 etc. */ -static const char short_offsets_base [] = { 0, 1, 2, 4, 7, 11, 16, 22, 29 }; - -/** Shadow masks for setting values of short blocks */ -static const uint64_t short_shadow_masks[] = { - 0UL, - 4UL, - 3080UL, - 1578000UL, - 673456156UL, - 258640982060UL, - 92703853921344UL, - 31644393008028760UL, - 10415850140873816180UL -}; - /*! \brief Record allocation of a given memory block and update shadows * using offset-based encoding. * * \param ptr - pointer to a base memory address of the stack memory block. * \param size - size of the stack memory block. */ -static void shadow_alloca(void *ptr, size_t size) { - DVALIDATE_IS_ON_STATIC(ptr, size); -#ifdef E_ACSL_TEMPORAL - /* Make sure that during temporal analysis there is - * sufficient space to store an origin timestamp. - * NOTE: This does not apply to globals, because all the globals - * have the timestamp of `1`. */ - if (!IS_ON_GLOBAL(ptr)) { - DVALIDATE_STATIC_SUFFICIENTLY_ALIGNED((uintptr_t)ptr, 4); - } -#endif - - unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(ptr); - uint64_t *prim_shadow_alt = (uint64_t *)PRIMARY_SHADOW(ptr); - unsigned int *sec_shadow = (unsigned int*)SECONDARY_SHADOW(ptr); - - /* Make sure shadows are nullified */ - DVALIDATE_NULLIFIED(prim_shadow, size); - DVALIDATE_NULLIFIED(sec_shadow, size); - - /* Flip read-only bit for zero-size blocks. That is, physically it exists - * but one cannot write to it. Further, the flipped read-only bit will also - * identify such block as allocated */ - if (!size) - setbit(READONLY_BIT, prim_shadow[0]); - - unsigned int i, j = 0, k = 0; - if (IS_LONG_BLOCK(size)) { /* Long blocks */ - unsigned int i, j = 0, k = 0; - int boundary = LONG_BLOCK_BOUNDARY(size); - for (i = 0; i < boundary; i += LONG_BLOCK) { - /* Set-up a secondary shadow segment */ - sec_shadow[j++] = size; - sec_shadow[j++] = i; - /* Set primary shadow offsets */ - prim_shadow_alt[k++] = LONG_BLOCK_MASK; - } - - /* Write out the remainder */ - for (i = boundary; i < size; i++) { - unsigned char offset = i%LONG_BLOCK + LONG_BLOCK_INDEX_START + LONG_BLOCK; - prim_shadow[i] = (offset << 2); - } - } else { /* Short blocks */ - for (i = 0; i < size; i++) { - unsigned char code = short_offsets_base[size] + i; - prim_shadow[i] = (code << 2); - } - } -#ifdef E_ACSL_TEMPORAL /*{{{*/ - /* Store a temporal origin timestamp in the first 4 bytes of a temporal - * shadow. This, however applies only to TLS of stack blocks. Global blocks - * are never deallocated, an origin time stamp of any global block is given - * via `GLOBAL_TEMPORAL_TIMESTAMP` */ - if (!IS_ON_GLOBAL(ptr)) { - uint32_t* temporal_shadow = (uint32_t*)TEMPORAL_PRIMARY_STATIC_SHADOW(ptr); - *temporal_shadow = NEW_TEMPORAL_TIMESTAMP(); - } -#endif /*}}} E_ACSL_TEMPORAL*/ -} +void shadow_alloca(void *ptr, size_t size); /* }}} */ /* Deletion of static blocks {{{ */ /*! \brief Nullifies shadow regions of a memory block given by its address. * \param ptr - base memory address of the stack memory block. */ -void shadow_freea(void *ptr) { - DVALIDATE_STATIC_LOCATION(ptr); - DASSERT(ptr == (void*)_base_addr(ptr)); - size_t size = _block_length(ptr); - memset((void*)PRIMARY_SHADOW(ptr), 0, size); - memset((void*)SECONDARY_SHADOW(ptr), 0, size); -#ifdef E_ACSL_TEMPORAL /*{{{*/ - memset((void*)TEMPORAL_PRIMARY_STATIC_SHADOW(ptr), 0, size); - memset((void*)TEMPORAL_SECONDARY_STATIC_SHADOW(ptr), 0, size); -#endif /*}}} E_ACSL_TEMPORAL*/ -} +void shadow_freea(void *ptr); /* }}} */ /* Static querying {{{ */ @@ -600,67 +313,12 @@ void shadow_freea(void *ptr) { * This function is only safe if applied to a tls, stack or global address. * Explanations regarding the third argument - `base_ptr` - are given * via inline documentation of function ::heap_allocated */ -static int static_allocated(uintptr_t addr, long size, uintptr_t base_ptr) { - unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(addr); - /* Unless the address belongs to tracked allocation 0 is returned */ - if (prim_shadow[0]) { - unsigned int code = (prim_shadow[0] >> 2); - unsigned int long_block = (code >= LONG_BLOCK_INDEX_START); - size_t length, offset; - if (long_block) { - offset = code - LONG_BLOCK_INDEX_START; - unsigned int *sec_shadow = - (unsigned int*)SECONDARY_SHADOW(addr - offset) ; - length = sec_shadow[0]; - offset = sec_shadow[1] + offset; - } else { - offset = short_offsets[code]; - length = short_lengths[code]; - } - -#ifndef E_ACSL_WEAK_VALIDITY - if (addr != base_ptr) { - return BELONGS(base_ptr, addr - offset, length) - && offset + size <= length; - } -#endif - return offset + size <= length; - } - return 0; -} +int static_allocated(uintptr_t addr, long size, uintptr_t base_ptr); /*! \brief Return a non-zero value if a statically allocated memory block * starting at `addr` of length `size` is fully initialized (i.e., each of * its cells is initialized). */ -static int static_initialized(uintptr_t addr, long size) { - /* Return 0 right away if the address does not belong to - * static allocation */ - if (!static_allocated(addr, size, addr)) - return 0; - DVALIDATE_STATIC_ACCESS(addr, size); - - int result = 1; - uint64_t *shadow = (uint64_t*)PRIMARY_SHADOW(addr); - while (size > 0) { - int rem = (size >= ULONG_BYTES) ? ULONG_BYTES : size; - uint64_t mask = static_init_masks[rem]; - size -= ULONG_BYTES; - /* Note that most of the blocks checked for initialization will be smaller - * than 64 bits, therefore in most cases it is more efficient to complete - * the loop rather than do a test and return if the result is false */ - result = result && (((*shadow) & mask) == mask); - shadow++; - } - return result; -} - -/*! \brief Checking whether a globally allocated memory block containing an - * address _addr has read-only access. Note, this is light checking that - * relies on the fact that a single block cannot contain read/write and - * read-only parts, that is to check whether the block has read-only access it - * is sufficient to check any of its bytes. */ -#define global_readonly(_addr) \ - checkbit(READONLY_BIT, (*(char*)PRIMARY_GLOBAL_SHADOW(addr))) +int static_initialized(uintptr_t addr, long size); /*! \brief Querying information about a specific global or stack memory address * (based on the value of parameter `global'). The return value is interpreted @@ -677,75 +335,19 @@ static int static_initialized(uintptr_t addr, long size) { * That is, for the cases when addr does not refer to an allocated memory * address belonging to static allocation the return value for this function is * unspecified. */ -static uintptr_t static_info(uintptr_t addr, char type) { - DVALIDATE_STATIC_LOCATION(addr); - unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(addr); - - /* Unless the address belongs to tracked allocation 0 is returned */ - if (prim_shadow[0]) { - unsigned int code = (prim_shadow[0] >> 2); - unsigned int long_block = (code >= LONG_BLOCK_INDEX_START); - if (long_block) { - unsigned int offset = code - LONG_BLOCK_INDEX_START; - unsigned int *sec_shadow = - (unsigned int*)SECONDARY_SHADOW(addr - offset) ; - switch(type) { - case 'B': /* Base address */ - return addr - offset - sec_shadow[1]; - case 'O': /* Offset */ - return sec_shadow[1] + offset; - case 'L': /* Length */ - return sec_shadow[0]; - default: - DASSERT(0 && "Unknown static query type"); - } - } else { - switch(type) { - case 'B': /* Base address */ - return addr - short_offsets[code]; - case 'O': /* Offset */ - return short_offsets[code]; - case 'L': /* Length */ - return short_lengths[code]; - default: - DASSERT(0 && "Unknown static query type"); - } - } - } - return 0; -} +uintptr_t static_info(uintptr_t addr, char type); #ifdef E_ACSL_TEMPORAL /*{{{*/ /*! Return either an origin (if `origin` is non-zero) or referent timestamp * associated with a static address `addr` */ -static uint32_t static_temporal_info(uintptr_t addr, int origin) { - /* NOTE: No checking for allocated blocks, since an invalid - timestamp is zero and ununsed memory is nullified then an invalid - timestamp is also returned for allocated memory */ - if (origin) { - int allocated = static_allocated_one(addr); - if (allocated && !IS_ON_GLOBAL(addr)) { - uintptr_t base = static_info(addr, 'B'); - return *((uint32_t*)TEMPORAL_PRIMARY_STATIC_SHADOW(base)); - } else if (allocated && IS_ON_GLOBAL(addr)) { - return GLOBAL_TEMPORAL_TIMESTAMP; - } else { - return INVALID_TEMPORAL_TIMESTAMP; - } - } else { - return *((uint32_t*)TEMPORAL_SECONDARY_STATIC_SHADOW(addr)); - } -} +uint32_t static_temporal_info(uintptr_t addr, int origin); #define static_origin_timestamp(_ptr) static_temporal_info((uintptr_t)(_ptr),1) #define static_referent_timestamp(_ptr) static_temporal_info((uintptr_t)(_ptr),0) /*! Store a referent time stamp associated with a static pointer. * Origin timestamps are generated via `shadow_alloca` */ -static void static_store_temporal_referent(uintptr_t addr, uint32_t ref) { - DVALIDATE_STATIC_ACCESS(addr, PTR_SZ); - *((uint32_t*)TEMPORAL_SECONDARY_STATIC_SHADOW(addr)) = ref; -} +void static_store_temporal_referent(uintptr_t addr, uint32_t ref); #endif/*}}} E_ACSL_TEMPORAL*/ /* }}} */ @@ -753,43 +355,7 @@ static void static_store_temporal_referent(uintptr_t addr, uint32_t ref) { /*! \brief The following function marks n bytes starting from the address * given by addr as initialized. `size` equating to zero indicates that the * whole block should be marked as initialized. */ -static void initialize_static_region(uintptr_t addr, long size) { - DVALIDATE_STATIC_ACCESS(addr, size); - DVASSERT(!(addr - _base_addr(addr) + size > _block_length(addr)), - "Attempt to initialize %lu bytes past block boundaries\n" - "starting at %a with block length %lu at base address %a\n", - size, addr, _block_length(addr), _base_addr(addr)); - - /* Below code marks `size` bytes following `addr` in the stack shadow as - * initialized. That is, least significant bits of all 9 bytes following - * `addr` should be flipped to ones. While this is a common pattern in this - * program, here are some explanations. - * - * Here we grab a shadow region and initialize 8 (::ULONG_SIZE) bits at a - * time using masks stored in ::static_init_masks. This few lines below are - * better explained using an example. Let's say we need to mark 9 bytes as - * initialized starting from some address `addr`. - * - * In order to do that we first grab a shadow region storing it in `shadow`. - * For the first 8 bytes we grab a mask stored at ::static_init_masks[8]: - * `10000000 10000000 10000000 10000000 10000000 10000000 10000000 10000000` - * That is, `*shadow |= static_init_masks[8]` sets 8 lowest significant bits - * of the 8 bytes following *shadow to ones. - * - * After that we need to mark the remaining 1 bite as initialized. For that - * we grab mask ::static_init_masks[1]: - * `10000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000` - * That is, `*shadow |= static_init_masks[1]` will set only the least - * significant bit in *shadow. */ - - uint64_t *shadow = (uint64_t*)PRIMARY_SHADOW(addr); - while (size > 0) { - int rem = (size >= ULONG_BYTES) ? ULONG_BYTES : size; - size -= ULONG_BYTES; - *shadow |= static_init_masks[rem]; - shadow++; - } -} +void initialize_static_region(uintptr_t addr, long size); /* }}} */ /* Read-only {{{ */ @@ -797,320 +363,16 @@ static void initialize_static_region(uintptr_t addr, long size) { * NOTE: This function has many similarities with ::initialize_static_region * The functionality, however is preferred to be kept separate * because the ::mark_readonly should operate only on the global shadow. */ -static void mark_readonly_region (uintptr_t addr, long size) { - /* Since read-only blocks can only be stored in the globals segments (e.g., - * TEXT), this function required ptr carry a global address. */ - DASSERT(IS_ON_GLOBAL(addr)); - DASSERT(static_allocated_one(addr)); - DVASSERT(!(addr - _base_addr(addr) + size > _block_length(addr)), - "Attempt to mark read-only %lu bytes past block boundaries\n" - "starting at %a with block length %lu at base address %a\n", - size, addr, _block_length(addr), _base_addr(addr)); - - /* See comments in ::initialize_static_region for details */ - uint64_t *shadow = (uint64_t*)PRIMARY_GLOBAL_SHADOW(addr); - while (size > 0) { - int rem = (size >= ULONG_BYTES) ? ULONG_BYTES : size; - size -= ULONG_BYTES; - *shadow |= static_readonly_masks[rem]; - shadow++; - } -} +void mark_readonly_region (uintptr_t addr, long size); /* }}} */ /* Heap allocation {{{ (malloc/calloc) */ - -/*! \brief Create a heap shadow for an allocated memory block starting at `ptr` - * and of length `size`. Optionally mark it as initialized if `init` - * evaluates to a non-zero value. - * \b NOTE: This function assumes that `ptr` is a base address of a - * heap-allocated memory block, such that HEAP_SEGMENT bytes preceding `ptr` - * correspond to `unusable space`. - * \b WARNING: Current implementation assumes that the size of a heap segment - * does not exceed 64 bytes. */ -static void set_heap_segment(void *ptr, size_t size, size_t alloc_size, - size_t init, const char *function) { - - /* Make sure that heap memspace has not been moved. This is likely if - a really large chunk has been requested to be allocated. */ - vassert(mem_spaces.heap_mspace_least == - (uintptr_t)mspace_least_addr(mem_spaces.heap_mspace), - "Exceeded heap allocation limit of %luMB -- heap memory space moved. \n", - E_ACSL_HEAP_SIZE); - - /* Similar check, make sure that allocated space does not exceed given - allocation limit for mspace */ - uintptr_t max_addr = (uintptr_t)ptr + alloc_size; - vassert(mem_spaces.heap_end > max_addr, - "Exceeded heap allocation limit of %luMB\n", E_ACSL_HEAP_SIZE); - - DVALIDATE_MEMORY_INIT; - /* Ensure the shadowed block in on the tracked heap portion */ - DVALIDATE_IS_ON_HEAP(((uintptr_t)ptr) - HEAP_SEGMENT, size); - DVALIDATE_ALIGNMENT(ptr); /* Make sure alignment is right */ - update_heap_allocation(size); /* Adjust tracked allocation size */ - - /* Get aligned size of the block, i.e., an actual size of the - * allocated block */ - unsigned char *shadow = (unsigned char*)HEAP_SHADOW(ptr); - - /* Make sure shadow is nullified before setting it */ - DVALIDATE_NULLIFIED(shadow, alloc_size); - - /* The overall number of block segments in a tracked memory block */ - size_t segments = alloc_size/HEAP_SEGMENT; - uintptr_t *segment = (uintptr_t*)(shadow); - segment[1] = size; - -#ifdef E_ACSL_TEMPORAL /*{{{*/ - /* 4 bytes following a block's length store an origin timestamp */ - segment[2] = NEW_TEMPORAL_TIMESTAMP(); -#endif /*}}} E_ACSL_TEMPORAL*/ - - int i; - /* Write the offsets per segment */ - for (i = 0; i < segments; i++) { - segment = (uintptr_t*)(shadow + i*HEAP_SEGMENT); - *segment = (uintptr_t)ptr; - } - - /* If init is a non-zero value then mark all allocated bytes as initialized */ - if (init) { - memset((void*)HEAP_INIT_SHADOW(ptr), (unsigned int)ONE, alloc_size/8); - } -} - extern int MSPACES_INIT; -/*! \brief Replacement for a malloc function that additionally tracks the - * allocated memory block. - * - * NOTE: This malloc returns a `NULL` pointer if the requested size is `0`. - * Such behaviour is compliant with the C99 standard, however it differs from - * the behaviour of the GLIBC malloc, which returns a zero-size block instead. - * The standard indicates that a return value for a zero-sized allocation - * is implementation specific: - * "If the size of the space requested is zero, the behaviour is - * implementation-defined: either a null pointer is returned, or the - * behaviour is as if the size were some non-zero value, except that the - * returned pointer shall not be used to access an object." */ -void* malloc(size_t size) { - - size_t alloc_size = ALLOC_SIZE(size); - - /* Return NULL if the size is too large to be aligned */ - char* res; - if (alloc_size) { - mspaces_init(); - res = (char*)public_malloc(alloc_size); - } else - res = NULL; - - if (res) { - /* Make sure there is sufficient room in shadow */ - set_heap_segment(res, size, alloc_size, 0, "malloc"); - } - - return res; -} - -/*! \brief Replacement for `calloc` that enables memory tracking */ -void* calloc(size_t nmemb, size_t size) { - /* Since both `nmemb` and `size` are both of size `size_t` the multiplication - * of the arguments (which gives the actual allocation size) might lead to an - * integer overflow. The below code checks for an overflow and sets the - * `alloc_size` (argument a memory allocation function) to zero. */ - size = (size && nmemb > SIZE_MAX/size) ? 0 : nmemb*size; - - size_t alloc_size = ALLOC_SIZE(size); - - /* Since aligned size is required by the model do the allocation through - * `malloc` and nullify the memory space by hand */ - char* res; - if (size) { - mspaces_init(); - res = (char*)public_malloc(alloc_size); - } else - res = NULL; - - if (res) { - /* Make sure there is sufficient room in shadow */ - memset(res, 0, size); - set_heap_segment(res, size, alloc_size, 1, "calloc"); - } - return res; -} /** \brief Return shadowed copy of a memory chunk on a program's heap using. * If `init` parameter is set to a non-zero value the memory occupied by the * resulting block is set to be initialized and uninitialized otherwise. */ -static void *shadow_copy(const void *ptr, size_t size, int init) { - char *ret = (init) ? calloc(1, size) : malloc(size); - vassert(ret != NULL, "Shadow copy failed\n", NULL); - /* Shadow copy is internal, therefore heap status should not be updated. - Since it is set via `set_heap_segment`, it needs to be reverted back. */ - update_heap_allocation(-size); - return memcpy(ret, ptr, size); -} -/* }}} */ - -/* Heap deallocation (free) {{{ */ - -/*! \brief Remove a memory block with base address given by `ptr` from tracking. - * This function effectively nullifies block shadow tracking an application - * block. - * - * NOTE: ::unset_heap_segment assumes that `ptr` is a base address of an - * allocated heap memory block, i.e., `freeable(ptr)` evaluates to true. - * - * \param ptr - base address of the memory block to be removed from tracking - * \param init - if evaluated to a non-zero value then initialization shadow - * of the memory block with base address `ptr` is nullified as well. - * \param function - name of the de-allocation function (e.g., `free` or `cfree`) -*/ -static void unset_heap_segment(void *ptr, int init, const char *function) { - DVALIDATE_MEMORY_INIT; - DVALIDATE_FREEABLE(((uintptr_t)ptr)); - /* Base address of shadow block */ - uintptr_t *base_shadow = (uintptr_t*)HEAP_SHADOW(ptr); - /* Physical allocation size */ - size_t alloc_size = ALLOC_SIZE(base_shadow[1]); - /* Actual block length */ - size_t length = base_shadow[1]; - /* Nullify shadow block */ - memset(base_shadow, ZERO, alloc_size); - /* Adjust tracked allocation size */ - update_heap_allocation(-length); -#ifdef E_ACSL_TEMPORAL /*{{{*/ - /* Nullify temporal shadow */ - uintptr_t *t_base_shadow = (uintptr_t*)TEMPORAL_HEAP_SHADOW(ptr); - memset(t_base_shadow, ZERO, alloc_size); -#endif /*}}} E_ACSL_TEMPORAL*/ - /* Nullify init shadow */ - if (init) { - memset((void*)HEAP_INIT_SHADOW(ptr), 0, alloc_size/8); - } -} - -/*! \brief Replacement for `free` with memory tracking */ -void free(void *ptr) { - if (ptr == NULL) { -/* Fail if instructed to treat NULL input to free as invalid. */ -#ifdef E_ACSL_FREE_VALID_ADDRESS - vabort("NULL pointer in free\n"); -#endif - return; - } - - if (ptr != NULL) { /* NULL is a valid behaviour */ - if (freeable(ptr)) { - unset_heap_segment(ptr, 1, "free"); - public_free(ptr); - } else { - vabort("Not a start of block (%a) in free\n", ptr); - } - } -} -/* }}} */ - -/* Heap reallocation (realloc) {{{ */ -void* realloc(void *ptr, size_t size) { - char *res = NULL; /* Resulting pointer */ - /* If the pointer is NULL then realloc is equivalent to malloc(size) */ - if (ptr == NULL) - return malloc(size); - /* If the pointer is not NULL and the size is zero then realloc is - * equivalent to free(ptr) */ - else if (ptr != NULL && size == 0) { - free(ptr); - } else { - if (freeable(ptr)) { /* ... and can be used as an input to `free` */ - size_t alloc_size = ALLOC_SIZE(size); - res = public_realloc(ptr, alloc_size); - DVALIDATE_ALIGNMENT(res); - - /* realloc succeeds, otherwise nothing needs to be done */ - if (res != NULL) { - size_t alloc_size = ALLOC_SIZE(size); - size_t old_size = _block_length(ptr); - size_t old_alloc_size = ALLOC_SIZE(old_size); - - /* Nullify old representation */ - unset_heap_segment(ptr, 0, "realloc"); - - /* Set up new block shadow */ - set_heap_segment(res, size, alloc_size, 0, "realloc"); - - /* Move init shadow */ - unsigned char* old_init_shadow = (unsigned char*)HEAP_INIT_SHADOW(ptr); - unsigned char* new_init_shadow = (unsigned char*)HEAP_INIT_SHADOW(res); - - /* If realloc truncates allocation in the old init shadow it is first - * needed to clear the old init shadow from the boundary of the old - * shadow block to the size of the new allocation */ - if (old_size > size) { - clearbits_right( - old_alloc_size - size, - old_init_shadow + old_alloc_size/8); - } - - /* Now init shadow can be moved (if needed), keep in mind that - * segment base addresses are aligned at a boundary of something - * divisible by 8, so instead of moving actual bits here the - * segments are moved to avoid dealing with bit-level operations - * on incomplete bytes. */ - if (res != ptr) { - size_t copy_size = (old_size > size) ? alloc_size : old_alloc_size; - memcpy(new_init_shadow, old_init_shadow, copy_size); - memset(old_init_shadow, 0, copy_size); - } - } - } else { - vabort("Not a start of block (%a) in realloc\n", ptr); - } - } - return res; -} -/* }}} */ - -/* Heap aligned allocation (aligned_alloc) {{{ */ -/*! \brief Replacement for `aligned_alloc` with memory tracking */ -void *aligned_alloc(size_t alignment, size_t size) { - /* Check if: - * - size and alignment are greater than zero - * - alignment is a power of 2 - * - size is a multiple of alignment */ - if (!size || !alignment || !powof2(alignment) || (size%alignment)) - return NULL; - - char *res = public_aligned_alloc(alignment, size); - - if (res) { - set_heap_segment(res, size, ALLOC_SIZE(size), 0, "aligned_alloc"); - } - - return (void*)res; -} -/* }}} */ - -/* Heap aligned allocation (posix_memalign) {{{ */ -/*! \brief Replacement for `posix_memalign` with memory tracking */ -int posix_memalign(void **memptr, size_t alignment, size_t size) { - /* Check if: - * - size and alignment are greater than zero - * - alignment is a power of 2 and a multiple of sizeof(void*) */ - if (!size || !alignment || !powof2(alignment) || alignment%sizeof(void*)) - return -1; - - /* Make sure that the first argument to posix memalign is indeed allocated */ - vassert(allocated((uintptr_t)memptr, sizeof(void*), (uintptr_t)memptr), - "\\invalid memptr in posix_memalign", NULL); - - int res = public_posix_memalign(memptr, alignment, size); - if (!res) { - set_heap_segment(*memptr, size, ALLOC_SIZE(size), 0, "posix_memalign"); - } - return res; -} +void *shadow_copy(const void *ptr, size_t size, int init); /* }}} */ /* Heap querying {{{ */ @@ -1130,34 +392,7 @@ int posix_memalign(void **memptr, size_t alignment, size_t size) { * low-level viewpoint, dereferencing `p+i` is safe (since it belongs to a properly * allocated block). From our perspective, however, dereference of `p+i` is * only legal if both `p` and `p+i` point to the same block. */ -static int heap_allocated(uintptr_t addr, size_t size, uintptr_t base_ptr) { - /* Base address of the shadow segment the address belongs to */ - uintptr_t *shadow = (uintptr_t*)HEAP_SHADOW(addr - addr%HEAP_SEGMENT); - - /* Non-zero if the segment belongs to heap allocation */ - if (shadow[0]) { - uintptr_t *base_shadow = - (uintptr_t*)HEAP_SHADOW(base_ptr - base_ptr%HEAP_SEGMENT); - uintptr_t *first_segment = (uintptr_t*)HEAP_SHADOW(shadow[0]); - /* shadow[0] - base address of the tracked block - * fist_segment[1] - length (i.e., location in the first segment - * after base address) - * offset is the difference between the address and base address (shadow[0]) - * Then an address belongs to heap allocation if - * offset + size <= length - * - * Additionally, if strong validity is enforced - * (i.e., E_ACSL_WEAK_VALIDITY macro undefined) make sure that both - * `addr` and `base_ptr` belong to the same block. */ -#ifndef E_ACSL_WEAK_VALIDITY - return base_shadow[0] == shadow[0] && - (addr - shadow[0]) + size <= first_segment[1]; -#else - return (addr - shadow[0]) + size <= first_segment[1]; -#endif - } - return 0; -} +int heap_allocated(uintptr_t addr, size_t size, uintptr_t base_ptr); /*! \brief Return a non-zero value if a given address is a base address of a * heap-allocated memory block that `addr` belongs to. @@ -1165,310 +400,61 @@ static int heap_allocated(uintptr_t addr, size_t size, uintptr_t base_ptr) { * As some of the other functions, \b \\freeable can be expressed using * ::IS_ON_HEAP, ::heap_allocated and ::_base_addr. Here direct * implementation is preferred for performance reasons. */ -int freeable(void *ptr) { /* + */ - uintptr_t addr = (uintptr_t)ptr; - /* Address is not on the program's heap, so cannot be freed */ - if (!IS_ON_HEAP(addr)) - return 0; - - /* Address of the shadow segment the address belongs to */ - uintptr_t *shadow = (uintptr_t*)ALIGNED_HEAP_SHADOW(addr); - /* Non-zero if the segment belongs to heap allocation with *shadow - * capturing the base address of the tracked block */ - if (*shadow) { - /* Block is freeable if `addr` is the base address of its block */ - return (uintptr_t)*shadow == addr; - } - return 0; -} +int freeable(void *ptr); /*! \brief Querying information about a specific heap memory address. * This function is similar to ::static_info except it returns data * associated with dynamically allocated memory. * See in-line documentation for ::static_info for further details. */ -static uintptr_t heap_info(uintptr_t addr, char type) { - /* Ensure that `addr` is an allocated location on a program's heap */ - DVALIDATE_HEAP_ACCESS(addr, 1); - /* Base address of the shadow segment the address belongs to. - * First `sizeof(uintptr_t)` bytes of each segment store application-level - * base address of the tracked block */ - uintptr_t *aligned_shadow = (uintptr_t*)ALIGNED_HEAP_SHADOW(addr); - - switch(type) { - case 'B': /* Base address */ - return *aligned_shadow; - case 'L': { /* Block length */ - /* Pointer to the first-segment in the shadow block */ - uintptr_t *base_segment = (uintptr_t*)HEAP_SHADOW(*aligned_shadow); - /* Length of the stored block is captured in `sizeof(uintptr_t)` bytes - * past `sizeof(uintptr_t)` tracking the base address */ - return base_segment[1]; - } - case 'O': - /* Offset of a given address within its block. This is the difference - * between the input address and the base address of the block. */ - return addr - *aligned_shadow; - default: - DASSERT(0 && "Unknown heap query type"); - } - return 0; -} +uintptr_t heap_info(uintptr_t addr, char type); /*! \brief Implementation of the \b \\initialized predicate for heap-allocated * memory. NB: If `addr` does not belong to an allocated heap block this * function returns 0. */ -static int heap_initialized(uintptr_t addr, long len) { - /* Base address of a shadow segment addr belongs to */ - unsigned char *shadow = (unsigned char*)(HEAP_INIT_SHADOW(addr)); - - /* See comments in the `initialize_heap_region` function for more details */ - unsigned skip = (addr - HEAP_START)%8; - unsigned set; - if (skip) { - set = 8 - skip; - set = (len > set) ? set : len; - len -= set; - unsigned char mask = 0; - setbits64_skip(set,mask,skip); - - if (*shadow != mask) - return 0; - } - if (len > 0) - return checkbits(len, shadow); - return 1; -} +int heap_initialized(uintptr_t addr, long len); /* }}} */ /* Heap temporal querying {{{*/ #ifdef E_ACSL_TEMPORAL -static uint32_t heap_temporal_info(uintptr_t addr, int origin) { - /* NOTE: No checking for allocated blocks, since an invalid - timestamp is zero and unused memory is nullified then an invalid - timestamp is also returned for allocated memory */ - if (origin) { - uintptr_t *aligned_shadow = (uintptr_t*)ALIGNED_HEAP_SHADOW(addr); - uintptr_t *base_shadow = (uintptr_t*)HEAP_SHADOW(*aligned_shadow); - return (uint32_t)base_shadow[2]; - } else { - return *((uint32_t*)TEMPORAL_HEAP_SHADOW(addr)); - } -} +uint32_t heap_temporal_info(uintptr_t addr, int origin); #define heap_origin_timestamp(_ptr) heap_temporal_info((uintptr_t)(_ptr),1) #define heap_referent_timestamp(_ptr) heap_temporal_info((uintptr_t)(_ptr),0) -static void heap_store_temporal_referent(uintptr_t addr, uint32_t ref) { - DVALIDATE_HEAP_ACCESS(addr, PTR_SZ); - uint32_t *temporal_shadow = (uint32_t*)TEMPORAL_HEAP_SHADOW(addr); - *temporal_shadow = ref; -} +void heap_store_temporal_referent(uintptr_t addr, uint32_t ref); #endif/*}}} E_ACSL_TEMPORAL*/ /* Heap initialization {{{ */ /*! \brief Mark n bytes on the heap starting from address addr as initialized */ -static void initialize_heap_region(uintptr_t addr, long len) { - DVALIDATE_HEAP_ACCESS(addr, len); - DVASSERT(!(addr - _base_addr(addr) + len > _block_length(addr)), - "Attempt to initialize %lu bytes past block boundaries\n" - "starting at %a with block length %lu at base address %a\n", - len, addr, _block_length(addr), _base_addr(addr)); - - /* Address within init shadow tracking initialization */ - unsigned char *shadow = (unsigned char*)(HEAP_INIT_SHADOW(addr)); - - /* First check whether the address in the init shadow is divisible by 8 - * (i.e., located on a byte boundary) */ - /* Leading bits in `*shadow` byte which do not need to be set - * (i.e., skipped) */ - short skip = (addr - HEAP_START)%8; - if (skip) { - /* The remaining bits in the shadow byte */ - short set = 8 - skip; - /* The length of initialized region can be short (shorter then the - * above remainder). Adjust the number of bits to set accordingly. */ - set = (len > set) ? set : len; - len -= set; - setbits64_skip(set, *shadow, skip); - /* Move to the next location if there are more bits to set */ - shadow++; - } - - if (len > 0) { - /* Set the remaining bits. Note `shadow` is now aligned at a byte - * boundary, thus one can set `len` bits starting with address given by - * `shadow` */ - setbits(len, shadow); - } -} -/* }}} */ - -/* Any allocation {{{ */ -/*! \brief Amalgamation of ::heap_allocated and ::static_allocated */ -static int allocated(uintptr_t addr, long size, uintptr_t base) { - TRY_SEGMENT_WEAK(addr, - return heap_allocated(addr, size, base), - return static_allocated(addr, size, base)); - if (!IS_ON_VALID(addr)) - return 0; - return 0; -} - -/** \brief Return 1 if a given memory location is read-only and 0 otherwise */ -static inline int readonly (void *ptr) { - uintptr_t addr = (uintptr_t)ptr; - return IS_ON_GLOBAL(addr) && global_readonly(addr) ? 1 : 0; -} - -static inline int writeable(uintptr_t addr, long size, uintptr_t base_ptr) { - return allocated(addr, size, base_ptr) && !readonly((void*)addr); -} +void initialize_heap_region(uintptr_t addr, long len); /* }}} */ /* Internal state print (debug mode) {{{ */ #ifdef E_ACSL_DEBUG /* ! \brief Print human-readable representation of a byte in a primary * shadow */ -static void printbyte(unsigned char c, char buf[]) { - if (c >> 2 < LONG_BLOCK_INDEX_START) { - rtl_sprintf(buf, "PRIMARY: I{%u} RO{%u} OF{%2u} => %u[%u]", - checkbit(INIT_BIT,c), checkbit(READONLY_BIT,c), c >> 2, - short_lengths[c >> 2], short_offsets[c >> 2]); - } else { - rtl_sprintf(buf, "SECONDARY: I{%u} RO{%u} OF{%u} => %4u", - checkbit(INIT_BIT,c), checkbit(READONLY_BIT,c), - (c >> 2), (c >> 2) - LONG_BLOCK_INDEX_START); - } -} +void printbyte(unsigned char c, char buf[]); /*! \brief Print human-readable (well, ish) representation of a memory block * using primary and secondary shadows. */ -static void print_static_shadows(uintptr_t addr, size_t size) { - char prim_buf[256]; - char sec_buf[256]; - - unsigned char *prim_shadow = (unsigned char*)PRIMARY_SHADOW(addr); - unsigned int *sec_shadow = (unsigned int*)SECONDARY_SHADOW(addr); - - int i, j = 0; - for (i = 0; i < size; i++) { - sec_buf[0] = '\0'; - printbyte(prim_shadow[i], prim_buf); - if (IS_LONG_BLOCK(size) && (i%LONG_BLOCK) == 0) { - j += 2; - if (i < LONG_BLOCK_BOUNDARY(size)) { - rtl_sprintf(sec_buf, " %a SZ{%u} OF{%u}", - &sec_shadow[j], sec_shadow[j-2], sec_shadow[j-1]); - } - if (i) { - DLOG("---------------------------------------------\n"); - } - } - DLOG("| [%2d] %a | %s || %s\n", i, &prim_shadow[i], prim_buf, sec_buf); - } -#ifdef E_ACSL_TEMPORAL /* {{{ */ - uint32_t* origin_shadow = (uint32_t*)TEMPORAL_PRIMARY_STATIC_SHADOW(addr); - uint32_t* ref_shadow = (uint32_t*)TEMPORAL_SECONDARY_STATIC_SHADOW(addr); - DLOG(" | > Blk ID: %u\n", i, *origin_shadow); - for (i = 0; i < size; i+=PTR_SZ) - DLOG(" | > Ref ID[%u]: %u\n", i/8, *(ref_shadow + 1)); -#endif /*}}} E_ACSL_TEMPORAL*/ -} +void print_static_shadows(uintptr_t addr, size_t size); /*! \brief Print human-readable representation of a heap shadow region for a * memory block of length `size` starting at address `addr`. This function * assumes that `addr` is the base address of the memory block. */ -static void print_heap_shadows(uintptr_t addr) { - unsigned char *block_shadow = (unsigned char*)HEAP_SHADOW(addr); - unsigned char *init_shadow = (unsigned char*)HEAP_INIT_SHADOW(addr); - - size_t length = (size_t)((uintptr_t*)(block_shadow))[1]; - size_t alloc_size = ALLOC_SIZE(length); - size_t segments = alloc_size/HEAP_SEGMENT; - uintptr_t *segment = (uintptr_t*)(block_shadow); - - DLOG(" | === Block Shadow ======================================\n"); - DLOG(" | Access addr: %a\n", addr); - DLOG(" | Block Shadow: %a\n", block_shadow); - DLOG(" | Init Shadow: %a\n", init_shadow); - DLOG(" | Segments: %lu\n", segments); - DLOG(" | Actual size: %lu bytes\n", alloc_size); - DLOG(" | Tracked Length: %lu bytes\n", length); - - if (zeroed_out(block_shadow, alloc_size)) - DLOG(" | << Nullified >> \n"); - -#ifdef E_ACSL_TEMPORAL /*{{{*/ - DLOG(" | Origin TS: %u\n", (uint32_t)segment[2]); -#endif /*}}}*/ - - size_t i; - for (i = 0; i < segments; i++) { - segment = (uintptr_t*)(block_shadow + i*HEAP_SEGMENT); - DLOG(" | Segment: %lu, Base: %a \n", i, *segment); - } - - DLOG(" | Initialization: \n | "); - for (i = 0; i < alloc_size/8; i++) { - if (i > 0 && (i*8)%HEAP_SEGMENT == 0) - DLOG("\n | "); - DLOG("%8b ", init_shadow[i], init_shadow[i]); - } - DLOG("\n"); -} +void print_heap_shadows(uintptr_t addr); -static void print_shadows(uintptr_t addr, size_t size) { - if (IS_ON_STATIC(addr)) - print_static_shadows(addr, size); - else if (IS_ON_HEAP(addr)) - print_heap_shadows(addr); -} +void print_shadows(uintptr_t addr, size_t size); -static void print_memory_segment(struct memory_segment *p, char *lab, int off) { - DLOG(" %s: %lu MB [%lu, %lu]", lab, MB_SZ(p->size), p->start, p->end); - if (off) - DLOG("{ Offset: %ld }", p->shadow_offset); - DLOG("\n"); -} +void print_memory_segment(struct memory_segment *p, char *lab, int off); -static void print_memory_partition(struct memory_partition *p) { - print_memory_segment(&p->application, "Application", 0); - print_memory_segment(&p->primary, "Primary ", 1); - print_memory_segment(&p->secondary, "Secondary ", 1); -#ifdef E_ACSL_TEMPORAL - print_memory_segment(&p->temporal_primary, "Temporal Primary ", 1); - print_memory_segment(&p->temporal_secondary, "Temporal Secondary ", 1); -#endif -} +void print_memory_partition(struct memory_partition *p); -static void print_shadow_layout() { - DLOG(">>> HEAP ---------------------\n"); - print_memory_partition(&mem_layout.heap); - DLOG(">>> STACK --------------------\n"); - print_memory_partition(&mem_layout.stack); - DLOG(">>> GLOBAL -------------------\n"); - print_memory_partition(&mem_layout.global); - DLOG(">>> TLS ----------------------\n"); - print_memory_partition(&mem_layout.tls); - DLOG(">>> --------------------------\n"); -} +void print_shadow_layout(); /*! \brief Output the shadow segment the address belongs to */ -static const char* which_segment(uintptr_t addr) { - const char *loc = NULL; - if (IS_ON_STACK(addr)) - loc = "stack"; - else if (IS_ON_HEAP(addr)) - loc = "heap"; - else if (IS_ON_GLOBAL(addr)) - loc = "global"; - else if (IS_ON_TLS(addr)) - loc = "TLS"; - else - loc = "untracked"; - return loc; -} +const char* which_segment(uintptr_t addr); /* NOTE: Above functions are designed to be used only through the following * macros or debug functions included/defined based on the value of the @@ -1502,3 +488,5 @@ void ___e_acsl_debug_print_shadow(uintptr_t addr, size_t size) { /* \endcond */ #endif /* }}} */ + +#endif // E_ACSL_SEGMENT_TRACKING_H diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c new file mode 100644 index 00000000000..19a21ed60e4 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c @@ -0,0 +1,227 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +#include <sys/resource.h> +#include <errno.h> +#include <stddef.h> + +#include "../../internals/e_acsl_private_assert.h" +#include "../../internals/e_acsl_malloc.h" + +#include "e_acsl_shadow_layout.h" + +/** Program stack information {{{ */ + +size_t increase_stack_limit(const size_t size) { + rlim_t stacksz = (rlim_t)size; + struct rlimit rl; + int result = getrlimit(RLIMIT_STACK, &rl); + if (result == 0) { + if (rl.rlim_cur < stacksz) { + if (stacksz>rl.rlim_max) stacksz = rl.rlim_max; + rl.rlim_cur = stacksz; + result = setrlimit(RLIMIT_STACK, &rl); + if (result != 0) { + private_abort("setrlimit: %s \n", strerror(errno)); + } + } + } else { + private_abort("getrlimit: %s \n", strerror(errno)); + } + return (size_t)stacksz; +} + +size_t get_default_stack_size() { + struct rlimit rlim; + private_assert(!getrlimit(RLIMIT_STACK, &rlim), + "Cannot detect program's stack size", NULL); + return rlim.rlim_cur; +} + +size_t get_stack_size() { +#ifndef E_ACSL_STACK_SIZE + return get_default_stack_size(); +#else + return increase_stack_limit(E_ACSL_STACK_SIZE*MB); +#endif +} + +uintptr_t get_stack_start(int *argc_ref, char *** argv_ref) { + char **env = environ; + while (env[1]) + env++; + uintptr_t addr = (uintptr_t)*env + strlen(*env); + + /* When returning the end stack address we need to make sure that + * ::ULONG_BITS past that address are actually writeable. This is + * to be able to set initialization and read-only bits ::ULONG_BITS + * at a time. If not respected, this may cause a segfault in + * ::argv_alloca. */ + uintptr_t stack_end = addr + ULONG_BITS; + uintptr_t stack_start = stack_end - get_stack_size(); + return stack_start; +} +/* }}} */ + +/** Program heap information {{{ */ +uintptr_t get_heap_start() { + return mem_spaces.heap_start; +} + +size_t get_heap_size() { + return PGM_HEAP_SIZE; +} + +size_t get_heap_init_size() { + return get_heap_size()/8; +} + +uintptr_t get_global_start() { + return (uintptr_t)&__executable_start; +} + +size_t get_global_size() { + return ((uintptr_t)&end - get_global_start()); +} +/** }}} */ + +/** Shadow Layout {{{ */ + +void set_application_segment(memory_segment *seg, uintptr_t start, + size_t size, const char *name, mspace msp) { + seg->name = name; + seg->start = start; + seg->size = size; + seg->end = seg->start + seg->size; + seg->mspace = msp; + seg->parent = NULL; + seg->shadow_ratio = 0; + seg->shadow_offset = 0; +} + +void set_shadow_segment(memory_segment *seg, memory_segment *parent, + size_t ratio, const char *name) { + seg->parent = parent; + seg->name = name; + seg->shadow_ratio = ratio; + seg->size = parent->size/seg->shadow_ratio; + seg->mspace = create_mspace(seg->size + SHADOW_SEGMENT_PADDING, 0); + seg->start = (uintptr_t)mspace_malloc(seg->mspace,1); + seg->end = seg->start + seg->size; + seg->shadow_offset = parent->start - seg->start; +} + +void init_shadow_layout_stack(int *argc_ref, char ***argv_ref) { + memory_partition *pstack = &mem_layout.stack; + set_application_segment(&pstack->application, get_stack_start(argc_ref, argv_ref), + get_stack_size(), "stack", NULL); + /* Changes of the ratio in the following will require changes in get_tls_start */ + set_shadow_segment(&pstack->primary, &pstack->application, 1, "stack_primary"); + set_shadow_segment(&pstack->secondary, &pstack->application, 1, "stack_secondary"); +#ifdef E_ACSL_TEMPORAL + set_shadow_segment(&pstack->temporal_primary, &pstack->application, 1, "temporal_stack_primary"); + set_shadow_segment(&pstack->temporal_secondary, &pstack->application, 1, "temporal_stack_secondary"); +#endif + + mem_layout.is_initialized = 1; +} + +uintptr_t get_tls_start() { + size_t tls_size = get_tls_size(); + uintptr_t data = (uintptr_t)&id_tdata, + bss = (uintptr_t)&id_tbss; + /* It could happen that the shadow allocated before bss is too big. + Indeed allocating PGM_TLS_SIZE/2 could cause an overlap with the other + shadow segments AND heap.application (in case the latter is too big too). + In such cases, take the smallest available address (the max used +1). */ + uintptr_t tls_start_half = (data > bss ? bss : data) - tls_size/2; + memory_partition pheap = mem_layout.heap, + pglobal = mem_layout.global; + uintptr_t max_shadow = pheap.primary.end; + max_shadow = pheap.secondary.end > max_shadow ? + pheap.secondary.end : max_shadow; + max_shadow = pglobal.primary.end > max_shadow ? + pglobal.primary.end : max_shadow; + max_shadow = pglobal.secondary.end > max_shadow ? + pglobal.secondary.end : max_shadow; + max_shadow = pheap.application.end > max_shadow ? + pheap.application.end : max_shadow; + /* Shadow stacks are not yet allocated at his point since + init_shadow_layout_stack is called after + init_shadow_layout_heap_global_tls (for reasons related to memory + initialization in presence of things like GCC constructors). + We must leave sufficient space for them. */ + max_shadow = max_shadow + + 2*get_stack_size() + /* One for primary, one for secondary. + If ratio is changed in init_shadow_layout_stack + then update required here. + TODO: if stack too big ==> problem */ + 1; + return tls_start_half > max_shadow ? tls_start_half : max_shadow; +} + +void init_shadow_layout_heap_global_tls() { + memory_partition *pheap = &mem_layout.heap; + set_application_segment(&pheap->application, get_heap_start(), + get_heap_size(), "heap", mem_spaces.heap_mspace); + set_shadow_segment(&pheap->primary, &pheap->application, 1, "heap_primary"); + set_shadow_segment(&pheap->secondary, &pheap->application, 8, "heap_secondary"); +#ifdef E_ACSL_TEMPORAL + set_shadow_segment(&pheap->temporal_primary, &pheap->application, 1, "temporal_heap_primary"); + set_shadow_segment(&pheap->temporal_secondary, &pheap->application, 1, "temporal_heap_secondary"); +#endif + + memory_partition *pglobal = &mem_layout.global; + set_application_segment(&pglobal->application, get_global_start(), + get_global_size(), "global", NULL); + set_shadow_segment(&pglobal->primary, &pglobal->application, 1, "global_primary"); + set_shadow_segment(&pglobal->secondary, &pglobal->application, 1, "global_secondary"); +#ifdef E_ACSL_TEMPORAL + set_shadow_segment(&pglobal->temporal_primary, &pglobal->application, 1, "temporal_global_primary"); + set_shadow_segment(&pglobal->temporal_secondary, &pglobal->application, 1, "temporal_global_secondary"); +#endif + + memory_partition *ptls = &mem_layout.tls; + set_application_segment(&ptls->application, get_tls_start(), + get_tls_size(), "tls", NULL); + set_shadow_segment(&ptls->primary, &ptls->application, 1, "tls_primary"); + set_shadow_segment(&ptls->secondary, &ptls->application, 1, "tls_secondary"); +#ifdef E_ACSL_TEMPORAL + set_shadow_segment(&ptls->temporal_primary, &ptls->application, 1, "temporal_tls_primary"); + set_shadow_segment(&ptls->temporal_secondary, &ptls->application, 1, "temporal_tls_secondary"); +#endif + + mem_layout.is_initialized = 1; +} + +void clean_shadow_layout() { + if (mem_layout.is_initialized) { + int i; + for (i = 0; i < sizeof(mem_partitions)/sizeof(memory_partition*); i++) { + if (mem_partitions[i]->primary.mspace) + destroy_mspace(mem_partitions[i]->primary.mspace); + if (mem_partitions[i]->secondary.mspace) + destroy_mspace(mem_partitions[i]->secondary.mspace); + } + } +} +/** }}} */ diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h index 472e1e46991..098074488b3 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h @@ -25,6 +25,13 @@ * \brief Setup for memory tracking using shadowing ***************************************************************************/ +#ifndef E_ACSL_SHADOW_LAYOUT +#define E_ACSL_SHADOW_LAYOUT + +#include <stddef.h> +#include <stdint.h> +#include "../../internals/e_acsl_malloc.h" + /* Default size of a program's heap tracked via shadow memory */ #ifndef E_ACSL_HEAP_SIZE #define E_ACSL_HEAP_SIZE 512 @@ -114,7 +121,7 @@ char *strerror(int errnum); */ /*! \brief Return byte-size of the TLS segment */ -static size_t get_tls_size() { +inline static size_t get_tls_size() { return PGM_TLS_SIZE; } @@ -128,94 +135,42 @@ extern char ** environ; /*! \brief Set a new soft stack limit * \param size - new stack size in bytes */ -static size_t increase_stack_limit(const size_t size) { - rlim_t stacksz = (rlim_t)size; - struct rlimit rl; - int result = getrlimit(RLIMIT_STACK, &rl); - if (result == 0) { - if (rl.rlim_cur < stacksz) { - if (stacksz>rl.rlim_max) stacksz = rl.rlim_max; - rl.rlim_cur = stacksz; - result = setrlimit(RLIMIT_STACK, &rl); - if (result != 0) { - vabort("setrlimit: %s \n", strerror(errno)); - } - } - } else { - vabort("getrlimit: %s \n", strerror(errno)); - } - return (size_t)stacksz; -} +size_t increase_stack_limit(const size_t size); /*! \brief Return byte-size of a program's stack. The return value is the soft * stack limit, i.e., it can be programmatically increased at runtime. */ -static size_t get_default_stack_size() { - struct rlimit rlim; - vassert(!getrlimit(RLIMIT_STACK, &rlim), - "Cannot detect program's stack size", NULL); - return rlim.rlim_cur; -} +size_t get_default_stack_size(); -static size_t get_stack_size() { -#ifndef E_ACSL_STACK_SIZE - return get_default_stack_size(); -#else - return increase_stack_limit(E_ACSL_STACK_SIZE*MB); -#endif -} +size_t get_stack_size(); /*! \brief Return greatest (known) address on a program's stack. * This function presently determines the address using the address of the * last string in `environ`. That is, it assumes that argc and argv are * stored below environ, which holds for GCC/Glibc but is not necessarily * true for some other compilers/libraries. */ -static uintptr_t get_stack_start(int *argc_ref, char *** argv_ref) { - char **env = environ; - while (env[1]) - env++; - uintptr_t addr = (uintptr_t)*env + strlen(*env); - - /* When returning the end stack address we need to make sure that - * ::ULONG_BITS past that address are actually writeable. This is - * to be able to set initialization and read-only bits ::ULONG_BITS - * at a time. If not respected, this may cause a segfault in - * ::argv_alloca. */ - uintptr_t stack_end = addr + ULONG_BITS; - uintptr_t stack_start = stack_end - get_stack_size(); - return stack_start; -} +uintptr_t get_stack_start(int *argc_ref, char *** argv_ref); /* }}} */ /** Program heap information {{{ */ /*! \brief Return the start address of a program's heap. */ -static uintptr_t get_heap_start() { - return mem_spaces.heap_start; -} +uintptr_t get_heap_start(); /*! \brief Return the tracked size of a program's heap. */ -static size_t get_heap_size() { - return PGM_HEAP_SIZE; -} +size_t get_heap_size(); /*! \brief Return the size of a secondary shadow region tracking * initialization (i.e., init shadow). */ -static size_t get_heap_init_size() { - return get_heap_size()/8; -} +size_t get_heap_init_size(); /** }}} */ /** Program global information {{{ */ /*! \brief Return the start address of a segment holding globals (generally * BSS and Data segments). */ -static uintptr_t get_global_start() { - return (uintptr_t)&__executable_start; -} +uintptr_t get_global_start(); /*! \brief Return byte-size of global segment */ -static size_t get_global_size() { - return ((uintptr_t)&end - get_global_start()); -} +size_t get_global_size(); /** }}} */ /** Shadow Layout {{{ */ @@ -301,10 +256,10 @@ struct memory_layout { }; /*! \brief Full program memory layout. */ -static struct memory_layout mem_layout; +struct memory_layout mem_layout; /*! \brief Array of used partitions */ -static memory_partition *mem_partitions [] = { +memory_partition *mem_partitions [] = { &mem_layout.heap, &mem_layout.stack, &mem_layout.global, @@ -318,17 +273,8 @@ static memory_partition *mem_partitions [] = { * \param size - size in bytes * \param name - segment name * \param msp - mspace used for this segment (defined only for heap) */ -static void set_application_segment(memory_segment *seg, uintptr_t start, - size_t size, const char *name, mspace msp) { - seg->name = name; - seg->start = start; - seg->size = size; - seg->end = seg->start + seg->size; - seg->mspace = msp; - seg->parent = NULL; - seg->shadow_ratio = 0; - seg->shadow_offset = 0; -} +void set_application_segment(memory_segment *seg, uintptr_t start, + size_t size, const char *name, mspace msp); /*! \brief Set a shadow memory segment * @@ -337,122 +283,26 @@ static void set_application_segment(memory_segment *seg, uintptr_t start, * \param ratio - ratio of shadow to application memory * \param name - symbolic name of the segment */ -static void set_shadow_segment(memory_segment *seg, memory_segment *parent, - size_t ratio, const char *name) { - seg->parent = parent; - seg->name = name; - seg->shadow_ratio = ratio; - seg->size = parent->size/seg->shadow_ratio; - seg->mspace = create_mspace(seg->size + SHADOW_SEGMENT_PADDING, 0); - seg->start = (uintptr_t)mspace_malloc(seg->mspace,1); - seg->end = seg->start + seg->size; - seg->shadow_offset = parent->start - seg->start; -} +void set_shadow_segment(memory_segment *seg, memory_segment *parent, + size_t ratio, const char *name); /*! \brief Initialize memory layout, i.e., determine bounds of program segments, * allocate shadow memory spaces and compute offsets. This function populates * global struct ::memory_layout holding that information with data. Case of the stack. */ -static void init_shadow_layout_stack(int *argc_ref, char ***argv_ref) { - memory_partition *pstack = &mem_layout.stack; - set_application_segment(&pstack->application, get_stack_start(argc_ref, argv_ref), - get_stack_size(), "stack", NULL); - /* Changes of the ratio in the following will require changes in get_tls_start */ - set_shadow_segment(&pstack->primary, &pstack->application, 1, "stack_primary"); - set_shadow_segment(&pstack->secondary, &pstack->application, 1, "stack_secondary"); -#ifdef E_ACSL_TEMPORAL - set_shadow_segment(&pstack->temporal_primary, &pstack->application, 1, "temporal_stack_primary"); - set_shadow_segment(&pstack->temporal_secondary, &pstack->application, 1, "temporal_stack_secondary"); -#endif - - mem_layout.is_initialized = 1; -} +void init_shadow_layout_stack(int *argc_ref, char ***argv_ref); /*! \brief Return start address of a program's TLS */ -static uintptr_t get_tls_start() { - size_t tls_size = get_tls_size(); - uintptr_t data = (uintptr_t)&id_tdata, - bss = (uintptr_t)&id_tbss; - /* It could happen that the shadow allocated before bss is too big. - Indeed allocating PGM_TLS_SIZE/2 could cause an overlap with the other - shadow segments AND heap.application (in case the latter is too big too). - In such cases, take the smallest available address (the max used +1). */ - uintptr_t tls_start_half = (data > bss ? bss : data) - tls_size/2; - memory_partition pheap = mem_layout.heap, - pglobal = mem_layout.global; - uintptr_t max_shadow = pheap.primary.end; - max_shadow = pheap.secondary.end > max_shadow ? - pheap.secondary.end : max_shadow; - max_shadow = pglobal.primary.end > max_shadow ? - pglobal.primary.end : max_shadow; - max_shadow = pglobal.secondary.end > max_shadow ? - pglobal.secondary.end : max_shadow; - max_shadow = pheap.application.end > max_shadow ? - pheap.application.end : max_shadow; - /* Shadow stacks are not yet allocated at his point since - init_shadow_layout_stack is called after - init_shadow_layout_heap_global_tls (for reasons related to memory - initialization in presence of things like GCC constructors). - We must leave sufficient space for them. */ - max_shadow = max_shadow + - 2*get_stack_size() + /* One for primary, one for secondary. - If ratio is changed in init_shadow_layout_stack - then update required here. - TODO: if stack too big ==> problem */ - 1; - return tls_start_half > max_shadow ? tls_start_half : max_shadow; -} +uintptr_t get_tls_start(); /*! \brief Initialize memory layout, i.e., determine bounds of program segments, * allocate shadow memory spaces and compute offsets. This function populates * global struct ::memory_layout holding that information with data. Case of the heap, globals and tls. */ -static void init_shadow_layout_heap_global_tls() { - memory_partition *pheap = &mem_layout.heap; - set_application_segment(&pheap->application, get_heap_start(), - get_heap_size(), "heap", mem_spaces.heap_mspace); - set_shadow_segment(&pheap->primary, &pheap->application, 1, "heap_primary"); - set_shadow_segment(&pheap->secondary, &pheap->application, 8, "heap_secondary"); -#ifdef E_ACSL_TEMPORAL - set_shadow_segment(&pheap->temporal_primary, &pheap->application, 1, "temporal_heap_primary"); - set_shadow_segment(&pheap->temporal_secondary, &pheap->application, 1, "temporal_heap_secondary"); -#endif - - memory_partition *pglobal = &mem_layout.global; - set_application_segment(&pglobal->application, get_global_start(), - get_global_size(), "global", NULL); - set_shadow_segment(&pglobal->primary, &pglobal->application, 1, "global_primary"); - set_shadow_segment(&pglobal->secondary, &pglobal->application, 1, "global_secondary"); -#ifdef E_ACSL_TEMPORAL - set_shadow_segment(&pglobal->temporal_primary, &pglobal->application, 1, "temporal_global_primary"); - set_shadow_segment(&pglobal->temporal_secondary, &pglobal->application, 1, "temporal_global_secondary"); -#endif - - memory_partition *ptls = &mem_layout.tls; - set_application_segment(&ptls->application, get_tls_start(), - get_tls_size(), "tls", NULL); - set_shadow_segment(&ptls->primary, &ptls->application, 1, "tls_primary"); - set_shadow_segment(&ptls->secondary, &ptls->application, 1, "tls_secondary"); -#ifdef E_ACSL_TEMPORAL - set_shadow_segment(&ptls->temporal_primary, &ptls->application, 1, "temporal_tls_primary"); - set_shadow_segment(&ptls->temporal_secondary, &ptls->application, 1, "temporal_tls_secondary"); -#endif - - mem_layout.is_initialized = 1; -} +void init_shadow_layout_heap_global_tls(); /*! \brief Deallocate shadow regions used by runtime analysis */ -static void clean_shadow_layout() { - if (mem_layout.is_initialized) { - int i; - for (i = 0; i < sizeof(mem_partitions)/sizeof(memory_partition*); i++) { - if (mem_partitions[i]->primary.mspace) - destroy_mspace(mem_partitions[i]->primary.mspace); - if (mem_partitions[i]->secondary.mspace) - destroy_mspace(mem_partitions[i]->secondary.mspace); - } - } -} +void clean_shadow_layout(); /* }}} */ /** Shadow access {{{ @@ -620,3 +470,5 @@ static void clean_shadow_layout() { #define TEMPORAL_SECONDARY_STATIC_SHADOW(_addr) \ SHADOW_REGION_ADDRESS(_addr, TEMPORAL_SECONDARY) #endif /* }}} */ + +#endif // E_ACSL_SHADOW_LAYOUT -- GitLab From a3a64c434e617d14f9c63cd93f0856df118e68ef Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Thu, 3 Sep 2020 14:29:23 +0200 Subject: [PATCH 134/255] [eacsl] Update E-ACSL to use the new organisation of RTL files --- src/plugins/e-acsl/Makefile.in | 27 ++++++++++++------- .../e-acsl/src/project_initializer/rtl.ml | 8 ++---- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index eb3472ecd74..adbef2951fc 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -399,18 +399,25 @@ include $(FRAMAC_SHARE)/Makefile.dynamic EACSL_INSTALL_MANUAL_FILES=$(wildcard $(addprefix $(EACSL_PLUGIN_DIR)/, $(EACSL_MANUAL_FILES))) +EACSL_INSTALL_C_DIRECTORIES := \ + e-acsl \ + e-acsl/internals \ + e-acsl/instrumentation_model \ + e-acsl/observation_model \ + e-acsl/observation_model/internals \ + e-acsl/observation_model/bittree_model \ + e-acsl/observation_model/segment_model \ + e-acsl/numerical_model \ + e-acsl/libc_replacements + install:: $(PRINT_INSTALL) E-ACSL share files - $(MKDIR) $(FRAMAC_DATADIR)/e-acsl - $(CP) $(E_ACSL_DIR)/share/e-acsl/*.[ch] $(FRAMAC_DATADIR)/e-acsl - $(MKDIR) $(FRAMAC_DATADIR)/e-acsl/bittree_model \ - $(FRAMAC_DATADIR)/e-acsl/segment_model - $(CP) $(E_ACSL_DIR)/share/e-acsl/bittree_model/* \ - $(FRAMAC_DATADIR)/e-acsl/bittree_model - $(CP) $(E_ACSL_DIR)/share/e-acsl/segment_model/* \ - $(FRAMAC_DATADIR)/e-acsl/segment_model - # manuals are not present in standard distribution. - # Don't fail because of that. + for dir in $(EACSL_C_DIRECTORIES); do \ + $(MKDIR) $(FRAMAC_DATADIR)/$$dir && \ + $(CP) $(E_ACSL_DIR)/share/$$dir/*.[ch] $(FRAMAC_DATADIR)/$$dir ; \ + done + # manuals are not present in standard distribution. + # Don't fail because of that. ifneq ("$(EACSL_INSTALL_MANUAL_FILES)","") $(PRINT_INSTALL) E-ACSL manuals $(MKDIR) $(FRAMAC_DATADIR)/manuals diff --git a/src/plugins/e-acsl/src/project_initializer/rtl.ml b/src/plugins/e-acsl/src/project_initializer/rtl.ml index 38f3fb5809f..ee6ea93f43a 100644 --- a/src/plugins/e-acsl/src/project_initializer/rtl.ml +++ b/src/plugins/e-acsl/src/project_initializer/rtl.ml @@ -23,11 +23,7 @@ open Cil_types open Cil_datatype -let rtl_files () = - List.map - (fun d -> Options.Share.get_file ~mode:`Must_exist d) - [ "e_acsl_gmp_api.h"; - "e_acsl.h" ] +let rtl_file () = Options.Share.get_file ~mode:`Must_exist "e_acsl.h" (* create the RTL AST in a fresh project *) let create_rtl_ast prj = @@ -40,7 +36,7 @@ let create_rtl_ast prj = Kernel.Keep_unused_specified_functions.off (); Kernel.CppExtraArgs.add (Format.asprintf " -DE_ACSL_MACHDEP=%s" (Kernel.Machdep.get ())); - Kernel.Files.set (rtl_files ()); + Kernel.Files.set [ rtl_file () ]; Ast.get ()) () -- GitLab From d3a6265c1f168cc8631eea74ceb90a89dd851e88 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Thu, 3 Sep 2020 15:39:13 +0200 Subject: [PATCH 135/255] [eacsl] Update tests --- .../e-acsl/tests/arith/oracle_ci/gen_arith.c | 2 +- .../e-acsl/tests/arith/oracle_ci/gen_array.c | 2 +- .../e-acsl/tests/arith/oracle_ci/gen_at.c | 2 +- .../gen_at_on-purely-logic-variables.c | 2 +- .../tests/arith/oracle_ci/gen_bitwise.c | 2 +- .../e-acsl/tests/arith/oracle_ci/gen_cast.c | 2 +- .../tests/arith/oracle_ci/gen_comparison.c | 2 +- .../tests/arith/oracle_ci/gen_functions.c | 2 +- .../tests/arith/oracle_ci/gen_functions_rec.c | 2 +- .../arith/oracle_ci/gen_integer_constant.c | 2 +- .../e-acsl/tests/arith/oracle_ci/gen_let.c | 2 +- .../tests/arith/oracle_ci/gen_longlong.c | 2 +- .../e-acsl/tests/arith/oracle_ci/gen_not.c | 2 +- .../tests/arith/oracle_ci/gen_quantif.c | 2 +- .../tests/arith/oracle_ci/gen_rationals.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1304.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1307.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1324.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1326.c | 2 +- .../oracle_ci/gen_bts1386_complex_flowgraph.c | 1 - .../e-acsl/tests/bts/oracle_ci/gen_bts1390.c | 1 + .../e-acsl/tests/bts/oracle_ci/gen_bts1395.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1398.c | 1 - .../e-acsl/tests/bts/oracle_ci/gen_bts1399.c | 1 + .../e-acsl/tests/bts/oracle_ci/gen_bts1478.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1700.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1717.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1718.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1740.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1837.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts2191.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts2192.c | 1 + .../e-acsl/tests/bts/oracle_ci/gen_bts2231.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts2252.c | 1 + .../e-acsl/tests/bts/oracle_ci/gen_bts2305.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts2386.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_bts2406.c | 2 +- .../tests/bts/oracle_ci/gen_issue-eacsl-105.c | 2 +- .../tests/bts/oracle_ci/gen_issue-eacsl-91.c | 2 +- .../e-acsl/tests/bts/oracle_ci/gen_issue69.c | 2 +- .../tests/constructs/oracle_ci/gen_false.c | 2 +- .../oracle_ci/gen_function_contract.c | 2 +- .../tests/constructs/oracle_ci/gen_ghost.c | 2 +- .../constructs/oracle_ci/gen_invariant.c | 2 +- .../constructs/oracle_ci/gen_labeled_stmt.c | 2 +- .../tests/constructs/oracle_ci/gen_lazy.c | 2 +- .../tests/constructs/oracle_ci/gen_loop.c | 2 +- .../oracle_ci/gen_nested_code_annot.c | 2 +- .../tests/constructs/oracle_ci/gen_result.c | 2 +- .../constructs/oracle_ci/gen_stmt_contract.c | 2 +- .../tests/constructs/oracle_ci/gen_true.c | 2 +- .../tests/constructs/oracle_ci/gen_typedef.c | 2 +- .../oracle_ci/gen_functions_contiki.c | 1 + .../examples/oracle_ci/gen_linear_search.c | 2 +- .../tests/format/oracle_ci/fprintf.res.oracle | 15 +- .../tests/format/oracle_ci/gen_fprintf.c | 1 + .../format/oracle_dev/printf.e-acsl.err.log | 255 ++++++------------ .../full-mtracking/oracle_ci/gen_addrOf.c | 2 +- .../tests/gmp-only/oracle_ci/gen_arith.c | 2 +- .../tests/gmp-only/oracle_ci/gen_functions.c | 2 +- .../tests/memory/oracle_ci/gen_addrOf.c | 2 +- .../e-acsl/tests/memory/oracle_ci/gen_alias.c | 2 +- .../tests/memory/oracle_ci/gen_base_addr.c | 1 + .../tests/memory/oracle_ci/gen_block_length.c | 1 + .../tests/memory/oracle_ci/gen_block_valid.c | 1 + .../tests/memory/oracle_ci/gen_bypassed_var.c | 2 +- .../e-acsl/tests/memory/oracle_ci/gen_call.c | 1 + .../oracle_ci/gen_compound_initializers.c | 2 +- .../tests/memory/oracle_ci/gen_ctype_macros.c | 2 +- .../memory/oracle_ci/gen_decl_in_switch.c | 2 +- .../tests/memory/oracle_ci/gen_early_exit.c | 2 +- .../tests/memory/oracle_ci/gen_freeable.c | 1 + .../memory/oracle_ci/gen_ghost_parameters.c | 2 +- .../e-acsl/tests/memory/oracle_ci/gen_goto.c | 2 +- .../memory/oracle_ci/gen_hidden_malloc.c | 1 + .../e-acsl/tests/memory/oracle_ci/gen_init.c | 2 +- .../memory/oracle_ci/gen_init_function.c | 1 + .../tests/memory/oracle_ci/gen_initialized.c | 1 + .../memory/oracle_ci/gen_literal_string.c | 2 +- .../tests/memory/oracle_ci/gen_local_goto.c | 1 - .../tests/memory/oracle_ci/gen_local_init.c | 2 +- .../tests/memory/oracle_ci/gen_local_var.c | 1 + .../tests/memory/oracle_ci/gen_mainargs.c | 1 - .../tests/memory/oracle_ci/gen_memalign.c | 1 + .../tests/memory/oracle_ci/gen_memsize.c | 1 + .../e-acsl/tests/memory/oracle_ci/gen_null.c | 2 +- .../tests/memory/oracle_ci/gen_offset.c | 1 + .../memory/oracle_ci/gen_other_constants.c | 2 +- .../e-acsl/tests/memory/oracle_ci/gen_ptr.c | 2 +- .../tests/memory/oracle_ci/gen_ptr_init.c | 1 + .../memory/oracle_ci/gen_ranges_in_builtins.c | 1 + .../tests/memory/oracle_ci/gen_sizeof.c | 2 +- .../tests/memory/oracle_ci/gen_stdout.c | 1 - .../e-acsl/tests/memory/oracle_ci/gen_valid.c | 1 + .../tests/memory/oracle_ci/gen_valid_alias.c | 1 + .../memory/oracle_ci/gen_valid_in_contract.c | 1 + .../tests/memory/oracle_ci/gen_vector.c | 1 + .../e-acsl/tests/memory/oracle_ci/gen_vla.c | 2 +- .../tests/special/oracle_ci/gen_builtin.c | 2 +- .../special/oracle_ci/gen_e-acsl-functions.c | 2 +- .../special/oracle_ci/gen_e-acsl-instrument.c | 2 +- .../special/oracle_ci/gen_e-acsl-valid.c | 1 + .../temporal/oracle_ci/gen_t_addr-by-val.c | 2 +- .../tests/temporal/oracle_ci/gen_t_args.c | 1 - .../tests/temporal/oracle_ci/gen_t_array.c | 2 +- .../tests/temporal/oracle_ci/gen_t_char.c | 2 +- .../tests/temporal/oracle_ci/gen_t_darray.c | 2 +- .../tests/temporal/oracle_ci/gen_t_dpointer.c | 1 + .../tests/temporal/oracle_ci/gen_t_fptr.c | 2 +- .../tests/temporal/oracle_ci/gen_t_fun_lib.c | 1 + .../tests/temporal/oracle_ci/gen_t_fun_ptr.c | 1 + .../tests/temporal/oracle_ci/gen_t_getenv.c | 1 + .../temporal/oracle_ci/gen_t_global_init.c | 2 +- .../tests/temporal/oracle_ci/gen_t_labels.c | 2 +- .../temporal/oracle_ci/gen_t_lit_string.c | 2 +- .../temporal/oracle_ci/gen_t_local_init.c | 1 - .../temporal/oracle_ci/gen_t_malloc-asan.c | 1 + .../tests/temporal/oracle_ci/gen_t_malloc.c | 1 + .../tests/temporal/oracle_ci/gen_t_scope.c | 2 +- .../tests/temporal/oracle_ci/gen_t_struct.c | 1 + .../tests/temporal/oracle_ci/gen_t_while.c | 2 +- 121 files changed, 207 insertions(+), 262 deletions(-) diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_arith.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_arith.c index 249a2e33666..3431019cbc4 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_arith.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_arith.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_array.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_array.c index b65d0e8fe76..73ea4bf5ab1 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_array.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_array.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int T1[3]; int T2[4]; void arrays(void) diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at.c index ee37178a854..e6bc5c1484f 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; int A = 0; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at_on-purely-logic-variables.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at_on-purely-logic-variables.c index 17dee710545..205c4799a85 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at_on-purely-logic-variables.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_at_on-purely-logic-variables.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ ensures diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_bitwise.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_bitwise.c index e96f4973e6c..7d9adc92634 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_bitwise.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_bitwise.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void f_signed(int a, int b) { int c = a << 2; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_cast.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_cast.c index c5a5d0cce53..d2d3f52aea0 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_cast.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_cast.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_comparison.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_comparison.c index 08496d44c23..29e8ecabb56 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_comparison.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_comparison.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions.c index 812ba798a39..5dbab6510d7 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; struct mystruct { diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions_rec.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions_rec.c index b9015c95933..0bca2910d93 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions_rec.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_functions_rec.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" /*@ logic ℤ f1(ℤ n) = n ≤ 0? 0: f1(n - 1) + n; */ diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_integer_constant.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_integer_constant.c index 15a95e16559..ea0b303a88f 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_integer_constant.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_integer_constant.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_let.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_let.c index 85b41bb2972..dcaaaa3d9e9 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_let.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_let.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" struct __anonstruct_r_1 { int x ; int y ; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_longlong.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_longlong.c index 0720b6503aa..16cf4cd3b10 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_longlong.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_longlong.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" unsigned long long my_pow(unsigned int x, unsigned int n) { unsigned long long __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_not.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_not.c index 4ba24ca0879..31c03d939ac 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_not.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_not.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_quantif.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_quantif.c index d5e965010d2..e13edd15d57 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_quantif.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_quantif.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_rationals.c b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_rationals.c index ab25e5f5395..859f23f3070 100644 --- a/src/plugins/e-acsl/tests/arith/oracle_ci/gen_rationals.c +++ b/src/plugins/e-acsl/tests/arith/oracle_ci/gen_rationals.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ ensures \let delta = 1; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1304.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1304.c index 69cf275ad87..adb3c8e3ab1 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1304.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1304.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" struct msgA { int type ; int a[2] ; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c index 7ecbe49081f..33236edf86c 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ requires \valid(Mtmax_in); diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c index c0a299e37ed..a0a428c6ea0 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ behavior yes: diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1326.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1326.c index 315f754cee7..ed0e31eeef3 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1326.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1326.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; typedef int ArrayInt[5]; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c index b3d1e5df6a1..8131e10a3bd 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" void duffcopy(char *to, char *from, int count) { __e_acsl_store_block((void *)(& from),(size_t)8); diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c index 0dd57437ec1..058f7b605d8 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1395.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1395.c index 66f0d9080e4..27c7fe2e2f5 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1395.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1395.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ requires n > 0; */ diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1398.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1398.c index 8f4aa78a777..38075f91be9 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1398.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1398.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string; void __e_acsl_globals_init(void) { diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1399.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1399.c index 2168cfcf29b..ec3cb262ed2 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1399.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1399.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" struct spongeStateStruct { diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c index 6dddd2a4045..93c920650cd 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; int global_i; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1700.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1700.c index 7343c2d3389..d9d891542f6 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1700.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1700.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" struct toto { }; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1717.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1717.c index decb020884b..979cba719c4 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1717.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1717.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1718.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1718.c index a076c7789a3..e0dbf835f6d 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1718.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1718.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1740.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1740.c index ee8220d206c..9c79509d1f7 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1740.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1740.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c index 0c35a1254be..bc80c8d28dc 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string_3; char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c index 41b668706f8..ee4442c59fd 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; struct ST { diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c index a33b19b9e42..b8f3d271918 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2231.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2231.c index e3887d10a70..84abbc44f83 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2231.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2231.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" long A = (long)0; int main(void) { diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c index 989bcb1766b..bbf7b668bde 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" #include "string.h" diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c index 55454d5d36b..634afea64ae 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" struct bitfields { int i : 2 ; _Bool j : 1 ; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2386.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2386.c index bcaacac3a1e..3ae4f0709cf 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2386.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2386.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string; void f(void const *s, int c, unsigned long n) { diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c index 90b370c4f2c..0c331aeb3b6 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char const tab[]; char t[10]; void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-105.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-105.c index 8ad1e10fa53..e6ab7d016e1 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-105.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-105.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int f(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c index 14dd1ab575a..33c28617704 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" short a; char b(void) { diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue69.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue69.c index 44cfac328f8..b49b9ee26da 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue69.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue69.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_false.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_false.c index 7c2dc5ed469..ed65d0c6f15 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_false.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_false.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c index 9e7f63becc8..c1d683e5f6d 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; int X = 0; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c index ab2bc7b7038..89cee38a6d7 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int G = 0; int *P; void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_invariant.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_invariant.c index 803e14a2914..f662b924a1e 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_invariant.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_invariant.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_labeled_stmt.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_labeled_stmt.c index 06a5de92573..4e43bc9fabf 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_labeled_stmt.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_labeled_stmt.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; int X = 0; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_lazy.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_lazy.c index b9ba06467be..d21ef113d76 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_lazy.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_lazy.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_loop.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_loop.c index 879d1ee52a8..c1944d903d8 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_loop.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_loop.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void simple_loop(void) { int sum = 0; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_nested_code_annot.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_nested_code_annot.c index 252046ac3c8..07c6bff2ea6 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_nested_code_annot.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_nested_code_annot.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_result.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_result.c index 6b0f6fcf6b2..dccbec78338 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_result.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_result.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ ensures \result ≡ (int)(\old(x) - \old(x)); */ diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c index b9942c443b7..e088e9e145e 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_true.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_true.c index 243f60598a1..819a2b7a157 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_true.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_true.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_typedef.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_typedef.c index 92e02166357..8b62fcfca72 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_typedef.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_typedef.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" typedef unsigned char uint8; int main(void) { diff --git a/src/plugins/e-acsl/tests/examples/oracle_ci/gen_functions_contiki.c b/src/plugins/e-acsl/tests/examples/oracle_ci/gen_functions_contiki.c index 47e55d3fc12..84a91929a61 100644 --- a/src/plugins/e-acsl/tests/examples/oracle_ci/gen_functions_contiki.c +++ b/src/plugins/e-acsl/tests/examples/oracle_ci/gen_functions_contiki.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" struct list { diff --git a/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c b/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c index 6657c1ae8ee..7e89333ec36 100644 --- a/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c +++ b/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; int A[10]; diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle index 7f687e99ca5..ff43a1afe08 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle @@ -82,11 +82,13 @@ [eva:alarm] tests/format/fprintf.c:36: Warning: accessing uninitialized left-value. assert \initialized(&process_status_8); [eva:invalid-assigns] tests/format/fprintf.c:37: - Completely invalid destination for assigns clause *(str + (0 ..)). Ignoring. + Completely invalid destination for assigns clause *(buffer + (0 ..)). + Ignoring. [eva:alarm] tests/format/fprintf.c:37: Warning: accessing uninitialized left-value. assert \initialized(&process_status_9); [eva:invalid-assigns] tests/format/fprintf.c:38: - Completely invalid destination for assigns clause *(str + (0 ..)). Ignoring. + Completely invalid destination for assigns clause *(buffer + (0 ..)). + Ignoring. [eva:alarm] tests/format/fprintf.c:38: Warning: accessing uninitialized left-value. assert \initialized(&process_status_10); [kernel:annot:missing-spec] tests/format/fprintf.c:41: Warning: @@ -96,16 +98,19 @@ [eva:alarm] tests/format/fprintf.c:42: Warning: accessing uninitialized left-value. assert \initialized(&process_status_12); [eva:invalid-assigns] tests/format/fprintf.c:43: - Completely invalid destination for assigns clause *(str + (0 ..)). Ignoring. + Completely invalid destination for assigns clause *(buffer + (0 ..)). + Ignoring. [eva:alarm] tests/format/fprintf.c:43: Warning: accessing uninitialized left-value. assert \initialized(&process_status_13); [eva:alarm] tests/format/fprintf.c:44: Warning: accessing uninitialized left-value. assert \initialized(&process_status_14); [eva:invalid-assigns] tests/format/fprintf.c:45: - Completely invalid destination for assigns clause *(str + (0 ..)). Ignoring. + Completely invalid destination for assigns clause *(buffer + (0 ..)). + Ignoring. [eva:alarm] tests/format/fprintf.c:45: Warning: accessing uninitialized left-value. assert \initialized(&process_status_15); [eva:invalid-assigns] tests/format/fprintf.c:46: - Completely invalid destination for assigns clause *(str + (0 ..)). Ignoring. + Completely invalid destination for assigns clause *(buffer + (0 ..)). + Ignoring. [eva:alarm] tests/format/fprintf.c:46: Warning: accessing uninitialized left-value. assert \initialized(&process_status_16); diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c b/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c index c93c673e181..4a64f9d92fb 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c +++ b/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c @@ -1,5 +1,6 @@ /* Generated by Frama-C */ #include "signal.h" +#include "stddef.h" #include "stdio.h" #include "stdlib.h" #include "sys/select.h" diff --git a/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log b/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log index 19a711261f3..02725ad71ef 100644 --- a/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log +++ b/src/plugins/e-acsl/tests/format/oracle_dev/printf.e-acsl.err.log @@ -29,25 +29,19 @@ TEST 20: OK: Expected execution at tests/format/printf.c:209 TEST 21: OK: Expected execution at tests/format/printf.c:209 TEST 22: OK: Expected execution at tests/format/printf.c:209 TEST 23: OK: Expected execution at tests/format/printf.c:209 -Format error: wrong application of precision [.] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of precision [.] to format specifier [c] TEST 24: OK: Expected signal at tests/format/printf.c:209 TEST 25: OK: Expected execution at tests/format/printf.c:209 -Format error: wrong application of precision [.] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of precision [.] to format specifier [p] TEST 26: OK: Expected signal at tests/format/printf.c:209 -Format error: wrong application of precision [.] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of precision [.] to format specifier [n] TEST 27: OK: Expected signal at tests/format/printf.c:209 -Format error: wrong application of flag [#] to format specifier [d] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [d] TEST 28: OK: Expected signal at tests/format/printf.c:215 -Format error: wrong application of flag [#] to format specifier [i] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [i] TEST 29: OK: Expected signal at tests/format/printf.c:215 TEST 30: OK: Expected execution at tests/format/printf.c:215 -Format error: wrong application of flag [#] to format specifier [u] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [u] TEST 31: OK: Expected signal at tests/format/printf.c:215 TEST 32: OK: Expected execution at tests/format/printf.c:215 TEST 33: OK: Expected execution at tests/format/printf.c:215 @@ -58,17 +52,13 @@ TEST 37: OK: Expected execution at tests/format/printf.c:215 TEST 38: OK: Expected execution at tests/format/printf.c:215 TEST 39: OK: Expected execution at tests/format/printf.c:215 TEST 40: OK: Expected execution at tests/format/printf.c:215 -Format error: wrong application of flag [#] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [c] TEST 41: OK: Expected signal at tests/format/printf.c:215 -Format error: wrong application of flag [#] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [s] TEST 42: OK: Expected signal at tests/format/printf.c:215 -Format error: wrong application of flag [#] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [p] TEST 43: OK: Expected signal at tests/format/printf.c:215 -Format error: wrong application of flag [#] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [n] TEST 44: OK: Expected signal at tests/format/printf.c:215 TEST 45: OK: Expected execution at tests/format/printf.c:218 TEST 46: OK: Expected execution at tests/format/printf.c:218 @@ -83,54 +73,39 @@ TEST 54: OK: Expected execution at tests/format/printf.c:218 TEST 55: OK: Expected execution at tests/format/printf.c:218 TEST 56: OK: Expected execution at tests/format/printf.c:218 TEST 57: OK: Expected execution at tests/format/printf.c:218 -Format error: wrong application of flag [0] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [0] to format specifier [c] TEST 58: OK: Expected signal at tests/format/printf.c:218 -Format error: wrong application of flag [0] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [0] to format specifier [s] TEST 59: OK: Expected signal at tests/format/printf.c:218 -Format error: wrong application of flag [0] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [0] to format specifier [p] TEST 60: OK: Expected signal at tests/format/printf.c:218 -Format error: wrong application of flag [0] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [0] to format specifier [n] TEST 61: OK: Expected signal at tests/format/printf.c:218 TEST 62: OK: Expected execution at tests/format/printf.c:224 TEST 63: OK: Expected execution at tests/format/printf.c:225 Format error: illegal format specifier 'l' TEST 64: OK: Expected signal at tests/format/printf.c:226 -Format error: wrong application of length modifier [hh] to format specifier [f] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [f] TEST 65: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [F] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [F] TEST 66: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [e] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [e] TEST 67: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [E] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [E] TEST 68: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [g] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [g] TEST 69: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [G] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [G] TEST 70: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [a] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [a] TEST 71: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [A] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [A] TEST 72: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [c] TEST 73: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [s] TEST 74: OK: Expected signal at tests/format/printf.c:232 -Format error: wrong application of length modifier [hh] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [hh] to format specifier [p] TEST 75: OK: Expected signal at tests/format/printf.c:232 TEST 76: OK: Expected execution at tests/format/printf.c:233 TEST 77: OK: Expected execution at tests/format/printf.c:233 @@ -139,38 +114,27 @@ TEST 79: OK: Expected execution at tests/format/printf.c:234 TEST 80: OK: Expected execution at tests/format/printf.c:235 TEST 81: OK: Expected execution at tests/format/printf.c:235 TEST 82: OK: Expected execution at tests/format/printf.c:235 -Format error: wrong application of length modifier [h] to format specifier [f] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [f] TEST 83: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [F] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [F] TEST 84: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [e] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [e] TEST 85: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [E] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [E] TEST 86: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [g] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [g] TEST 87: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [G] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [G] TEST 88: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [a] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [a] TEST 89: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [A] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [A] TEST 90: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [c] TEST 91: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [s] TEST 92: OK: Expected signal at tests/format/printf.c:238 -Format error: wrong application of length modifier [h] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [h] to format specifier [p] TEST 93: OK: Expected signal at tests/format/printf.c:238 TEST 94: OK: Expected execution at tests/format/printf.c:239 TEST 95: OK: Expected execution at tests/format/printf.c:239 @@ -179,8 +143,7 @@ TEST 97: OK: Expected execution at tests/format/printf.c:240 TEST 98: OK: Expected execution at tests/format/printf.c:241 TEST 99: OK: Expected execution at tests/format/printf.c:241 TEST 100: OK: Expected execution at tests/format/printf.c:241 -Format error: wrong application of length modifier [l] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [l] to format specifier [p] TEST 101: OK: Expected signal at tests/format/printf.c:244 TEST 102: OK: Expected execution at tests/format/printf.c:245 TEST 103: OK: Expected execution at tests/format/printf.c:245 @@ -205,38 +168,27 @@ TEST 121: OK: Expected execution at tests/format/printf.c:262 TEST 122: OK: Expected execution at tests/format/printf.c:263 TEST 123: OK: Expected execution at tests/format/printf.c:263 TEST 124: OK: Expected execution at tests/format/printf.c:263 -Format error: wrong application of length modifier [j] to format specifier [f] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [f] TEST 125: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [F] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [F] TEST 126: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [e] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [e] TEST 127: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [E] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [E] TEST 128: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [g] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [g] TEST 129: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [G] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [G] TEST 130: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [a] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [a] TEST 131: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [A] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [A] TEST 132: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [c] TEST 133: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [s] TEST 134: OK: Expected signal at tests/format/printf.c:266 -Format error: wrong application of length modifier [j] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [j] to format specifier [p] TEST 135: OK: Expected signal at tests/format/printf.c:266 TEST 136: OK: Expected execution at tests/format/printf.c:267 TEST 137: OK: Expected execution at tests/format/printf.c:267 @@ -245,38 +197,27 @@ TEST 139: OK: Expected execution at tests/format/printf.c:268 TEST 140: OK: Expected execution at tests/format/printf.c:269 TEST 141: OK: Expected execution at tests/format/printf.c:269 TEST 142: OK: Expected execution at tests/format/printf.c:269 -Format error: wrong application of length modifier [z] to format specifier [f] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [f] TEST 143: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [F] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [F] TEST 144: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [e] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [e] TEST 145: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [E] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [E] TEST 146: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [g] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [g] TEST 147: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [G] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [G] TEST 148: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [a] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [a] TEST 149: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [A] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [A] TEST 150: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [c] TEST 151: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [s] TEST 152: OK: Expected signal at tests/format/printf.c:272 -Format error: wrong application of length modifier [z] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [z] to format specifier [p] TEST 153: OK: Expected signal at tests/format/printf.c:272 TEST 154: OK: Expected execution at tests/format/printf.c:277 TEST 155: OK: Expected execution at tests/format/printf.c:277 @@ -285,38 +226,27 @@ TEST 157: OK: Expected execution at tests/format/printf.c:281 TEST 158: OK: Expected execution at tests/format/printf.c:282 TEST 159: OK: Expected execution at tests/format/printf.c:282 TEST 160: OK: Expected execution at tests/format/printf.c:282 -Format error: wrong application of length modifier [t] to format specifier [f] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [f] TEST 161: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [F] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [F] TEST 162: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [e] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [e] TEST 163: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [E] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [E] TEST 164: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [g] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [g] TEST 165: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [G] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [G] TEST 166: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [a] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [a] TEST 167: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [A] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [A] TEST 168: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [c] TEST 169: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [s] TEST 170: OK: Expected signal at tests/format/printf.c:287 -Format error: wrong application of length modifier [t] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [t] to format specifier [p] TEST 171: OK: Expected signal at tests/format/printf.c:287 TEST 172: OK: Expected execution at tests/format/printf.c:289 TEST 173: OK: Expected execution at tests/format/printf.c:289 @@ -325,32 +255,23 @@ TEST 175: OK: Expected execution at tests/format/printf.c:290 TEST 176: OK: Expected execution at tests/format/printf.c:295 TEST 177: OK: Expected execution at tests/format/printf.c:295 TEST 178: OK: Expected execution at tests/format/printf.c:296 -Format error: wrong application of length modifier [L] to format specifier [d] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [d] TEST 179: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [i] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [i] TEST 180: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [o] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [o] TEST 181: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [u] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [u] TEST 182: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [x] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [x] TEST 183: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [c] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [c] TEST 184: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [s] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [s] TEST 185: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [p] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [p] TEST 186: OK: Expected signal at tests/format/printf.c:299 -Format error: wrong application of length modifier [L] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of length modifier [L] to format specifier [n] TEST 187: OK: Expected signal at tests/format/printf.c:299 TEST 188: OK: Expected execution at tests/format/printf.c:300 TEST 189: OK: Expected execution at tests/format/printf.c:300 @@ -629,14 +550,11 @@ printf: directive 1 ('%n') expects argument of type 'int*' but the corresponding TEST 368: OK: Expected signal at tests/format/printf.c:460 printf: argument 0 of directive %n not allocated or writeable TEST 369: OK: Expected signal at tests/format/printf.c:461 -Format error: wrong application of flag ['] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag ['] to format specifier [n] TEST 370: OK: Expected signal at tests/format/printf.c:464 -Format error: wrong application of flag [0] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [0] to format specifier [n] TEST 371: OK: Expected signal at tests/format/printf.c:465 -Format error: wrong application of flag [#] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of flag [#] to format specifier [n] TEST 372: OK: Expected signal at tests/format/printf.c:466 Format error: one of more flags with [n] specifier TEST 373: OK: Expected signal at tests/format/printf.c:467 @@ -644,14 +562,11 @@ Format error: one of more flags with [n] specifier TEST 374: OK: Expected signal at tests/format/printf.c:468 Format error: one of more flags with [n] specifier TEST 375: OK: Expected signal at tests/format/printf.c:469 -Format error: wrong application of precision [.] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of precision [.] to format specifier [n] TEST 376: OK: Expected signal at tests/format/printf.c:470 -Format error: wrong application of precision [.] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of precision [.] to format specifier [n] TEST 377: OK: Expected signal at tests/format/printf.c:471 -Format error: wrong application of precision [.] to format specifier [n] - at FRAMAC_SHARE/e-acsl/e_acsl_format.h:593 +FRAMAC_SHARE/e-acsl/libc_replacements/e_acsl_stdio.c:541: Format error: wrong application of precision [.] to format specifier [n] TEST 378: OK: Expected signal at tests/format/printf.c:472 Format error: field width used with [n] specifier TEST 379: OK: Expected signal at tests/format/printf.c:473 diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c index 29818eff2cf..3d27c36ba8d 100644 --- a/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void f(void) { int m; diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_arith.c b/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_arith.c index 9db467e05fc..63c374fc880 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_arith.c +++ b/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_arith.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_functions.c b/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_functions.c index 471424de4c8..ab3f589ceb4 100644 --- a/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_functions.c +++ b/src/plugins/e-acsl/tests/gmp-only/oracle_ci/gen_functions.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; struct mystruct { diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_addrOf.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_addrOf.c index 7b77f53af25..bd03357db5a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_addrOf.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void f(void) { int m; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_alias.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_alias.c index 6a17c6b8426..ec52f8d8911 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_alias.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_alias.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void f(int *dest, int val) { __e_acsl_store_block((void *)(& dest),(size_t)8); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c index 9f45f3d678f..9927263df1e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int A[4] = {1, 2, 3, 4}; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c index 4cbe891d458..70135545c5c 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" struct Zero { diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c index 3871a01e451..44cb0bfe503 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int A = 1; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_bypassed_var.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_bypassed_var.c index 719d8c6de18..b835f6982ff 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_bypassed_var.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_bypassed_var.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(int argc, char const **argv) { int __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_call.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_call.c index 2cdd52844f8..7b3be6015b9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_call.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_call.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c index a5c53537815..96bcfdbdcdf 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string_3; char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c index 52d996bb020..2a3a6d2b157 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c @@ -1,7 +1,7 @@ /* Generated by Frama-C */ #include "ctype.h" +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ requires c_uchar_or_eof: (0 ≤ c ≤ 255) ∨ c ≡ -1; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_decl_in_switch.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_decl_in_switch.c index 4c5ab738c91..0f7c83a627a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_decl_in_switch.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_decl_in_switch.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void decl_in_switch(int value) { __e_acsl_store_block((void *)(& value),(size_t)4); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_early_exit.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_early_exit.c index aaa3abefdbd..f107396adc8 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_early_exit.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_early_exit.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int goto_bts(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c index 6504639acc7..06eabe4d9f0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char array[1024]; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ghost_parameters.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ghost_parameters.c index dcd56fb12c7..e16ba064495 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ghost_parameters.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ghost_parameters.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void function(int a, int b, int c, int d) { return; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c index d5c1542ac4f..4e033175d14 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char a; void __e_acsl_globals_init(void) { diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_hidden_malloc.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_hidden_malloc.c index ef47698bb6f..e3e8cd4ae77 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_hidden_malloc.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_hidden_malloc.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c index e3a9201614e..c063f126339 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int a = 0; int b; void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init_function.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init_function.c index 0233781eddc..6b4322952dc 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init_function.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init_function.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c index 026e4bbef14..50566fb3407 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int A = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c index 74ba7f26de6..8710dc8c595 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string_6; char *__gen_e_acsl_literal_string_5; char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c index 3d26e79512a..81bdec60725 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_goto.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string_2; char *__gen_e_acsl_literal_string_3; char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c index 1f7424a1ec1..508da20bd2b 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int X = 0; int *p = & X; int f(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_var.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_var.c index a7de0f8707d..7dd067ecaf9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_var.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_var.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" struct list { diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_mainargs.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_mainargs.c index 86e9de27822..f5565321250 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_mainargs.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_mainargs.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" #include "string.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c index f0a98343e01..53c57ee9179 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c index afc1d47904c..134e80f8daf 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memsize.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern size_t __e_acsl_heap_allocation_size; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_null.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_null.c index 02d31514dd5..3da46b12757 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_null.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_null.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c index 4ce316ea42c..a294b87c024 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int A[4] = {1, 2, 3, 4}; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_other_constants.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_other_constants.c index e6f639fa935..367bdac518c 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_other_constants.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_other_constants.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" enum bool { false = 0, true = 1 diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr.c index dbe02ee97e2..d3e4601ad63 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c index e021ea6783c..7437d4c8785 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int *A; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c index 89bbf9a94b8..d34788a14e9 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ranges_in_builtins.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_sizeof.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_sizeof.c index 7920e6b98d1..aa3776502d0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_sizeof.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_sizeof.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c index 75bddabfbe9..225763b343e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" void __e_acsl_globals_init(void) { static char __e_acsl_already_run = 0; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c index 38b803a26a3..133ae6895b7 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_alias.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_alias.c index c89b0e938c9..a747d918903 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_alias.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_alias.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int main(void) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c index e26605a5936..384a5a75de5 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vector.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vector.c index f3ef2cd1836..ac348fd03d0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vector.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vector.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int LAST; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vla.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vla.c index d2039f2b5ee..73cabbcc28e 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vla.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_vla.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int LEN = 10; int main(int argc, char **argv) { diff --git a/src/plugins/e-acsl/tests/special/oracle_ci/gen_builtin.c b/src/plugins/e-acsl/tests/special/oracle_ci/gen_builtin.c index dcc566b58e8..61b7ebb65cd 100644 --- a/src/plugins/e-acsl/tests/special/oracle_ci/gen_builtin.c +++ b/src/plugins/e-acsl/tests/special/oracle_ci/gen_builtin.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; int incr(int x); diff --git a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-functions.c b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-functions.c index 26550ea8e34..f317d0df3bc 100644 --- a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-functions.c +++ b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-functions.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /*@ requires \initialized(p); diff --git a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-instrument.c b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-instrument.c index e3d9f21d1ef..2ef9690828f 100644 --- a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-instrument.c +++ b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-instrument.c @@ -1,7 +1,7 @@ /* Generated by Frama-C */ #include "stdarg.h" +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" extern int __e_acsl_sound_verdict; /* compiler builtin: diff --git a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c index bf53cbc448c..1df7f9c8859 100644 --- a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c +++ b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" extern int __e_acsl_sound_verdict; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_addr-by-val.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_addr-by-val.c index 32bcce13609..ae17894128e 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_addr-by-val.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_addr-by-val.c @@ -1,7 +1,7 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdint.h" #include "stdio.h" -#include "stdlib.h" int main(int argc, char **argv) { int __retres; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_args.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_args.c index 3e24ef3f308..74e64a13210 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_args.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_args.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(int argc, char const **argv) { int __retres; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_array.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_array.c index 9716b9407fb..e6b8e000598 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_array.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_array.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_char.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_char.c index 6da6eec960c..36ce1e3ab27 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_char.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_char.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(int argc, char const **argv) { int __retres; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c index f2c564d40b4..39664bb15a9 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void area_triangle(double (*vertices)[4]) { { diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_dpointer.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_dpointer.c index 54917f1f76f..17025a19ee8 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_dpointer.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_dpointer.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int main(void) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c index 6ce50be381f..a1ab4f085fb 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int *foo(int *p) { int *q = p; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_lib.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_lib.c index 33388accb3a..fa0bd664679 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_lib.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_lib.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_ptr.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_ptr.c index 43f3a37fa9f..7182f81e3d3 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_ptr.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fun_ptr.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdint.h" #include "stdio.h" #include "stdlib.h" diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_getenv.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_getenv.c index b574f1ebb23..f1daa120b06 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_getenv.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_getenv.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string_2; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c index 1a223bf90f4..bfb6fd16794 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string; char *__gen_e_acsl_literal_string_2; char *__gen_e_acsl_literal_string_4; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_labels.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_labels.c index a0229a5254a..a582605286f 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_labels.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_labels.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" void foo(int *a, int *b) { __e_acsl_store_block((void *)(& b),(size_t)8); diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_lit_string.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_lit_string.c index 89bdc1b2a15..22d485e658b 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_lit_string.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_lit_string.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string_2; char *__gen_e_acsl_literal_string; void __e_acsl_globals_init(void) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c index 00745623824..e77ce2220c0 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c @@ -1,7 +1,6 @@ /* Generated by Frama-C */ #include "stddef.h" #include "stdio.h" -#include "stdlib.h" char *__gen_e_acsl_literal_string_4; char *__gen_e_acsl_literal_string_3; char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc-asan.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc-asan.c index 08d4bb0a0ae..670764770e9 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc-asan.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc-asan.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" char *__gen_e_acsl_literal_string; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc.c index b58537e485c..6e7fbc4aed2 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_malloc.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" int main(void) diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_scope.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_scope.c index 8a0fc1325ad..9b76adcf47e 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_scope.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_scope.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_struct.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_struct.c index 76272a2c173..05b096a5801 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_struct.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_struct.c @@ -1,4 +1,5 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" #include "stdlib.h" struct temporal_t { diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_while.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_while.c index b63675cf0ac..e44bc6c2640 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_while.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_while.c @@ -1,6 +1,6 @@ /* Generated by Frama-C */ +#include "stddef.h" #include "stdio.h" -#include "stdlib.h" int main(void) { int __retres; -- GitLab From 77fa4678c983b17e7a1b571732d063c6f23b66c9 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 4 Sep 2020 10:51:47 +0200 Subject: [PATCH 136/255] [eacsl:runtime] Remove unused extern definition --- .../observation_model/segment_model/e_acsl_segment_tracking.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h index 465ed429342..82a09ebeecc 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h @@ -367,8 +367,6 @@ void mark_readonly_region (uintptr_t addr, long size); /* }}} */ /* Heap allocation {{{ (malloc/calloc) */ -extern int MSPACES_INIT; - /** \brief Return shadowed copy of a memory chunk on a program's heap using. * If `init` parameter is set to a non-zero value the memory occupied by the * resulting block is set to be initialized and uninitialized otherwise. */ -- GitLab From f2643727d2364ed0aff471703cf37715c6fd5ab5 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 4 Sep 2020 10:52:21 +0200 Subject: [PATCH 137/255] [eacsl:runtime] Fix stack size handling --- .../segment_model/e_acsl_shadow_layout.c | 12 +++--------- .../segment_model/e_acsl_shadow_layout.h | 13 ++++++++++--- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c index 19a21ed60e4..7d627c53486 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c @@ -43,6 +43,8 @@ size_t increase_stack_limit(const size_t size) { if (result != 0) { private_abort("setrlimit: %s \n", strerror(errno)); } + } else { + stacksz = rl.rlim_cur; } } else { private_abort("getrlimit: %s \n", strerror(errno)); @@ -50,21 +52,13 @@ size_t increase_stack_limit(const size_t size) { return (size_t)stacksz; } -size_t get_default_stack_size() { +size_t get_stack_size() { struct rlimit rlim; private_assert(!getrlimit(RLIMIT_STACK, &rlim), "Cannot detect program's stack size", NULL); return rlim.rlim_cur; } -size_t get_stack_size() { -#ifndef E_ACSL_STACK_SIZE - return get_default_stack_size(); -#else - return increase_stack_limit(E_ACSL_STACK_SIZE*MB); -#endif -} - uintptr_t get_stack_start(int *argc_ref, char *** argv_ref) { char **env = environ; while (env[1]) diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h index 098074488b3..b15415383d4 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h @@ -134,13 +134,20 @@ static __thread int id_tbss; extern char ** environ; /*! \brief Set a new soft stack limit - * \param size - new stack size in bytes */ + * + * If the new stack size is greater than the max stack size, then set to the max + * stack size. If the new stack size is less than the current stack size, don't + * do anything. + * + * Abort if an error occur when retrieving or setting the stack size. + * + * \param size - new stack size in bytes + * \return the new stack size in bytes. + */ size_t increase_stack_limit(const size_t size); /*! \brief Return byte-size of a program's stack. The return value is the soft * stack limit, i.e., it can be programmatically increased at runtime. */ -size_t get_default_stack_size(); - size_t get_stack_size(); /*! \brief Return greatest (known) address on a program's stack. -- GitLab From e4e6e7ac644ff8b754905b58d89963747764d6e9 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 4 Sep 2020 11:21:10 +0200 Subject: [PATCH 138/255] [eacsl:runtime] Fix lint --- src/plugins/e-acsl/headers/header_spec.txt | 74 +++++++++++++++------- 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index 3a8a5772d08..d014a36259a 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -11,31 +11,59 @@ license/SPARETIMELABS: .ignore license/headache_config.txt: .ignore man/e-acsl-gcc.sh.1: CEA_LGPL_OR_PROPRIETARY.E_ACSL scripts/e-acsl-gcc.sh: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/bittree_model/e_acsl_bittree.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/bittree_model/e_acsl_bittree_api.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/bittree_model/e_acsl_bittree_mmodel.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_assert.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_assert.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_temporal.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_temporal.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_alias.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_bits.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_bits.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_debug.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_debug.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_malloc.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_malloc.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_private_assert.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_private_assert.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_rtl_io.c: MODIFIED_SPARETIMELABS +share/e-acsl/internals/e_acsl_rtl_io.h: MODIFIED_SPARETIMELABS +share/e-acsl/internals/e_acsl_rtl_string.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_rtl_string.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_shexec.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_shexec.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_trace.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/internals/e_acsl_trace.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/libc_replacements/e_acsl_stdio.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/libc_replacements/e_acsl_stdio.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/libc_replacements/e_acsl_string.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/libc_replacements/e_acsl_string.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/numerical_model/e_acsl_floating_point.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/numerical_model/e_acsl_floating_point.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/numerical_model/e_acsl_gmp_api.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/bittree_model/e_acsl_bittree.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/bittree_model/e_acsl_bittree.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/bittree_model/e_acsl_bittree_observation_model.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/bittree_model/e_acsl_bittree_omodel_debug.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/bittree_model/e_acsl_bittree_timestamp_retrieval.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/internals/e_acsl_heap_tracking.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/internals/e_acsl_heap_tracking.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/internals/e_acsl_omodel_debug.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/internals/e_acsl_safe_locations.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/internals/e_acsl_safe_locations.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/internals/e_acsl_timestamp_retrieval.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_segment_observation_model.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_segment_omodel_debug.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_segment_timestamp_retrieval.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/segment_model/e_acsl_shadow_layout.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/e_acsl_heap.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/e_acsl_heap.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/e_acsl_observation_model.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/observation_model/e_acsl_observation_model.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/e_acsl.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_alias.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_assert.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_bits.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_debug.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_floating_point.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_format.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_gmp_api.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_leak.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_libc_replacements.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_malloc.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_printf.h: MODIFIED_SPARETIMELABS share/e-acsl/e_acsl_rtl.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_safe_locations.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_shexec.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_string.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_temporal.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_temporal_timestamp.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/e_acsl_trace.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/segment_model/e_acsl_segment_mmodel.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/segment_model/e_acsl_segment_tracking.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL -share/e-acsl/segment_model/e_acsl_shadow_layout.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/exit_points.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/exit_points.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/interval.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL -- GitLab From c38ab1d5eadbcc71a868f74cc0d620138645581d Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 15 Sep 2020 17:15:59 +0200 Subject: [PATCH 139/255] [eacsl] Update changelog --- src/plugins/e-acsl/doc/Changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog index e861862d1ce..e6b20fea46e 100644 --- a/src/plugins/e-acsl/doc/Changelog +++ b/src/plugins/e-acsl/doc/Changelog @@ -25,6 +25,8 @@ Plugin E-ACSL <next-release> ############################ +-* runtime [2020-09-15] Fix wrong value returned for the stack size in the + segment memory model (frama-c/e-acsl#126). - E-ACSL [2020-09-15] Deprecate -e-acsl-full-mmodel in favor of -e-acsl-full-mtracking. - e-acsl-gcc [2020-09-15] Deprecate --full-mmodel in favor of -- GitLab From e7433ce17ae84860a08b52fb6de1b90aaa117831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 09:35:53 +0200 Subject: [PATCH 140/255] [kernel] fix inconsistency status exception --- src/kernel_services/ast_data/property_status.ml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/kernel_services/ast_data/property_status.ml b/src/kernel_services/ast_data/property_status.ml index ea653a36c45..e70cdf7f9f8 100644 --- a/src/kernel_services/ast_data/property_status.ml +++ b/src/kernel_services/ast_data/property_status.ml @@ -507,13 +507,12 @@ and unsafe_emit_and_get e ~hyps ~auto ppt ?(distinct=false) s = let old_s = Emitter_with_properties.Hashtbl.find by_emitter emitter in try let first = - (if distinct then merge_distinct_emitted - else check_strongest_emitted) - s - old_s - in - if first then emit s else old_s - with Unmergeable -> emit Dont_know + if distinct then merge_distinct_emitted s old_s + else check_strongest_emitted s old_s + in if first then emit s else old_s + with + | Unmergeable -> emit Dont_know + | Inconsistent_emitted_status _ -> emit False_if_reachable with Not_found -> emit s) with Not_found -> -- GitLab From ac3706ffc79a0b48211af5f1490fb884fd0c1d7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 10:08:50 +0200 Subject: [PATCH 141/255] [wp] run all provers for smoke tests --- src/plugins/wp/ProverTask.ml | 17 ++++++++++++----- src/plugins/wp/ProverTask.mli | 2 +- src/plugins/wp/prover.ml | 5 ++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/plugins/wp/ProverTask.ml b/src/plugins/wp/ProverTask.ml index c1c45be5d62..724cb237f7c 100644 --- a/src/plugins/wp/ProverTask.ml +++ b/src/plugins/wp/ProverTask.ml @@ -314,18 +314,25 @@ let schedule task = Task.spawn server (Task.thread task) let silent _ = () -let spawn ?(monitor=silent) ?pool ~all +let spawn ?(monitor=silent) ?pool ~all ~smoke (jobs : ('a * bool Task.task) list) = if jobs <> [] then begin let step = ref 0 in let monitored = ref [] in - let canceled = ref false in + let finalized = ref false in let callback a r = if r then - begin if not all && not !canceled then + begin + if smoke then + begin + finalized := true ; + monitor (Some a) ; + end + else + if not all && not !finalized then begin - canceled := true ; + finalized := true ; monitor (Some a) ; List.iter Task.cancel !monitored ; end @@ -333,7 +340,7 @@ let spawn ?(monitor=silent) ?pool ~all else begin decr step ; - if not !canceled && !step = 0 then + if not !finalized && !step = 0 then monitor None ; end in let pack (a,t) = Task.thread (t >>= Task.call (callback a)) in diff --git a/src/plugins/wp/ProverTask.mli b/src/plugins/wp/ProverTask.mli index 4f0bc09934e..f964e61ea10 100644 --- a/src/plugins/wp/ProverTask.mli +++ b/src/plugins/wp/ProverTask.mli @@ -85,7 +85,7 @@ val schedule : 'a Task.task -> unit val spawn : ?monitor:('a option -> unit) -> ?pool:Task.pool -> - all:bool -> + all:bool -> smoke:bool -> ('a * bool Task.task) list -> unit (** Spawn all the tasks over the server and retain the first 'validated' one. diff --git a/src/plugins/wp/prover.ml b/src/plugins/wp/prover.ml index 78092c65d91..08291e8aeea 100644 --- a/src/plugins/wp/prover.ml +++ b/src/plugins/wp/prover.ml @@ -112,7 +112,8 @@ let spawn wpo ~delayed let process (mode,prover) = prove wpo ?config ~mode ?start ?progress ?result prover in let all = Wp_parameters.RunAllProvers.get() in - ProverTask.spawn ?monitor ?pool ~all + let smoke = Wpo.is_smoke_test wpo in + ProverTask.spawn ?monitor ?pool ~all ~smoke (List.map (fun mp -> let prover = snd mp in @@ -124,3 +125,5 @@ let spawn wpo ~delayed let thread = Task.thread process in let server = ProverTask.server () in Task.spawn server ?pool thread + +(* -------------------------------------------------------------------------- *) -- GitLab From d6364ca4ae6046e2d56b5116a9cf73a174dd698b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 10:55:55 +0200 Subject: [PATCH 142/255] [wp] refine GUI proof status for smoke tests --- src/plugins/wp/GuiGoal.ml | 53 ++++++++++++++++++++++------------ src/plugins/wp/GuiProver.ml | 1 + src/plugins/wp/GuiProver.mli | 1 + src/plugins/wp/ProofEngine.ml | 18 +++++++++--- src/plugins/wp/ProofEngine.mli | 10 ++++++- src/plugins/wp/ProverScript.ml | 13 +++++---- src/plugins/wp/wpAnnot.ml | 7 ----- src/plugins/wp/wpAnnot.mli | 2 -- 8 files changed, 66 insertions(+), 39 deletions(-) diff --git a/src/plugins/wp/GuiGoal.ml b/src/plugins/wp/GuiGoal.ml index 071f6a3ef89..c9693efd719 100644 --- a/src/plugins/wp/GuiGoal.ml +++ b/src/plugins/wp/GuiGoal.ml @@ -421,6 +421,25 @@ class pane (gprovers : GuiConfig.provers) = save_script#set_enabled save ; end + method private update_pending kind proof n = + match ProofEngine.current proof with + | `Main | `Internal _ -> + next#set_enabled false ; + prev#set_enabled false ; + if n = 1 then + Pretty_utils.ksfprintf status#set_text "One %s Goal" kind + else + Pretty_utils.ksfprintf status#set_text "%d %s Goals" n kind + | `Leaf(k,_) -> + prev#set_enabled (0 < k) ; + next#set_enabled (k+1 < n) ; + if k = 0 && n = 1 then + Pretty_utils.ksfprintf status#set_text + "Last %s Goal" kind + else + Pretty_utils.ksfprintf status#set_text + "%s Goal #%d /%d" kind (succ k) n + method private update_statusbar = match state with | Empty -> @@ -442,20 +461,27 @@ class pane (gprovers : GuiConfig.provers) = help#set_enabled (match state with Proof _ -> not helpmode | _ -> false) ; match ProofEngine.status proof with - | `Main -> + | `Unproved -> icon#set_icon GuiProver.ko_status ; next#set_enabled false ; prev#set_enabled false ; cancel#set_enabled false ; forward#set_enabled false ; status#set_text "Non Proved Property" ; - | `Invalid -> + | `Invalid | `StillResist 0 -> icon#set_icon GuiProver.wg_status ; next#set_enabled false ; prev#set_enabled false ; cancel#set_enabled false ; forward#set_enabled false ; status#set_text "Invalid Smoke-test" ; + | `Passed -> + icon#set_icon GuiProver.smoke_status ; + next#set_enabled false ; + prev#set_enabled false ; + cancel#set_enabled false ; + forward#set_enabled false ; + status#set_text "Passed Smoke Test" ; | `Proved -> icon#set_icon GuiProver.ok_status ; next#set_enabled false ; @@ -474,23 +500,12 @@ class pane (gprovers : GuiConfig.provers) = icon#set_icon GuiProver.ko_status ; forward#set_enabled nofork ; cancel#set_enabled nofork ; - match ProofEngine.current proof with - | `Main | `Internal _ -> - next#set_enabled false ; - prev#set_enabled false ; - if n = 1 then - Pretty_utils.ksfprintf status#set_text "One Pending Goal" - else - Pretty_utils.ksfprintf status#set_text "%d Pending Goals" n - | `Leaf(k,_) -> - prev#set_enabled (0 < k) ; - next#set_enabled (k+1 < n) ; - if k = 0 && n = 1 then - Pretty_utils.ksfprintf status#set_text - "Last Pending Goal" - else - Pretty_utils.ksfprintf status#set_text - "%d/%d Pending Goals" (succ k) n + self#update_pending "Pending" proof n ; + | `StillResist n -> + icon#set_icon GuiProver.smoke_status ; + forward#set_enabled nofork ; + cancel#set_enabled nofork ; + self#update_pending "Smoking" proof n ; end method private update_tacticbar = diff --git a/src/plugins/wp/GuiProver.ml b/src/plugins/wp/GuiProver.ml index 7a37b05f131..e89389d6cdf 100644 --- a/src/plugins/wp/GuiProver.ml +++ b/src/plugins/wp/GuiProver.ml @@ -24,6 +24,7 @@ let no_status = `Share "theme/default/never_tried.png" let ok_status = `Share "theme/default/surely_valid.png" let ko_status = `Share "theme/default/unknown.png" let wg_status = `Share "theme/default/surely_invalid.png" +let smoke_status = `Share "theme/default/valid_under_hyp.png" let filter = function | VCS.Qed | VCS.Tactical | VCS.NativeCoq -> false diff --git a/src/plugins/wp/GuiProver.mli b/src/plugins/wp/GuiProver.mli index cd297753bb8..6cc37b2e8be 100644 --- a/src/plugins/wp/GuiProver.mli +++ b/src/plugins/wp/GuiProver.mli @@ -26,6 +26,7 @@ val no_status : icon val ok_status : icon val ko_status : icon val wg_status : icon +val smoke_status : icon val filter : VCS.prover -> bool diff --git a/src/plugins/wp/ProofEngine.ml b/src/plugins/wp/ProofEngine.ml index cc42ed6f12e..714b1709980 100644 --- a/src/plugins/wp/ProofEngine.ml +++ b/src/plugins/wp/ProofEngine.ml @@ -205,18 +205,28 @@ let children n = (* --- State & Status --- *) (* -------------------------------------------------------------------------- *) -type status = [ `Main | `Proved | `Invalid | `Pending of int ] +type status = [ + | `Unproved (* proof obligation not proved *) + | `Proved (* proof obligation is proved *) + | `Pending of int (* proof is pending *) + | `Passed (* smoke test is passed (PO is not proved) *) + | `Invalid (* smoke test has failed (PO is proved) *) + | `StillResist of int (* proof is pending *) +] let status t : status = match t.root with | None -> if Wpo.is_proved t.main then if Wpo.is_smoke_test t.main then `Invalid else `Proved - else `Main + else if Wpo.is_smoke_test t.main then `Passed else `Unproved | Some root -> match root.script with - | Opened | Script _ -> `Main - | Tactic _ -> `Pending (pending root) + | Opened | Script _ -> + if Wpo.is_smoke_test t.main then `Passed else `Unproved + | Tactic _ -> + let n = pending root in + if Wpo.is_smoke_test t.main then `StillResist n else `Pending n (* -------------------------------------------------------------------------- *) (* --- Navigation --- *) diff --git a/src/plugins/wp/ProofEngine.mli b/src/plugins/wp/ProofEngine.mli index 764505da084..764064f9df9 100644 --- a/src/plugins/wp/ProofEngine.mli +++ b/src/plugins/wp/ProofEngine.mli @@ -35,7 +35,15 @@ val validate : ?incomplete:bool -> tree -> unit (** Leaves are numbered from 0 to n-1 *) -type status = [ `Main | `Invalid | `Proved | `Pending of int ] + +type status = [ + | `Unproved (** proof obligation not proved *) + | `Proved (** proof obligation is proved *) + | `Pending of int (** proof is pending *) + | `Passed (** smoke test is passed (PO is not proved) *) + | `Invalid (** smoke test has failed (PO is proved) *) + | `StillResist of int (** proof is pending *) +] type current = [ `Main | `Internal of node | `Leaf of int * node ] type position = [ `Main | `Node of node | `Leaf of int ] diff --git a/src/plugins/wp/ProverScript.ml b/src/plugins/wp/ProverScript.ml index 9458666cfc6..e9b4d301ca5 100644 --- a/src/plugins/wp/ProverScript.ml +++ b/src/plugins/wp/ProverScript.ml @@ -165,9 +165,10 @@ struct Prover.prove wpo ?config ~mode:VCS.BatchMode ~progress:env.progress prover - let pending env = + let backtracking env = match ProofEngine.status env.tree with - | `Main | `Invalid | `Proved -> 0 | `Pending n -> n + | `Unproved | `Invalid | `Proved | `Passed -> 0 + | `Pending n | `StillResist n -> n let setup_backtrack env node depth = if env.backtrack > 0 then @@ -181,11 +182,11 @@ struct bk_node = node ; bk_best = (-1) ; bk_depth = depth ; - bk_pending = pending env ; + bk_pending = backtracking env ; } let search env node ~depth = - if env.auto <> [] && depth < env.depth && pending env < env.width + if env.auto <> [] && depth < env.depth && backtracking env < env.width then match ProverSearch.search env.tree ~anchor:node env.auto with | None -> None @@ -197,7 +198,7 @@ struct match env.backtracking with | None -> None | Some point -> - let n = pending env in + let n = backtracking env in let anchor = point.bk_node in if n < point.bk_pending then begin @@ -300,7 +301,7 @@ and autosearch env ~depth node : bool Task.task = and autofork env ~depth fork = let _,children = ProofEngine.commit fork in - let pending = Env.pending env in + let pending = Env.backtracking env in if pending > 0 then begin Env.progress env (Printf.sprintf "Auto %d" pending) ; diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index eaee55511cf..be2a14f0550 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -162,13 +162,6 @@ let is_proved pf = let is_invalid pf = pf.invalid && not (is_proved pf) -let status pf = - try - Array.iter (function Complete -> raise Exit | _ -> ()) pf.proved ; - `Proved - with Exit -> - if pf.invalid then `Invalid else `Partial - (* -------------------------------------------------------------------------- *) (* --- PID for Functions --- *) (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/wpAnnot.mli b/src/plugins/wp/wpAnnot.mli index b08aa379c68..fdd66f1de80 100644 --- a/src/plugins/wp/wpAnnot.mli +++ b/src/plugins/wp/wpAnnot.mli @@ -49,8 +49,6 @@ val is_proved : proof -> bool val is_invalid : proof -> bool (** whether an invalid proof result has been registered or not *) -val status : proof -> [ `Proved | `Invalid | `Partial ] - val target : proof -> Property.t val dependencies : proof -> Property.t list -- GitLab From aa11a58f731ce21bed36971612081d3d16d153d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 12:38:19 +0200 Subject: [PATCH 143/255] [wp] fixed incorrect count of proved goals --- src/plugins/wp/register.ml | 19 +++++++++---------- .../wp_gallery/oracle_qualif/find.res.oracle | 2 +- .../frama_c_exo1_solved.res.oracle | 2 +- .../frama_c_exo2_solved.res.oracle | 2 +- .../frama_c_exo3_solved.old.res.oracle | 2 +- .../frama_c_exo3_solved.old.v2.res.oracle | 2 +- .../frama_c_exo3_solved.simplified.res.oracle | 2 +- .../frama_c_hashtbl_solved.res.oracle | 2 +- src/plugins/wp/wpo.ml | 7 ++++++- src/plugins/wp/wpo.mli | 3 ++- 10 files changed, 24 insertions(+), 19 deletions(-) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index c350f0f5779..d823a302a9c 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -217,21 +217,19 @@ module GOALS = Wpo.S.Set let scheduled = ref 0 let exercised = ref 0 -let spy = ref false let session = ref GOALS.empty -let proved = ref GOALS.empty let provers = ref PM.empty -let begin_session () = session := GOALS.empty ; spy := true +let begin_session () = session := GOALS.empty let clear_session () = session := GOALS.empty -let end_session () = session := GOALS.empty ; spy := false +let end_session () = session := GOALS.empty let iter_session f = GOALS.iter f !session let clear_scheduled () = begin scheduled := 0 ; exercised := 0 ; - proved := GOALS.empty ; + session := GOALS.empty ; provers := PM.empty ; end @@ -268,7 +266,7 @@ let do_list_scheduled iter_on_goals = (fun goal -> begin incr scheduled ; - if !spy then session := GOALS.add goal !session ; + session := GOALS.add goal !session ; end) ; match !scheduled with | 0 -> Wp_parameters.warning ~current:false "No goal generated" @@ -353,8 +351,6 @@ let do_wpo_stat goal prover res = | Failed | Invalid -> s.failed <- succ s.failed | Valid -> - if not (Wpo.is_tactic goal) then - proved := GOALS.add goal !proved ; s.proved <- succ s.proved ; add_step s res.prover_steps ; add_time s res.prover_time ; @@ -510,12 +506,15 @@ let do_report_scheduled () = else if !scheduled > 0 then begin - let proved = GOALS.cardinal !proved in + let passed = GOALS.fold + (fun g n -> + if Wpo.is_passed g then succ n else n + ) !session 0 in let mode = Cache.get_mode () in if mode <> Cache.NoCache then do_report_cache_usage mode ; Wp_parameters.result "%t" begin fun fmt -> - Format.fprintf fmt "Proved goals: %4d / %d@\n" proved !scheduled ; + Format.fprintf fmt "Proved goals: %4d / %d@\n" passed !scheduled ; Pretty_utils.pp_items ~min:12 ~align:`Left ~title:(fun (prover,_) -> VCS.title_of_prover prover) diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle index c73a41611eb..1211edc2675 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle @@ -103,7 +103,7 @@ [wp] [Qed] Goal typed_iter_ptr_loop_assigns : Valid [wp] [Qed] Goal typed_iter_ptr_loop_variant_decrease : Valid [wp] [Alt-Ergo] Goal typed_iter_ptr_loop_variant_positive : Valid -[wp] Proved goals: 29 / 44 +[wp] Proved goals: 44 / 44 Qed: 0 Alt-Ergo: 29 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle index 6fc6f361576..56115402d69 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle @@ -39,7 +39,7 @@ [wp] [Qed] Goal typed_exo1_assigns : Valid [wp] [Qed] Goal typed_exo1_loop_variant_decrease : Valid [wp] [Qed] Goal typed_exo1_loop_variant_positive : Valid -[wp] Proved goals: 9 / 15 +[wp] Proved goals: 15 / 15 Qed: 0 Alt-Ergo: 9 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle index bd27fc93329..c79730c154b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle @@ -59,7 +59,7 @@ [wp] [Qed] Goal typed_max_subarray_assigns : Valid [wp] [Qed] Goal typed_max_subarray_loop_variant_decrease : Valid [wp] [Qed] Goal typed_max_subarray_loop_variant_positive : Valid -[wp] Proved goals: 14 / 23 +[wp] Proved goals: 23 / 23 Qed: 0 Alt-Ergo: 14 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 56be9acc1db..0e6282073de 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -106,7 +106,7 @@ [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid -[wp] Proved goals: 32 / 50 +[wp] Proved goals: 50 / 50 Qed: 11 Alt-Ergo: 21 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index 0d2cb66d920..e087ce68ecd 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -108,7 +108,7 @@ [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid -[wp] Proved goals: 34 / 51 +[wp] Proved goals: 51 / 51 Qed: 11 Alt-Ergo: 23 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle index af7f5f6418e..8a3de10fe1b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle @@ -75,7 +75,7 @@ [wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid [wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid [wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid -[wp] Proved goals: 19 / 35 +[wp] Proved goals: 35 / 35 Qed: 4 Alt-Ergo: 15 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle index 8e5320587c9..805447286d9 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle @@ -270,7 +270,7 @@ [wp] [Qed] Goal typed_size_ensures : Valid [wp] [Alt-Ergo] Goal typed_size_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_size_assigns : Valid -[wp] Proved goals: 74 / 143 +[wp] Proved goals: 143 / 143 Qed: 16 Script: 1 Alt-Ergo: 57 diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index 1e5cc14b71b..e84e2fec240 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -805,7 +805,6 @@ let is_trivial g = | GoalLemma vc -> VC_Lemma.is_trivial vc | GoalAnnot vc -> VC_Annot.is_trivial vc - let reduce g = match g.po_formula with | GoalLemma vc -> WpContext.on_context (get_context g) VC_Lemma.is_trivial vc @@ -836,6 +835,12 @@ let is_unknown g = List.exists (fun (_,r) -> VCS.is_verdict r && not (VCS.is_valid r)) ( get_results g ) +let is_passed g = + if is_smoke_test g then + not (is_proved g) + else + is_proved g + let get_result = Dynamic.register ~plugin:"Wp" "Wpo.get_result" ~journalize:false (Datatype.func2 WpoType.ty ProverType.ty ResultType.ty) diff --git a/src/plugins/wp/wpo.mli b/src/plugins/wp/wpo.mli index 4c1981c0fa0..fa6d1c337f4 100644 --- a/src/plugins/wp/wpo.mli +++ b/src/plugins/wp/wpo.mli @@ -159,7 +159,8 @@ val get_proof : t -> [`Passed|`Failed|`Unknown] * Property.t val get_target : t -> Property.t val is_trivial : t -> bool (** do not tries simplification, do not check prover results *) val is_proved : t -> bool (** do not tries simplification, check prover results *) -val is_unknown : t -> bool +val is_unknown : t -> bool (** at least one prover returns « Unknown » *) +val is_passed : t -> bool (** proved, or unknown for smoke tests *) val warnings : t -> Warning.t list (** [true] if the result is valid. Dynamically exported. -- GitLab From 9f50229867f2fb91c66b9fafad3074fc0d94408f Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Fri, 5 Jul 2019 19:04:23 +0200 Subject: [PATCH 144/255] Fix issue #636 --- src/kernel_services/ast_printing/printer.ml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/kernel_services/ast_printing/printer.ml b/src/kernel_services/ast_printing/printer.ml index aaaf74c2fd2..fe9b8780169 100644 --- a/src/kernel_services/ast_printing/printer.ml +++ b/src/kernel_services/ast_printing/printer.ml @@ -157,7 +157,11 @@ class printer_with_annot () = object (self) let comments = Globals.get_comments_global glob in Pretty_utils.pp_list ~sep:"@\n" ~suf:"@\n" - (fun fmt s -> Format.fprintf fmt "/* %s */" s) fmt comments + (fun fmt s -> + if not (String.contains s '\n') then + Format.fprintf fmt "// %s" s + else Format.fprintf fmt "/* %s */" s + ) fmt comments end; (* Out of tree global annotations are pretty printed before the first variable declaration of the first function definition. *) @@ -200,8 +204,12 @@ class printer_with_annot () = object (self) let comments = Globals.get_comments_stmt s in if comments <> [] then Pretty_utils.pp_list ~sep:"@\n" ~suf:"@]@\n" - (fun fmt s -> Format.fprintf fmt "@[/* %s */@]" s) - fmt comments + (fun fmt s -> + if not (String.contains s '\n') then + Format.fprintf fmt "@[// %s@]" s + else + Format.fprintf fmt "@[/* %s */@]" s + ) fmt comments end; if verbose || Kernel.is_debug_key_enabled Kernel.dkey_print_sid then Format.fprintf fmt "@[/* sid:%d */@]@\n" s.sid ; -- GitLab From 46bcbb4115c261a662e901f970436ebb6bbf428c Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Fri, 5 Jul 2019 19:19:08 +0200 Subject: [PATCH 145/255] Update des oracles --- tests/cil/oracle/comments.res.oracle | 12 ++++---- tests/misc/oracle/save_comments.res.oracle | 6 ++-- tests/spec/oracle/doxygen.res.oracle | 32 +++++++++++----------- tests/syntax/oracle/bts0916.res.oracle | 22 +++++++-------- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/tests/cil/oracle/comments.res.oracle b/tests/cil/oracle/comments.res.oracle index b35aea80377..a454a5af5cb 100644 --- a/tests/cil/oracle/comments.res.oracle +++ b/tests/cil/oracle/comments.res.oracle @@ -3,21 +3,21 @@ /* run.config OPT: -print -keep-comments */ -/* ABC */ +// ABC void f(void) { return; } -/* ABD/*FOO*/ */ -/* ABC */ +// ABD/*FOO*/ +// ABC /* ABC */ /*@ requires \true; */ void g(void) { /*@ ghost int x = 0; */ - /* ghost_comment */ + // ghost_comment return; } @@ -25,8 +25,8 @@ int bts_2176(void) { int r = 0; int i = 0; - /* comment 1 */ - /* comment 2 */ + // comment 1 + // comment 2 r = 1; i = 0; if (! (i < 10)) goto unrolling_2_loop; diff --git a/tests/misc/oracle/save_comments.res.oracle b/tests/misc/oracle/save_comments.res.oracle index 939609307f2..380ee2e70d1 100644 --- a/tests/misc/oracle/save_comments.res.oracle +++ b/tests/misc/oracle/save_comments.res.oracle @@ -8,7 +8,7 @@ Printing default project first time: int f(void) { int x = 0; - /* Hello, I'm the f function */ + // Hello, I'm the f function return x; } @@ -22,7 +22,7 @@ Printing default project second time: int f(void) { int x = 0; - /* Hello, I'm the f function */ + // Hello, I'm the f function return x; } @@ -42,7 +42,7 @@ Printing saved project: int f(void) { int x = 0; - /* Hello, I'm the f function */ + // Hello, I'm the f function return x; } diff --git a/tests/spec/oracle/doxygen.res.oracle b/tests/spec/oracle/doxygen.res.oracle index 7fc66fb4e1d..8b367915d98 100644 --- a/tests/spec/oracle/doxygen.res.oracle +++ b/tests/spec/oracle/doxygen.res.oracle @@ -3,19 +3,19 @@ /* run.config OPT: -keep-comments -print -then -pp-annot */ -/* @{ */ -/* @{ Bla */ -/* @{ */ -/* @{ Blu */ +// @{ +// @{ Bla +// @{ +// @{ Blu void doxygen_group(void) { return; } -/* @} Bli */ -/* @} */ -/* @} */ -/* @} Bly */ +// @} Bli +// @} +// @} +// @} Bly void main(); @@ -24,19 +24,19 @@ void main(); /* run.config OPT: -keep-comments -print -then -pp-annot */ -/* @{ */ -/* @{ Bla */ -/* @{ */ -/* @{ Blu */ +// @{ +// @{ Bla +// @{ +// @{ Blu void doxygen_group(void) { return; } -/* @} Bli */ -/* @} */ -/* @} */ -/* @} Bly */ +// @} Bli +// @} +// @} +// @} Bly void main(); diff --git a/tests/syntax/oracle/bts0916.res.oracle b/tests/syntax/oracle/bts0916.res.oracle index 4d5b6024081..083eebb32b1 100644 --- a/tests/syntax/oracle/bts0916.res.oracle +++ b/tests/syntax/oracle/bts0916.res.oracle @@ -3,25 +3,25 @@ /* run.config STDOPT: +"-keep-comments" */ -/* Use frama-c with option -keep-comments */ +// Use frama-c with option -keep-comments void main(void) { int port = 10; - /* ( port & 0x80 ) == 0 ) */ - /* wait for pin1 - Compliant */ - /* wait for pin2 */ - /* Not compliant/*, comment before ; */ - /* wait for pin3 - Not compliant, no white-space char after ; */ + // ( port & 0x80 ) == 0 ) + // wait for pin1 - Compliant + // wait for pin2 + // Not compliant/*, comment before ; + // wait for pin3 - Not compliant, no white-space char after ; while (1) { int tmp; tmp = port; port --; ; - if (! (tmp > 0)) /* ( port & 0x80 ) == 0 ) */ - /* wait for pin1 - Compliant */ - /* wait for pin2 */ - /* Not compliant/*, comment before ; */ - /* wait for pin3 - Not compliant, no white-space char after ; */ + if (! (tmp > 0)) // ( port & 0x80 ) == 0 ) + // wait for pin1 - Compliant + // wait for pin2 + // Not compliant/*, comment before ; + // wait for pin3 - Not compliant, no white-space char after ; break; } return; -- GitLab From 23d62745bc72bdafcbad835e5eb55127dce54dc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 14:56:33 +0200 Subject: [PATCH 146/255] [wp] fix simplification callback in prover script --- src/plugins/wp/ProverScript.ml | 23 +++++++++++++---------- src/plugins/wp/prover.mli | 5 +++++ src/plugins/wp/wpo.ml | 3 +-- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/src/plugins/wp/ProverScript.ml b/src/plugins/wp/ProverScript.ml index e9b4d301ca5..2a96d02786d 100644 --- a/src/plugins/wp/ProverScript.ml +++ b/src/plugins/wp/ProverScript.ml @@ -392,16 +392,19 @@ let task ~depth ~width ~backtrack ~auto ~start ~progress ~result ~success wpo = begin fun () -> - start wpo ; - let json = ProofSession.load wpo in - let script = Priority.sort (ProofScript.decode json) in - let tree = ProofEngine.proof ~main:wpo in - let env = Env.make tree - ~valid ~failed ~provers - ~depth ~width ~backtrack ~auto - ~progress ~result ~success in - crawl env (process env) None script >>? - (fun _ -> ProofEngine.forward tree) ; + Prover.simplify ~start ~result wpo >>= fun succeed -> + if succeed + then Task.return () + else + let json = ProofSession.load wpo in + let script = Priority.sort (ProofScript.decode json) in + let tree = ProofEngine.proof ~main:wpo in + let env = Env.make tree + ~valid ~failed ~provers + ~depth ~width ~backtrack ~auto + ~progress ~result ~success in + crawl env (process env) None script >>? + (fun _ -> ProofEngine.forward tree) ; end (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/prover.mli b/src/plugins/wp/prover.mli index 6a2711c2704..32e1ca6ff6a 100644 --- a/src/plugins/wp/prover.mli +++ b/src/plugins/wp/prover.mli @@ -26,6 +26,11 @@ open VCS (* --- Prover Implementation against Task API --- *) (* -------------------------------------------------------------------------- *) +val simplify : + ?start:(Wpo.t -> unit) -> + ?result:(Wpo.t -> prover -> result -> unit) -> + Wpo.t -> bool Task.task + val prove : Wpo.t -> ?config:config -> ?mode:mode -> diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index e84e2fec240..867d238326d 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -814,8 +814,7 @@ let resolve g = let valid = reduce g in if valid then let result = VCS.result ~solver:(qed_time g) VCS.Valid in - ignore (set_result g VCS.Qed result) ; - true + ( set_result g VCS.Qed result ; true ) else false let compute g = -- GitLab From 8054cf489e7b1e6aa5b9b4ac178d8e1b1995714d Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Wed, 16 Sep 2020 15:43:00 +0200 Subject: [PATCH 147/255] Add \r --- src/kernel_services/ast_printing/printer.ml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/kernel_services/ast_printing/printer.ml b/src/kernel_services/ast_printing/printer.ml index fe9b8780169..7735444cd57 100644 --- a/src/kernel_services/ast_printing/printer.ml +++ b/src/kernel_services/ast_printing/printer.ml @@ -158,9 +158,10 @@ class printer_with_annot () = object (self) Pretty_utils.pp_list ~sep:"@\n" ~suf:"@\n" (fun fmt s -> - if not (String.contains s '\n') then - Format.fprintf fmt "// %s" s - else Format.fprintf fmt "/* %s */" s + if String.contains s '\n' || String.contains s '\r' then + Format.fprintf fmt "/*%s*/" s + else + Format.fprintf fmt "//%s" s ) fmt comments end; (* Out of tree global annotations are pretty printed before the first @@ -205,10 +206,10 @@ class printer_with_annot () = object (self) if comments <> [] then Pretty_utils.pp_list ~sep:"@\n" ~suf:"@]@\n" (fun fmt s -> - if not (String.contains s '\n') then - Format.fprintf fmt "@[// %s@]" s + if String.contains s '\n' || String.contains s '\r' then + Format.fprintf fmt "@[/*%s*/@]" s else - Format.fprintf fmt "@[/* %s */@]" s + Format.fprintf fmt "@[//%s@]" s ) fmt comments end; if verbose || Kernel.is_debug_key_enabled Kernel.dkey_print_sid then -- GitLab From c78e6258e54e9c882bbb0a12ed075bccab775c71 Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Wed, 16 Sep 2020 15:43:17 +0200 Subject: [PATCH 148/255] Update oracles --- tests/cil/comments.c | 4 +++- tests/cil/oracle/comments.res.oracle | 22 ++++++++++++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/tests/cil/comments.c b/tests/cil/comments.c index ca92ebad7fb..ed0252e15d2 100644 --- a/tests/cil/comments.c +++ b/tests/cil/comments.c @@ -15,12 +15,14 @@ void g() { int bts_2176() { int r=0; int i=0; - /* comment 1 */ + /* comment + 1 */ r = /* comment 2 */ 1; //@ loop pragma UNROLL 10; for(i=0; i<10; i++) { r += 1; } + /* comment 3 */ return r; } diff --git a/tests/cil/oracle/comments.res.oracle b/tests/cil/oracle/comments.res.oracle index a454a5af5cb..2d7bbd26146 100644 --- a/tests/cil/oracle/comments.res.oracle +++ b/tests/cil/oracle/comments.res.oracle @@ -1,23 +1,23 @@ [kernel] Parsing tests/cil/comments.c (with preprocessing) /* Generated by Frama-C */ -/* run.config +/* run.config OPT: -print -keep-comments - */ -// ABC +*/ +// ABC void f(void) { return; } -// ABD/*FOO*/ -// ABC -/* ABC - */ +//ABD/*FOO*/ +//ABC +/*ABC + */ /*@ requires \true; */ void g(void) { /*@ ghost int x = 0; */ - // ghost_comment + // ghost_comment return; } @@ -25,8 +25,9 @@ int bts_2176(void) { int r = 0; int i = 0; - // comment 1 - // comment 2 + /* comment + 1 */ + // comment 2 r = 1; i = 0; if (! (i < 10)) goto unrolling_2_loop; @@ -76,6 +77,7 @@ int bts_2176(void) i ++; } unrolling_2_loop: ; + // comment 3 return r; } -- GitLab From aa73ade52060d8a2a1c4ee999703c8225ca87fd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 16:21:19 +0200 Subject: [PATCH 149/255] [wp] cleaning goal iterations --- src/plugins/wp/ProverScript.ml | 3 +- src/plugins/wp/VC.ml | 2 +- src/plugins/wp/register.ml | 146 +++--------- .../wp/oracle_qualif/cfg_loop.res.oracle | 6 +- .../stmtcompiler_test.res.oracle | 30 +-- .../wp/oracle_qualif/wp_behav.0.res.oracle | 42 ++-- .../wp/oracle_qualif/wp_call_pre.res.oracle | 8 +- .../wp/oracle_qualif/wp_strategy.res.oracle | 16 +- .../wp_acsl/oracle/float_const.res.oracle | 29 ++- .../assigned_initialized_memtyped.res.oracle | 54 ++--- .../assigned_initialized_memvar.res.oracle | 28 +-- ...signed_not_initialized_memtyped.res.oracle | 8 +- ...assigned_not_initialized_memvar.res.oracle | 2 +- .../wp_acsl/oracle_qualif/bitwise.res.oracle | 14 +- .../wp_acsl/oracle_qualif/equal.res.oracle | 6 +- .../oracle_qualif/float_compare.0.res.oracle | 6 +- .../oracle_qualif/float_compare.1.res.oracle | 6 +- .../oracle_qualif/float_const.res.oracle | 8 +- .../generalized_checks.res.oracle | 12 +- .../oracle_qualif/init_label.res.oracle | 6 +- .../oracle_qualif/init_value.0.res.oracle | 8 +- .../oracle_qualif/init_value.1.res.oracle | 18 +- .../initialized_memtyped.res.oracle | 10 +- .../oracle_qualif/invalid_pointer.res.oracle | 18 +- .../oracle_qualif/pointer.0.res.oracle | 8 +- .../oracle_qualif/pointer.1.res.oracle | 8 +- .../oracle_qualif/precedence.0.res.oracle | 40 ++-- .../oracle_qualif/precedence.1.res.oracle | 28 +-- .../wp_acsl/oracle_qualif/reads.0.res.oracle | 4 +- .../wp_acsl/oracle_qualif/reads.1.res.oracle | 2 +- .../oracle_qualif/simpl_is_type.res.oracle | 6 +- .../oracle_qualif/unit_bit_test.res.oracle | 4 +- .../tests/wp_bts/oracle/bts_2110.res.oracle | 26 +-- .../wp_bts/oracle_qualif/bts0708.res.oracle | 7 +- .../wp_bts/oracle_qualif/bts_1360.res.oracle | 10 +- .../wp_bts/oracle_qualif/bts_1462.res.oracle | 8 +- .../oracle_qualif/bts_1828.0.res.oracle | 2 +- .../oracle_qualif/bts_1828.1.res.oracle | 2 +- .../oracle_qualif/issue_143.0.res.oracle | 2 +- .../oracle_qualif/issue_143.1.res.oracle | 2 +- .../oracle_qualif/issue_143.2.res.oracle | 2 +- .../oracle_qualif/issue_143.3.res.oracle | 4 +- .../wp_bts/oracle_qualif/issue_825.res.oracle | 4 +- .../wp_bts/oracle_qualif/issue_837.res.oracle | 8 +- .../tests/wp_gallery/oracle/find.res.oracle | 4 +- .../frama_c_exo3_solved.simplified.res.oracle | 2 +- .../oracle/frama_c_hashtbl_solved.res.oracle | 114 +++++----- .../oracle/loop-statement.res.oracle | 8 +- .../wp_gallery/oracle_qualif/find.res.oracle | 51 +---- .../frama_c_exo1_solved.res.oracle | 16 +- .../frama_c_exo2_solved.res.oracle | 28 +-- .../frama_c_exo3_solved.old.res.oracle | 40 +--- .../frama_c_exo3_solved.old.v2.res.oracle | 41 +--- .../frama_c_exo3_solved.simplified.res.oracle | 34 +-- .../frama_c_hashtbl_solved.res.oracle | 215 +++++------------- .../oracle_qualif/loop-statement.res.oracle | 8 +- .../wp_hoare/oracle_qualif/byref.0.res.oracle | 12 +- .../wp_hoare/oracle_qualif/byref.1.res.oracle | 12 +- .../oracle_qualif/dispatch_var.res.oracle | 78 +++---- .../oracle_qualif/dispatch_var2.0.res.oracle | 28 +-- .../oracle_qualif/dispatch_var2.1.res.oracle | 28 +-- .../oracle_qualif/reference.res.oracle | 14 +- .../reference_and_struct.res.oracle | 38 ++-- .../oracle_qualif/reference_array.res.oracle | 32 +-- .../tests/wp_plugin/oracle/model.res.oracle | 33 +-- .../wp_plugin/oracle_qualif/bool.res.oracle | 10 +- .../wp_plugin/oracle_qualif/doomed.res.oracle | 10 +- .../oracle_qualif/doomed_call.0.res.oracle | 4 +- .../oracle_qualif/doomed_call.1.res.oracle | 16 +- .../oracle_qualif/doomed_call.2.res.oracle | 16 +- .../oracle_qualif/doomed_dead.0.res.oracle | 24 +- .../oracle_qualif/doomed_dead.1.res.oracle | 26 +-- .../oracle_qualif/dynamic.res.oracle | 58 ++--- .../wp_plugin/oracle_qualif/frame.res.oracle | 4 +- .../wp_plugin/oracle_qualif/model.res.oracle | 38 +--- .../wp_plugin/oracle_qualif/repeat.res.oracle | 38 ++-- .../oracle_qualif/sequence.0.res.oracle | 38 ++-- .../oracle_qualif/sequence.1.res.oracle | 30 +-- .../wp_plugin/oracle_qualif/stmt.res.oracle | 4 +- .../wp_plugin/oracle_qualif/struct.res.oracle | 12 +- .../wp_store/oracle_qualif/struct.res.oracle | 4 +- .../oracle_qualif/cast_fits.res.oracle | 2 +- .../oracle_qualif/unit_alloc.0.res.oracle | 6 +- .../oracle_qualif/unit_alloc.1.res.oracle | 6 +- .../oracle_qualif/unit_bitwise.0.res.oracle | 54 ++--- .../oracle_qualif/unit_bitwise.1.res.oracle | 2 +- .../oracle_qualif/unit_lemma.res.oracle | 6 +- .../oracle_qualif/unit_local.0.res.oracle | 2 +- .../oracle_qualif/unit_local.1.res.oracle | 2 +- .../oracle_qualif/unit_tset.res.oracle | 2 +- .../oracle_qualif/user_bitwise.0.res.oracle | 8 +- .../oracle_qualif/user_collect.res.oracle | 30 +-- .../oracle_qualif/user_init.0.res.oracle | 44 ++-- .../oracle_qualif/user_init.1.res.oracle | 22 +- .../oracle_qualif/user_init.2.res.oracle | 16 +- .../oracle_qualif/user_swap.0.res.oracle | 6 +- .../oracle_qualif/user_swap.1.res.oracle | 6 +- 97 files changed, 810 insertions(+), 1235 deletions(-) diff --git a/src/plugins/wp/ProverScript.ml b/src/plugins/wp/ProverScript.ml index 2a96d02786d..7a264f1e5f5 100644 --- a/src/plugins/wp/ProverScript.ml +++ b/src/plugins/wp/ProverScript.ml @@ -394,7 +394,8 @@ let task begin fun () -> Prover.simplify ~start ~result wpo >>= fun succeed -> if succeed - then Task.return () + then + ( success wpo (Some VCS.Qed) ; Task.return ()) else let json = ProofSession.load wpo in let script = Priority.sort (ProofScript.decode json) in diff --git a/src/plugins/wp/VC.ml b/src/plugins/wp/VC.ml index 2f2241b5a01..65a60848639 100644 --- a/src/plugins/wp/VC.ml +++ b/src/plugins/wp/VC.ml @@ -97,6 +97,6 @@ let spawn = Prover.spawn ~delayed:true let server = ProverTask.server let command ?provers ?tip vcs = - Register.do_wp_proofs_iter ?provers ?tip (fun f -> Bag.iter f vcs) + Register.do_wp_proofs ?provers ?tip vcs (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index d823a302a9c..07bbf0baeef 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -220,11 +220,6 @@ let exercised = ref 0 let session = ref GOALS.empty let provers = ref PM.empty -let begin_session () = session := GOALS.empty -let clear_session () = session := GOALS.empty -let end_session () = session := GOALS.empty -let iter_session f = GOALS.iter f !session - let clear_scheduled () = begin scheduled := 0 ; @@ -260,14 +255,15 @@ let add_time s t = if t > s.u_time then s.u_time <- t ; end -let do_list_scheduled iter_on_goals = +let do_list_scheduled goals = clear_scheduled () ; - iter_on_goals + Bag.iter (fun goal -> begin incr scheduled ; session := GOALS.add goal !session ; - end) ; + end) + goals ; match !scheduled with | 0 -> Wp_parameters.warning ~current:false "No goal generated" | 1 -> Wp_parameters.feedback "1 goal scheduled" @@ -544,12 +540,12 @@ type mode = { mutable provers : (VCS.mode * VCS.prover) list ; } -let spawn_wp_proofs_iter ~mode iter_on_goals = +let spawn_wp_proofs ~mode goals = if mode.tactical || mode.provers<>[] then begin let server = ProverTask.server () in ignore (Wp_parameters.Share.get_dir "."); (* To prevent further errors *) - iter_on_goals + Bag.iter (fun goal -> if mode.tactical && not (Wpo.is_trivial goal) @@ -575,7 +571,7 @@ let spawn_wp_proofs_iter ~mode iter_on_goals = ~result:do_wpo_result ~success:do_wpo_success mode.provers - ) ; + ) goals ; Task.on_server_wait server do_wpo_wait ; Task.launch server end @@ -642,13 +638,13 @@ let compute_auto ~mode = if mode.auto <> [] then mode.tactical <- true ; end -let do_update_session mode iter = +let do_update_session mode goals = if mode.update then begin let removed = ref 0 in let updated = ref 0 in let invalid = ref 0 in - iter + Bag.iter begin fun goal -> let results = Wpo.get_results goal in let autoproof (p,r) = @@ -679,7 +675,7 @@ let do_update_session mode iter = ProofSession.save goal (ProofScript.encode scripts) end end - end ; + end goals ; let r = !removed in let u = !updated in let f = !invalid in @@ -696,7 +692,7 @@ let do_update_session mode iter = Wp_parameters.result "Updated session with %d new script%s to complete." f s ); end -let do_wp_proofs_iter ?provers ?tip iter = +let do_wp_proofs ?provers ?tip (goals : Wpo.t Bag.t) = let mode = default_mode () in compute_provers ~mode ; compute_auto ~mode ; @@ -709,21 +705,17 @@ let do_wp_proofs_iter ?provers ?tip iter = end ; let spawned = mode.tactical || mode.provers <> [] in begin - if spawned then do_list_scheduled iter ; - spawn_wp_proofs_iter ~mode iter ; + if spawned then do_list_scheduled goals ; + spawn_wp_proofs ~mode goals ; if spawned then begin do_list_scheduled_result () ; - do_update_session mode iter ; + do_update_session mode goals ; end else if not (Wp_parameters.Print.get ()) then - iter do_wpo_display + Bag.iter do_wpo_display goals end -let do_wp_proofs () = do_wp_proofs_iter (fun f -> Wpo.iter ~on_goal:f ()) - -let do_wp_proofs_for goals = do_wp_proofs_iter (fun f -> Bag.iter f goals) - (* registered at frama-c (normal) exit *) let do_cache_cleanup () = begin @@ -735,38 +727,6 @@ let do_cache_cleanup () = Wp_parameters.result "[Cache] removed:%d" removed end -(* ------------------------------------------------------------------------ *) -(* --- Secondary Entry Points --- *) -(* ------------------------------------------------------------------------ *) - -(* Deprecated entry point in Dynamic. *) - -let deprecated_wp_compute kf bhv ipopt = - let model = computer () in - let goals = - match ipopt with - | None -> Generator.compute_kf model ?kf ~bhv () - | Some ip -> Generator.compute_ip model ip - in do_wp_proofs_for goals - -let deprecated_wp_compute_kf kf bhv prop = - let model = computer () in - do_wp_proofs_for (Generator.compute_kf model ?kf ~bhv ~prop ()) - - -let deprecated_wp_compute_ip ip = - Wp_parameters.warning ~once:true "Dynamic 'wp_compute_ip' is now deprecated." ; - let model = computer () in - do_wp_proofs_for (Generator.compute_ip model ip) - -let deprecated_wp_compute_call stmt = - Wp_parameters.warning ~once:true "Dynamic 'wp_compute_ip' is now deprecated." ; - do_wp_proofs_for (Generator.compute_call (computer ()) stmt) - -let deprecated_wp_clear () = - Wp_parameters.warning ~once:true "Dynamic 'wp_compute_ip' is now deprecated." ; - Wpo.clear () - (* ------------------------------------------------------------------------ *) (* --- Command-line Entry Points --- *) (* ------------------------------------------------------------------------ *) @@ -804,22 +764,18 @@ let cmdline_run () = if Wp_parameters.CachePrint.get () then Kernel.feedback "Cache directory: %s" (Cache.get_dir ()) ; let fct = Wp_parameters.get_wp () in - match fct with - | Wp_parameters.Fct_none -> () - | Wp_parameters.Fct_all -> - begin - ignore (wp_main fct); - do_wp_proofs (); - do_wp_print (); - do_wp_report (); - end - | _ -> + if fct <> Wp_parameters.Fct_none then + begin + let goals = wp_main fct in + do_wp_proofs goals ; begin - let goals = wp_main fct in - do_wp_proofs_for goals ; - do_wp_print_for goals ; - do_wp_report () ; - end + if fct <> Wp_parameters.Fct_all then + do_wp_print_for goals + else + do_wp_print () ; + end ; + do_wp_report () ; + end (* ------------------------------------------------------------------------ *) (* --- Register external functions --- *) @@ -836,56 +792,6 @@ let register name ty code = (fun x -> deprecated name ; code x) in () -(* DEPRECATED *) -let () = - let module OLS = Datatype.List(Datatype.String) in - let module OKF = Datatype.Option(Kernel_function) in - let module OP = Datatype.Option(Property) in - register "wp_compute" - (Datatype.func3 OKF.ty OLS.ty OP.ty Datatype.unit) - deprecated_wp_compute - -let () = - let module OKF = Datatype.Option(Kernel_function) in - let module OLS = Datatype.List(Datatype.String) in - register "wp_compute_kf" - (Datatype.func3 OKF.ty OLS.ty OLS.ty Datatype.unit) - deprecated_wp_compute_kf - -let () = - register "wp_compute_ip" - (Datatype.func Property.ty Datatype.unit) - deprecated_wp_compute_ip - -let () = - register "wp_compute_call" - (Datatype.func Cil_datatype.Stmt.ty Datatype.unit) - deprecated_wp_compute_call - -let () = - register "wp_clear" - (Datatype.func Datatype.unit Datatype.unit) - deprecated_wp_clear - -let run = Dynamic.register ~plugin:"Wp" "run" - (Datatype.func Datatype.unit Datatype.unit) - ~journalize:true - cmdline_run - -let () = - let open Datatype in - begin - let t_job = func Unit.ty Unit.ty in - let t_iter = func (func Wpo.S.ty Unit.ty) Unit.ty in - let register name ty f = - ignore (Dynamic.register name ty ~plugin:"Wp" ~journalize:false f) - in - register "wp_begin_session" t_job begin_session ; - register "wp_end_session" t_job end_session ; - register "wp_clear_session" t_job clear_session ; - register "wp_iter_session" t_iter iter_session ; - end - (* ------------------------------------------------------------------------ *) (* --- Tracing WP Invocation --- *) (* ------------------------------------------------------------------------ *) diff --git a/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle index 783f051c009..caf4d8a81d2 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle @@ -4,9 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 15 goals scheduled -[wp] [Qed] Goal typed_loop_continue_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_loop_continue_loop_invariant_established : Valid -[wp] [Qed] Goal typed_loop_continue_loop_assigns : Valid [wp] [Qed] Goal typed_loop_switch_loop_invariant_preserved_part1 : Valid [wp] [Qed] Goal typed_loop_switch_loop_invariant_preserved_part2 : Valid [wp] [Qed] Goal typed_loop_switch_loop_invariant_preserved_part3 : Valid @@ -19,6 +16,9 @@ [wp] [Qed] Goal typed_loop_switch_loop_assigns_part2 : Valid [wp] [Qed] Goal typed_loop_switch_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_loop_switch_loop_assigns_part4 : Valid +[wp] [Qed] Goal typed_loop_continue_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_loop_continue_loop_invariant_established : Valid +[wp] [Qed] Goal typed_loop_continue_loop_assigns : Valid [wp] Proved goals: 15 / 15 Qed: 15 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle index 6c7bce3b389..3442ca76735 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle @@ -10,26 +10,17 @@ [wp] tests/wp/stmtcompiler_test.i:81: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 27 goals scheduled -[wp] [Qed] Goal typed_behavior2_assert : Valid -[wp] [Qed] Goal typed_behavior3_assert : Valid -[wp] [Qed] Goal typed_behavior4_assert : Valid -[wp] [Alt-Ergo] Goal typed_behavior5_assert_bad : Unsuccess -[wp] [Qed] Goal typed_compare_assert : Valid [wp] [Qed] Goal typed_empty_assert : Valid -[wp] [Alt-Ergo] Goal typed_if_assert_assert : Valid -[wp] [Alt-Ergo] Goal typed_if_assert_assert_2 : Unsuccess -[wp] [Qed] Goal typed_if_assert_assert_3 : Valid -[wp] [Alt-Ergo] Goal typed_if_assert_assert_missing_return : Unsuccess -[wp] [Qed] Goal typed_main_assert : Valid -[wp] [Qed] Goal typed_main_assigns_global_assert : Valid -[wp] [Qed] Goal typed_main_assigns_global_assert_2 : Valid -[wp] [Alt-Ergo] Goal typed_main_assigns_global_assert_bad : Unsuccess -[wp] [Qed] Goal typed_main_ensures_result_assert : Valid -[wp] [Alt-Ergo] Goal typed_not_main_assert_bad : Unsuccess [wp] [Qed] Goal typed_one_assign_assert : Valid [wp] [Qed] Goal typed_one_if_assert : Valid [wp] [Qed] Goal typed_some_seq_assert : Valid [wp] [Qed] Goal typed_some_seq_assert_2 : Valid +[wp] [Qed] Goal typed_main_ensures_result_assert : Valid +[wp] [Qed] Goal typed_main_assert : Valid +[wp] [Alt-Ergo] Goal typed_not_main_assert_bad : Unsuccess +[wp] [Qed] Goal typed_main_assigns_global_assert : Valid +[wp] [Qed] Goal typed_main_assigns_global_assert_2 : Valid +[wp] [Alt-Ergo] Goal typed_main_assigns_global_assert_bad : Unsuccess [wp] [Qed] Goal typed_zloop_ensures : Valid [wp] [Alt-Ergo] Goal typed_zloop_loop_invariant_preserved : Unsuccess [wp] [Qed] Goal typed_zloop_loop_invariant_established : Valid @@ -37,6 +28,15 @@ [wp] [Qed] Goal typed_zloop_assert_2 : Valid [wp] [Alt-Ergo] Goal typed_zloop_assert_3 : Unsuccess [wp] [Alt-Ergo] Goal typed_zloop_assert_bad : Unsuccess +[wp] [Qed] Goal typed_behavior2_assert : Valid +[wp] [Qed] Goal typed_behavior3_assert : Valid +[wp] [Qed] Goal typed_behavior4_assert : Valid +[wp] [Alt-Ergo] Goal typed_behavior5_assert_bad : Unsuccess +[wp] [Alt-Ergo] Goal typed_if_assert_assert : Valid +[wp] [Alt-Ergo] Goal typed_if_assert_assert_2 : Unsuccess +[wp] [Qed] Goal typed_if_assert_assert_3 : Valid +[wp] [Alt-Ergo] Goal typed_if_assert_assert_missing_return : Unsuccess +[wp] [Qed] Goal typed_compare_assert : Valid [wp] Proved goals: 19 / 27 Qed: 18 Alt-Ergo: 1 (unsuccess: 8) diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle index 83812560087..c66b8b4a0a6 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle @@ -14,44 +14,44 @@ [wp] tests/wp/wp_behav.c:176: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 38 goals scheduled -[wp] [Alt-Ergo] Goal typed_assert_needed_assert_ko : Unsuccess -[wp] [Qed] Goal typed_assert_needed_assert_qed_ok_ok_with_hyp : Valid -[wp] [Alt-Ergo] Goal typed_bhv_complete_pos_neg : Valid -[wp] [Qed] Goal typed_bhv_neg_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_bhv_pos_ensures_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko1 : Unsuccess -[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko2 : Unsuccess [wp] [Qed] Goal typed_f_ensures_qed_ok : Valid [wp] [Qed] Goal typed_f_x1_ensures_qed_ok : Valid [wp] [Qed] Goal typed_f_assert_qed_ok : Valid [wp] [Qed] Goal typed_f_x2_ensures_qed_ok : Valid [wp] [Qed] Goal typed_f_assert_qed_ok_2 : Valid -[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok_2 : Valid [wp] [Qed] Goal typed_min_complete_bx_by : Valid [wp] [Qed] Goal typed_min_disjoint_bx_by : Valid [wp] [Qed] Goal typed_min_bx_ensures_qed_ok : Valid [wp] [Qed] Goal typed_min_by_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_ensures_qed_ok_ok_with_hoare : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part1 : Valid -[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part2 : Valid -[wp] [Qed] Goal typed_part_stmt_bhv_b1_ensures_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_part_stmt_bhv_bs_ensures : Unsuccess -[wp] [Alt-Ergo] Goal typed_razT_loop_invariant_qed_ok_preserved : Valid -[wp] [Qed] Goal typed_razT_loop_invariant_qed_ok_established : Valid -[wp] [Alt-Ergo] Goal typed_razT_b1_ensures_e1 : Unsuccess -[wp] [Qed] Goal typed_stmt_assigns_ensures : Valid -[wp] [Alt-Ergo] Goal typed_stmt_assigns_assigns : Unsuccess +[wp] [Alt-Ergo] Goal typed_bhv_complete_pos_neg : Valid +[wp] [Qed] Goal typed_bhv_pos_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_bhv_neg_ensures_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_requires_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_ensures_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_ok_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok_2 : Valid [wp] [Qed] Goal typed_stmt_contract_assigns_requires_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_assigns_ensures_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_assigns_assigns : Valid [wp] [Qed] Goal typed_stmt_contract_assigns_ok_ensures_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_assigns_ok_asgn_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok_2 : Valid -[wp] [Qed] Goal typed_stmt_contract_label_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_local_named_behavior_xpos_ensures_qed_ok_2 : Valid +[wp] [Alt-Ergo] Goal typed_assert_needed_assert_ko : Unsuccess +[wp] [Qed] Goal typed_assert_needed_assert_qed_ok_ok_with_hyp : Valid +[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko1 : Unsuccess +[wp] [Alt-Ergo] Goal typed_bts0513_ensures_ko2 : Unsuccess +[wp] [Alt-Ergo] Goal typed_stmt_assigns_assigns : Unsuccess +[wp] [Qed] Goal typed_stmt_assigns_ensures : Valid +[wp] [Alt-Ergo] Goal typed_razT_loop_invariant_qed_ok_preserved : Valid +[wp] [Qed] Goal typed_razT_loop_invariant_qed_ok_established : Valid +[wp] [Alt-Ergo] Goal typed_razT_b1_ensures_e1 : Unsuccess +[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part1 : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_blk_assigns_part2 : Valid +[wp] [Qed] Goal typed_more_stmt_assigns_ensures_qed_ok_ok_with_hoare : Valid +[wp] [Alt-Ergo] Goal typed_part_stmt_bhv_bs_ensures : Unsuccess +[wp] [Qed] Goal typed_part_stmt_bhv_b1_ensures_qed_ok : Valid [wp] Proved goals: 32 / 38 Qed: 30 Alt-Ergo: 2 (unsuccess: 6) diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle index 824ee1a6e31..0a4fd4ac532 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle @@ -8,16 +8,16 @@ No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 10 goals scheduled -[wp] [Qed] Goal typed_call_g_call_g_requires_qed_ok_Rga : Valid -[wp] [Qed] Goal typed_call_g_call_g_requires_Rgb : Valid -[wp] [Qed] Goal typed_call_main_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_call_main_call_main_requires_qed_ok_Rmain : Valid [wp] [Qed] Goal typed_double_call_call_f_requires_qed_ok_Rf : Valid [wp] [Alt-Ergo] Goal typed_double_call_call_f_2_requires_qed_ok_Rf : Valid [wp] [Qed] Goal typed_main_requires_qed_ok_Rmain : Valid [wp] [Qed] Goal typed_main_ensures_qed_ok_Emain : Valid [wp] [Qed] Goal typed_main_call_f_requires_qed_ok_Rf : Valid +[wp] [Qed] Goal typed_call_main_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_call_main_call_main_requires_qed_ok_Rmain : Valid [wp] [Qed] Goal typed_stmt_pre_requires_qed_ok_Rstmt : Valid +[wp] [Qed] Goal typed_call_g_call_g_requires_qed_ok_Rga : Valid +[wp] [Qed] Goal typed_call_g_call_g_requires_Rgb : Valid [wp] Proved goals: 10 / 10 Qed: 9 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle index 505785f5e07..f65c7e9d384 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle @@ -15,27 +15,27 @@ [wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko2 : Unsuccess [wp] [Alt-Ergo] Goal hoare_bts0513_bis_assert_qed_ko_ko1 : Unsuccess [wp] [Qed] Goal hoare_bts0513_bis_assert_qed_ok_ok : Valid -[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok : Valid -[wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok_2 : Valid -[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok_stmt_p : Valid -[wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok : Valid -[wp] [Alt-Ergo] Goal hoare_default_behaviors_assert_rte_signed_overflow : Unsuccess -[wp] [Qed] Goal hoare_default_behaviors_assigns : Valid [wp] [Qed] Goal hoare_dpd1_assert_qed_ok_A : Valid [wp] [Alt-Ergo] Goal hoare_dpd1_ensures_qed_ko_Eko : Unsuccess [wp] [Qed] Goal hoare_dpd1_assigns : Valid -[wp] [Qed] Goal hoare_dpd2_assert_qed_ok_A : Valid [wp] [Alt-Ergo] Goal hoare_dpd2_ensures_qed_ko_Eko : Unsuccess [wp] [Qed] Goal hoare_dpd2_assigns : Valid -[wp] [Qed] Goal hoare_spec_if_ensures_qed_ok_2 : Valid +[wp] [Qed] Goal hoare_dpd2_assert_qed_ok_A : Valid [wp] [Qed] Goal hoare_spec_if_ensures_qed_ok : Valid [wp] [Qed] Goal hoare_spec_if_assigns : Valid [wp] [Alt-Ergo] Goal hoare_spec_if_assert_rte_signed_overflow : Unsuccess [wp] [Qed] Goal hoare_spec_if_assigns_2 : Valid [wp] [Alt-Ergo] Goal hoare_spec_if_assert_rte_signed_overflow_2 : Unsuccess [wp] [Qed] Goal hoare_spec_if_assigns_3 : Valid +[wp] [Qed] Goal hoare_spec_if_ensures_qed_ok_2 : Valid [wp] [Qed] Goal hoare_spec_if_cond_ensures_qed_ok : Valid [wp] [Qed] Goal hoare_spec_if_not_cond_ensures_qed_ok : Valid +[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok_stmt_p : Valid +[wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok : Valid +[wp] [Alt-Ergo] Goal hoare_default_behaviors_assert_rte_signed_overflow : Unsuccess +[wp] [Qed] Goal hoare_default_behaviors_assigns : Valid +[wp] [Qed] Goal hoare_default_behaviors_ensures_qed_ok : Valid +[wp] [Qed] Goal hoare_default_behaviors_assert_qed_ok_2 : Valid [wp] Proved goals: 17 / 25 Qed: 17 Alt-Ergo: 0 (unsuccess: 8) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle index d1a648f8189..3e49d03b943 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle @@ -36,8 +36,8 @@ goal wp_goal : forall f:t. - let r = of_f32 (to_f32 (of_f64 f)) in - eq_f64 f (0x1.999999999999Ap-4:t) -> of_f64 (to_f64 r) = r + let r = of_f32 f in + eq_f32 f (0x1.99999Ap-4:t) -> of_f32 (to_f32 (of_f64 (to_f64 r))) = r end [wp:print-generated] theory WP1 @@ -67,8 +67,8 @@ goal wp_goal : forall f:t. - eq_f64 f (0x1.999999999999Ap-4:t) -> - not of_f64 f = (13421773.0 / 134217728.0) + eq_f32 f (0x1.99999Ap-4:t) -> + not of_f32 f = (3602879701896397.0 / 36028797018963968.0) end [wp:print-generated] theory WP2 @@ -98,8 +98,7 @@ goal wp_goal : forall f:t. - eq_f64 f (0x1.999999999999Ap-4:t) -> - of_f64 f = (3602879701896397.0 / 36028797018963968.0) + eq_f32 f (0x1.99999Ap-4:t) -> of_f32 f = (13421773.0 / 134217728.0) end [wp:print-generated] theory WP3 @@ -128,8 +127,7 @@ (* use frama_c_wp.cfloat.Cfloat *) goal wp_goal : - forall f:t. - eq_f64 f (0x1.999999999999Ap-4:t) -> not of_f64 f = (1.0 / 10.0) + forall f:t. eq_f32 f (0x1.99999Ap-4:t) -> not of_f32 f = (1.0 / 10.0) end [wp:print-generated] theory WP4 @@ -159,9 +157,8 @@ goal wp_goal : forall f:t1. - let r = of_f321 f in - eq_f32 f (0x1.99999Ap-4:t1) -> - of_f321 (to_f321 (of_f641 (to_f641 r))) = r + let r = of_f321 (to_f321 (of_f641 f)) in + eq_f64 f (0x1.999999999999Ap-4:t1) -> of_f641 (to_f641 r) = r end [wp:print-generated] theory WP5 @@ -191,8 +188,8 @@ goal wp_goal : forall f:t1. - eq_f32 f (0x1.99999Ap-4:t1) -> - not of_f321 f = (3602879701896397.0 /' 36028797018963968.0) + eq_f64 f (0x1.999999999999Ap-4:t1) -> + not of_f641 f = (13421773.0 /' 134217728.0) end [wp:print-generated] theory WP6 @@ -222,7 +219,8 @@ goal wp_goal : forall f:t1. - eq_f32 f (0x1.99999Ap-4:t1) -> of_f321 f = (13421773.0 /' 134217728.0) + eq_f64 f (0x1.999999999999Ap-4:t1) -> + of_f641 f = (3602879701896397.0 /' 36028797018963968.0) end [wp:print-generated] theory WP7 @@ -251,7 +249,8 @@ (* use frama_c_wp.cfloat.Cfloat1 *) goal wp_goal : - forall f:t1. eq_f32 f (0x1.99999Ap-4:t1) -> not of_f321 f = (1.0 /' 10.0) + forall f:t1. + eq_f64 f (0x1.999999999999Ap-4:t1) -> not of_f641 f = (1.0 /' 10.0) end [wp] 8 goals generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle index b2c5f9a9db3..869f0ca817f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle @@ -4,10 +4,37 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 42 goals scheduled +[wp] [Alt-Ergo] Goal typed_initialize_loop_invariant_CHECK_preserved : Valid +[wp] [Qed] Goal typed_initialize_loop_invariant_CHECK_established : Valid +[wp] [Alt-Ergo] Goal typed_initialize_check_CHECK : Valid +[wp] [Qed] Goal typed_initialize_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_initialize_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_initialize_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_range_check_CHECK : Valid +[wp] [Qed] Goal typed_range_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_range_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_range_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_field_check_CHECK : Valid +[wp] [Qed] Goal typed_field_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_field_loop_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_array_check_CHECK : Valid [wp] [Qed] Goal typed_array_loop_assigns_part1 : Valid [wp] [Qed] Goal typed_array_loop_assigns_part2 : Valid [wp] [Qed] Goal typed_array_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_index_check_CHECK : Valid +[wp] [Qed] Goal typed_index_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_index_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_index_loop_assigns_part3 : Valid +[wp] [Alt-Ergo] Goal typed_descr_check_CHECK : Valid +[wp] [Qed] Goal typed_descr_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_descr_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_descr_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_descr_loop_assigns_part4 : Valid +[wp] [Qed] Goal typed_descr_loop_assigns_part5 : Valid +[wp] [Alt-Ergo] Goal typed_comp_check_CHECK : Valid +[wp] [Qed] Goal typed_comp_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_comp_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_comp_loop_assigns_part3 : Valid [wp] [Alt-Ergo] Goal typed_assigned_glob_check_CHECK : Valid [wp] [Alt-Ergo] Goal typed_assigned_glob_loop_invariant_CHECK_preserved : Valid [wp] [Qed] Goal typed_assigned_glob_loop_invariant_CHECK_established : Valid @@ -19,33 +46,6 @@ [wp] [Qed] Goal typed_assigned_glob_loop_assigns_2_part1 : Valid [wp] [Qed] Goal typed_assigned_glob_loop_assigns_2_part2 : Valid [wp] [Alt-Ergo] Goal typed_assigned_glob_loop_assigns_2_part3 : Valid -[wp] [Alt-Ergo] Goal typed_comp_check_CHECK : Valid -[wp] [Qed] Goal typed_comp_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_comp_loop_assigns_part2 : Valid -[wp] [Alt-Ergo] Goal typed_comp_loop_assigns_part3 : Valid -[wp] [Alt-Ergo] Goal typed_descr_check_CHECK : Valid -[wp] [Qed] Goal typed_descr_loop_assigns_part1 : Valid -[wp] [Alt-Ergo] Goal typed_descr_loop_assigns_part2 : Valid -[wp] [Qed] Goal typed_descr_loop_assigns_part3 : Valid -[wp] [Qed] Goal typed_descr_loop_assigns_part4 : Valid -[wp] [Qed] Goal typed_descr_loop_assigns_part5 : Valid -[wp] [Alt-Ergo] Goal typed_field_check_CHECK : Valid -[wp] [Qed] Goal typed_field_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_field_loop_assigns_part2 : Valid -[wp] [Alt-Ergo] Goal typed_index_check_CHECK : Valid -[wp] [Qed] Goal typed_index_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_index_loop_assigns_part2 : Valid -[wp] [Qed] Goal typed_index_loop_assigns_part3 : Valid -[wp] [Alt-Ergo] Goal typed_initialize_loop_invariant_CHECK_preserved : Valid -[wp] [Qed] Goal typed_initialize_loop_invariant_CHECK_established : Valid -[wp] [Alt-Ergo] Goal typed_initialize_check_CHECK : Valid -[wp] [Qed] Goal typed_initialize_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_initialize_loop_assigns_part2 : Valid -[wp] [Qed] Goal typed_initialize_loop_assigns_part3 : Valid -[wp] [Alt-Ergo] Goal typed_range_check_CHECK : Valid -[wp] [Qed] Goal typed_range_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_range_loop_assigns_part2 : Valid -[wp] [Qed] Goal typed_range_loop_assigns_part3 : Valid [wp] Proved goals: 42 / 42 Qed: 27 Alt-Ergo: 15 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle index 45f96059729..0db69236481 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle @@ -4,28 +4,28 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled +[wp] [Alt-Ergo] Goal typed_initialize_loop_invariant_CHECK_preserved : Valid +[wp] [Qed] Goal typed_initialize_loop_invariant_CHECK_established : Valid +[wp] [Alt-Ergo] Goal typed_initialize_check_CHECK : Valid +[wp] [Qed] Goal typed_initialize_loop_assigns : Valid +[wp] [Alt-Ergo] Goal typed_range_check_CHECK : Valid +[wp] [Qed] Goal typed_range_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_range_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_field_check_CHECK : Valid +[wp] [Qed] Goal typed_field_loop_assigns : Valid [wp] [Alt-Ergo] Goal typed_array_check_CHECK : Valid [wp] [Qed] Goal typed_array_loop_assigns : Valid -[wp] [Alt-Ergo] Goal typed_comp_check_CHECK : Valid -[wp] [Qed] Goal typed_comp_loop_assigns : Valid +[wp] [Alt-Ergo] Goal typed_index_check_CHECK : Valid +[wp] [Qed] Goal typed_index_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_index_loop_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_descr_check_CHECK : Valid [wp] [Qed] Goal typed_descr_loop_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_descr_loop_assigns_part2 : Valid [wp] [Qed] Goal typed_descr_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_descr_loop_assigns_part4 : Valid [wp] [Qed] Goal typed_descr_loop_assigns_part5 : Valid -[wp] [Alt-Ergo] Goal typed_field_check_CHECK : Valid -[wp] [Qed] Goal typed_field_loop_assigns : Valid -[wp] [Alt-Ergo] Goal typed_index_check_CHECK : Valid -[wp] [Qed] Goal typed_index_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_index_loop_assigns_part2 : Valid -[wp] [Alt-Ergo] Goal typed_initialize_loop_invariant_CHECK_preserved : Valid -[wp] [Qed] Goal typed_initialize_loop_invariant_CHECK_established : Valid -[wp] [Alt-Ergo] Goal typed_initialize_check_CHECK : Valid -[wp] [Qed] Goal typed_initialize_loop_assigns : Valid -[wp] [Alt-Ergo] Goal typed_range_check_CHECK : Valid -[wp] [Qed] Goal typed_range_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_range_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_comp_check_CHECK : Valid +[wp] [Qed] Goal typed_comp_loop_assigns : Valid [wp] Proved goals: 22 / 22 Qed: 13 Alt-Ergo: 9 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle index da65ee4ddd2..2027f9c3e57 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled +[wp] [Alt-Ergo] Goal typed_atomic_check_FAIL : Unsuccess +[wp] [Alt-Ergo] Goal typed_comp_check_FAIL : Unsuccess [wp] [Alt-Ergo] Goal typed_array_check_FAIL : Unsuccess -[wp] [Alt-Ergo] Goal typed_assigned_glob_array_check_FAIL : Unsuccess -[wp] [Alt-Ergo] Goal typed_assigned_glob_array_check_OK : Valid [wp] [Alt-Ergo] Goal typed_assigned_glob_atomic_check_FAIL : Unsuccess [wp] [Alt-Ergo] Goal typed_assigned_glob_atomic_check_OK : Valid [wp] [Alt-Ergo] Goal typed_assigned_glob_comp_check_FAIL : Unsuccess [wp] [Alt-Ergo] Goal typed_assigned_glob_comp_check_OK : Valid -[wp] [Alt-Ergo] Goal typed_atomic_check_FAIL : Unsuccess -[wp] [Alt-Ergo] Goal typed_comp_check_FAIL : Unsuccess +[wp] [Alt-Ergo] Goal typed_assigned_glob_array_check_FAIL : Unsuccess +[wp] [Alt-Ergo] Goal typed_assigned_glob_array_check_OK : Valid [wp] Proved goals: 3 / 9 Qed: 0 Alt-Ergo: 3 (unsuccess: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle index d43006f651c..085619ca7b7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_array_check_FAIL : Unsuccess [wp] [Alt-Ergo] Goal typed_atomic_check_FAIL : Unsuccess [wp] [Alt-Ergo] Goal typed_comp_check_FAIL : Unsuccess +[wp] [Alt-Ergo] Goal typed_array_check_FAIL : Unsuccess [wp] Proved goals: 0 / 3 Alt-Ergo: 0 (unsuccess: 3) ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle index fe9cf947ab4..c33a0de4489 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle @@ -12,27 +12,27 @@ [wp] [Qed] Goal typed_band_bit2_ensures_band4 : Valid [wp] [Qed] Goal typed_band_bit3_ensures_band5 : Valid [wp] [Qed] Goal typed_band_bit4_ensures_band6 : Valid -[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid -[wp] [Qed] Goal typed_band_bool_true_ensures : Valid -[wp] [Qed] Goal typed_bnot_ensures : Valid [wp] [Qed] Goal typed_bor_ensures : Valid [wp] [Qed] Goal typed_bor_ensures_bor0 : Valid [wp] [Qed] Goal typed_bor_bit1_ensures_bor1 : Valid [wp] [Qed] Goal typed_bor_bit2_ensures_bor2 : Valid [wp] [Qed] Goal typed_bor_bit3_ensures_bor3 : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid [wp] [Qed] Goal typed_bxor_ensures : Valid [wp] [Qed] Goal typed_bxor_bit1_ensures : Valid [wp] [Qed] Goal typed_bxor_bit2_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid -[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Qed] Goal typed_bnot_ensures : Valid [wp] [Qed] Goal typed_lshift_ensures : Valid [wp] [Qed] Goal typed_lshift_shift1_ensures_lsl1 : Valid [wp] [Qed] Goal typed_lshift_shift1_ensures_lsl2 : Valid [wp] [Qed] Goal typed_lshift_shift2_ensures_lsl3 : Valid [wp] [Qed] Goal typed_rshift_ensures : Valid [wp] [Qed] Goal typed_rshift_shift1_ensures_lsr1 : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid +[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid [wp] Proved goals: 29 / 29 Qed: 25 Alt-Ergo: 4 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle index da11be9212d..6db4afa478a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_simple_array_ensures : Valid [wp] [Qed] Goal typed_simple_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_simple_array_ensures : Valid [wp] [Alt-Ergo] Goal typed_with_array_struct_ensures : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_and_array_struct_ensures : Valid -[wp] [Alt-Ergo] Goal typed_with_ptr_array_ensures : Valid [wp] [Alt-Ergo] Goal typed_with_ptr_struct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_array_ensures : Valid +[wp] [Alt-Ergo] Goal typed_with_ptr_and_array_struct_ensures : Valid [wp] Proved goals: 6 / 6 Qed: 1 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle index cb949a9f954..ccf65a0297e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle @@ -10,6 +10,9 @@ [wp] [Alt-Ergo] Goal typed_lemma_test_double_compare_greater : Valid [wp] [Alt-Ergo] Goal typed_lemma_test_float_compare : Valid [wp] [Alt-Ergo] Goal typed_lemma_test_float_compare_greater : Valid +[wp] [Alt-Ergo] Goal typed_cmp_ff_ensures_DEF : Valid +[wp] [Alt-Ergo] Goal typed_cmp_ff_ensures_REL1 : Valid +[wp] [Alt-Ergo] Goal typed_cmp_ff_ensures_REL2 : Valid [wp] [Alt-Ergo] Goal typed_cmp_dd_ensures_DEF : Valid [wp] [Alt-Ergo] Goal typed_cmp_dd_ensures_REL1 : Valid [wp] [Alt-Ergo] Goal typed_cmp_dd_ensures_REL2 : Valid @@ -18,9 +21,6 @@ [wp] [Alt-Ergo] Goal typed_cmp_fd_ensures_REL2 : Valid [wp] [Alt-Ergo] Goal typed_cmp_fd_assert : Valid [wp] [Alt-Ergo] Goal typed_cmp_fd_assert_2 : Valid -[wp] [Alt-Ergo] Goal typed_cmp_ff_ensures_DEF : Valid -[wp] [Alt-Ergo] Goal typed_cmp_ff_ensures_REL1 : Valid -[wp] [Alt-Ergo] Goal typed_cmp_ff_ensures_REL2 : Valid [wp] [Qed] Goal typed_cmp_fnan_ensures_POS : Valid [wp] [Qed] Goal typed_cmp_fnan_ensures_NEG : Valid [wp] Proved goals: 19 / 19 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle index 08e524f9e5a..6c264f77013 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle @@ -10,6 +10,9 @@ [wp] [Alt-Ergo] Goal typed_real_lemma_test_double_compare_greater : Valid [wp] [Alt-Ergo] Goal typed_real_lemma_test_float_compare : Valid [wp] [Alt-Ergo] Goal typed_real_lemma_test_float_compare_greater : Valid +[wp] [Qed] Goal typed_real_cmp_ff_ensures_DEF : Valid +[wp] [Qed] Goal typed_real_cmp_ff_ensures_REL1 : Valid +[wp] [Qed] Goal typed_real_cmp_ff_ensures_REL2 : Valid [wp] [Qed] Goal typed_real_cmp_dd_ensures_DEF : Valid [wp] [Qed] Goal typed_real_cmp_dd_ensures_REL1 : Valid [wp] [Qed] Goal typed_real_cmp_dd_ensures_REL2 : Valid @@ -18,9 +21,6 @@ [wp] [Qed] Goal typed_real_cmp_fd_ensures_REL2 : Valid [wp] [Qed] Goal typed_real_cmp_fd_assert : Valid [wp] [Qed] Goal typed_real_cmp_fd_assert_2 : Valid -[wp] [Qed] Goal typed_real_cmp_ff_ensures_DEF : Valid -[wp] [Qed] Goal typed_real_cmp_ff_ensures_REL1 : Valid -[wp] [Qed] Goal typed_real_cmp_ff_ensures_REL2 : Valid [wp] [Qed] Goal typed_real_cmp_fnan_ensures_POS : Valid [wp] [Qed] Goal typed_real_cmp_fnan_ensures_NEG : Valid [wp] Proved goals: 19 / 19 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle index bc8717807fd..50dd217c723 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle @@ -7,14 +7,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_double_convertible_check : Valid -[wp] [Alt-Ergo] Goal typed_double_convertible_check_2 : Valid -[wp] [Alt-Ergo] Goal typed_double_convertible_check_3 : Valid -[wp] [Alt-Ergo] Goal typed_double_convertible_check_4 : Valid [wp] [Alt-Ergo] Goal typed_float_convertible_check : Valid [wp] [Alt-Ergo] Goal typed_float_convertible_check_2 : Valid [wp] [Alt-Ergo] Goal typed_float_convertible_check_3 : Valid [wp] [Alt-Ergo] Goal typed_float_convertible_check_4 : Valid +[wp] [Alt-Ergo] Goal typed_double_convertible_check : Valid +[wp] [Alt-Ergo] Goal typed_double_convertible_check_2 : Valid +[wp] [Alt-Ergo] Goal typed_double_convertible_check_3 : Valid +[wp] [Alt-Ergo] Goal typed_double_convertible_check_4 : Valid [wp] Proved goals: 8 / 8 Qed: 0 Alt-Ergo: 8 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle index 4b3a0044393..a2d50a1cec3 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle @@ -6,6 +6,12 @@ [wp] 17 goals scheduled [wp] [Alt-Ergo] Goal typed_check_lemma_C_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_lemma_L_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_job_ensures_B : Valid +[wp] [Alt-Ergo] Goal typed_job_check_ensures_CB1 : Valid +[wp] [Alt-Ergo] Goal typed_job_check_ensures_CB2_ko : Unsuccess +[wp] [Qed] Goal typed_job_assigns_exit : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_caller_ensures_R : Valid [wp] [Alt-Ergo] Goal typed_caller_ensures_R1_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_caller_ensures_R2_ko : Unsuccess @@ -15,12 +21,6 @@ [wp] [Qed] Goal typed_caller_call_job_requires_A : Valid [wp] [Qed] Goal typed_caller_call_job_check_requires_CA1 : Valid [wp] [Alt-Ergo] Goal typed_caller_call_job_check_requires_CA2_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_job_ensures_B : Valid -[wp] [Alt-Ergo] Goal typed_job_check_ensures_CB1 : Valid -[wp] [Alt-Ergo] Goal typed_job_check_ensures_CB2_ko : Unsuccess -[wp] [Qed] Goal typed_job_assigns_exit : Valid -[wp] [Qed] Goal typed_job_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_job_assigns_normal_part2 : Valid [wp] Proved goals: 11 / 17 Qed: 9 Alt-Ergo: 2 (unsuccess: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle index 222fe3b9040..d3287eb6c5f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle @@ -6,10 +6,10 @@ No code nor implicit assigns clause for function main, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Alt-Ergo] Goal typed_extra_ensures_KO : Unsuccess -[wp] [Qed] Goal typed_foreign_ensures_OK : Valid -[wp] [Alt-Ergo] Goal typed_job_ensures_OK : Valid [wp] [Qed] Goal typed_main_requires_OK : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_OK : Valid +[wp] [Qed] Goal typed_foreign_ensures_OK : Valid +[wp] [Alt-Ergo] Goal typed_extra_ensures_KO : Unsuccess [wp] Proved goals: 3 / 4 Qed: 2 Alt-Ergo: 1 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle index 1fc7282684f..4e4df4b46e0 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle @@ -4,10 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 24 goals scheduled -[wp] [Qed] Goal typed_fa1_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_fa2_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_fa3_ensures_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ok : Valid [wp] [Qed] Goal typed_main_requires_qed_ok_Struct_Simple_a : Valid [wp] [Qed] Goal typed_main_requires_qed_ok_Struct_Simple_b : Valid [wp] [Qed] Goal typed_main_requires_qed_ok_Simple_Array_0 : Valid @@ -28,6 +24,10 @@ [wp] [Qed] Goal typed_main_requires_qed_ok_4 : Valid [wp] [Alt-Ergo] Goal typed_main_requires_qed_ok_5 : Valid [wp] [Qed] Goal typed_main_requires_qed_ok_direct_init_union : Valid +[wp] [Qed] Goal typed_fa1_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_fa2_ensures_qed_ok : Valid +[wp] [Qed] Goal typed_fa3_ensures_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ok : Valid [wp] Proved goals: 24 / 24 Qed: 19 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle index b790e806354..bc1e0d9cee1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle @@ -4,15 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled -[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko_2 : Unsuccess -[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko_2 : Unsuccess -[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_2 : Unsuccess -[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_3 : Unsuccess -[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko_2 : Unsuccess [wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_eq_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_t : Unsuccess [wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_Sc_c_2 : Unsuccess @@ -22,6 +13,15 @@ [wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_T1_6 : Unsuccess [wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_indirect_init_union_b : Unsuccess [wp] [Alt-Ergo] Goal typed_main_ko_requires_qed_ko_indirect_init_union_t : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko_2 : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa2_ensures_qed_ko_2 : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_2 : Unsuccess +[wp] [Alt-Ergo] Goal typed_fa3_ensures_qed_ko_3 : Unsuccess +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_fs1_ensures_qed_ko_2 : Unsuccess [wp] Proved goals: 0 / 18 Alt-Ergo: 0 (unsuccess: 18) ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle index 53fe740ee7b..7cbada163ae 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle @@ -4,11 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 28 goals scheduled -[wp] [Alt-Ergo] Goal typed_formal_assert_provable : Valid -[wp] [Alt-Ergo] Goal typed_glob_arr_ensures_provable : Valid -[wp] [Alt-Ergo] Goal typed_glob_arr_ensures_unknown : Unsuccess -[wp] [Alt-Ergo] Goal typed_glob_var_ensures_provable : Valid -[wp] [Alt-Ergo] Goal typed_glob_var_ensures_unknown : Unsuccess [wp] [Alt-Ergo] Goal typed_test_check_unknown : Unsuccess [wp] [Alt-Ergo] Goal typed_test_check_unknown_2 : Unsuccess [wp] [Alt-Ergo] Goal typed_test_check_unknown_3 : Unsuccess @@ -32,6 +27,11 @@ [wp] [Alt-Ergo] Goal typed_test_check_provable_3 : Valid [wp] [Alt-Ergo] Goal typed_test_check_unknown_13 : Unsuccess [wp] [Alt-Ergo] Goal typed_test_check_provable_4 : Valid +[wp] [Alt-Ergo] Goal typed_glob_var_ensures_provable : Valid +[wp] [Alt-Ergo] Goal typed_glob_var_ensures_unknown : Unsuccess +[wp] [Alt-Ergo] Goal typed_glob_arr_ensures_provable : Valid +[wp] [Alt-Ergo] Goal typed_glob_arr_ensures_unknown : Unsuccess +[wp] [Alt-Ergo] Goal typed_formal_assert_provable : Valid [wp] Proved goals: 13 / 28 Qed: 6 Alt-Ergo: 7 (unsuccess: 15) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle index 600fdf9a79b..b18650f6370 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle @@ -5,6 +5,15 @@ [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/invalid_pointer.c:21: Warning: void object [wp] 19 goals scheduled +[wp] [Qed] Goal typed_memvar_check_M1 : Valid +[wp] [Qed] Goal typed_memvar_check_P0 : Valid +[wp] [Qed] Goal typed_memvar_check_P1 : Valid +[wp] [Qed] Goal typed_memvar_check_P2 : Valid +[wp] [Alt-Ergo] Goal typed_pointer_check_M1 : Valid +[wp] [Alt-Ergo] Goal typed_pointer_check_P0 : Valid +[wp] [Alt-Ergo] Goal typed_pointer_check_P1 : Valid +[wp] [Alt-Ergo] Goal typed_pointer_check_P2 : Valid +[wp] [Alt-Ergo] Goal typed_pointer_check_NULL : Valid [wp] [Alt-Ergo] Goal typed_array_check_ARR : Valid [wp] [Qed] Goal typed_compound_check_M1 : Valid [wp] [Qed] Goal typed_compound_check_P0 : Valid @@ -15,15 +24,6 @@ [wp] [Alt-Ergo] Goal typed_compound_check_F2 : Valid [wp] [Alt-Ergo] Goal typed_compound_check_G2 : Valid [wp] [Qed] Goal typed_compound_check_AM : Valid -[wp] [Qed] Goal typed_memvar_check_M1 : Valid -[wp] [Qed] Goal typed_memvar_check_P0 : Valid -[wp] [Qed] Goal typed_memvar_check_P1 : Valid -[wp] [Qed] Goal typed_memvar_check_P2 : Valid -[wp] [Alt-Ergo] Goal typed_pointer_check_M1 : Valid -[wp] [Alt-Ergo] Goal typed_pointer_check_P0 : Valid -[wp] [Alt-Ergo] Goal typed_pointer_check_P1 : Valid -[wp] [Alt-Ergo] Goal typed_pointer_check_P2 : Valid -[wp] [Alt-Ergo] Goal typed_pointer_check_NULL : Valid [wp] Proved goals: 19 / 19 Qed: 9 Alt-Ergo: 10 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle index 310d71f1258..456510ae600 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle @@ -8,15 +8,15 @@ [wp] tests/wp_acsl/pointer.i:49: Warning: Uncomparable locations p_0 and mem:t.(0) [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Base_oracle_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Comp_oracle_ko : Unsuccess [wp] [Qed] Goal typed_ref_array_ensures_Lt : Valid [wp] [Qed] Goal typed_ref_array_ensures_Le : Valid [wp] [Qed] Goal typed_ref_array_ensures_Eq : Valid -[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unsuccess (Stronger) -[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unsuccess (Stronger) [wp] [Alt-Ergo] Goal typed_ref_pointer_ensures_qed_ko_Le_oracle_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_ref_pointer_ensures_qed_ko_Eq_oracle_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unsuccess (Stronger) +[wp] [Alt-Ergo] Goal typed_ref_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unsuccess (Stronger) +[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Base_oracle_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_ref_absurd_ensures_qed_ko_Comp_oracle_ko : Unsuccess [wp] Proved goals: 3 / 9 Qed: 3 Alt-Ergo: 0 (unsuccess: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle index ee3c703ca33..c2ce0a1aa58 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle @@ -8,15 +8,15 @@ [wp] tests/wp_acsl/pointer.i:49: Warning: Uncomparable locations p_0 and mem:t.(0) [wp] 9 goals scheduled -[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Base_oracle_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Comp_oracle_ko : Unsuccess [wp] [Qed] Goal typed_array_ensures_Lt : Valid [wp] [Qed] Goal typed_array_ensures_Le : Valid [wp] [Qed] Goal typed_array_ensures_Eq : Valid -[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unsuccess (Stronger) -[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unsuccess (Stronger) [wp] [Alt-Ergo] Goal typed_pointer_ensures_qed_ko_Le_oracle_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_pointer_ensures_qed_ko_Eq_oracle_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Le_oracle_ko : Unsuccess (Stronger) +[wp] [Alt-Ergo] Goal typed_mixed_array_pointer_ensures_qed_ko_Lt_oracle_ko : Unsuccess (Stronger) +[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Base_oracle_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_absurd_ensures_qed_ko_Comp_oracle_ko : Unsuccess [wp] Proved goals: 3 / 9 Qed: 3 Alt-Ergo: 0 (unsuccess: 6) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle index ecfa8fc993b..542d7351271 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle @@ -40,26 +40,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 52 goals scheduled -[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_and_xor : Valid -[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_and_xor : Valid -[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_xor_or : Valid -[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_xor_or : Valid -[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_or_implies : Valid -[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_or_implies : Valid -[wp] [Qed] Goal typed_bitwise_ensures_ok_r_precedence_implies_or : Valid -[wp] [Qed] Goal typed_bitwise_ensures_ok_since : Valid -[wp] [Qed] Goal typed_bitwise_ensures_r_assoc_implies : Valid -[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_implies_equiv : Valid -[wp] [Qed] Goal typed_comparison_ensures_chainable_lt_lt : Valid -[wp] [Qed] Goal typed_comparison_ensures_chainable_le_le : Valid -[wp] [Qed] Goal typed_comparison_ensures_chainable_gt_gt : Valid -[wp] [Qed] Goal typed_comparison_ensures_chainable_ge_ge : Valid -[wp] [Qed] Goal typed_comparison_ensures_chainable_eq_eq : Valid -[wp] [Qed] Goal typed_comparison_ensures_r_precedence_eq_and : Valid -[wp] [Qed] Goal typed_comparison_ensures_l_precedence_eq_and : Valid -[wp] [Qed] Goal typed_comparison_ensures_r_precedence_neq_and : Valid -[wp] [Qed] Goal typed_comparison_ensures_l_precedence_neq_and : Valid [wp] [Qed] Goal typed_predicate_ensures_r_precedence_and_xor : Valid [wp] [Qed] Goal typed_predicate_ensures_l_precedence_and_xor : Valid [wp] [Qed] Goal typed_predicate_ensures_r_precedence_xor_or : Valid @@ -90,6 +70,26 @@ [wp] [Qed] Goal typed_predicate_ensures_scope_let : Valid [wp] [Qed] Goal typed_predicate_ensures_scope_let_2 : Valid [wp] [Qed] Goal typed_predicate_ensures_r_precedence_ite_naming : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_lt_lt : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_le_le : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_gt_gt : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_ge_ge : Valid +[wp] [Qed] Goal typed_comparison_ensures_chainable_eq_eq : Valid +[wp] [Qed] Goal typed_comparison_ensures_r_precedence_eq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_l_precedence_eq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_r_precedence_neq_and : Valid +[wp] [Qed] Goal typed_comparison_ensures_l_precedence_neq_and : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_and_xor : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_and_xor : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_xor_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_xor_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_or_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_or_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_ok_r_precedence_implies_or : Valid +[wp] [Qed] Goal typed_bitwise_ensures_ok_since : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_assoc_implies : Valid +[wp] [Qed] Goal typed_bitwise_ensures_r_precedence_implies_equiv : Valid +[wp] [Qed] Goal typed_bitwise_ensures_l_precedence_implies_equiv : Valid [wp] [Qed] Goal typed_predicate_bitwise_ensures_r_precedence_equiv_Pand : Valid [wp] [Qed] Goal typed_predicate_bitwise_ensures_l_precedence_equiv_Pand : Valid [wp] Proved goals: 52 / 52 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle index 614ab582313..560a1e6a35f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle @@ -40,20 +40,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 37 goals scheduled -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_xor_and : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_xor_and : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_or_xor : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_or_xor : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_implies_or : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_assoc_implies : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_equiv_implies : Unsuccess -[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_equiv_implies : Unsuccess -[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_eq : Unsuccess -[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_eq : Unsuccess -[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_nonassoc_eq : Unsuccess -[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_nonassoc_eq : Unsuccess -[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_neq : Unsuccess -[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_neq : Unsuccess [wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_xor_and : Unsuccess [wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_r_precedence_xor_and : Unsuccess [wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_or_xor : Unsuccess @@ -77,6 +63,20 @@ [wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_m_precedence_let_ite : Unsuccess [wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_precedence_let_ite : Unsuccess [wp] [Alt-Ergo] Goal typed_predicate_ensures_ko_l_assoc_naming : Unsuccess +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_eq : Unsuccess +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_eq : Unsuccess +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_nonassoc_eq : Unsuccess +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_nonassoc_eq : Unsuccess +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_r_precedence_and_neq : Unsuccess +[wp] [Alt-Ergo] Goal typed_comparison_ensures_ko_l_precedence_and_neq : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_xor_and : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_xor_and : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_or_xor : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_or_xor : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_implies_or : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_assoc_implies : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_r_precedence_equiv_implies : Unsuccess +[wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_equiv_implies : Unsuccess [wp] Proved goals: 0 / 37 Alt-Ergo: 0 (unsuccess: 37) ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle index 6444362e5e2..db8356a8a66 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle @@ -6,11 +6,11 @@ [wp] 7 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid [wp] [Alt-Ergo] Goal typed_g_ensures_qed_ok : Valid -[wp] [Qed] Goal typed_modifies_x_ensures_qed_ok_F_OK : Valid -[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ok_W_OK_todo : Unsuccess [wp] [Qed] Goal typed_modifies_y_ensures_qed_ok_F_OK : Valid [wp] [Qed] Goal typed_modifies_y_ensures_qed_ok_G_OK : Valid [wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ok_W_OK_todo : Unsuccess +[wp] [Qed] Goal typed_modifies_x_ensures_qed_ok_F_OK : Valid +[wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ok_W_OK_todo : Unsuccess [wp] Proved goals: 5 / 7 Qed: 3 Alt-Ergo: 2 (unsuccess: 2) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle index 4d228ae7143..68c7c9bc872 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled +[wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ko_H_KO : Unsuccess [wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_G_KO : Unsuccess [wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_H_KO : Unsuccess -[wp] [Alt-Ergo] Goal typed_modifies_y_ensures_qed_ko_H_KO : Unsuccess [wp] Proved goals: 0 / 3 Alt-Ergo: 0 (unsuccess: 3) ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle index 2f04de9548a..09374142a65 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle @@ -4,9 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled -[wp] [Alt-Ergo] Goal typed_check_acsl_check_ok_C1_absurd_is_cint : Valid -[wp] [Alt-Ergo] Goal typed_check_acsl_check_ok_C2_absurd_is_cint : Valid -[wp] [Qed] Goal typed_check_acsl_check_ok_C5_absurd_cmp : Valid [wp] [Alt-Ergo] Goal typed_f_ensures : Valid [wp] [Alt-Ergo] Goal typed_f_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_f_loop_invariant_established : Valid @@ -22,6 +19,9 @@ [wp] [Alt-Ergo] Goal typed_g_loop_invariant_2_preserved : Valid [wp] [Qed] Goal typed_g_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_g_loop_assigns : Valid +[wp] [Alt-Ergo] Goal typed_check_acsl_check_ok_C1_absurd_is_cint : Valid +[wp] [Alt-Ergo] Goal typed_check_acsl_check_ok_C2_absurd_is_cint : Valid +[wp] [Qed] Goal typed_check_acsl_check_ok_C5_absurd_cmp : Valid [wp] Proved goals: 18 / 18 Qed: 7 Alt-Ergo: 11 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle index f4ce0c5e623..d113229944c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled -[wp] [Qed] Goal typed_rotate_left_ensures_bit_zero : Valid -[wp] [Alt-Ergo] Goal typed_rotate_left_ensures_other_bits : Valid [wp] [Qed] Goal typed_sum_ensures_ok : Valid [wp] [Alt-Ergo] Goal typed_sum_ensures_ko : Unsuccess +[wp] [Qed] Goal typed_rotate_left_ensures_bit_zero : Valid +[wp] [Alt-Ergo] Goal typed_rotate_left_ensures_other_bits : Valid [wp] Proved goals: 3 / 4 Qed: 2 Alt-Ergo: 1 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle index b1af7c7da5c..5b27fc3ab05 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle @@ -96,16 +96,15 @@ end (* use frama_c_wp.memory.Memory *) + (* use S2_A *) + (* use Compound *) goal wp_goal : - forall t:int -> int, t1:addr -> int, a:addr, a1:addr, i:int. - let a2 = shiftfield_F1_FD_pos a1 in - let x = get t1 a2 in - not x = i -> - region (base a1) <= 0 -> - region (base a) <= 0 -> - linked t -> is_sint32 i -> is_sint32 x -> not invalid t a2 1 -> a2 = a + forall t:addr -> int, t1:addr -> int, a:addr. + let a1 = Load_S2_A a t in + let a2 = Load_S2_A a (havoc t1 t a 1) in + region (base a) <= 0 -> IsS2_A a1 -> IsS2_A a2 -> EqS2_A a2 a1 end [wp:print-generated] theory WP1 @@ -125,14 +124,15 @@ end (* use frama_c_wp.memory.Memory *) - (* use S2_A *) - (* use Compound *) goal wp_goal : - forall t:addr -> int, t1:addr -> int, a:addr. - let a1 = Load_S2_A a t in - let a2 = Load_S2_A a (havoc t1 t a 1) in - region (base a) <= 0 -> IsS2_A a1 -> IsS2_A a2 -> EqS2_A a2 a1 + forall t:int -> int, t1:addr -> int, a:addr, a1:addr, i:int. + let a2 = shiftfield_F1_FD_pos a1 in + let x = get t1 a2 in + not x = i -> + region (base a1) <= 0 -> + region (base a) <= 0 -> + linked t -> is_sint32 i -> is_sint32 x -> not invalid t a2 1 -> a2 = a end [wp] 2 goals generated diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle index 665ff4aed3b..49f7d20f9c9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle @@ -13,12 +13,11 @@ f - 1 1 100% ------------------------------------------------------------ [wp] Running WP plugin... -[wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_f_ensures_A : Valid +[wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_B : Valid -[wp] Proved goals: 2 / 2 +[wp] Proved goals: 1 / 1 Qed: 0 - Alt-Ergo: 2 + Alt-Ergo: 1 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success f - 2 2 100% diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle index bf325fc4ff1..17d6e97b828 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle @@ -5,16 +5,16 @@ [rte] annotating function foo_correct [rte] annotating function foo_wrong [wp] 10 goals scheduled -[wp] [Qed] Goal typed_foo_correct_ensures : Valid -[wp] [Alt-Ergo] Goal typed_foo_correct_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_2 : Valid -[wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_3 : Valid -[wp] [Qed] Goal typed_foo_correct_assigns : Valid [wp] [Qed] Goal typed_foo_wrong_ensures : Valid [wp] [Qed] Goal typed_foo_wrong_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_foo_wrong_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_foo_wrong_assert_rte_mem_access_3 : Unsuccess [wp] [Qed] Goal typed_foo_wrong_assigns : Valid +[wp] [Qed] Goal typed_foo_correct_ensures : Valid +[wp] [Alt-Ergo] Goal typed_foo_correct_assert_rte_mem_access : Valid +[wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_2 : Valid +[wp] [Qed] Goal typed_foo_correct_assert_rte_mem_access_3 : Valid +[wp] [Qed] Goal typed_foo_correct_assigns : Valid [wp] Proved goals: 9 / 10 Qed: 8 Alt-Ergo: 1 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle index 84c5b56ed46..d56ed6a72d4 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle @@ -4,10 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled -[wp] [Qed] Goal typed_local_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_local_loop_invariant_established : Valid -[wp] [Qed] Goal typed_local_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_local_loop_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_wrong_assert_for_value : Valid [wp] [Alt-Ergo] Goal typed_wrong_loop_invariant_A_KO_preserved : Unsuccess [wp] [Qed] Goal typed_wrong_loop_invariant_A_KO_established : Valid @@ -17,6 +13,10 @@ [wp] [Qed] Goal typed_wrong_loop_invariant_C_established : Valid [wp] [Alt-Ergo] Goal typed_wrong_assert_consequence_of_false_invariant : Valid [wp] [Qed] Goal typed_wrong_loop_assigns : Valid +[wp] [Qed] Goal typed_local_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_local_loop_invariant_established : Valid +[wp] [Qed] Goal typed_local_loop_assigns_part1 : Valid +[wp] [Qed] Goal typed_local_loop_assigns_part2 : Valid [wp] Proved goals: 12 / 13 Qed: 10 Alt-Ergo: 2 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle index 24788faf50d..90a8c196a37 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled +[wp] [Alt-Ergo] Goal typed_local_frame_assert_ok : Valid [wp] [Alt-Ergo] Goal typed_global_frame_ensures_sep_iff_ref : Unsuccess [wp] [Alt-Ergo] Goal typed_global_frame_ensures_one_iff_ref : Unsuccess [wp] [Qed] Goal typed_global_frame_ensures_zero_always : Valid [wp] [Qed] Goal typed_global_frame_assert_ok : Valid [wp] [Qed] Goal typed_global_frame_assert_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_local_frame_assert_ok : Valid [wp] Proved goals: 4 / 6 Qed: 3 Alt-Ergo: 1 (unsuccess: 2) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index f560c0a026a..a2d8e0ab94d 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled +[wp] [Alt-Ergo] Goal typed_ref_local_frame_assert_ok : Valid [wp] [Qed] Goal typed_ref_global_frame_ensures_sep_iff_ref : Valid [wp] [Qed] Goal typed_ref_global_frame_ensures_one_iff_ref : Valid [wp] [Qed] Goal typed_ref_global_frame_ensures_zero_always : Valid [wp] [Qed] Goal typed_ref_global_frame_assert_ok : Valid [wp] [Qed] Goal typed_ref_global_frame_assert_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_local_frame_assert_ok : Valid [wp] Proved goals: 6 / 6 Qed: 5 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle index 485a5ed91f4..a6f939cc4e3 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle @@ -3,8 +3,8 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] [Alt-Ergo] Goal typed_lemma_ok_because_consistent : Valid +[wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle index 0e57e63b9d9..0a64bcc847b 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] [Alt-Ergo] Goal typed_lemma_ok_because_consistent : Valid +[wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle index 485a5ed91f4..a6f939cc4e3 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle @@ -3,8 +3,8 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] [Alt-Ergo] Goal typed_lemma_ok_because_consistent : Valid +[wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] Proved goals: 2 / 2 Qed: 0 Alt-Ergo: 2 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle index a4f2f3787a6..35caf3f22af 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle @@ -4,11 +4,11 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 2 goals scheduled +[wp] [Coq (native)] Goal typed_lemma_ok_because_consistent : Failed + Command './tests/inexistant-prover' not found [wp] [Coq] Goal typed_lemma_ok_because_inconsistent : Default tactic [wp] [Coq (native)] Goal typed_lemma_ok_because_inconsistent : Failed Command './tests/inexistant-prover' not found -[wp] [Coq (native)] Goal typed_lemma_ok_because_consistent : Failed - Command './tests/inexistant-prover' not found [wp] Proved goals: 0 / 2 Coq (native): 0 (failed: 2) ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle index 35895046c31..53253f8d9f1 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle @@ -4,14 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled -[wp] [Alt-Ergo] Goal typed_issue_check_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_issue_check_ko_2 : Unsuccess [wp] [Alt-Ergo] Goal typed_job_ensures : Unsuccess [wp] [Qed] Goal typed_job_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_job_loop_invariant_established : Valid [wp] [Qed] Goal typed_job_loop_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_job_loop_assigns_part2 : Unsuccess [wp] [Qed] Goal typed_job_assigns : Valid +[wp] [Alt-Ergo] Goal typed_issue_check_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_issue_check_ko_2 : Unsuccess [wp] Proved goals: 4 / 8 Qed: 4 Alt-Ergo: 0 (unsuccess: 4) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle index 1e55e4e4da4..45666c1b946 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle @@ -4,15 +4,15 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled +[wp] [Qed] Goal typed_foo_assigns_part1 : Valid +[wp] [Qed] Goal typed_foo_assigns_part2 : Valid +[wp] [Qed] Goal typed_foo_assigns_part3 : Valid +[wp] [Qed] Goal typed_foo_assigns_part4 : Valid [wp] [Qed] Goal typed_bar_assigns_part1 : Valid [wp] [Qed] Goal typed_bar_assigns_part2 : Valid [wp] [Qed] Goal typed_bar_assigns_part3 : Valid [wp] [Qed] Goal typed_bar_assigns_part4 : Valid [wp] [Qed] Goal typed_bar_assigns_part5 : Valid -[wp] [Qed] Goal typed_foo_assigns_part1 : Valid -[wp] [Qed] Goal typed_foo_assigns_part2 : Valid -[wp] [Qed] Goal typed_foo_assigns_part3 : Valid -[wp] [Qed] Goal typed_foo_assigns_part4 : Valid [wp] Proved goals: 9 / 9 Qed: 9 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle index b4f4caaaf02..72351f9121f 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle @@ -20,9 +20,9 @@ [wp] Goal typed_find_loop_assigns : trivial [wp] Goal typed_find_loop_variant_decrease : not tried [wp] Goal typed_find_loop_variant_positive : not tried +[wp] Goal typed_find_not_found_ensures : not tried [wp] Goal typed_find_found_ensures : not tried [wp] Goal typed_find_found_ensures_2 : not tried -[wp] Goal typed_find_not_found_ensures : not tried [wp] Goal typed_find_ptr_complete_found_not_found : trivial [wp] Goal typed_find_ptr_disjoint_found_not_found : trivial [wp] Goal typed_find_ptr_ensures_Range : not tried @@ -38,9 +38,9 @@ [wp] Goal typed_find_ptr_loop_assigns : trivial [wp] Goal typed_find_ptr_loop_variant_decrease : not tried [wp] Goal typed_find_ptr_loop_variant_positive : not tried +[wp] Goal typed_find_ptr_not_found_ensures : not tried [wp] Goal typed_find_ptr_found_ensures : not tried [wp] Goal typed_find_ptr_found_ensures_2 : not tried -[wp] Goal typed_find_ptr_not_found_ensures : not tried [wp] Goal typed_iter_ptr_ensures_Last : not tried [wp] Goal typed_iter_ptr_loop_invariant_Range_preserved : not tried [wp] Goal typed_iter_ptr_loop_invariant_Range_established : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle index d19091020e7..f2d7a6e3d44 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle @@ -36,5 +36,5 @@ [wp] Goal typed_pair_loop_variant_positive : not tried [wp] Goal typed_pair_loop_variant_2_decrease : not tried [wp] Goal typed_pair_loop_variant_2_positive : not tried -[wp] Goal typed_pair_has_pair_ensures : not tried [wp] Goal typed_pair_no_pair_ensures : not tried +[wp] Goal typed_pair_has_pair_ensures : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle index 064dce264b9..925440fc3ab 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle @@ -8,60 +8,6 @@ [rte] annotating function init [rte] annotating function mem_binding [rte] annotating function size -[wp] Goal typed_add_complete_full_nominal : not tried -[wp] Goal typed_add_disjoint_full_nominal : not tried -[wp] Goal typed_add_assert_rte_index_bound : not tried -[wp] Goal typed_add_assert_rte_mem_access : not tried -[wp] Goal typed_add_assert_rte_index_bound_2 : not tried -[wp] Goal typed_add_assert_rte_index_bound_3 : not tried -[wp] Goal typed_add_assert_rte_index_bound_4 : not tried -[wp] Goal typed_add_assert_rte_index_bound_5 : not tried -[wp] Goal typed_add_assert_rte_mem_access_2 : not tried -[wp] Goal typed_add_assert_rte_mem_access_3 : not tried -[wp] Goal typed_add_assert_rte_index_bound_6 : not tried -[wp] Goal typed_add_assert_rte_mem_access_4 : not tried -[wp] Goal typed_add_assert_rte_mem_access_5 : not tried -[wp] Goal typed_add_assert_rte_signed_overflow : not tried -[wp] Goal typed_add_assert_rte_mem_access_6 : not tried -[wp] Goal typed_add_assert_rte_mem_access_7 : not tried -[wp] Goal typed_add_assert_rte_signed_overflow_2 : not tried -[wp] Goal typed_add_assigns_exit : trivial -[wp] Goal typed_add_assigns_normal_part1 : trivial -[wp] Goal typed_add_assigns_normal_part2 : not tried -[wp] Goal typed_add_assigns_normal_part3 : not tried -[wp] Goal typed_add_assigns_normal_part4 : not tried -[wp] Goal typed_add_assigns_normal_part5 : not tried -[wp] Goal typed_add_assigns_normal_part6 : not tried -[wp] Goal typed_add_assigns_normal_part7 : not tried -[wp] Goal typed_add_assigns_normal_part8 : not tried -[wp] Goal typed_add_assigns_normal_part9 : not tried -[wp] Goal typed_add_call_hash_requires : not tried -[wp] Goal typed_add_full_ensures : not tried -[wp] Goal typed_add_full_assigns_exit : trivial -[wp] Goal typed_add_full_assigns_normal_part1 : trivial -[wp] Goal typed_add_full_assigns_normal_part2 : not tried -[wp] Goal typed_add_full_assigns_normal_part3 : not tried -[wp] Goal typed_add_full_assigns_normal_part4 : not tried -[wp] Goal typed_add_full_assigns_normal_part5 : not tried -[wp] Goal typed_add_full_assigns_normal_part6 : not tried -[wp] Goal typed_add_full_assigns_normal_part7 : not tried -[wp] Goal typed_add_full_assigns_normal_part8 : not tried -[wp] Goal typed_add_full_assigns_normal_part9 : not tried -[wp] Goal typed_add_nominal_ensures : not tried -[wp] Goal typed_add_nominal_ensures_2 : not tried -[wp] Goal typed_add_nominal_ensures_3 : not tried -[wp] Goal typed_add_nominal_ensures_4 : not tried -[wp] Goal typed_add_nominal_ensures_5 : not tried -[wp] Goal typed_add_nominal_assigns_exit : trivial -[wp] Goal typed_add_nominal_assigns_normal_part1 : trivial -[wp] Goal typed_add_nominal_assigns_normal_part2 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part3 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part4 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part5 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part6 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part7 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part8 : not tried -[wp] Goal typed_add_nominal_assigns_normal_part9 : not tried [wp] Goal typed_eq_string_complete_not_eq_eq : trivial [wp] Goal typed_eq_string_disjoint_not_eq_eq : trivial [wp] Goal typed_eq_string_loop_invariant_preserved : not tried @@ -91,6 +37,9 @@ [wp] Goal typed_hash_assigns_part2 : not tried [wp] Goal typed_hash_loop_variant_decrease : not tried [wp] Goal typed_hash_loop_variant_positive : not tried +[wp] Goal typed_size_ensures : not tried +[wp] Goal typed_size_assert_rte_mem_access : not tried +[wp] Goal typed_size_assigns : not tried [wp] Goal typed_init_ensures : not tried [wp] Goal typed_init_ensures_2 : not tried [wp] Goal typed_init_assert_rte_mem_access : not tried @@ -109,6 +58,60 @@ [wp] Goal typed_init_assigns_part3 : not tried [wp] Goal typed_init_loop_variant_decrease : not tried [wp] Goal typed_init_loop_variant_positive : not tried +[wp] Goal typed_add_complete_full_nominal : not tried +[wp] Goal typed_add_disjoint_full_nominal : not tried +[wp] Goal typed_add_assert_rte_index_bound : not tried +[wp] Goal typed_add_assert_rte_mem_access : not tried +[wp] Goal typed_add_assert_rte_index_bound_2 : not tried +[wp] Goal typed_add_assert_rte_index_bound_3 : not tried +[wp] Goal typed_add_assert_rte_index_bound_4 : not tried +[wp] Goal typed_add_assert_rte_index_bound_5 : not tried +[wp] Goal typed_add_assert_rte_mem_access_2 : not tried +[wp] Goal typed_add_assert_rte_mem_access_3 : not tried +[wp] Goal typed_add_assert_rte_index_bound_6 : not tried +[wp] Goal typed_add_assert_rte_mem_access_4 : not tried +[wp] Goal typed_add_assert_rte_mem_access_5 : not tried +[wp] Goal typed_add_assert_rte_signed_overflow : not tried +[wp] Goal typed_add_assert_rte_mem_access_6 : not tried +[wp] Goal typed_add_assert_rte_mem_access_7 : not tried +[wp] Goal typed_add_assert_rte_signed_overflow_2 : not tried +[wp] Goal typed_add_assigns_exit : trivial +[wp] Goal typed_add_assigns_normal_part1 : trivial +[wp] Goal typed_add_assigns_normal_part2 : not tried +[wp] Goal typed_add_assigns_normal_part3 : not tried +[wp] Goal typed_add_assigns_normal_part4 : not tried +[wp] Goal typed_add_assigns_normal_part5 : not tried +[wp] Goal typed_add_assigns_normal_part6 : not tried +[wp] Goal typed_add_assigns_normal_part7 : not tried +[wp] Goal typed_add_assigns_normal_part8 : not tried +[wp] Goal typed_add_assigns_normal_part9 : not tried +[wp] Goal typed_add_call_hash_requires : not tried +[wp] Goal typed_add_nominal_ensures : not tried +[wp] Goal typed_add_nominal_ensures_2 : not tried +[wp] Goal typed_add_nominal_ensures_3 : not tried +[wp] Goal typed_add_nominal_ensures_4 : not tried +[wp] Goal typed_add_nominal_ensures_5 : not tried +[wp] Goal typed_add_nominal_assigns_exit : trivial +[wp] Goal typed_add_nominal_assigns_normal_part1 : trivial +[wp] Goal typed_add_nominal_assigns_normal_part2 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part3 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part4 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part5 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part6 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part7 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part8 : not tried +[wp] Goal typed_add_nominal_assigns_normal_part9 : not tried +[wp] Goal typed_add_full_ensures : not tried +[wp] Goal typed_add_full_assigns_exit : trivial +[wp] Goal typed_add_full_assigns_normal_part1 : trivial +[wp] Goal typed_add_full_assigns_normal_part2 : not tried +[wp] Goal typed_add_full_assigns_normal_part3 : not tried +[wp] Goal typed_add_full_assigns_normal_part4 : not tried +[wp] Goal typed_add_full_assigns_normal_part5 : not tried +[wp] Goal typed_add_full_assigns_normal_part6 : not tried +[wp] Goal typed_add_full_assigns_normal_part7 : not tried +[wp] Goal typed_add_full_assigns_normal_part8 : not tried +[wp] Goal typed_add_full_assigns_normal_part9 : not tried [wp] Goal typed_mem_binding_complete_not_found_found : not tried [wp] Goal typed_mem_binding_disjoint_not_found_found : not tried [wp] Goal typed_mem_binding_loop_invariant_preserved : not tried @@ -149,6 +152,3 @@ [wp] Goal typed_mem_binding_call_eq_string_requires_2 : not tried [wp] Goal typed_mem_binding_found_ensures : not tried [wp] Goal typed_mem_binding_not_found_ensures : not tried -[wp] Goal typed_size_ensures : not tried -[wp] Goal typed_size_assert_rte_mem_access : not tried -[wp] Goal typed_size_assigns : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle index 52b5a0ec02f..e8ad8501265 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle @@ -4,6 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Goal typed_lemma_Lb : not tried +[wp] Goal typed_loop_statement_requires_Scond : not tried +[wp] Goal typed_loop_statement_ensures_Sbody : not tried +[wp] Goal typed_loop_statement_assigns : trivial +[wp] Goal typed_loop_statement_requires_Rinv : not tried [wp] Goal typed_loop_statement_ensures_Scond : not tried [wp] Goal typed_loop_statement_ensures_Sloop : not tried [wp] Goal typed_loop_statement_loop_invariant_Iloop_preserved : not tried @@ -14,7 +18,3 @@ [wp] Goal typed_loop_statement_assigns_2_exit_part2 : not tried [wp] Goal typed_loop_statement_assigns_2_normal_part1 : trivial [wp] Goal typed_loop_statement_assigns_2_normal_part2 : not tried -[wp] Goal typed_loop_statement_requires_Rinv : not tried -[wp] Goal typed_loop_statement_requires_Scond : not tried -[wp] Goal typed_loop_statement_ensures_Sbody : not tried -[wp] Goal typed_loop_statement_assigns : trivial diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle index 1211edc2675..8be32f90482 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle @@ -17,9 +17,9 @@ [wp] [Qed] Goal typed_find_loop_assigns : Valid [wp] [Qed] Goal typed_find_loop_variant_decrease : Valid [wp] [Qed] Goal typed_find_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_find_not_found_ensures : Valid [wp] [Alt-Ergo] Goal typed_find_found_ensures : Valid [wp] [Alt-Ergo] Goal typed_find_found_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_find_not_found_ensures : Valid [wp] [Qed] Goal typed_find_ptr_complete_found_not_found : Valid [wp] [Qed] Goal typed_find_ptr_disjoint_found_not_found : Valid [wp] [Qed] Goal typed_find_ptr_ensures_Range : Valid @@ -34,9 +34,9 @@ [wp] [Qed] Goal typed_find_ptr_loop_assigns : Valid [wp] [Qed] Goal typed_find_ptr_loop_variant_decrease : Valid [wp] [Alt-Ergo] Goal typed_find_ptr_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_find_ptr_not_found_ensures : Valid [wp] [Alt-Ergo] Goal typed_find_ptr_found_ensures : Valid [wp] [Alt-Ergo] Goal typed_find_ptr_found_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_not_found_ensures : Valid [wp] [Alt-Ergo] Goal typed_iter_ptr_ensures_Last : Valid [wp] [Alt-Ergo] Goal typed_iter_ptr_loop_invariant_Range_preserved : Valid [wp] [Alt-Ergo] Goal typed_iter_ptr_loop_invariant_Range_established : Valid @@ -58,54 +58,13 @@ [rte] annotating function find [rte] annotating function find_ptr [rte] annotating function iter_ptr -[wp] 44 goals scheduled -[wp] [Qed] Goal typed_find_complete_found_not_found : Valid -[wp] [Qed] Goal typed_find_disjoint_found_not_found : Valid -[wp] [Qed] Goal typed_find_ensures_Range : Valid -[wp] [Qed] Goal typed_find_ensures_NoneBefore : Valid -[wp] [Alt-Ergo] Goal typed_find_loop_invariant_NotFound_preserved : Valid -[wp] [Alt-Ergo] Goal typed_find_loop_invariant_NotFound_established : Valid -[wp] [Alt-Ergo] Goal typed_find_loop_invariant_Range_preserved : Valid -[wp] [Alt-Ergo] Goal typed_find_loop_invariant_Range_established : Valid -[wp] [Alt-Ergo] Goal typed_find_loop_invariant_Valid_preserved : Valid -[wp] [Alt-Ergo] Goal typed_find_loop_invariant_Valid_established : Valid +[wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_find_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_find_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_find_loop_assigns : Valid -[wp] [Qed] Goal typed_find_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_find_loop_variant_positive : Valid -[wp] [Alt-Ergo] Goal typed_find_found_ensures : Valid -[wp] [Alt-Ergo] Goal typed_find_found_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_find_not_found_ensures : Valid -[wp] [Qed] Goal typed_find_ptr_complete_found_not_found : Valid -[wp] [Qed] Goal typed_find_ptr_disjoint_found_not_found : Valid -[wp] [Qed] Goal typed_find_ptr_ensures_Range : Valid -[wp] [Qed] Goal typed_find_ptr_ensures_NoneBefore : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_invariant_NotFound_preserved : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_invariant_NotFound_established : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_invariant_Range_preserved : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_invariant_Range_established : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_invariant_Valid_preserved : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_invariant_Valid_established : Valid [wp] [Alt-Ergo] Goal typed_find_ptr_assert_rte_mem_access : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_assert_Hack : Valid -[wp] [Qed] Goal typed_find_ptr_loop_assigns : Valid -[wp] [Qed] Goal typed_find_ptr_loop_variant_decrease : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_loop_variant_positive : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_found_ensures : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_found_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_find_ptr_not_found_ensures : Valid -[wp] [Alt-Ergo] Goal typed_iter_ptr_ensures_Last : Valid -[wp] [Alt-Ergo] Goal typed_iter_ptr_loop_invariant_Range_preserved : Valid -[wp] [Alt-Ergo] Goal typed_iter_ptr_loop_invariant_Range_established : Valid -[wp] [Alt-Ergo] Goal typed_iter_ptr_loop_invariant_Valid_preserved : Valid -[wp] [Alt-Ergo] Goal typed_iter_ptr_loop_invariant_Valid_established : Valid -[wp] [Qed] Goal typed_iter_ptr_loop_assigns : Valid -[wp] [Qed] Goal typed_iter_ptr_loop_variant_decrease : Valid -[wp] [Alt-Ergo] Goal typed_iter_ptr_loop_variant_positive : Valid -[wp] Proved goals: 44 / 44 +[wp] Proved goals: 3 / 3 Qed: 0 - Alt-Ergo: 29 + Alt-Ergo: 3 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success find 7 11 18 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle index 56115402d69..4db7c7a1f0d 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle @@ -23,25 +23,15 @@ ------------------------------------------------------------ [wp] Running WP plugin... [rte] annotating function exo1 -[wp] 15 goals scheduled -[wp] [Alt-Ergo] Goal typed_exo1_ensures : Valid -[wp] [Alt-Ergo] Goal typed_exo1_ensures_2 : Valid +[wp] 5 goals scheduled [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_exo1_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_exo1_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_mem_access_2 : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow_2 : Valid [wp] [Alt-Ergo] Goal typed_exo1_assert_rte_signed_overflow_3 : Valid -[wp] [Qed] Goal typed_exo1_loop_assigns : Valid -[wp] [Qed] Goal typed_exo1_assigns : Valid -[wp] [Qed] Goal typed_exo1_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_exo1_loop_variant_positive : Valid -[wp] Proved goals: 15 / 15 +[wp] Proved goals: 5 / 5 Qed: 0 - Alt-Ergo: 9 + Alt-Ergo: 5 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success exo1 6 9 15 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle index c79730c154b..79f7291d9d1 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle @@ -35,33 +35,11 @@ ------------------------------------------------------------ [wp] Running WP plugin... [rte] annotating function max_subarray -[wp] 23 goals scheduled -[wp] [Alt-Ergo] Goal typed_max_subarray_ensures : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_invariant_2_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_3_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_invariant_3_established : Valid -[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_preserved : Valid -[wp] [Qed] Goal typed_max_subarray_loop_invariant_4_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_5_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_6_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_7_established : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_max_subarray_loop_invariant_8_established : Valid +[wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_max_subarray_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_max_subarray_loop_assigns : Valid -[wp] [Qed] Goal typed_max_subarray_assigns : Valid -[wp] [Qed] Goal typed_max_subarray_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_max_subarray_loop_variant_positive : Valid -[wp] Proved goals: 23 / 23 +[wp] Proved goals: 1 / 1 Qed: 0 - Alt-Ergo: 14 + Alt-Ergo: 1 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success max_subarray 9 14 23 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 0e6282073de..54d4c5af6b2 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -55,35 +55,12 @@ void equal_elements(int *a, int *v1, int *v2); [wp] Running WP plugin... [rte] annotating function equal_elements -[wp] 50 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_3 : Valid +[wp] 16 goals scheduled [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_2_established : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_3_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_3_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_4_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_5_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_5_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_6_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_6_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_7_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_7_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_8_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_9_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_9_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_10_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : Valid @@ -92,23 +69,12 @@ [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_6 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_7 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_8 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_2 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid -[wp] Proved goals: 50 / 50 +[wp] Proved goals: 16 / 16 Qed: 11 - Alt-Ergo: 21 + Alt-Ergo: 5 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success equal_elements 29 21 50 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index e087ce68ecd..695f42b898a 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -56,38 +56,12 @@ void equal_elements(int *a, int *v1, int *v2); [wp] Running WP plugin... [rte] annotating function equal_elements -[wp] 51 goals scheduled -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v2_good : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_v2_diff : Valid +[wp] 16 goals scheduled [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_set_at_0_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_set_at_0_established : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_set_at_1 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_bound_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_bound_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_seen_sound2_established : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_first_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_sound2_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v1_v2_diff_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_preserved : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_invariant_v2_sound1_established : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_preserved : Valid -[wp] [Alt-Ergo] Goal typed_ref_equal_elements_loop_invariant_v2_sound2_established : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_index_bound_4 : Valid @@ -99,18 +73,9 @@ [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_ref_equal_elements_assert_rte_index_bound_6 : Valid [wp] [Alt-Ergo] Goal typed_ref_equal_elements_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_assigns_2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assigns_part1 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assigns_part2 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_assigns_part3 : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_positive : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_decrease : Valid -[wp] [Qed] Goal typed_ref_equal_elements_loop_variant_2_positive : Valid -[wp] Proved goals: 51 / 51 +[wp] Proved goals: 16 / 16 Qed: 11 - Alt-Ergo: 23 + Alt-Ergo: 5 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success equal_elements 28 23 51 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle index 8a3de10fe1b..563905bf96a 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle @@ -28,8 +28,8 @@ [wp] [Qed] Goal typed_pair_loop_variant_positive : Valid [wp] [Qed] Goal typed_pair_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid -[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid [wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid +[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid [wp] Proved goals: 26 / 26 Qed: 16 Alt-Ergo: 10 @@ -39,45 +39,19 @@ ------------------------------------------------------------ [wp] Running WP plugin... [rte] annotating function pair -[wp] 35 goals scheduled -[wp] [Qed] Goal typed_pair_complete_has_pair_no_pair : Valid -[wp] [Qed] Goal typed_pair_disjoint_has_pair_no_pair : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_invariant_2_established : Valid +[wp] 9 goals scheduled [wp] [Qed] Goal typed_pair_assert_rte_index_bound : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_signed_overflow : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_3_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_invariant_3_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_4_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_5_preserved : Valid -[wp] [Qed] Goal typed_pair_loop_invariant_5_established : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_preserved : Valid -[wp] [Alt-Ergo] Goal typed_pair_loop_invariant_6_established : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_mem_access : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_index_bound_3 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_index_bound_4 : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_5 : Valid [wp] [Qed] Goal typed_pair_assert_rte_index_bound_6 : Valid [wp] [Alt-Ergo] Goal typed_pair_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_pair_loop_assigns : Valid -[wp] [Qed] Goal typed_pair_loop_assigns_2 : Valid -[wp] [Qed] Goal typed_pair_assigns_part1 : Valid -[wp] [Qed] Goal typed_pair_assigns_part2 : Valid -[wp] [Qed] Goal typed_pair_assigns_part3 : Valid -[wp] [Qed] Goal typed_pair_assigns_part4 : Valid -[wp] [Qed] Goal typed_pair_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_variant_positive : Valid -[wp] [Qed] Goal typed_pair_loop_variant_2_decrease : Valid -[wp] [Qed] Goal typed_pair_loop_variant_2_positive : Valid -[wp] [Alt-Ergo] Goal typed_pair_has_pair_ensures : Valid -[wp] [Alt-Ergo] Goal typed_pair_no_pair_ensures : Valid -[wp] Proved goals: 35 / 35 +[wp] Proved goals: 9 / 9 Qed: 4 - Alt-Ergo: 15 + Alt-Ergo: 5 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success pair 20 15 35 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle index 805447286d9..42b46a15b56 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle @@ -4,45 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 102 goals scheduled -[wp] [Alt-Ergo] Goal typed_add_complete_full_nominal : Valid -[wp] [Alt-Ergo] Goal typed_add_disjoint_full_nominal : Valid -[wp] [Qed] Goal typed_add_assigns_exit : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid -[wp] [Qed] Goal typed_add_call_hash_requires : Valid -[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid -[wp] [Qed] Goal typed_add_full_assigns_exit : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid [wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid [wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid [wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid @@ -65,6 +26,8 @@ [wp] [Qed] Goal typed_hash_assigns_part2 : Valid [wp] [Qed] Goal typed_hash_loop_variant_decrease : Valid [wp] [Qed] Goal typed_hash_loop_variant_positive : Valid +[wp] [Qed] Goal typed_size_ensures : Valid +[wp] [Qed] Goal typed_size_assigns : Valid [wp] [Alt-Ergo] Goal typed_init_ensures : Valid [wp] [Alt-Ergo] Goal typed_init_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_init_loop_invariant_preserved : Valid @@ -78,6 +41,45 @@ [wp] [Script] Goal typed_init_assigns_part3 : Valid [wp] [Qed] Goal typed_init_loop_variant_decrease : Valid [wp] [Qed] Goal typed_init_loop_variant_positive : Valid +[wp] [Alt-Ergo] Goal typed_add_complete_full_nominal : Valid +[wp] [Alt-Ergo] Goal typed_add_disjoint_full_nominal : Valid +[wp] [Qed] Goal typed_add_assigns_exit : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid +[wp] [Qed] Goal typed_add_call_hash_requires : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid +[wp] [Qed] Goal typed_add_full_assigns_exit : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid +[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid +[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid @@ -104,8 +106,6 @@ [wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_requires_2 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_found_ensures : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_not_found_ensures : Valid -[wp] [Qed] Goal typed_size_ensures : Valid -[wp] [Qed] Goal typed_size_assigns : Valid [wp] Proved goals: 102 / 102 Qed: 69 Script: 1 @@ -126,9 +126,19 @@ [rte] annotating function init [rte] annotating function mem_binding [rte] annotating function size -[wp] 143 goals scheduled -[wp] [Alt-Ergo] Goal typed_add_complete_full_nominal : Valid -[wp] [Alt-Ergo] Goal typed_add_disjoint_full_nominal : Valid +[wp] 41 goals scheduled +[wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access_2 : Valid +[wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_signed_overflow : Valid +[wp] [Alt-Ergo] Goal typed_hash_assert_rte_mem_access : Valid +[wp] [Qed] Goal typed_hash_assert_rte_mem_access_2 : Valid +[wp] [Alt-Ergo] Goal typed_hash_assert_rte_signed_overflow : Valid +[wp] [Alt-Ergo] Goal typed_size_assert_rte_mem_access : Valid +[wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access : Valid +[wp] [Qed] Goal typed_init_assert_rte_index_bound : Valid +[wp] [Qed] Goal typed_init_assert_rte_index_bound_2 : Valid +[wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access_2 : Valid +[wp] [Alt-Ergo] Goal typed_init_assert_rte_signed_overflow : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_index_bound : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access : Valid [wp] [Qed] Goal typed_add_assert_rte_index_bound_2 : Valid @@ -144,95 +154,6 @@ [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access_6 : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_mem_access_7 : Valid [wp] [Alt-Ergo] Goal typed_add_assert_rte_signed_overflow_2 : Valid -[wp] [Qed] Goal typed_add_assigns_exit : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_assigns_normal_part7 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part8 : Valid -[wp] [Qed] Goal typed_add_assigns_normal_part9 : Valid -[wp] [Qed] Goal typed_add_call_hash_requires : Valid -[wp] [Alt-Ergo] Goal typed_add_full_ensures : Valid -[wp] [Qed] Goal typed_add_full_assigns_exit : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid -[wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid -[wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_3 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_4 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_ensures_5 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_exit : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part5 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part6 : Valid -[wp] [Alt-Ergo] Goal typed_add_nominal_assigns_normal_part7 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part8 : Valid -[wp] [Qed] Goal typed_add_nominal_assigns_normal_part9 : Valid -[wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid -[wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_eq_string_loop_invariant_2_established : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_eq_string_loop_assigns : Valid -[wp] [Qed] Goal typed_eq_string_assigns_part1 : Valid -[wp] [Qed] Goal typed_eq_string_assigns_part2 : Valid -[wp] [Qed] Goal typed_eq_string_assigns_part3 : Valid -[wp] [Qed] Goal typed_eq_string_assigns_part4 : Valid -[wp] [Qed] Goal typed_eq_string_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_eq_string_loop_variant_positive : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_eq_ensures : Valid -[wp] [Alt-Ergo] Goal typed_eq_string_not_eq_ensures : Valid -[wp] [Alt-Ergo] Goal typed_hash_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_hash_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_hash_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_hash_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_hash_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_hash_loop_assigns : Valid -[wp] [Qed] Goal typed_hash_assigns_part1 : Valid -[wp] [Qed] Goal typed_hash_assigns_part2 : Valid -[wp] [Qed] Goal typed_hash_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_hash_loop_variant_positive : Valid -[wp] [Alt-Ergo] Goal typed_init_ensures : Valid -[wp] [Alt-Ergo] Goal typed_init_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_init_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_init_loop_invariant_2_established : Valid -[wp] [Qed] Goal typed_init_assert_rte_index_bound : Valid -[wp] [Qed] Goal typed_init_assert_rte_index_bound_2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assert_rte_mem_access_2 : Valid -[wp] [Alt-Ergo] Goal typed_init_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid -[wp] [Qed] Goal typed_init_assigns_part1 : Valid -[wp] [Qed] Goal typed_init_assigns_part2 : Valid -[wp] [Script] Goal typed_init_assigns_part3 : Valid -[wp] [Qed] Goal typed_init_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_init_loop_variant_positive : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_mem_binding_loop_invariant_2_established : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_index_bound : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_index_bound_2 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_mem_access : Valid @@ -247,33 +168,9 @@ [wp] [Qed] Goal typed_mem_binding_assert_rte_index_bound_10 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_mem_access_3 : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_assert_rte_signed_overflow : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assigns_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_assigns_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_exit_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_exit_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part5 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part6 : Valid -[wp] [Qed] Goal typed_mem_binding_assigns_normal_part7 : Valid -[wp] [Qed] Goal typed_mem_binding_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_mem_binding_loop_variant_positive : Valid -[wp] [Qed] Goal typed_mem_binding_call_hash_requires : Valid -[wp] [Qed] Goal typed_mem_binding_call_eq_string_requires : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_call_eq_string_requires_2 : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_found_ensures : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_not_found_ensures : Valid -[wp] [Qed] Goal typed_size_ensures : Valid -[wp] [Alt-Ergo] Goal typed_size_assert_rte_mem_access : Valid -[wp] [Qed] Goal typed_size_assigns : Valid -[wp] Proved goals: 143 / 143 +[wp] Proved goals: 41 / 41 Qed: 16 - Script: 1 - Alt-Ergo: 57 + Alt-Ergo: 25 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success eq_string 11 7 18 100% diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle index 206278a5b0a..aded76634e3 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle @@ -5,6 +5,10 @@ [wp] Warning: Missing RTE guards [wp] 15 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_Lb : Valid +[wp] [Qed] Goal typed_loop_statement_requires_Scond : Valid +[wp] [Qed] Goal typed_loop_statement_ensures_Sbody : Valid +[wp] [Qed] Goal typed_loop_statement_assigns : Valid +[wp] [Alt-Ergo] Goal typed_loop_statement_requires_Rinv : Valid [wp] [Qed] Goal typed_loop_statement_ensures_Scond : Valid [wp] [Qed] Goal typed_loop_statement_ensures_Sloop : Valid [wp] [Alt-Ergo] Goal typed_loop_statement_loop_invariant_Iloop_preserved : Valid @@ -15,10 +19,6 @@ [wp] [Qed] Goal typed_loop_statement_assigns_2_exit_part2 : Valid [wp] [Qed] Goal typed_loop_statement_assigns_2_normal_part1 : Valid [wp] [Qed] Goal typed_loop_statement_assigns_2_normal_part2 : Valid -[wp] [Alt-Ergo] Goal typed_loop_statement_requires_Rinv : Valid -[wp] [Qed] Goal typed_loop_statement_requires_Scond : Valid -[wp] [Qed] Goal typed_loop_statement_ensures_Sbody : Valid -[wp] [Qed] Goal typed_loop_statement_assigns : Valid [wp] Proved goals: 15 / 15 Qed: 11 Alt-Ergo: 4 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle index 056f3917be7..45eb7b3621a 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle @@ -6,16 +6,16 @@ [wp] 12 goals scheduled [wp] [Qed] Goal typed_f_ensures : Valid [wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_wrong_without_ref_ensures : Valid +[wp] [Alt-Ergo] Goal typed_wrong_without_ref_call_f_requires : Unsuccess +[wp] [Qed] Goal typed_pointer_ensures : Valid +[wp] [Qed] Goal typed_pointer_call_f_requires : Valid +[wp] [Qed] Goal typed_local_ensures : Valid +[wp] [Qed] Goal typed_local_call_f_requires : Valid [wp] [Qed] Goal typed_formal_ensures : Valid [wp] [Qed] Goal typed_formal_call_f_requires : Valid [wp] [Qed] Goal typed_global_ensures : Valid [wp] [Qed] Goal typed_global_call_f_requires : Valid -[wp] [Qed] Goal typed_local_ensures : Valid -[wp] [Qed] Goal typed_local_call_f_requires : Valid -[wp] [Qed] Goal typed_pointer_ensures : Valid -[wp] [Qed] Goal typed_pointer_call_f_requires : Valid -[wp] [Qed] Goal typed_wrong_without_ref_ensures : Valid -[wp] [Alt-Ergo] Goal typed_wrong_without_ref_call_f_requires : Unsuccess [wp] Proved goals: 11 / 12 Qed: 11 Alt-Ergo: 0 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle index fabfc588e61..a8f7fa021c0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle @@ -6,16 +6,16 @@ [wp] 12 goals scheduled [wp] [Qed] Goal typed_ref_f_ensures : Valid [wp] [Qed] Goal typed_ref_f_assigns : Valid +[wp] [Qed] Goal typed_ref_wrong_without_ref_ensures : Valid +[wp] [Qed] Goal typed_ref_wrong_without_ref_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_pointer_ensures : Valid +[wp] [Qed] Goal typed_ref_pointer_call_f_requires : Valid +[wp] [Qed] Goal typed_ref_local_ensures : Valid +[wp] [Qed] Goal typed_ref_local_call_f_requires : Valid [wp] [Qed] Goal typed_ref_formal_ensures : Valid [wp] [Qed] Goal typed_ref_formal_call_f_requires : Valid [wp] [Qed] Goal typed_ref_global_ensures : Valid [wp] [Qed] Goal typed_ref_global_call_f_requires : Valid -[wp] [Qed] Goal typed_ref_local_ensures : Valid -[wp] [Qed] Goal typed_ref_local_call_f_requires : Valid -[wp] [Qed] Goal typed_ref_pointer_ensures : Valid -[wp] [Qed] Goal typed_ref_pointer_call_f_requires : Valid -[wp] [Qed] Goal typed_ref_wrong_without_ref_ensures : Valid -[wp] [Qed] Goal typed_ref_wrong_without_ref_call_f_requires : Valid [wp] Proved goals: 12 / 12 Qed: 12 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle index 0824c5c95dd..a2a8d10898a 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle @@ -4,29 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 78 goals scheduled -[wp] [Qed] Goal typed_ref_array_in_struct_param_ensures_Pload2 : Valid -[wp] [Qed] Goal typed_ref_array_in_struct_param_assigns : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_ensures_Mem_n5_nr6 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_ensures_Ref_r2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_ensures_Mem_n2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part5 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_ensures_Ref_r1 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_assigns_normal_part1 : Valid @@ -39,6 +16,43 @@ [wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part3 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part4 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr2_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_ref_bd_ensures : Valid +[wp] [Qed] Goal typed_ref_ref_bd_assigns : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_ensures_Ref_r2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_ensures_Mem_n2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_bd2_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_ensures_R7_N4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part5 : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_requires : Valid +[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_2_requires : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_ensures : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part1 : Valid +[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_ensures_Mem_n5_nr6 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_ref_call_no_ref_bd_assigns_normal_part5 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_nr_ensures_R_R_R : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_nr_ensures_R_R_R_2 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_nr_assigns_exit_part1 : Valid @@ -55,17 +69,6 @@ [wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_ref_ctr_nstars_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_ensures_R7_N4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_exit_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_assigns_normal_part5 : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_requires : Valid -[wp] [Qed] Goal typed_ref_call_ref_valid_call_ref_valid_2_requires : Valid [wp] [Qed] Goal typed_ref_call_two_ref_ensures : Valid [wp] [Qed] Goal typed_ref_call_two_ref_assigns_exit_part1 : Valid [wp] [Qed] Goal typed_ref_call_two_ref_assigns_exit_part2 : Valid @@ -77,11 +80,8 @@ [wp] [Qed] Goal typed_ref_g_assigns_exit : Valid [wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_ensures : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part1 : Valid -[wp] [Qed] Goal typed_ref_no_ref_bd_assigns_part2 : Valid -[wp] [Qed] Goal typed_ref_ref_bd_ensures : Valid -[wp] [Qed] Goal typed_ref_ref_bd_assigns : Valid +[wp] [Qed] Goal typed_ref_array_in_struct_param_ensures_Pload2 : Valid +[wp] [Qed] Goal typed_ref_array_in_struct_param_assigns : Valid [wp] Proved goals: 78 / 78 Qed: 78 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle index c472b2c06f3..7e91712c025 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle @@ -4,20 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid +[wp] [Qed] Goal typed_ref_incr_ensures : Valid +[wp] [Qed] Goal typed_ref_incr_assigns : Valid +[wp] [Qed] Goal typed_ref_load_ensures : Valid +[wp] [Qed] Goal typed_ref_load_assigns : Valid [wp] [Qed] Goal typed_ref_call_global_ensures : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_global_call_reset_requires : Valid [wp] [Qed] Goal typed_ref_call_global_call_load_requires : Valid -[wp] [Qed] Goal typed_ref_call_local_ensures : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid -[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid [wp] [Qed] Goal typed_ref_call_param_ensures : Valid [wp] [Qed] Goal typed_ref_call_param_assigns_exit_part1 : Valid [wp] [Qed] Goal typed_ref_call_param_assigns_exit_part2 : Valid @@ -26,18 +24,20 @@ [wp] [Qed] Goal typed_ref_call_param_assigns_normal_part3 : Valid [wp] [Qed] Goal typed_ref_call_param_call_reset_requires : Valid [wp] [Qed] Goal typed_ref_call_param_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_ensures : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid [wp] [Qed] Goal typed_ref_call_param_ref_ensures : Valid [wp] [Qed] Goal typed_ref_call_param_ref_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_param_ref_call_reset_requires : Valid [wp] [Qed] Goal typed_ref_call_param_ref_call_load_requires : Valid -[wp] [Qed] Goal typed_ref_incr_ensures : Valid -[wp] [Qed] Goal typed_ref_incr_assigns : Valid -[wp] [Qed] Goal typed_ref_load_ensures : Valid -[wp] [Qed] Goal typed_ref_load_assigns : Valid -[wp] [Qed] Goal typed_ref_reset_ensures : Valid -[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 34 / 34 Qed: 34 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle index 3996bedbab0..d829a53164d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle @@ -4,20 +4,18 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid +[wp] [Qed] Goal typed_ref_incr_ensures : Valid +[wp] [Qed] Goal typed_ref_incr_assigns : Valid +[wp] [Qed] Goal typed_ref_load_ensures : Valid +[wp] [Qed] Goal typed_ref_load_assigns : Valid [wp] [Qed] Goal typed_ref_call_global_ensures : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_global_call_reset_requires : Valid [wp] [Qed] Goal typed_ref_call_global_call_load_requires : Valid -[wp] [Qed] Goal typed_ref_call_local_ensures : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid -[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid [wp] [Qed] Goal typed_ref_call_param_ensures : Valid [wp] [Qed] Goal typed_ref_call_param_assigns_exit_part1 : Valid [wp] [Qed] Goal typed_ref_call_param_assigns_exit_part2 : Valid @@ -26,18 +24,20 @@ [wp] [Qed] Goal typed_ref_call_param_assigns_normal_part3 : Valid [wp] [Qed] Goal typed_ref_call_param_call_reset_requires : Valid [wp] [Qed] Goal typed_ref_call_param_call_load_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_ensures : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_call_local_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_call_local_call_reset_requires : Valid +[wp] [Qed] Goal typed_ref_call_local_call_load_requires : Valid [wp] [Qed] Goal typed_ref_call_param_ref_ensures : Valid [wp] [Qed] Goal typed_ref_call_param_ref_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_param_ref_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_param_ref_call_reset_requires : Valid [wp] [Qed] Goal typed_ref_call_param_ref_call_load_requires : Valid -[wp] [Qed] Goal typed_ref_incr_ensures : Valid -[wp] [Qed] Goal typed_ref_incr_assigns : Valid -[wp] [Qed] Goal typed_ref_load_ensures : Valid -[wp] [Qed] Goal typed_ref_load_assigns : Valid -[wp] [Qed] Goal typed_ref_reset_ensures : Valid -[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] Proved goals: 34 / 34 Qed: 34 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle index 4ff3c1673ec..47f513c7863 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle @@ -4,6 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 23 goals scheduled +[wp] [Qed] Goal typed_ref_g_ensures : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_ref_g_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_ref_g_call_f_requires : Valid [wp] [Qed] Goal typed_ref_call_f2_ensures : Valid [wp] [Qed] Goal typed_ref_call_f2_assigns_exit_part1 : Valid [wp] [Qed] Goal typed_ref_call_f2_assigns_exit_part2 : Valid @@ -18,13 +25,6 @@ [wp] [Qed] Goal typed_ref_call_global_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_global_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_global_call_f_requires : Valid -[wp] [Qed] Goal typed_ref_g_ensures : Valid -[wp] [Qed] Goal typed_ref_g_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_ref_g_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_ref_g_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_ref_g_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_ref_g_call_f_requires : Valid [wp] [Qed] Goal typed_ref_write_ensures : Valid [wp] [Qed] Goal typed_ref_write_assigns : Valid [wp] Proved goals: 21 / 23 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index ba67c0b6dab..7b663723a99 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -4,38 +4,38 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload2 : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload3 : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_call_array_in_struct_param_call_load_5_requires : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_on_array_in_struct_global_ensures_Pload : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_reset_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_assigns : Valid [wp] [Qed] Goal typed_ref_call_reset_ensures : Valid [wp] [Qed] Goal typed_ref_call_reset_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_reset_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_ref_call_reset_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_ref_call_reset_call_reset_requires : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_1_5_ensures_Presset_mat : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_1_5_call_reset_1_5_requires : Valid [wp] [Alt-Ergo] Goal typed_ref_call_reset_5_ensures_Preset_5 : Valid [wp] [Qed] Goal typed_ref_call_reset_5_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_reset_5_assigns_normal : Valid [wp] [Qed] Goal typed_ref_call_reset_5_call_reset_5_requires : Valid -[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_dim2_ensures_Presset_mat : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_call_reset_5_dim2_call_reset_5_requires : Valid [wp] [Alt-Ergo] Goal typed_ref_call_reset_5_tps_ensures_Preset_5_tps : Valid [wp] [Qed] Goal typed_ref_call_reset_5_tps_assigns_exit : Valid [wp] [Qed] Goal typed_ref_call_reset_5_tps_assigns_normal : Valid [wp] [Qed] Goal typed_ref_call_reset_5_tps_call_reset_5_requires : Valid -[wp] [Qed] Goal typed_ref_reset_ensures : Valid -[wp] [Qed] Goal typed_ref_reset_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_1_5_ensures_Presset_mat : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_1_5_call_reset_1_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_reset_5_dim2_ensures_Presset_mat : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_reset_5_dim2_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_call_on_array_in_struct_global_ensures_Pload : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_on_array_in_struct_global_call_load_5_requires : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload2 : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload3 : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_call_array_in_struct_param_call_load_5_requires : Valid [wp] Proved goals: 32 / 32 Qed: 27 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index 72ab30d0d2f..724a598db0d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -4,6 +4,14 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 36 goals scheduled +[wp] [Alt-Ergo] Goal typed_ref_reset_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_reset_1_5_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_load_1_5_ensures : Valid +[wp] [Qed] Goal typed_ref_load_1_5_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_load_1_5_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_load_1_5_call_load_5_requires : Valid [wp] [Alt-Ergo] Goal typed_ref_add_1_5_ensures : Valid [wp] [Qed] Goal typed_ref_add_1_5_assigns_exit : Valid [wp] [Qed] Goal typed_ref_add_1_5_assigns_normal : Valid @@ -16,14 +24,6 @@ [wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_load_5_requires : Valid [wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_reset_5_requires : Valid [wp] [Qed] Goal typed_ref_calls_on_array_dim_1_call_add_5_requires : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Pload : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Preset : Valid -[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Padd : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_load_1_5_requires : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_reset_1_5_requires : Valid -[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_add_1_5_requires : Valid [wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Pload : Valid [wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Preset : Valid [wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_to_1_ensures_Padd : Valid @@ -32,14 +32,14 @@ [wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_load_5_requires : Valid [wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_reset_5_requires : Valid [wp] [Qed] Goal typed_ref_calls_on_array_dim_2_to_1_call_add_5_requires : Valid -[wp] [Alt-Ergo] Goal typed_ref_load_1_5_ensures : Valid -[wp] [Qed] Goal typed_ref_load_1_5_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_load_1_5_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_load_1_5_call_load_5_requires : Valid -[wp] [Alt-Ergo] Goal typed_ref_reset_1_5_ensures : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_assigns_exit : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_assigns_normal : Valid -[wp] [Qed] Goal typed_ref_reset_1_5_call_reset_5_requires : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Pload : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Preset : Valid +[wp] [Alt-Ergo] Goal typed_ref_calls_on_array_dim_2_ensures_Padd : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_exit : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_assigns_normal : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_load_1_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_reset_1_5_requires : Valid +[wp] [Qed] Goal typed_ref_calls_on_array_dim_2_call_add_1_5_requires : Valid [wp] Proved goals: 36 / 36 Qed: 24 Alt-Ergo: 12 diff --git a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle index b0884297aa8..089543c0c79 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle @@ -93,7 +93,7 @@ Prove: P_P(x). ------------------------------------------------------------ [wp] Running WP plugin... -[wp] 2 goals scheduled +[wp] 1 goal scheduled --------------------------------------------- --- Context 'typed_ref_f' Cluster 'Compound' --------------------------------------------- @@ -165,36 +165,7 @@ end let x = get1 t (shift_sint321 a i) in region1 (base1 a) <=' 0 -> is_sint321 i -> is_sint321 x -> P_P1 x end -[wp:print-generated] - theory WP2 - (* use why3.BuiltIn.BuiltIn *) - - (* use bool.Bool *) - - (* use int.Int *) - - (* use int.ComputerDivision *) - - (* use real.RealInfix *) - - (* use frama_c_wp.qed.Qed *) - - (* use map.Map *) - - (* use frama_c_wp.memory.Memory *) - - (* use frama_c_wp.cint.Cint *) - - (* use Compound *) - - (* use Axiomatic *) - - goal wp_goal : - forall t:addr -> int, i:int, a:addr. - let x = get t (shift_sint32 a i) in - region (base a) <= 0 -> is_sint32 i -> is_sint32 x -> P_P x - end -[wp] 2 goals generated +[wp] 1 goal generated ------------------------------------------------------------ Function f ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle index 3d4c24ffb4a..8007d102415 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid -[wp] [Qed] Goal typed_band_bool_true_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures : Valid [wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid +[wp] [Qed] Goal typed_band_bool_true_ensures : Valid +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid [wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid -[wp] [Alt-Ergo] Goal typed_job_ensures : Valid +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid [wp] Proved goals: 7 / 7 Qed: 2 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle index a3d176c2b04..c29b605270b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle @@ -4,17 +4,17 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled +[wp] [Passed] Smoke-test typed_foo_wp_smoke_default_requires +[wp] [Failed] Smoke-test typed_foo_wp_smoke_A_requires + Qed: Valid +[wp] tests/wp_plugin/doomed.i:27: Warning: Failed smoke-test +[wp] [Passed] Smoke-test typed_foo_wp_smoke_B_requires [wp] [Passed] Smoke-test typed_bar_wp_smoke_default_requires [wp] [Qed] Goal typed_bar_ensures : Valid [wp] [Failed] Smoke-test typed_buzz_wp_smoke_default_requires Qed: Valid [wp] tests/wp_plugin/doomed.i:41: Warning: Failed smoke-test [wp] [Qed] Goal typed_buzz_ensures : Valid -[wp] [Passed] Smoke-test typed_foo_wp_smoke_default_requires -[wp] [Failed] Smoke-test typed_foo_wp_smoke_A_requires - Qed: Valid -[wp] tests/wp_plugin/doomed.i:27: Warning: Failed smoke-test -[wp] [Passed] Smoke-test typed_foo_wp_smoke_B_requires [wp] Proved goals: 5 / 7 Qed: 2 (failed: 2) Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle index 31663282840..815fdf2a23b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle @@ -10,10 +10,10 @@ [wp] [Qed] Goal typed_f2_ok_exits : Valid [wp] [Qed] Goal typed_f3_ko_ensures : Valid [wp] [Qed] Goal typed_f3_ok_ensures : Valid -[wp] [Qed] Goal typed_f4_ko_ensures : Valid [wp] [Qed] Goal typed_f4_ok_ensures : Valid -[wp] [Qed] Goal typed_f5_ko_ensures : Valid +[wp] [Qed] Goal typed_f4_ko_ensures : Valid [wp] [Qed] Goal typed_f5_ok_ensures : Valid +[wp] [Qed] Goal typed_f5_ko_ensures : Valid [wp] Proved goals: 10 / 10 Qed: 10 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle index 3d349ae8897..e90532c96a2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle @@ -25,12 +25,18 @@ [wp] [Qed] Goal typed_f3_ko_ensures : Valid [wp] [Passed] Smoke-test typed_call_exit_ok_wp_smoke_dead_call_s18 [wp] [Qed] Goal typed_f3_ok_ensures : Valid +[wp] [Passed] Smoke-test typed_call_ko_global_wp_smoke_dead_call_s22 +[wp] [Qed] Goal typed_f4_ok_ensures : Valid [wp] [Failed] Smoke-test typed_call_ko_global_wp_smoke_dead_call_s26 Qed: Valid [wp] tests/wp_plugin/doomed_call.i:89: Warning: Failed smoke-test [wp] [Qed] Goal typed_f4_ko_ensures : Valid -[wp] [Passed] Smoke-test typed_call_ko_global_wp_smoke_dead_call_s22 -[wp] [Qed] Goal typed_f4_ok_ensures : Valid +[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s29 +[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s30 +[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s31 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s30 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s31 +[wp] [Qed] Goal typed_f5_ok_ensures : Valid [wp] [Passed] Smoke-test typed_call_wrong_wp_smoke_dead_call_s35 [wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s34 [wp] [Failed] Smoke-test typed_call_effect_wp_smoke_dead_call_s36 @@ -41,12 +47,6 @@ Qed: Valid [wp] tests/wp_plugin/doomed_call.i:121: Warning: Failed smoke-test [wp] [Qed] Goal typed_f5_ko_ensures : Valid -[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s29 -[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s30 -[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s31 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s30 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s31 -[wp] [Qed] Goal typed_f5_ok_ensures : Valid [wp] Proved goals: 28 / 33 Qed: 10 (failed: 5) Alt-Ergo: 18 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle index 51c6311db51..887e3b632f4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle @@ -28,12 +28,18 @@ [wp] [Qed] Goal typed_f3_ko_ensures : Valid [wp] [Passed] Smoke-test typed_call_exit_ok_wp_smoke_dead_call_s18 [wp] [Qed] Goal typed_f3_ok_ensures : Valid +[wp] [Passed] Smoke-test typed_call_ko_global_wp_smoke_dead_call_s22 +[wp] [Qed] Goal typed_f4_ok_ensures : Valid [wp] [Failed] Smoke-test typed_call_ko_global_wp_smoke_dead_call_s26 Qed: Valid [wp] tests/wp_plugin/doomed_call.i:89: Warning: Failed smoke-test [wp] [Qed] Goal typed_f4_ko_ensures : Valid -[wp] [Passed] Smoke-test typed_call_ko_global_wp_smoke_dead_call_s22 -[wp] [Qed] Goal typed_f4_ok_ensures : Valid +[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s29 +[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s30 +[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s31 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s30 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s31 +[wp] [Qed] Goal typed_f5_ok_ensures : Valid [wp] [Passed] Smoke-test typed_call_wrong_wp_smoke_dead_call_s35 [wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s34 [wp] [Failed] Smoke-test typed_call_effect_wp_smoke_dead_call_s36 @@ -44,12 +50,6 @@ Qed: Valid [wp] tests/wp_plugin/doomed_call.i:121: Warning: Failed smoke-test [wp] [Qed] Goal typed_f5_ko_ensures : Valid -[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s29 -[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s30 -[wp] [Passed] Smoke-test typed_call_effect_wp_smoke_dead_call_s31 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s30 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s31 -[wp] [Qed] Goal typed_f5_ok_ensures : Valid [wp] Proved goals: 31 / 36 Qed: 13 (failed: 5) Alt-Ergo: 18 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle index 0b7ac571bbb..036b8204765 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle @@ -9,6 +9,12 @@ [wp] [Passed] Smoke-test typed_f1_ok_wp_smoke_dead_code_s10 [wp] [Qed] Goal typed_f1_ok_assigns_part1 : Valid [wp] [Qed] Goal typed_f1_ok_assigns_part2 : Valid +[wp] [Passed] Smoke-test typed_exit_wp_smoke_dead_call_s14 +[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s14 +[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s16 +[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal_part2 : Valid [wp] [Passed] Smoke-test typed_exit_wp_smoke_dead_call_s22 [wp] [Passed] Smoke-test typed_f2_ko_wp_smoke_dead_code_s22 [wp] [Failed] Smoke-test typed_f2_ko_wp_smoke_dead_code_s23 @@ -18,12 +24,6 @@ [wp] [Qed] Goal typed_f2_ko_assigns_exit : Valid [wp] [Qed] Goal typed_f2_ko_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_f2_ko_assigns_normal_part2 : Valid -[wp] [Passed] Smoke-test typed_exit_wp_smoke_dead_call_s14 -[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s14 -[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s16 -[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid -[wp] [Qed] Goal typed_f2_ok_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_f2_ok_assigns_normal_part2 : Valid [wp] [Passed] Smoke-test typed_call_wp_smoke_dead_call_s30 [wp] [Passed] Smoke-test typed_f3_ok_wp_smoke_dead_code_s30 [wp] [Passed] Smoke-test typed_f3_ok_wp_smoke_dead_code_s31 @@ -38,6 +38,12 @@ [wp] [Qed] Goal typed_f4_ok_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_f4_ok_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_f4_ok_assigns_normal_part3 : Valid +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s48 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s50 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s52 +[wp] [Qed] Goal typed_f5_ok_assigns_part1 : Valid +[wp] [Qed] Goal typed_f5_ok_assigns_part2 : Valid +[wp] [Qed] Goal typed_f5_ok_assigns_part3 : Valid [wp] [Passed] Smoke-test typed_f5_ko_wp_smoke_dead_code_s56 [wp] [Failed] Smoke-test typed_f5_ko_wp_smoke_dead_code_s61 Qed: Valid @@ -48,12 +54,6 @@ [wp] [Qed] Goal typed_f5_ko_assigns_part2 : Valid [wp] [Qed] Goal typed_f5_ko_assigns_part3 : Valid [wp] [Qed] Goal typed_f5_ko_assigns_part4 : Valid -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s48 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s50 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s52 -[wp] [Qed] Goal typed_f5_ok_assigns_part1 : Valid -[wp] [Qed] Goal typed_f5_ok_assigns_part2 : Valid -[wp] [Qed] Goal typed_f5_ok_assigns_part3 : Valid [wp] Proved goals: 44 / 46 Qed: 23 (failed: 2) Alt-Ergo: 21 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle index b5c0258a177..6c4fbb1cf14 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle @@ -10,6 +10,13 @@ [wp] [Qed] Goal typed_f1_ok_assigns_part1 : Valid [wp] [Qed] Goal typed_f1_ok_assigns_part2 : Valid [wp] [Qed] Goal typed_f1_ok_assigns_part3 : Valid +[wp] [Passed] Smoke-test typed_exit_wp_smoke_dead_call_s14 +[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s14 +[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s16 +[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_f2_ok_assigns_normal_part3 : Valid [wp] [Passed] Smoke-test typed_exit_wp_smoke_dead_call_s22 [wp] [Passed] Smoke-test typed_f2_ko_wp_smoke_dead_code_s22 [wp] [Failed] Smoke-test typed_f2_ko_wp_smoke_dead_code_s23 @@ -19,13 +26,6 @@ [wp] [Qed] Goal typed_f2_ko_assigns_exit : Valid [wp] [Qed] Goal typed_f2_ko_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_f2_ko_assigns_normal_part2 : Valid -[wp] [Passed] Smoke-test typed_exit_wp_smoke_dead_call_s14 -[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s14 -[wp] [Passed] Smoke-test typed_f2_ok_wp_smoke_dead_code_s16 -[wp] [Qed] Goal typed_f2_ok_assigns_exit : Valid -[wp] [Qed] Goal typed_f2_ok_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_f2_ok_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_f2_ok_assigns_normal_part3 : Valid [wp] [Passed] Smoke-test typed_call_wp_smoke_dead_call_s30 [wp] [Passed] Smoke-test typed_f3_ok_wp_smoke_dead_code_s30 [wp] [Passed] Smoke-test typed_f3_ok_wp_smoke_dead_code_s31 @@ -40,6 +40,12 @@ [wp] [Qed] Goal typed_f4_ok_assigns_normal_part1 : Valid [wp] [Qed] Goal typed_f4_ok_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_f4_ok_assigns_normal_part3 : Valid +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s48 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s50 +[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s52 +[wp] [Qed] Goal typed_f5_ok_assigns_part1 : Valid +[wp] [Qed] Goal typed_f5_ok_assigns_part2 : Valid +[wp] [Qed] Goal typed_f5_ok_assigns_part3 : Valid [wp] [Passed] Smoke-test typed_f5_ko_wp_smoke_dead_code_s56 [wp] [Failed] Smoke-test typed_f5_ko_wp_smoke_dead_code_s61 Qed: Valid @@ -50,12 +56,6 @@ [wp] [Qed] Goal typed_f5_ko_assigns_part2 : Valid [wp] [Qed] Goal typed_f5_ko_assigns_part3 : Valid [wp] [Qed] Goal typed_f5_ko_assigns_part4 : Valid -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s48 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s50 -[wp] [Passed] Smoke-test typed_f5_ok_wp_smoke_dead_code_s52 -[wp] [Qed] Goal typed_f5_ok_assigns_part1 : Valid -[wp] [Qed] Goal typed_f5_ok_assigns_part2 : Valid -[wp] [Qed] Goal typed_f5_ok_assigns_part3 : Valid [wp] Proved goals: 46 / 48 Qed: 25 (failed: 2) Alt-Ergo: 21 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle index c38d5c4f213..304fd7652cd 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle @@ -5,15 +5,6 @@ [wp] tests/wp_plugin/dynamic.i:78: Warning: Missing 'calls' for default behavior [wp] Warning: Missing RTE guards [wp] 51 goals scheduled -[wp] [Qed] Goal typed_behavior_call_point_h1_h2_s15 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_ensures_part1 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_ensures_part2 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part4 : Valid [wp] [Alt-Ergo] Goal typed_call_call_point_f1_f2_s3 : Valid [wp] [Qed] Goal typed_call_ensures_part1 : Valid [wp] [Qed] Goal typed_call_ensures_part2 : Valid @@ -23,15 +14,26 @@ [wp] [Qed] Goal typed_guarded_call_ensures_part2 : Valid [wp] [Qed] Goal typed_guarded_call_ensures_2_part1 : Valid [wp] [Qed] Goal typed_guarded_call_ensures_2_part2 : Valid -[wp] [Alt-Ergo] Goal typed_missing_context_call_point_h1_s25 : Unsuccess -[wp] [Qed] Goal typed_missing_context_ensures : Valid -[wp] [Qed] Goal typed_missing_context_assigns_exit : Valid -[wp] [Qed] Goal typed_missing_context_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_missing_context_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_no_call_call_point_unreachable_g_s32 : Valid -[wp] [Qed] Goal typed_no_call_ensures_part1 : Valid -[wp] [Qed] Goal typed_no_call_ensures_part2 : Valid -[wp] [Qed] Goal typed_no_call_call_unreachable_g_requires : Valid +[wp] [Qed] Goal typed_behavior_call_point_h1_h2_s15 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_ensures_part1 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_ensures_part2 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_behavior_bhv1_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_some_behaviors_call_point_h1_h2_h0_for_bhv1_s20 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_ensures_part1 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_ensures_part2 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_ensures_part3 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part3 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part4 : Valid +[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part5 : Valid [wp] [Qed] Goal typed_some_behaviors_call_point_h1_h2_h0_for_bhv0_s20 : Valid [wp] [Qed] Goal typed_some_behaviors_bhv0_ensures_part1 : Valid [wp] [Qed] Goal typed_some_behaviors_bhv0_ensures_part2 : Valid @@ -45,17 +47,15 @@ [wp] [Qed] Goal typed_some_behaviors_bhv0_assigns_normal_part4 : Valid [wp] [Qed] Goal typed_some_behaviors_bhv0_assigns_normal_part5 : Valid [wp] [Qed] Goal typed_some_behaviors_bhv0_assigns_normal_part6 : Valid -[wp] [Qed] Goal typed_some_behaviors_call_point_h1_h2_h0_for_bhv1_s20 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_ensures_part1 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_ensures_part2 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_ensures_part3 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part3 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part4 : Valid -[wp] [Qed] Goal typed_some_behaviors_bhv1_assigns_normal_part5 : Valid +[wp] [Alt-Ergo] Goal typed_missing_context_call_point_h1_s25 : Unsuccess +[wp] [Qed] Goal typed_missing_context_ensures : Valid +[wp] [Qed] Goal typed_missing_context_assigns_exit : Valid +[wp] [Qed] Goal typed_missing_context_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_missing_context_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_no_call_call_point_unreachable_g_s32 : Valid +[wp] [Qed] Goal typed_no_call_ensures_part1 : Valid +[wp] [Qed] Goal typed_no_call_ensures_part2 : Valid +[wp] [Qed] Goal typed_no_call_call_unreachable_g_requires : Valid [wp] Proved goals: 50 / 51 Qed: 47 Alt-Ergo: 3 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle index 47c2b9e78e3..548bfdefa08 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_alias_ensures_KO : Unsuccess -[wp] [Alt-Ergo] Goal typed_global_ensures_KO : Unsuccess [wp] [Qed] Goal typed_local_ensures_FRAMED : Valid [wp] [Alt-Ergo] Goal typed_local_ensures_KO : Unsuccess +[wp] [Alt-Ergo] Goal typed_global_ensures_KO : Unsuccess [wp] [Alt-Ergo] Goal typed_localref_ensures_KO : Unsuccess [wp] [Qed] Goal typed_localref_assert_FRAMED : Valid +[wp] [Alt-Ergo] Goal typed_alias_ensures_KO : Unsuccess [wp] Proved goals: 2 / 6 Qed: 2 Alt-Ergo: 0 (unsuccess: 4) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle index 45defe11c25..0e785bded79 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle @@ -85,37 +85,7 @@ end f - - 1 0.0% ------------------------------------------------------------ [wp] Running WP plugin... -[wp] 2 goals scheduled -[wp:print-generated] - theory WP1 - (* use why3.BuiltIn.BuiltIn *) - - (* use bool.Bool *) - - (* use int.Int *) - - (* use int.ComputerDivision *) - - (* use real.RealInfix *) - - (* use frama_c_wp.qed.Qed *) - - (* use map.Map *) - - (* use frama_c_wp.memory.Memory *) - - (* use frama_c_wp.cint.Cint *) - - (* use Compound *) - - (* use Axiomatic *) - - goal wp_goal : - forall t:addr -> int, i:int, a:addr. - let x = get t (shift_sint32 a i) in - region (base a) <= 0 -> is_sint32 i -> is_sint32 x -> P_P x - end -[wp] [Alt-Ergo] Goal typed_f_ensures : Unsuccess +[wp] 1 goal scheduled --------------------------------------------- --- Context 'typed_ref_f' Cluster 'Compound' --------------------------------------------- @@ -159,7 +129,7 @@ theory Axiomatic1 predicate P_P1 int end [wp:print-generated] - theory WP2 + theory WP1 (* use why3.BuiltIn.BuiltIn *) (* use bool.Bool1 *) @@ -188,8 +158,8 @@ end region1 (base1 a) <=' 0 -> is_sint321 i -> is_sint321 x -> P_P1 x end [wp] [Alt-Ergo] Goal typed_ref_f_ensures : Unsuccess -[wp] Proved goals: 0 / 2 - Alt-Ergo: 0 (unsuccess: 2) +[wp] Proved goals: 0 / 1 + Alt-Ergo: 0 (unsuccess: 1) ------------------------------------------------------------ Functions WP Alt-Ergo Total Success f - - 2 0.0% diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle index 28ac3e50e6e..e5f51e3bc7a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle @@ -6,28 +6,9 @@ [wp] tests/wp_plugin/repeat.c:47: Warning: Missing assigns clause (assigns 'everything' instead) [wp] 47 goals scheduled -[wp] [Qed] Goal typed_induction_ensures : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_induction_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_induction_loop_invariant_2_established : Valid -[wp] [Qed] Goal typed_induction_loop_assigns : Valid -[wp] [Qed] Goal typed_induction_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_induction_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_induction_assigns_normal : Valid [wp] [Qed] Goal typed_master_ensures : Valid [wp] [Qed] Goal typed_master_assigns_exit : Valid [wp] [Qed] Goal typed_master_assigns_normal : Valid -[wp] [Alt-Ergo] Goal typed_shifted_ensures : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_preserved : Valid -[wp] [Qed] Goal typed_shifted_loop_invariant_established : Valid -[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_2_preserved : Valid -[wp] [Qed] Goal typed_shifted_loop_invariant_2_established : Valid -[wp] [Qed] Goal typed_shifted_loop_assigns : Valid -[wp] [Qed] Goal typed_shifted_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_shifted_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_shifted_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_shifted_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_unroll_ensures : Valid [wp] [Qed] Goal typed_unroll_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_unroll_loop_invariant_established : Valid @@ -53,6 +34,25 @@ [wp] [Qed] Goal typed_unroll_assigns_normal_part09 : Valid [wp] [Qed] Goal typed_unroll_assigns_normal_part10 : Valid [wp] [Qed] Goal typed_unroll_assigns_normal_part11 : Valid +[wp] [Qed] Goal typed_induction_ensures : Valid +[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_induction_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_induction_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_induction_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_induction_loop_assigns : Valid +[wp] [Qed] Goal typed_induction_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_induction_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_induction_assigns_normal : Valid +[wp] [Alt-Ergo] Goal typed_shifted_ensures : Valid +[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_preserved : Valid +[wp] [Qed] Goal typed_shifted_loop_invariant_established : Valid +[wp] [Alt-Ergo] Goal typed_shifted_loop_invariant_2_preserved : Valid +[wp] [Qed] Goal typed_shifted_loop_invariant_2_established : Valid +[wp] [Qed] Goal typed_shifted_loop_assigns : Valid +[wp] [Qed] Goal typed_shifted_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_shifted_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_shifted_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_shifted_assigns_normal_part2 : Valid [wp] Proved goals: 47 / 47 Qed: 42 Alt-Ergo: 5 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle index 64612393030..8f74a337776 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle @@ -4,25 +4,6 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 39 goals scheduled -[wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_ensures_ok_last : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_established : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_inv_preserved : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_inv_established : Valid -[wp] [Qed] Goal typed_caveat_loops_loop_assigns : Valid -[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part3 : Valid -[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part1 : Valid -[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part2 : Valid -[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part3 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_called_ensures_ok_u1 : Valid -[wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid [wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid [wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid [wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_bug_why3_n1 : Valid @@ -43,6 +24,25 @@ [wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid [wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid [wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid +[wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_ensures_ok_last : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_max_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_min_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_id_min_established : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_inv_preserved : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_invariant_ok_inv_established : Valid +[wp] [Qed] Goal typed_caveat_loops_loop_assigns : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part1 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part2 : Valid +[wp] [Qed] Goal typed_caveat_loops_assigns_normal_part3 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_called_ensures_ok_u1 : Valid +[wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid [wp] Proved goals: 39 / 39 Qed: 25 Alt-Ergo: 14 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle index 8905c23c28d..d0ef2cc5592 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle @@ -4,6 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled +[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n3 : Valid +[wp] [Qed] Goal typed_caveat_no_calls_assigns : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_exit : Valid +[wp] [Qed] Goal typed_caveat_sequence_assigns_normal : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_o1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_called_ensures_ok_p3 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_o2 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid +[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid +[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_ensures_ok_last : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_loop_invariant_ok_id_max_preserved : Valid @@ -23,21 +38,6 @@ [wp] [Qed] Goal typed_caveat_loops_g_called_ensures_ok_u2 : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v1 : Valid [wp] [Alt-Ergo] Goal typed_caveat_loops_g_not_called_ensures_ok_v2 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_ensures_ok_m1 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_m2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_no_calls_ensures_ok_n3 : Valid -[wp] [Qed] Goal typed_caveat_no_calls_assigns : Valid -[wp] [Qed] Goal typed_caveat_sequence_assigns_exit : Valid -[wp] [Qed] Goal typed_caveat_sequence_assigns_normal : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_o1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_called_ensures_ok_p2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_called_ensures_ok_p3 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_o2 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q1 : Valid -[wp] [Qed] Goal typed_caveat_sequence_g_not_called_ensures_ok_q2 : Valid -[wp] [Alt-Ergo] Goal typed_caveat_sequence_g_not_called_ensures_ok_q3 : Valid [wp] Proved goals: 34 / 34 Qed: 22 Alt-Ergo: 12 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle index d9273f9a996..3cc05679707 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle @@ -13,11 +13,11 @@ [wp] [CFG] Goal h_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 10 goals scheduled +[wp] [Qed] Goal typed_f_ensures : Valid +[wp] [Qed] Goal typed_f_assigns : Valid [wp] [Qed] Goal typed_f_ensures_2 : Valid [wp] [Qed] Goal typed_f_ensures_3 : Valid [wp] [Qed] Goal typed_f_assert : Valid -[wp] [Qed] Goal typed_f_ensures : Valid -[wp] [Qed] Goal typed_f_assigns : Valid [wp] [Qed] Goal typed_g_ensures_2 : Valid [wp] [Qed] Goal typed_g_assert : Valid [wp] [Qed] Goal typed_h_ensures_2 : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle index 37e0be540b7..a885bdf97bd 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle @@ -4,6 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled +[wp] [Qed] Goal typed_id_ensures_qed_ok_P1 : Valid +[wp] [Qed] Goal typed_id_ensures_qed_ok_P2 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P3 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P4 : Valid +[wp] [Qed] Goal typed_g_ensures_qed_ok_P5 : Valid +[wp] [Qed] Goal typed_g_assigns : Valid [wp] [Qed] Goal typed_f_ensures_qed_ok_E0 : Valid [wp] [Qed] Goal typed_f_ensures_qed_ok_E1 : Valid [wp] [Qed] Goal typed_f_ensures_qed_ok_E2 : Valid @@ -16,12 +22,6 @@ [wp] [Qed] Goal typed_f_ensures_qed_ok_E9 : Valid [wp] [Qed] Goal typed_f_ensures_qed_ok_E10 : Valid [wp] [Qed] Goal typed_f_ensures_qed_ok_E11 : Valid -[wp] [Qed] Goal typed_g_ensures_qed_ok_P3 : Valid -[wp] [Qed] Goal typed_g_ensures_qed_ok_P4 : Valid -[wp] [Qed] Goal typed_g_ensures_qed_ok_P5 : Valid -[wp] [Qed] Goal typed_g_assigns : Valid -[wp] [Qed] Goal typed_id_ensures_qed_ok_P1 : Valid -[wp] [Qed] Goal typed_id_ensures_qed_ok_P2 : Valid [wp] Proved goals: 18 / 18 Qed: 18 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle index 461e3fcaa6f..8752fd90b42 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle @@ -4,10 +4,10 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_f_assert_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_f_call_g_requires : Valid [wp] [Qed] Goal typed_g_ensures : Valid [wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Qed] Goal typed_f_assert_qed_ok : Valid +[wp] [Alt-Ergo] Goal typed_f_call_g_requires : Valid [wp] [Alt-Ergo] Goal typed_main_ensures_P_qed_ok : Valid [wp] [Alt-Ergo] Goal typed_main_ensures_Q_qed_ok : Valid [wp] Proved goals: 6 / 6 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle index b720cb1e0e2..a8f36924fcd 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle @@ -14,11 +14,11 @@ (target: __anonunion_L8_8*) [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_fits1_ensures : Valid +[wp] [Alt-Ergo] Goal typed_mismatch1_ensures : Unsuccess (Stronger) [wp] [Alt-Ergo] Goal typed_fits2_ensures : Valid [wp] [Alt-Ergo] Goal typed_fits3_ensures : Valid [wp] [Alt-Ergo] Goal typed_fits4_ensures : Valid [wp] [Alt-Ergo] Goal typed_fits5_ensures : Valid -[wp] [Alt-Ergo] Goal typed_mismatch1_ensures : Unsuccess (Stronger) [wp] [Alt-Ergo] Goal typed_mismatch2_ensures : Unsuccess (Stronger) [wp] [Alt-Ergo] Goal typed_mismatch3_ensures : Unsuccess (Stronger) [wp] Proved goals: 5 / 8 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle index 5e5b91dc94a..a4b7adcbb09 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_f_assigns : Valid -[wp] [Qed] Goal typed_g_assigns : Valid -[wp] [Alt-Ergo] Goal typed_h_ensures : Valid [wp] [Qed] Goal typed_job_assert : Valid [wp] [Alt-Ergo] Goal typed_job_assert_2 : Valid [wp] [Qed] Goal typed_job_assert_3 : Valid [wp] [Alt-Ergo] Goal typed_job_assert_4 : Valid +[wp] [Qed] Goal typed_f_assigns : Valid +[wp] [Qed] Goal typed_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_h_ensures : Valid [wp] Proved goals: 7 / 7 Qed: 4 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle index 97a099bc62c..0a4580a6871 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_ref_f_assigns : Valid -[wp] [Qed] Goal typed_ref_g_assigns : Valid -[wp] [Alt-Ergo] Goal typed_ref_h_ensures : Valid [wp] [Qed] Goal typed_ref_job_assert : Valid [wp] [Alt-Ergo] Goal typed_ref_job_assert_2 : Valid [wp] [Qed] Goal typed_ref_job_assert_3 : Valid [wp] [Alt-Ergo] Goal typed_ref_job_assert_4 : Valid +[wp] [Qed] Goal typed_ref_f_assigns : Valid +[wp] [Qed] Goal typed_ref_g_assigns : Valid +[wp] [Alt-Ergo] Goal typed_ref_h_ensures : Valid [wp] Proved goals: 7 / 7 Qed: 4 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle index 03bc287592f..75d0895446a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle @@ -22,33 +22,41 @@ [wp] [Qed] Goal typed_lemma_lor_stb : Valid [wp] [Qed] Goal typed_lemma_lxor_assoc : Valid [wp] [Qed] Goal typed_lemma_lxor_com : Valid -[wp] [Qed] Goal typed_band1_uchar_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band1_uchar_assert_ok_2 : Valid -[wp] [Qed] Goal typed_band1_uint_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band1_uint_assert_ok_2 : Valid -[wp] [Qed] Goal typed_band1_ulong_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band1_ulong_assert_ok_2 : Valid -[wp] [Qed] Goal typed_band1_ushort_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band1_ushort_assert_ok_2 : Valid -[wp] [Alt-Ergo] Goal typed_band_char_ensures_ok : Valid [wp] [Qed] Goal typed_band_int_ensures_ok : Valid [wp] [Qed] Goal typed_band_int_assert_ok : Valid -[wp] [Alt-Ergo] Goal typed_band_uchar_ensures_ok : Valid -[wp] [Qed] Goal typed_band_uint_ensures_ok : Valid -[wp] [Alt-Ergo] Goal typed_bnot_char_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_int_ensures_ok : Valid +[wp] [Qed] Goal typed_bxor_int_ensures_ok : Valid [wp] [Qed] Goal typed_bnot_int_ensures_ok : Valid -[wp] [Qed] Goal typed_bnot_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_int_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_int_ensures_ok : Valid +[wp] [Qed] Goal typed_band1_uint_assert_ok : Valid +[wp] [Alt-Ergo] Goal typed_band1_uint_assert_ok_2 : Valid +[wp] [Qed] Goal typed_band_uint_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_uint_ensures_ok : Valid +[wp] [Qed] Goal typed_bxor_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bxor_uint_ensures_ok_2 : Valid [wp] [Qed] Goal typed_bnot_uint_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_uint_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_uint_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_band_char_ensures_ok : Valid [wp] [Alt-Ergo] Goal typed_bor_char_ensures_ok : Valid -[wp] [Qed] Goal typed_bor_int_ensures_ok : Valid -[wp] [Qed] Goal typed_bor_uchar_ensures_ok : Valid -[wp] [Qed] Goal typed_bor_uint_ensures_ok : Valid [wp] [Alt-Ergo] Goal typed_bxor_char_ensures_ok : Valid -[wp] [Qed] Goal typed_bxor_int_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_bnot_char_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_char_ensures_ok : Valid +[wp] [Qed] Goal typed_rshift_char_ensures_ok : Valid +[wp] [Qed] Goal typed_band1_uchar_assert_ok : Valid +[wp] [Alt-Ergo] Goal typed_band1_uchar_assert_ok_2 : Valid +[wp] [Alt-Ergo] Goal typed_band_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_bor_uchar_ensures_ok : Valid [wp] [Qed] Goal typed_bxor_uchar_ensures_ok : Valid [wp] [Alt-Ergo] Goal typed_bxor_uchar_ensures_ok_2 : Valid -[wp] [Qed] Goal typed_bxor_uint_ensures_ok : Valid -[wp] [Alt-Ergo] Goal typed_bxor_uint_ensures_ok_2 : Valid +[wp] [Qed] Goal typed_bnot_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_lshift_uchar_ensures_ok : Valid +[wp] [Alt-Ergo] Goal typed_rshift_uchar_ensures_ok : Valid +[wp] [Qed] Goal typed_band1_ushort_assert_ok : Valid +[wp] [Alt-Ergo] Goal typed_band1_ushort_assert_ok_2 : Valid +[wp] [Qed] Goal typed_band1_ulong_assert_ok : Valid +[wp] [Alt-Ergo] Goal typed_band1_ulong_assert_ok_2 : Valid [wp] [Qed] Goal typed_cast_ensures_ok : Valid [wp] [Qed] Goal typed_cast_assert_ok : Valid [wp] [Qed] Goal typed_cast_assert_ok_2 : Valid @@ -57,14 +65,6 @@ [wp] [Qed] Goal typed_cast_assert_ok_5 : Valid [wp] [Qed] Goal typed_cast_assert_ok_6 : Valid [wp] [Qed] Goal typed_cast_assert_ok_7 : Valid -[wp] [Qed] Goal typed_lshift_char_ensures_ok : Valid -[wp] [Qed] Goal typed_lshift_int_ensures_ok : Valid -[wp] [Qed] Goal typed_lshift_uchar_ensures_ok : Valid -[wp] [Qed] Goal typed_lshift_uint_ensures_ok : Valid -[wp] [Qed] Goal typed_rshift_char_ensures_ok : Valid -[wp] [Qed] Goal typed_rshift_int_ensures_ok : Valid -[wp] [Alt-Ergo] Goal typed_rshift_uchar_ensures_ok : Valid -[wp] [Qed] Goal typed_rshift_uint_ensures_ok : Valid [wp] Proved goals: 61 / 61 Qed: 41 Alt-Ergo: 20 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle index 9c4dc9afa22..6eb268e654f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle @@ -5,8 +5,8 @@ [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_band_int_assert_ko : Unsuccess -[wp] [Alt-Ergo] Goal typed_bnot_uchar_ensures_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_bnot_uint_ensures_ko : Unsuccess +[wp] [Alt-Ergo] Goal typed_bnot_uchar_ensures_ko : Unsuccess [wp] [Alt-Ergo] Goal typed_cast_assert_ko : Unsuccess [wp] Proved goals: 0 / 4 Alt-Ergo: 0 (unsuccess: 4) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle index 6015427dddc..51f6a74d6a4 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle @@ -3,12 +3,12 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] 6 goals scheduled -[wp] [Alt-Ergo] Goal typed_lemma_P23_KO : Unsuccess -[wp] [Alt-Ergo] Goal typed_lemma_P52 : Valid +[wp] [Alt-Ergo] Goal typed_lemma_Foo : Valid [wp] [Alt-Ergo] Goal typed_lemma_P13 : Valid [wp] [Alt-Ergo] Goal typed_lemma_P14 : Valid +[wp] [Alt-Ergo] Goal typed_lemma_P23_KO : Unsuccess +[wp] [Alt-Ergo] Goal typed_lemma_P52 : Valid [wp] [Alt-Ergo] Goal typed_lemma_P54 : Valid -[wp] [Alt-Ergo] Goal typed_lemma_Foo : Valid [wp] Proved goals: 5 / 6 Qed: 0 Alt-Ergo: 5 (unsuccess: 1) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle index ffa7b49597e..87f7f6985c6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Qed] Goal typed_bar_assigns : Valid [wp] [Qed] Goal typed_foo_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_foo_assigns_part2 : Valid +[wp] [Qed] Goal typed_bar_assigns : Valid [wp] Proved goals: 3 / 3 Qed: 2 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle index 86474c5e363..cc50275bfe1 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle @@ -4,9 +4,9 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled -[wp] [Alt-Ergo] Goal typed_raw_bar_assigns : Valid [wp] [Alt-Ergo] Goal typed_raw_foo_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_raw_foo_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_raw_bar_assigns : Valid [wp] Proved goals: 3 / 3 Qed: 0 Alt-Ergo: 3 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle index 756da0b5ce2..88afca29b1f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle @@ -4,8 +4,8 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled -[wp] [Qed] Goal typed_complex_call_job_requires : Valid [wp] [Qed] Goal typed_complex_assigns : Valid +[wp] [Qed] Goal typed_complex_call_job_requires : Valid [wp] Proved goals: 2 / 2 Qed: 2 ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle index a29035c5b07..7492e64accf 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle @@ -6,14 +6,14 @@ [wp] 12 goals scheduled [wp] [Qed] Goal typed_ref_rl1_ensures_b0 : Valid [wp] [Alt-Ergo] Goal typed_ref_rl1_ensures_bk : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b2 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b1 : Valid -[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b2 : Valid [wp] [Alt-Ergo] Goal typed_ref_rr1_ensures_b0 : Valid [wp] [Alt-Ergo] Goal typed_ref_rr1_ensures_bk : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln32_ensures_b2 : Valid [wp] [Alt-Ergo] Goal typed_ref_rrn32_ensures_b1 : Valid [wp] [Alt-Ergo] Goal typed_ref_rrn32_ensures_b2 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b1 : Valid +[wp] [Alt-Ergo] Goal typed_ref_rln64_ensures_b2 : Valid [wp] [Alt-Ergo] Goal typed_ref_rrn64_ensures_b1 : Valid [wp] [Alt-Ergo] Goal typed_ref_rrn64_ensures_b2 : Valid [wp] Proved goals: 12 / 12 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle index ccc488ddf66..b68f1a65cd1 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle @@ -4,6 +4,21 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled +[wp] [Qed] Goal typed_job_ensures_K : Valid +[wp] [Qed] Goal typed_job_ensures_P : Valid +[wp] [Qed] Goal typed_job_assigns_part1 : Valid +[wp] [Qed] Goal typed_job_assigns_part2 : Valid +[wp] [Qed] Goal typed_job_assigns_part3 : Valid +[wp] [Qed] Goal typed_job2_ensures_K : Valid +[wp] [Qed] Goal typed_job2_ensures_Q : Valid +[wp] [Qed] Goal typed_job2_assigns_part1 : Valid +[wp] [Qed] Goal typed_job2_assigns_part2 : Valid +[wp] [Qed] Goal typed_job2_assigns_part3 : Valid +[wp] [Qed] Goal typed_job3_ensures_K : Valid +[wp] [Alt-Ergo] Goal typed_job3_ensures_Q : Valid +[wp] [Qed] Goal typed_job3_assigns_part1 : Valid +[wp] [Qed] Goal typed_job3_assigns_part2 : Valid +[wp] [Qed] Goal typed_job3_assigns_part3 : Valid [wp] [Qed] Goal typed_caller_ensures_K : Valid [wp] [Alt-Ergo] Goal typed_caller_ensures_P1 : Valid [wp] [Alt-Ergo] Goal typed_caller_ensures_P2 : Valid @@ -21,21 +36,6 @@ [wp] [Alt-Ergo] Goal typed_caller3_ensures_R : Valid [wp] [Alt-Ergo] Goal typed_caller3_call_job3_requires : Valid [wp] [Alt-Ergo] Goal typed_caller3_call_job3_2_requires : Valid -[wp] [Qed] Goal typed_job_ensures_K : Valid -[wp] [Qed] Goal typed_job_ensures_P : Valid -[wp] [Qed] Goal typed_job_assigns_part1 : Valid -[wp] [Qed] Goal typed_job_assigns_part2 : Valid -[wp] [Qed] Goal typed_job_assigns_part3 : Valid -[wp] [Qed] Goal typed_job2_ensures_K : Valid -[wp] [Qed] Goal typed_job2_ensures_Q : Valid -[wp] [Qed] Goal typed_job2_assigns_part1 : Valid -[wp] [Qed] Goal typed_job2_assigns_part2 : Valid -[wp] [Qed] Goal typed_job2_assigns_part3 : Valid -[wp] [Qed] Goal typed_job3_ensures_K : Valid -[wp] [Alt-Ergo] Goal typed_job3_ensures_Q : Valid -[wp] [Qed] Goal typed_job3_assigns_part1 : Valid -[wp] [Qed] Goal typed_job3_assigns_part2 : Valid -[wp] [Qed] Goal typed_job3_assigns_part3 : Valid [wp] Proved goals: 32 / 32 Qed: 17 Alt-Ergo: 15 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle index ba6a1083ab4..a303bcb1b4b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle @@ -29,28 +29,6 @@ [wp] [Qed] Goal typed_init_t1_assigns_part2 : Valid [wp] [Alt-Ergo] Goal typed_init_t1_loop_variant_decrease : Valid [wp] [Qed] Goal typed_init_t1_loop_variant_positive : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_ensures : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_exits : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_invariant_Partial_preserved : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_loop_invariant_Partial_established : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_invariant_Range_preserved : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_loop_invariant_Range_established : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_assert_Offset : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_loop_variant_positive : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_call_init_requires : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_call_init_requires_2 : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_ensures : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_exits : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_loop_invariant_Partial_preserved : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_loop_invariant_Partial_established : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_loop_invariant_Range_preserved : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_loop_invariant_Range_established : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_assert_Offset_i : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_loop_variant_decrease : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_loop_variant_positive : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_call_init_requires : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_call_init_requires_2 : Valid [wp] [Alt-Ergo] Goal typed_init_t2_v1_ensures : Valid [wp] [Alt-Ergo] Goal typed_init_t2_v1_loop_invariant_Partial_i_preserved : Valid [wp] [Qed] Goal typed_init_t2_v1_loop_invariant_Partial_i_established : Valid @@ -100,6 +78,28 @@ [wp] [Qed] Goal typed_init_t2_v3_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_init_t2_v3_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_init_t2_v3_loop_variant_2_positive : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_ensures : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_exits : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_invariant_Partial_preserved : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_loop_invariant_Partial_established : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_invariant_Range_preserved : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_loop_invariant_Range_established : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_assert_Offset : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_loop_variant_positive : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_call_init_requires : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_call_init_requires_2 : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_ensures : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_exits : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_loop_invariant_Partial_preserved : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_loop_invariant_Partial_established : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_loop_invariant_Range_preserved : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_loop_invariant_Range_established : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_assert_Offset_i : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v2_loop_variant_decrease : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_loop_variant_positive : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_call_init_requires : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_call_init_requires_2 : Valid [wp] Proved goals: 91 / 91 Qed: 51 Alt-Ergo: 40 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle index 3a972745592..84f6bdfd6a5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle @@ -9,29 +9,29 @@ [wp] [CFG] Goal init_t2_v3_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 23 goals scheduled -[wp] [Qed] Goal typed_init_t2_bis_v2_loop_assigns_part1 : Valid -[wp] [Script] Goal typed_init_t2_bis_v2_loop_assigns_part2 : Valid -[wp] [Script] Goal typed_init_t2_bis_v2_loop_assigns_part3 : Valid -[wp] [Script] Goal typed_init_t2_bis_v2_assigns_exit_part1 : Valid -[wp] [Script] Goal typed_init_t2_bis_v2_assigns_exit_part2 : Valid -[wp] [Qed] Goal typed_init_t2_bis_v2_assigns_exit_part3 : Valid -[wp] [Script] Goal typed_init_t2_bis_v2_assigns_normal_part1 : Valid -[wp] [Script] Goal typed_init_t2_bis_v2_assigns_normal_part2 : Valid [wp] [Qed] Goal typed_init_t2_v2_loop_assigns_part1 : Valid [wp] [Script] Goal typed_init_t2_v2_loop_assigns_part2 : Valid [wp] [Script] Goal typed_init_t2_v2_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_init_t2_v2_loop_assigns_2_part1 : Valid [wp] [Script] Goal typed_init_t2_v2_loop_assigns_2_part2 : Valid [wp] [Script] Goal typed_init_t2_v2_loop_assigns_2_part3 : Valid -[wp] [Script] Goal typed_init_t2_v2_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_t2_v2_assigns_part1 : Valid [wp] [Script] Goal typed_init_t2_v2_assigns_part2 : Valid [wp] [Qed] Goal typed_init_t2_v3_loop_assigns_part1 : Valid [wp] [Script] Goal typed_init_t2_v3_loop_assigns_part2 : Valid [wp] [Script] Goal typed_init_t2_v3_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_init_t2_v3_loop_assigns_2_part1 : Valid -[wp] [Script] Goal typed_init_t2_v3_loop_assigns_2_part2 : Valid -[wp] [Script] Goal typed_init_t2_v3_assigns_part1 : Valid +[wp] [Qed] Goal typed_init_t2_v3_loop_assigns_2_part2 : Valid +[wp] [Qed] Goal typed_init_t2_v3_assigns_part1 : Valid [wp] [Script] Goal typed_init_t2_v3_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_loop_assigns_part1 : Valid +[wp] [Script] Goal typed_init_t2_bis_v2_loop_assigns_part2 : Valid +[wp] [Script] Goal typed_init_t2_bis_v2_loop_assigns_part3 : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_assigns_exit_part1 : Valid +[wp] [Script] Goal typed_init_t2_bis_v2_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_init_t2_bis_v2_assigns_normal_part1 : Valid +[wp] [Script] Goal typed_init_t2_bis_v2_assigns_normal_part2 : Valid [wp] Proved goals: 23 / 23 Qed: 11 Script: 12 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle index 21d17e27f81..5342272128d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle @@ -9,14 +9,6 @@ [wp] [CFG] Goal init_t2_v3_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards [wp] 16 goals scheduled -[wp] [Qed] Goal typed_init_t2_bis_v1_loop_assigns_part1 : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_assigns_part2 : Unsuccess -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_assigns_part3 : Unsuccess -[wp] [Qed] Goal typed_init_t2_bis_v1_assigns_exit_part1 : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_assigns_exit_part2 : Unsuccess -[wp] [Qed] Goal typed_init_t2_bis_v1_assigns_exit_part3 : Valid -[wp] [Qed] Goal typed_init_t2_bis_v1_assigns_normal_part1 : Valid -[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_assigns_normal_part2 : Unsuccess [wp] [Qed] Goal typed_init_t2_v1_loop_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_init_t2_v1_loop_assigns_part2 : Unsuccess [wp] [Alt-Ergo] Goal typed_init_t2_v1_loop_assigns_part3 : Unsuccess @@ -25,6 +17,14 @@ [wp] [Alt-Ergo] Goal typed_init_t2_v1_loop_assigns_2_part3 : Unsuccess [wp] [Qed] Goal typed_init_t2_v1_assigns_part1 : Valid [wp] [Alt-Ergo] Goal typed_init_t2_v1_assigns_part2 : Unsuccess +[wp] [Qed] Goal typed_init_t2_bis_v1_loop_assigns_part1 : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_assigns_part2 : Unsuccess +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_loop_assigns_part3 : Unsuccess +[wp] [Qed] Goal typed_init_t2_bis_v1_assigns_exit_part1 : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_assigns_exit_part2 : Unsuccess +[wp] [Qed] Goal typed_init_t2_bis_v1_assigns_exit_part3 : Valid +[wp] [Qed] Goal typed_init_t2_bis_v1_assigns_normal_part1 : Valid +[wp] [Alt-Ergo] Goal typed_init_t2_bis_v1_assigns_normal_part2 : Unsuccess [wp] Proved goals: 7 / 16 Qed: 7 Alt-Ergo: 0 (unsuccess: 9) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle index dd19834fbb2..90e9cb91bb9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle @@ -4,13 +4,13 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled -[wp] [Qed] Goal typed_main_assert : Valid -[wp] [Qed] Goal typed_main_call_swap_requires : Valid -[wp] [Qed] Goal typed_main_call_swap_requires_2 : Valid [wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid [wp] [Qed] Goal typed_swap_ensures_B : Valid [wp] [Qed] Goal typed_swap_assigns_part1 : Valid [wp] [Qed] Goal typed_swap_assigns_part2 : Valid +[wp] [Qed] Goal typed_main_assert : Valid +[wp] [Qed] Goal typed_main_call_swap_requires : Valid +[wp] [Qed] Goal typed_main_call_swap_requires_2 : Valid [wp] Proved goals: 7 / 7 Qed: 6 Alt-Ergo: 1 diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index ce020046acf..f8d061f3e20 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -4,12 +4,12 @@ [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled -[wp] [Qed] Goal typed_ref_main_assert : Valid -[wp] [Qed] Goal typed_ref_main_call_swap_requires : Valid -[wp] [Qed] Goal typed_ref_main_call_swap_requires_2 : Valid [wp] [Qed] Goal typed_ref_swap_ensures_A : Valid [wp] [Qed] Goal typed_ref_swap_ensures_B : Valid [wp] [Qed] Goal typed_ref_swap_assigns : Valid +[wp] [Qed] Goal typed_ref_main_assert : Valid +[wp] [Qed] Goal typed_ref_main_call_swap_requires : Valid +[wp] [Qed] Goal typed_ref_main_call_swap_requires_2 : Valid [wp] Proved goals: 6 / 6 Qed: 6 ------------------------------------------------------------ -- GitLab From eeae03b8852694fd6295c30706daec5bb0268e23 Mon Sep 17 00:00:00 2001 From: Thibault Martin <thibault.martin@cea.fr> Date: Wed, 16 Sep 2020 16:30:54 +0200 Subject: [PATCH 150/255] Update oracles bis --- tests/misc/oracle/save_comments.res.oracle | 18 +++++----- tests/spec/oracle/doxygen.res.oracle | 40 +++++++++++----------- tests/syntax/oracle/bts0916.res.oracle | 26 +++++++------- tests/syntax/oracle/ghost_else.res.oracle | 28 +++++++-------- 4 files changed, 56 insertions(+), 56 deletions(-) diff --git a/tests/misc/oracle/save_comments.res.oracle b/tests/misc/oracle/save_comments.res.oracle index 380ee2e70d1..41d68823261 100644 --- a/tests/misc/oracle/save_comments.res.oracle +++ b/tests/misc/oracle/save_comments.res.oracle @@ -1,28 +1,28 @@ [kernel] Parsing tests/misc/save_comments.i (no preprocessing) Printing default project first time: /* Generated by Frama-C */ -/* run.config +/* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments - */ +*/ int f(void) { int x = 0; - // Hello, I'm the f function + // Hello, I'm the f function return x; } Printing default project second time: /* Generated by Frama-C */ -/* run.config +/* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments - */ +*/ int f(void) { int x = 0; - // Hello, I'm the f function + // Hello, I'm the f function return x; } @@ -35,14 +35,14 @@ In project saved_project, searching for comments between tests/misc/save_comment End of comments Printing saved project: /* Generated by Frama-C */ -/* run.config +/* run.config EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs OPT: -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs -keep-comments - */ +*/ int f(void) { int x = 0; - // Hello, I'm the f function + // Hello, I'm the f function return x; } diff --git a/tests/spec/oracle/doxygen.res.oracle b/tests/spec/oracle/doxygen.res.oracle index 8b367915d98..8f74d3042a4 100644 --- a/tests/spec/oracle/doxygen.res.oracle +++ b/tests/spec/oracle/doxygen.res.oracle @@ -1,42 +1,42 @@ [kernel] Parsing tests/spec/doxygen.c (with preprocessing) /* Generated by Frama-C */ -/* run.config +/* run.config OPT: -keep-comments -print -then -pp-annot - */ -// @{ -// @{ Bla -// @{ -// @{ Blu +*/ +//@{ +//@{ Bla +//@{ +//@{ Blu void doxygen_group(void) { return; } -// @} Bli -// @} -// @} -// @} Bly +//@} Bli +//@} +//@} +//@} Bly void main(); [kernel] Parsing tests/spec/doxygen.c (with preprocessing) /* Generated by Frama-C */ -/* run.config +/* run.config OPT: -keep-comments -print -then -pp-annot - */ -// @{ -// @{ Bla -// @{ -// @{ Blu +*/ +//@{ +//@{ Bla +//@{ +//@{ Blu void doxygen_group(void) { return; } -// @} Bli -// @} -// @} -// @} Bly +//@} Bli +//@} +//@} +//@} Bly void main(); diff --git a/tests/syntax/oracle/bts0916.res.oracle b/tests/syntax/oracle/bts0916.res.oracle index 083eebb32b1..f1ac2713fe5 100644 --- a/tests/syntax/oracle/bts0916.res.oracle +++ b/tests/syntax/oracle/bts0916.res.oracle @@ -1,27 +1,27 @@ [kernel] Parsing tests/syntax/bts0916.i (no preprocessing) /* Generated by Frama-C */ -/* run.config +/* run.config STDOPT: +"-keep-comments" - */ -// Use frama-c with option -keep-comments +*/ +// Use frama-c with option -keep-comments void main(void) { int port = 10; - // ( port & 0x80 ) == 0 ) - // wait for pin1 - Compliant - // wait for pin2 - // Not compliant/*, comment before ; - // wait for pin3 - Not compliant, no white-space char after ; + // ( port & 0x80 ) == 0 ) + // wait for pin1 - Compliant + // wait for pin2 + // Not compliant/*, comment before ; + // wait for pin3 - Not compliant, no white-space char after ; while (1) { int tmp; tmp = port; port --; ; - if (! (tmp > 0)) // ( port & 0x80 ) == 0 ) - // wait for pin1 - Compliant - // wait for pin2 - // Not compliant/*, comment before ; - // wait for pin3 - Not compliant, no white-space char after ; + if (! (tmp > 0)) // ( port & 0x80 ) == 0 ) + // wait for pin1 - Compliant + // wait for pin2 + // Not compliant/*, comment before ; + // wait for pin3 - Not compliant, no white-space char after ; break; } return; diff --git a/tests/syntax/oracle/ghost_else.res.oracle b/tests/syntax/oracle/ghost_else.res.oracle index 4a66372e2e6..3060420dfca 100644 --- a/tests/syntax/oracle/ghost_else.res.oracle +++ b/tests/syntax/oracle/ghost_else.res.oracle @@ -1,8 +1,8 @@ [kernel] Parsing tests/syntax/ghost_else.i (no preprocessing) /* Generated by Frama-C */ -/* run.config +/* run.config OPT: -no-autoload-plugins -keep-comments -print - */ +*/ void normal_only_if(int x, int y) { if (x) x ++; @@ -58,8 +58,8 @@ void if_ghost_else_block_comments(int x) /*@ ghost (int y) */ { if (x) x ++; /*@ ghost else y ++;*/ - /* // comment 1 */ - /* // comment 2 */ + //// comment 1 + //// comment 2 return; } @@ -67,8 +67,8 @@ void if_ghost_else_block_comments_escaped(int x) /*@ ghost (int y) */ { if (x) x ++; /*@ ghost else y ++;*/ - /* // comment 1\ */ - /* continued */ + //// comment 1\ + //continued return; } @@ -80,8 +80,8 @@ void normal_if_ghost_else_intricated(int x) /*@ ghost (int y) */ return; } -/* we must take care to keep the "if" bloc when pretty-printing */ -/* as removing the brackets changes the program. */ +// we must take care to keep the "if" bloc when pretty-printing +// as removing the brackets changes the program. void ghost_else_plus_else_association(int x) /*@ ghost (int y) */ { if (x) { @@ -92,9 +92,9 @@ void ghost_else_plus_else_association(int x) /*@ ghost (int y) */ return; } -/* pretty-printer must take care of keeping the braces around the */ -/* single-(ghost)-statement blocks. Otherwise, the code is syntactically */ -/* invalid (empty, from a non-ghost point-of-view, then clause) */ +// pretty-printer must take care of keeping the braces around the +// single-(ghost)-statement blocks. Otherwise, the code is syntactically +// invalid (empty, from a non-ghost point-of-view, then clause) void non_ghost_if_with_ghost_body(int x) /*@ ghost (int y) */ { if (x) { @@ -106,9 +106,9 @@ void non_ghost_if_with_ghost_body(int x) /*@ ghost (int y) */ return; } -/* pretty-printer must take care of keeping the braces around the */ -/* single-(ghost)-statement blocks. Even if the ghost statement is an */ -/* empty block! */ +// pretty-printer must take care of keeping the braces around the +// single-(ghost)-statement blocks. Even if the ghost statement is an +// empty block! void non_ghost_if_with_nop_ghost_body(int x) /*@ ghost (int y) */ { if (! x) { -- GitLab From c40c026f14b228f5e3e5b6f70c34422bc4858798 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Wed, 16 Sep 2020 17:53:20 +0200 Subject: [PATCH 151/255] [report] allows updating property status --- src/plugins/report/tests/report/no_hyp.ml | 42 ++++++++++------- .../tests/report/oracle/single.1.res.oracle | 46 ++++++++++++++++--- 2 files changed, 65 insertions(+), 23 deletions(-) diff --git a/src/plugins/report/tests/report/no_hyp.ml b/src/plugins/report/tests/report/no_hyp.ml index cb651465511..a145963f447 100644 --- a/src/plugins/report/tests/report/no_hyp.ml +++ b/src/plugins/report/tests/report/no_hyp.ml @@ -1,4 +1,4 @@ -let emitter = +let emitter = Emitter.create "Test" [ Emitter.Property_status ] ~correctness:[] ~tuning:[] let set_status s = @@ -11,7 +11,7 @@ let set_status s = let print_status = Dynamic.get ~plugin:"Report" - "print" + "print" (Datatype.func Datatype.unit Datatype.unit) let clear () = @@ -20,26 +20,36 @@ let clear () = () let main () = - Ast.compute (); - Kernel.feedback "SETTING STATUS TO dont_know"; - set_status Property_status.Dont_know; - print_status (); - Kernel.feedback "SETTING STATUS TO true"; - set_status Property_status.True; - print_status (); + begin + Ast.compute (); + Kernel.feedback "SETTING STATUS TO dont_know"; + set_status Property_status.Dont_know; + print_status (); + Kernel.feedback "SETTING STATUS TO true"; + set_status Property_status.True; + print_status (); + Kernel.feedback "SETTING STATUS TO false_if_reachable"; + set_status Property_status.False_if_reachable; + print_status (); + Kernel.feedback "SETTING STATUS TO dont_know"; + set_status Property_status.Dont_know; + print_status (); + Kernel.feedback "SETTING STATUS TO true"; + set_status Property_status.True; + print_status (); + Kernel.feedback "SETTING STATUS TO false_if_reachable"; + set_status Property_status.False_if_reachable; + print_status (); + (* Kernel.feedback "SETTING STATUS TO false_if_reachable"; (try set_status Property_status.False_if_reachable with Property_status.Inconsistent_emitted_status(s1, s2) -> - Kernel.result "inconsistency between %a and %a" + Kernel.result "inconsistency between %a and %a" Property_status.Emitted_status.pretty s1 Property_status.Emitted_status.pretty s2); Kernel.feedback "CLEARING"; clear (); - Kernel.feedback "SETTING STATUS TO false_if_reachable"; - set_status Property_status.False_if_reachable; - print_status (); - Kernel.feedback "SETTING STATUS TO false_and_reachable"; - set_status Property_status.False_and_reachable; - print_status () + *) + end let () = Db.Main.extend main diff --git a/src/plugins/report/tests/report/oracle/single.1.res.oracle b/src/plugins/report/tests/report/oracle/single.1.res.oracle index a47026150e0..088835a7a67 100644 --- a/src/plugins/report/tests/report/oracle/single.1.res.oracle +++ b/src/plugins/report/tests/report/oracle/single.1.res.oracle @@ -32,9 +32,6 @@ 1 Total -------------------------------------------------------------------------------- [kernel] SETTING STATUS TO false_if_reachable -[kernel] inconsistency between **NOT** VALID and VALID -[kernel] CLEARING -[kernel] SETTING STATUS TO false_if_reachable [report] Computing properties status... -------------------------------------------------------------------------------- @@ -51,19 +48,54 @@ 1 Alarm emitted 1 Total -------------------------------------------------------------------------------- -[kernel] SETTING STATUS TO false_and_reachable +[kernel] SETTING STATUS TO dont_know [report] Computing properties status... -------------------------------------------------------------------------------- --- Properties of Function 'main' -------------------------------------------------------------------------------- -[ Bug ] Assertion (file tests/report/single.i, line 9) - by Test. +[ Alarm ] Assertion (file tests/report/single.i, line 9) + By Test, with pending: + - Unreachable program point (file tests/report/single.i, line 9) -------------------------------------------------------------------------------- --- Status Report Summary -------------------------------------------------------------------------------- - 1 Bugs found + 1 Alarm emitted + 1 Total +-------------------------------------------------------------------------------- +[kernel] SETTING STATUS TO true +[report] Computing properties status... + +-------------------------------------------------------------------------------- +--- Properties of Function 'main' +-------------------------------------------------------------------------------- + +[ Alarm ] Assertion (file tests/report/single.i, line 9) + By Test, with pending: + - Unreachable program point (file tests/report/single.i, line 9) + +-------------------------------------------------------------------------------- +--- Status Report Summary +-------------------------------------------------------------------------------- + 1 Alarm emitted + 1 Total +-------------------------------------------------------------------------------- +[kernel] SETTING STATUS TO false_if_reachable +[report] Computing properties status... + +-------------------------------------------------------------------------------- +--- Properties of Function 'main' +-------------------------------------------------------------------------------- + +[ Alarm ] Assertion (file tests/report/single.i, line 9) + By Test, with pending: + - Unreachable program point (file tests/report/single.i, line 9) + +-------------------------------------------------------------------------------- +--- Status Report Summary +-------------------------------------------------------------------------------- + 1 Alarm emitted 1 Total -------------------------------------------------------------------------------- -- GitLab From 3d402d587520ec7c11b1ac968e29eded3ff100cd Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Wed, 16 Sep 2020 17:57:07 +0200 Subject: [PATCH 152/255] [eacsl:runtime] Fix installation of runtime library files --- src/plugins/e-acsl/Makefile.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index adbef2951fc..3dbd78d2aee 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -412,7 +412,7 @@ EACSL_INSTALL_C_DIRECTORIES := \ install:: $(PRINT_INSTALL) E-ACSL share files - for dir in $(EACSL_C_DIRECTORIES); do \ + for dir in $(EACSL_INSTALL_C_DIRECTORIES); do \ $(MKDIR) $(FRAMAC_DATADIR)/$$dir && \ $(CP) $(E_ACSL_DIR)/share/$$dir/*.[ch] $(FRAMAC_DATADIR)/$$dir ; \ done -- GitLab From 931c44254d27406d64b58bd1740af22101ec66f2 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Wed, 16 Sep 2020 18:10:34 +0200 Subject: [PATCH 153/255] [eacsl:runtime] Fix include of segment_tracking.h --- .../observation_model/segment_model/e_acsl_segment_tracking.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h index 82a09ebeecc..828938c53a6 100644 --- a/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h +++ b/src/plugins/e-acsl/share/e-acsl/observation_model/segment_model/e_acsl_segment_tracking.h @@ -31,6 +31,8 @@ #include <stddef.h> #include <stdint.h> +#include "e_acsl_shadow_layout.h" + /* Segment settings and shadow values interpretation {{{ */ /* This file implements segment-based and offset-based shadow memory models -- GitLab From cd5d5802b25abb9d1727447a163fe735de2afa5f Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 17 Sep 2020 10:45:03 +0200 Subject: [PATCH 154/255] [Libc] add spec for asctime --- share/libc/time.h | 8 ++++++++ tests/libc/oracle/fc_libc.0.res.oracle | 26 +++++++++++++------------- tests/libc/oracle/fc_libc.1.res.oracle | 12 ++++++++++++ tests/libc/oracle/time_h.res.oracle | 9 +++++++++ tests/libc/time_h.c | 3 +++ 5 files changed, 45 insertions(+), 13 deletions(-) diff --git a/share/libc/time.h b/share/libc/time.h index b44aafbe4c1..0083859f5e0 100644 --- a/share/libc/time.h +++ b/share/libc/time.h @@ -111,6 +111,14 @@ extern time_t time(time_t *timer); char __fc_ctime[26]; char * const __fc_p_ctime = __fc_ctime; +/*@ + requires valid_timeptr: \valid_read(timeptr); + requires initialization:init_timeptr: \initialized(timeptr); + assigns __fc_ctime[0..25] \from indirect:*timeptr, indirect:__fc_time; + assigns \result \from indirect:*timeptr, indirect:__fc_time, __fc_p_ctime; + ensures result_points_to_ctime: \result == __fc_p_ctime; + ensures result_valid_string: valid_read_string(__fc_p_ctime); + */ extern char *asctime(const struct tm *timeptr); /*@ diff --git a/tests/libc/oracle/fc_libc.0.res.oracle b/tests/libc/oracle/fc_libc.0.res.oracle index f2b765368ed..137fa979193 100644 --- a/tests/libc/oracle/fc_libc.0.res.oracle +++ b/tests/libc/oracle/fc_libc.0.res.oracle @@ -41,7 +41,7 @@ wcscpy (0 call); wcslen (2 calls); wcsncat (0 call); wcsncpy (0 call); wmemcpy (0 call); wmemset (0 call); - Undefined functions (411) + Undefined functions (412) ========================= FD_CLR (0 call); FD_ISSET (0 call); FD_SET (0 call); FD_ZERO (0 call); Frama_C_int_interval (0 call); Frama_C_long_interval (0 call); @@ -73,17 +73,17 @@ __va_openat_void (0 call); _exit (0 call); abort (0 call); accept (0 call); access (0 call); acos (0 call); acosf (0 call); acosh (0 call); acoshf (0 call); acoshl (0 call); acosl (0 call); alloca (0 call); - asin (0 call); asinf (0 call); asinl (0 call); at_quick_exit (0 call); - atan (0 call); atan2 (0 call); atan2f (0 call); atanf (0 call); - atanl (0 call); atexit (0 call); atof (0 call); atol (0 call); - atoll (0 call); basename (0 call); bind (0 call); bsearch (0 call); - bzero (0 call); ceil (0 call); ceilf (0 call); ceill (0 call); - cfgetispeed (0 call); cfgetospeed (0 call); cfsetispeed (0 call); - cfsetospeed (0 call); chdir (0 call); chown (0 call); chroot (0 call); - clearerr (0 call); clearerr_unlocked (0 call); clock (0 call); - clock_gettime (0 call); clock_nanosleep (0 call); close (0 call); - closedir (0 call); closelog (0 call); connect (0 call); cos (0 call); - cosf (0 call); cosl (0 call); creat (0 call); ctime (0 call); + asctime (0 call); asin (0 call); asinf (0 call); asinl (0 call); + at_quick_exit (0 call); atan (0 call); atan2 (0 call); atan2f (0 call); + atanf (0 call); atanl (0 call); atexit (0 call); atof (0 call); + atol (0 call); atoll (0 call); basename (0 call); bind (0 call); + bsearch (0 call); bzero (0 call); ceil (0 call); ceilf (0 call); + ceill (0 call); cfgetispeed (0 call); cfgetospeed (0 call); + cfsetispeed (0 call); cfsetospeed (0 call); chdir (0 call); chown (0 call); + chroot (0 call); clearerr (0 call); clearerr_unlocked (0 call); + clock (0 call); clock_gettime (0 call); clock_nanosleep (0 call); + close (0 call); closedir (0 call); closelog (0 call); connect (0 call); + cos (0 call); cosf (0 call); cosl (0 call); creat (0 call); ctime (0 call); difftime (0 call); dirname (0 call); div (0 call); drand48 (0 call); dup (0 call); dup2 (0 call); erand48 (0 call); execl (0 call); execle (0 call); execlp (0 call); execv (0 call); execve (0 call); @@ -187,7 +187,7 @@ Goto = 97 Assignment = 459 Exit point = 83 - Function = 494 + Function = 495 Function call = 93 Pointer dereferencing = 159 Cyclomatic complexity = 296 diff --git a/tests/libc/oracle/fc_libc.1.res.oracle b/tests/libc/oracle/fc_libc.1.res.oracle index f0bf4264838..981e7bf9215 100644 --- a/tests/libc/oracle/fc_libc.1.res.oracle +++ b/tests/libc/oracle/fc_libc.1.res.oracle @@ -6280,6 +6280,18 @@ extern time_t time(time_t *timer); char __fc_ctime[26]; char * const __fc_p_ctime = __fc_ctime; +/*@ requires valid_timeptr: \valid_read(timeptr); + requires initialization: init_timeptr: \initialized(timeptr); + ensures result_points_to_ctime: \result ≡ __fc_p_ctime; + ensures result_valid_string: valid_read_string(__fc_p_ctime); + assigns __fc_ctime[0 .. 25], \result; + assigns __fc_ctime[0 .. 25] + \from (indirect: *timeptr), (indirect: __fc_time); + assigns \result + \from (indirect: *timeptr), (indirect: __fc_time), __fc_p_ctime; + */ +extern char *asctime(struct tm const *timeptr); + /*@ requires valid_timer: \valid_read(timer); requires initialization: init_timer: \initialized(timer); ensures result_points_to_ctime: \result ≡ __fc_p_ctime; diff --git a/tests/libc/oracle/time_h.res.oracle b/tests/libc/oracle/time_h.res.oracle index 8262e54c5d1..74ee3def269 100644 --- a/tests/libc/oracle/time_h.res.oracle +++ b/tests/libc/oracle/time_h.res.oracle @@ -226,6 +226,15 @@ [eva] computing for function gmtime_r <- main. Called from tests/libc/time_h.c:62. [eva] Done for function gmtime_r +[eva] computing for function asctime <- main. + Called from tests/libc/time_h.c:64. +[eva] using specification for function asctime +[eva] tests/libc/time_h.c:64: + function asctime: precondition 'valid_timeptr' got status valid. +[eva] tests/libc/time_h.c:64: + function asctime: precondition 'initialization,init_timeptr' got status valid. +[eva] Done for function asctime +[eva:alarm] tests/libc/time_h.c:65: Warning: assertion got status unknown. [eva] Recording results for main [eva] done for function main [eva] ====== VALUES COMPUTED ====== diff --git a/tests/libc/time_h.c b/tests/libc/time_h.c index 30db0860b50..52a14290535 100644 --- a/tests/libc/time_h.c +++ b/tests/libc/time_h.c @@ -61,5 +61,8 @@ int main() { struct tm mytime2; res_time = gmtime_r(&t, &mytime2); + time_str = asctime(&mytime); + //@ assert valid_string(time_str); + return 0; } -- GitLab From d607cbe77b4b656ed2722b52a776ef37e042defd Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 17 Sep 2020 13:51:54 +0200 Subject: [PATCH 155/255] [wp] Memoisation for hypotheses --- src/plugins/wp/MemoryContext.ml | 30 +++++++++++++++---- src/plugins/wp/MemoryContext.mli | 14 +++++---- src/plugins/wp/register.ml | 20 ++++++++----- .../wp/oracle_qualif/wp_call_pre.res.oracle | 4 +-- 4 files changed, 48 insertions(+), 20 deletions(-) diff --git a/src/plugins/wp/MemoryContext.ml b/src/plugins/wp/MemoryContext.ml index 2904da424d0..b3012f74718 100644 --- a/src/plugins/wp/MemoryContext.ml +++ b/src/plugins/wp/MemoryContext.ml @@ -279,10 +279,18 @@ let clauses_of_partition kf loc p = let reqs = List.sort_uniq Logic_utils.compare_predicate reqs in reqs -let emitter = - Emitter.(create "Wp.Hypotheses" [Funspec] ~correctness:[] ~tuning:[]) - -let get_behavior kf name partition = +module Table = + State_builder.Hashtbl + (Cil_datatype.Kf.Hashtbl) + (Datatype.Option(Cil_datatype.Funbehavior)) + (struct + let name = "MemoryContext.Table" + let size = 17 + let dependencies = [ Ast.self ] + end) + +let compute_behavior kf name hypotheses_computer = + let partition = hypotheses_computer kf in let loc = Kernel_function.get_location kf in let reqs = clauses_of_partition kf loc partition in let reqs = List.map Logic_const.new_predicate reqs in @@ -299,7 +307,17 @@ let get_behavior kf name partition = b_extended = [] } -let add_behavior kf name partition = - match get_behavior kf name partition with +let compute name hypotheses_computer = + Globals.Functions.iter + (fun kf -> ignore (compute_behavior kf name hypotheses_computer)) + +let get_behavior kf name hypotheses_computer = + Table.memo (fun kf -> compute_behavior kf name hypotheses_computer) kf + +let emitter = + Emitter.(create "Wp.Hypotheses" [Funspec] ~correctness:[] ~tuning:[]) + +let add_behavior kf name hypotheses_computer = + match get_behavior kf name hypotheses_computer with | None -> () | Some bhv -> Annotations.add_behaviors emitter kf [bhv] diff --git a/src/plugins/wp/MemoryContext.mli b/src/plugins/wp/MemoryContext.mli index 6c406b1aab8..736617995ed 100644 --- a/src/plugins/wp/MemoryContext.mli +++ b/src/plugins/wp/MemoryContext.mli @@ -24,12 +24,16 @@ open Cil_types type param = NotUsed | ByAddr | ByValue | ByShift | ByRef | InContext | InArray -val pp_param : Format.formatter -> param -> unit +val pp_param: Format.formatter -> param -> unit type partition -val empty : partition -val set : varinfo -> param -> partition -> partition +val empty: partition +val set: varinfo -> param -> partition -> partition -val add_behavior : kernel_function -> string -> partition -> unit -val get_behavior : kernel_function -> string -> partition -> behavior option +val compute: string -> (kernel_function -> partition) -> unit + +val add_behavior: + kernel_function -> string -> (kernel_function -> partition) -> unit +val get_behavior: + kernel_function -> string -> (kernel_function -> partition) -> behavior option diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index 580ac961046..78dc895d013 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -99,13 +99,18 @@ let wp_print_memory_context kf bhv fmt = pp_vdecl vkf ; end +let wp_compute_memory_context model = + let hypotheses_computer = WpContext.compute_hypotheses model in + let name = WpContext.MODEL.id model in + MemoryContext.compute name hypotheses_computer + let wp_warn_memory_context () = begin wp_iter_model begin fun kf m -> - let partition = WpContext.compute_hypotheses m kf in + let hypotheses_computer = WpContext.compute_hypotheses m in let model = WpContext.MODEL.id m in - let hyp = MemoryContext.get_behavior kf model partition in + let hyp = MemoryContext.get_behavior kf model hypotheses_computer in match hyp with | None -> () | Some bhv -> @@ -121,9 +126,9 @@ let wp_insert_memory_context model = begin Wp_parameters.iter_fct begin fun kf -> - let hyp = WpContext.compute_hypotheses model kf in + let hyp_computer = WpContext.compute_hypotheses model in let model_id = WpContext.MODEL.id model in - MemoryContext.add_behavior kf model_id hyp + MemoryContext.add_behavior kf model_id hyp_computer end end @@ -171,9 +176,9 @@ let do_wp_report () = end ; List.iter (WpReport.export stats) reports ; end ; - if Wp_parameters.MemoryContext.get () then - wp_warn_memory_context () - end + if Wp_parameters.MemoryContext.get () then + wp_warn_memory_context () + end (* ------------------------------------------------------------------------ *) (* --- Wp Results --- *) @@ -812,6 +817,7 @@ let cmdline_run () = WpContext.on_context (computer#model,WpContext.Global) LogicBuiltins.dump (); end ; + wp_compute_memory_context computer#model ; if Wp_parameters.CheckModelHypotheses.get () then wp_insert_memory_context computer#model fct ; Generator.compute_selection computer ~fct ~bhv ~prop () diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle index 824ee1a6e31..f27ec49d1b7 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle @@ -2,10 +2,10 @@ [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' -[kernel] tests/wp/wp_call_pre.c:53: Warning: - No code nor implicit assigns clause for function g, generating default assigns from the prototype [kernel] tests/wp/wp_call_pre.c:53: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype +[kernel] tests/wp/wp_call_pre.c:53: Warning: + No code nor implicit assigns clause for function g, generating default assigns from the prototype [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Qed] Goal typed_call_g_call_g_requires_qed_ok_Rga : Valid -- GitLab From 6328903831c466ee7c4ff59338d54ddffbdc52c4 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@cea.fr> Date: Thu, 10 Sep 2020 15:55:24 +0000 Subject: [PATCH 156/255] Update nix/frama-ci.* (cherry picked from commit 4df7a8d693f02f08235e88ff56d1ec6cbedcec13) (cherry picked from commit 8bd2c0f8e3852fc4a4c02036d7f496746de2f9bf) --- nix/frama-ci.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nix/frama-ci.nix b/nix/frama-ci.nix index ce0e87a5dff..7939e05dd11 100644 --- a/nix/frama-ci.nix +++ b/nix/frama-ci.nix @@ -5,7 +5,7 @@ let src = builtins.fetchGit { "url" = "https://bobot:${password}@git.frama-c.com/frama-c/Frama-CI.git"; "name" = "Frama-CI"; - "rev" = "36e99854d59cda2c97d0b52f1f098f6beb3baf04"; + "rev" = "3e8a67b19d5923c651509070eec5db646b80ec32"; "ref" = "master"; }; in -- GitLab From b1d770b299e0b3aa180a0e1c35ef693b3a8ecb04 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 17 Sep 2020 14:00:06 +0200 Subject: [PATCH 157/255] [wp] Lint register --- src/plugins/wp/register.ml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index 78dc895d013..6cb8afbc7c0 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -176,9 +176,9 @@ let do_wp_report () = end ; List.iter (WpReport.export stats) reports ; end ; - if Wp_parameters.MemoryContext.get () then - wp_warn_memory_context () - end + if Wp_parameters.MemoryContext.get () then + wp_warn_memory_context () + end (* ------------------------------------------------------------------------ *) (* --- Wp Results --- *) -- GitLab From 978d2f2cd25d45deb5ff75411a363422fbbf0055 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 17 Sep 2020 17:00:14 +0200 Subject: [PATCH 158/255] ChangeLog --- src/plugins/wp/Changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index f0eff739299..389007c7c91 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -24,9 +24,9 @@ Plugin WP <next-release> ######################### -- WP [2020-XX-XX] New experimental option: -wp-check-model-hypotheses +- WP [2020-09-17] New experimental option: -wp-check-model-hypotheses Generates requires in contracts for model hypotheses -- WP [2020-XX-XX] Hypotheses: assigned memory locations +- WP [2020-09-17] Hypotheses: assigned memory locations - WP [2020-09-11] Support for generalized @check ACSL annotations - WP [2020-07-06] Removed debug keys "no-xxx-info" (subsumed by "shell") - WP [2020-07-06] Option -wp-cache-env now defaults to false -- GitLab From 608fc6ea361cddc01979944744eb259eab5008a5 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 17 Sep 2020 09:54:38 +0200 Subject: [PATCH 159/255] [Dev] add Dockerfile and instructions for custom images --- devel_tools/docker/frama-c.custom/.gitignore | 2 + devel_tools/docker/frama-c.custom/Dockerfile | 67 ++++++++++++++++++++ devel_tools/docker/frama-c.custom/README.md | 45 +++++++++++++ 3 files changed, 114 insertions(+) create mode 100644 devel_tools/docker/frama-c.custom/.gitignore create mode 100644 devel_tools/docker/frama-c.custom/Dockerfile create mode 100644 devel_tools/docker/frama-c.custom/README.md diff --git a/devel_tools/docker/frama-c.custom/.gitignore b/devel_tools/docker/frama-c.custom/.gitignore new file mode 100644 index 00000000000..028757c1352 --- /dev/null +++ b/devel_tools/docker/frama-c.custom/.gitignore @@ -0,0 +1,2 @@ +# ignore an eventual frama-c subfolder in this directory +frama-c diff --git a/devel_tools/docker/frama-c.custom/Dockerfile b/devel_tools/docker/frama-c.custom/Dockerfile new file mode 100644 index 00000000000..94e0b4719f7 --- /dev/null +++ b/devel_tools/docker/frama-c.custom/Dockerfile @@ -0,0 +1,67 @@ +FROM debian:sid as base + +RUN apt-get update && apt-get install -y \ + cvc4 \ + opam \ + z3 \ + && rm -rf /var/lib/apt/lists/* + +RUN opam init --disable-sandboxing --compiler=ocaml-base-compiler.4.08.1 -y + +# "RUN eval $(opam env)" does not work, so we manually set its variables +ENV OPAM_SWITCH_PREFIX "/root/.opam/ocaml-base-compiler.4.08.1" +ENV CAML_LD_LIBRARY_PATH "/root/.opam/ocaml-base-compiler.4.08.1/lib/stublibs:/root/.opam/ocaml-base-compiler.4.08.1/lib/ocaml/stublibs:/root/.opam/ocaml-base-compiler.4.08.1/lib/ocaml" +ENV OCAML_TOPLEVEL_PATH "/root/.opam/ocaml-base-compiler.4.08.1/lib/toplevel" +ENV MANPATH "$MANPATH:/root/.opam/ocaml-base-compiler.4.08.1/man" +ENV PATH "/root/.opam/ocaml-base-compiler.4.08.1/bin:$PATH" + +RUN opam update -y && opam install depext -y + +# Install packages from reference configuration +RUN apt-get update && opam update -y && opam depext --install -y --verbose \ + alt-ergo.2.0.0 \ + apron.v0.9.12 \ + conf-graphviz.0.1 \ + mlgmpidl.1.2.12 \ + ocamlfind.1.8.1 \ + ocamlgraph.1.8.8 \ + ppx_deriving_yojson.3.5.2 \ + why3.1.3.1 \ + yojson.1.7.0 \ + zarith.1.9.1 \ + zmq.5.1.3 \ + && rm -rf /var/lib/apt/lists/* + +# Install non-OCaml solvers +RUN apt install z3 cvc4 -y + +RUN why3 config --full-config + +# with_source: keep Frama-C sources +ARG with_source=no + +# copies a cloned, non-public Frama-C +COPY frama-c /root/frama-c + +RUN cd /root && \ + (cd frama-c && \ + autoconf && ./configure --disable-gui && \ + make -j && \ + make install \ + ) && \ + [ "${with_source}" != "no" ] || rm -rf frama-c + +# with_test: run Frama-C tests; requires "with_source=yes" +ARG with_test=no + +RUN if [ "${with_test}" != "no" ]; then \ + apt-get update && \ + opam update -y && opam depext --install -y \ + conf-python-3.1.0.0 \ + conf-time.1 \ + --verbose \ + && \ + rm -rf /var/lib/apt/lists/* && \ + cd /root/frama-c && \ + make tests; \ + fi diff --git a/devel_tools/docker/frama-c.custom/README.md b/devel_tools/docker/frama-c.custom/README.md new file mode 100644 index 00000000000..4dfe948efa0 --- /dev/null +++ b/devel_tools/docker/frama-c.custom/README.md @@ -0,0 +1,45 @@ +Building a Frama-C Docker image with a custom git clone +========================================================================= + +In order to build a Frama-C Docker image with custom plug-ins, or using +a custom git repository, do the following: + +1. Locally clone Frama-C into the `frama-c` directory, e.g. via + + git clone git@frama-c.com:frama-c/frama-c.git + + If needed, modify the clone to add other plug-ins and/or files inside + `frama-c`. + +2. If needed, add Debian and opam prerequisites to the appropriate lines in the + Dockerfile, or change the opam version in the `ENV` lines. + +3. For a "minimal" image (with installed Frama-C, but no source code), run: + + docker build . -t fc-custom # or another tag if you prefer + + For an image with the Frama-C source code (in `/root/frama-c`), run: + + docker build . -t fc-custom-with-source --build-arg=with_source=yes + + For an image with source code + tests (e.g. which runs `make tests`), run: + + docker build . -t fc-custom-with-test --build-arg=with_source=yes --build-arg=with_test=yes + +4. In all cases, after building the image, run it with: + + docker run -it fc-custom # or another tag + +Frama-C will be installed and its sources will be in `/root/frama-c`. + +### Notes + +1. If you keep the sources, remember that the Docker image may contain + non-public code. + +2. Using different tags for the `*-with-source` and `*-with-test` images may + allow layer reuse by Docker. + +3. If you need files outside `/root/frama-c`, add them to the directory + containing this README and add a `COPY` instruction to the `Dockerfile`, + e.g. `COPY dir /root/dir`. -- GitLab From e6236bd61663de07d697e6583933c1c277616b92 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 17 Sep 2020 22:57:44 +0200 Subject: [PATCH 160/255] [Dev] remove unecessary docker commands and update README for custom docker --- devel_tools/docker/frama-c.20.0/Dockerfile | 1 + devel_tools/docker/frama-c.21.0/Dockerfile | 4 +--- devel_tools/docker/frama-c.21.1/Dockerfile | 4 +--- devel_tools/docker/frama-c.custom/Dockerfile | 4 +--- devel_tools/docker/frama-c.custom/README.md | 3 ++- devel_tools/docker/frama-c.dev/Dockerfile | 4 +--- 6 files changed, 7 insertions(+), 13 deletions(-) diff --git a/devel_tools/docker/frama-c.20.0/Dockerfile b/devel_tools/docker/frama-c.20.0/Dockerfile index 66dcd40c025..2d818583f3d 100644 --- a/devel_tools/docker/frama-c.20.0/Dockerfile +++ b/devel_tools/docker/frama-c.20.0/Dockerfile @@ -1,5 +1,6 @@ FROM debian:sid as base +# Install non-OCaml dependencies + opam RUN apt-get update && apt-get install -y \ cvc4 \ opam \ diff --git a/devel_tools/docker/frama-c.21.0/Dockerfile b/devel_tools/docker/frama-c.21.0/Dockerfile index 472d6dce9eb..131400581b5 100644 --- a/devel_tools/docker/frama-c.21.0/Dockerfile +++ b/devel_tools/docker/frama-c.21.0/Dockerfile @@ -1,5 +1,6 @@ FROM debian:sid as base +# Install non-OCaml dependencies + opam RUN apt-get update && apt-get install -y \ cvc4 \ opam \ @@ -32,9 +33,6 @@ RUN apt-get update && opam update -y && opam depext --install -y --verbose \ zmq.5.1.3 \ && rm -rf /var/lib/apt/lists/* -# Install non-OCaml solvers -RUN apt install z3 cvc4 -y - RUN why3 config --full-config # with_source: keep Frama-C sources diff --git a/devel_tools/docker/frama-c.21.1/Dockerfile b/devel_tools/docker/frama-c.21.1/Dockerfile index c37b6441aa8..661e982c76e 100644 --- a/devel_tools/docker/frama-c.21.1/Dockerfile +++ b/devel_tools/docker/frama-c.21.1/Dockerfile @@ -1,5 +1,6 @@ FROM debian:sid as base +# Install non-OCaml dependencies + opam RUN apt-get update && apt-get install -y \ cvc4 \ opam \ @@ -32,9 +33,6 @@ RUN apt-get update && opam update -y && opam depext --install -y --verbose \ zmq.5.1.3 \ && rm -rf /var/lib/apt/lists/* -# Install non-OCaml solvers -RUN apt install z3 cvc4 -y - RUN why3 config --full-config # with_source: keep Frama-C sources diff --git a/devel_tools/docker/frama-c.custom/Dockerfile b/devel_tools/docker/frama-c.custom/Dockerfile index 94e0b4719f7..226b19fcf00 100644 --- a/devel_tools/docker/frama-c.custom/Dockerfile +++ b/devel_tools/docker/frama-c.custom/Dockerfile @@ -1,5 +1,6 @@ FROM debian:sid as base +# Install non-OCaml dependencies + opam RUN apt-get update && apt-get install -y \ cvc4 \ opam \ @@ -32,9 +33,6 @@ RUN apt-get update && opam update -y && opam depext --install -y --verbose \ zmq.5.1.3 \ && rm -rf /var/lib/apt/lists/* -# Install non-OCaml solvers -RUN apt install z3 cvc4 -y - RUN why3 config --full-config # with_source: keep Frama-C sources diff --git a/devel_tools/docker/frama-c.custom/README.md b/devel_tools/docker/frama-c.custom/README.md index 4dfe948efa0..6ce5f94c37e 100644 --- a/devel_tools/docker/frama-c.custom/README.md +++ b/devel_tools/docker/frama-c.custom/README.md @@ -12,7 +12,8 @@ a custom git repository, do the following: `frama-c`. 2. If needed, add Debian and opam prerequisites to the appropriate lines in the - Dockerfile, or change the opam version in the `ENV` lines. + Dockerfile (after `apt update` and before removing the `apt` cache). + If you need to change the opam version, also edit the `ENV` lines. 3. For a "minimal" image (with installed Frama-C, but no source code), run: diff --git a/devel_tools/docker/frama-c.dev/Dockerfile b/devel_tools/docker/frama-c.dev/Dockerfile index aa819b0a661..a1a8c63ae8b 100644 --- a/devel_tools/docker/frama-c.dev/Dockerfile +++ b/devel_tools/docker/frama-c.dev/Dockerfile @@ -1,5 +1,6 @@ FROM debian:sid as base +# Install non-OCaml dependencies + opam RUN apt-get update && apt-get install -y \ cvc4 \ opam \ @@ -32,9 +33,6 @@ RUN apt-get update && opam update -y && opam depext --install -y --verbose \ zmq.5.1.3 \ && rm -rf /var/lib/apt/lists/* -# Install non-OCaml solvers -RUN apt install z3 cvc4 -y - RUN why3 config --full-config # with_source: keep Frama-C sources -- GitLab From c71cb50586a7afeb7eb6ac7cb39aa22e5ed077ec Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 18 Sep 2020 10:35:21 +0200 Subject: [PATCH 161/255] [wp] only output information on loaded driver when 'driver' category is on --- src/plugins/wp/driver.mll | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/plugins/wp/driver.mll b/src/plugins/wp/driver.mll index 06fc29c30ff..9e4d708e493 100644 --- a/src/plugins/wp/driver.mll +++ b/src/plugins/wp/driver.mll @@ -72,6 +72,10 @@ lexbuf.lex_curr_p <- { lexbuf.lex_curr_p with pos_lnum = succ lexbuf.lex_curr_p.pos_lnum } + (*TODO[LC] Think about projectification ... *) + let dkey = Wp_parameters.register_category "includes" + let dkey_driver = Wp_parameters.register_category "driver" + let rec conv_bal default (name,bal) = match bal with | `Default -> conv_bal default (name,default) @@ -460,7 +464,7 @@ and bal = parse let load_file ?(ontty=`Transient) file = try let path = Datatype.Filepath.of_string file in - Wp_parameters.feedback ~ontty "Loading driver '%a'" + Wp_parameters.feedback ~dkey:dkey_driver ~ontty "Loading driver '%a'" Datatype.Filepath.pretty path; let driver_dir = Filename.dirname file in let inc = open_in file in @@ -482,10 +486,6 @@ and bal = parse ~current:false "Error in driver '%s': %s" file (Printexc.to_string exn) - (*TODO[LC] Think about projectification ... *) - let dkey = Wp_parameters.register_category "includes" - let dkey_driver = Wp_parameters.register_category "driver" - let loaded : (string list, driver) Hashtbl.t =Hashtbl.create 10 let load_driver () = let drivers = Wp_parameters.Drivers.get () in -- GitLab From 65215e22b04f066d9b3a5153da675f0fbae85747 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 18 Sep 2020 10:36:33 +0200 Subject: [PATCH 162/255] [tests] use MODULE directive --- tests/misc/version.i | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/misc/version.i b/tests/misc/version.i index 3a762af550b..2b739ebbd83 100644 --- a/tests/misc/version.i +++ b/tests/misc/version.i @@ -1,4 +1,4 @@ /* run.config - EXECNOW: make -s @PTEST_DIR@/@PTEST_NAME@.cmxs - OPT: -no-autoload-plugins -load-module @PTEST_DIR@/@PTEST_NAME@.cmxs + MODULE: @PTEST_DIR@/@PTEST_NAME@.cmxs + OPT: -no-autoload-plugins */ -- GitLab From 18990fcaa0930fe695a120d58e902630837b8f86 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Fri, 18 Sep 2020 11:04:43 +0200 Subject: [PATCH 163/255] [tests-wp] update oracles following message change --- src/plugins/wp/tests/wp/oracle/bug_rte.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/cfg_loop.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/sharing.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/stmtcompiler_test.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/stmtcompiler_test_rela.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_call_pre.0.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_call_pre.1.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_call_pre.4.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_strategy.0.res.oracle | 1 - src/plugins/wp/tests/wp/oracle/wp_strategy.1.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/assign_array.res.oracle | 1 - .../wp_acsl/oracle/assigned_initialized_memtyped.res.oracle | 1 - .../tests/wp_acsl/oracle/assigned_initialized_memvar.res.oracle | 1 - .../wp_acsl/oracle/assigned_not_initialized_memtyped.res.oracle | 1 - .../wp_acsl/oracle/assigned_not_initialized_memvar.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/block_length.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/boolean.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/checks.0.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/checks.1.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/checks.2.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/chunk_typing_usable.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/classify_float.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/ctor.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/div_mod.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/e_imply.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/equal.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/float_compare.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.0.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/generalized_checks.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/implicit_enum_cast.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/inductive.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/init_label.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.0.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/initialized_memtyped.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/initialized_memvar.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/intbool.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/label_escape.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/logic.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/null.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/post_result.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/precedence.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/predicates_functions.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/range.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/reads.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/record.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/sizeof.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/struct_use_case.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/sum_types.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/tset.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/type_guard.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/unit_bool.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle/unit_compare.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/unsupported_builtin.res.oracle | 1 - .../wp/tests/wp_acsl/oracle/user_def_type_guard.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts0708.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts788.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts986.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_0896.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1174.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1176.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1360.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1382.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1462.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1586.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1588.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1601.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1647.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1776.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2040.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2079.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2159.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2201.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2246.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/bts_2501.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/ergo_typecheck.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/ex5.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue-364.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue-516.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue-684-exit.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_141.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_198.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_447.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_453.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_494.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_508.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_711.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_715_a.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_715_b.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_801.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_81.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_825.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_837.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/issue_898.res.oracle | 1 - src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle | 1 - .../oracle/binary-multiplication-without-overflow.res.oracle | 1 - .../wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle | 1 - src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle | 1 - .../wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle | 1 - .../wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle | 1 - .../tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle | 1 - .../wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle | 1 - .../wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle | 1 - .../wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle | 1 - src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle | 1 - .../tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle | 1 - .../tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/byref.0.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/isHoare.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/logicarr.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/logicref.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/logicref_simple.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle | 1 - .../wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle | 1 - .../wp/tests/wp_hoare/oracle/reference_array_simple.res.oracle | 1 - src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/abs.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/asm.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/bit_test.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/call.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/cint.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/cint.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/cint.2.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/cint.4.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/cint.5.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/convert.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/doomed.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/doomed.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/doomed_axioms.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/doomed_loop.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/doomed_unroll.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/fallback.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/flash.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/flash.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/flash.2.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/float_driver.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/float_format.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/frame.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/ground_real.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/inductive.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/init_const.res.oracle | 1 - .../wp/tests/wp_plugin/oracle/init_const_guard.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/init_extern.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/init_valid.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/initarr.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/injector.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/invertible.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/loopcurrent.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/loopentry.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/loopextra.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/mask.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/math.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/nowp.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/nth.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/overarray.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/params.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/plet.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/struct.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/subset.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/subset_fopen.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/trig.res.oracle | 1 - .../wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.1.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle | 1 - src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle | 1 - src/plugins/wp/tests/wp_store/oracle/array.res.oracle | 1 - src/plugins/wp/tests/wp_store/oracle/natural.res.oracle | 1 - src/plugins/wp/tests/wp_store/oracle/nonaliasing.res.oracle | 1 - src/plugins/wp/tests/wp_store/oracle/struct.res.oracle | 1 - src/plugins/wp/tests/wp_tip/oracle/chunk_printing.res.oracle | 1 - .../wp/tests/wp_tip/oracle/tac_split_quantifiers.res.oracle | 1 - .../wp/tests/wp_typed/oracle/array_initialized.0.res.oracle | 1 - .../wp/tests/wp_typed/oracle/array_initialized.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/avar.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/avar.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/bug_9.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/bug_9.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/frame.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/frame.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/mvar.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/mvar.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle | 1 - .../wp/tests/wp_typed/oracle/struct_array_type.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_alloc.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_alloc.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_bitwise.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_cst.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_cst.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_float.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_hard.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_hard.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_ite.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_labels.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_lemma.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_lemma.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_local.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_local.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_matrix.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_matrix.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_string.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_string.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_tset.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/unit_tset.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_bitwise.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_string.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_string.1.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_swap.0.res.oracle | 1 - src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/caveat.0.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/core.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/global.0.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.0.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/issue-189.0.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/issue-189.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/reads.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/save_load.1.res.oracle | 1 - src/plugins/wp/tests/wp_usage/oracle/save_load.sav.res | 1 - src/plugins/wp/tests/wp_usage/oracle/valinit.res.oracle | 1 - 309 files changed, 309 deletions(-) diff --git a/src/plugins/wp/tests/wp/oracle/bug_rte.res.oracle b/src/plugins/wp/tests/wp/oracle/bug_rte.res.oracle index 5d27599429e..8e96b463d84 100644 --- a/src/plugins/wp/tests/wp/oracle/bug_rte.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/bug_rte.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp/bug_rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function bug ------------------------------------------------------------ Function bug diff --git a/src/plugins/wp/tests/wp/oracle/cfg_loop.res.oracle b/src/plugins/wp/tests/wp/oracle/cfg_loop.res.oracle index fde404cb14e..e3e370f250f 100644 --- a/src/plugins/wp/tests/wp/oracle/cfg_loop.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/cfg_loop.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/cfg_loop.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function loop_continue diff --git a/src/plugins/wp/tests/wp/oracle/sharing.res.oracle b/src/plugins/wp/tests/wp/oracle/sharing.res.oracle index 6a9b973a8bd..1a343c63052 100644 --- a/src/plugins/wp/tests/wp/oracle/sharing.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/sharing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/sharing.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- diff --git a/src/plugins/wp/tests/wp/oracle/stmtcompiler_test.res.oracle b/src/plugins/wp/tests/wp/oracle/stmtcompiler_test.res.oracle index bf984a624a7..d7c91e8c587 100644 --- a/src/plugins/wp/tests/wp/oracle/stmtcompiler_test.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/stmtcompiler_test.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp/stmtcompiler_test.i:136: Warning: Body of function if_assert falls-through. Adding a return statement [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/stmtcompiler_test.i:145: Warning: No code nor implicit assigns clause for function behavior1, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle/stmtcompiler_test_rela.res.oracle b/src/plugins/wp/tests/wp/oracle/stmtcompiler_test_rela.res.oracle index fbd89c4d7c4..06fb66f8e03 100644 --- a/src/plugins/wp/tests/wp/oracle/stmtcompiler_test_rela.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/stmtcompiler_test_rela.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/stmtcompiler_test_rela.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function empty diff --git a/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle index 5db0bbd2e08..5d027100e99 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_behav.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp/wp_behav.c:172: Warning: Ignored specification 'for b1' (generalize to all behavior) [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle index 9c8ae39d657..c28768d2976 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_behavior.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function behaviors diff --git a/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle index a1618f68266..e6e7eac38d3 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_behavior.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function behaviors diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.0.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.0.res.oracle index 653c11e9d55..308fadbaa31 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/wp_call_pre.c:53: Warning: No code nor implicit assigns clause for function g, generating default assigns from the prototype [kernel] tests/wp/wp_call_pre.c:53: Warning: diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.1.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.1.res.oracle index a11eb1bd135..c8d77c93481 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/wp_call_pre.c:53: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle index 90c952b11ab..330ae3ce02f 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/wp_call_pre.c:53: Warning: No code nor implicit assigns clause for function g, generating default assigns from the prototype [kernel] tests/wp/wp_call_pre.c:53: Warning: diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle index e2054c41737..29adcc554a5 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/wp_call_pre.c:53: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle/wp_call_pre.4.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_call_pre.4.res.oracle index 42f82c47985..2b2fcb498fc 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_call_pre.4.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_call_pre.4.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards Goal Pre-condition 'qed_ok,Rstmt' at instruction (file tests/wp/wp_call_pre.c, line 47): diff --git a/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle index 909dc7f4acb..2ab50ab1a47 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_eqb.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_eqb.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp:print-generated] diff --git a/src/plugins/wp/tests/wp/oracle/wp_strategy.0.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_strategy.0.res.oracle index f9a46f91a87..db0e3c425b6 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_strategy.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_strategy.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp/wp_strategy.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bts0513 diff --git a/src/plugins/wp/tests/wp/oracle/wp_strategy.1.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_strategy.1.res.oracle index 0613c6137dc..b3d21c9f32f 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_strategy.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_strategy.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_strategy.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function default_behaviors with behavior default_for_stmt_54 diff --git a/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle index e086a73e2e0..219463ff468 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/arith.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/arith.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assign_array.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assign_array.res.oracle index a358aef50a3..c7024e87f06 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assign_array.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assign_array.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assign_array.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function jobA diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memtyped.res.oracle index 0e876ef057d..97405e3f050 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memtyped.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_initialized_memtyped.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function array diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memvar.res.oracle index ee074a6bd82..a4e3a95a841 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigned_initialized_memvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_initialized_memvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function array diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memtyped.res.oracle index 3e39ff665df..ebcccafc2c7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memtyped.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_not_initialized_memtyped.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function array diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memvar.res.oracle index 34ed9b45a88..ac2da1bad2c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigned_not_initialized_memvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_not_initialized_memvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function array diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle index 0c4bd8dfbdf..b8ebbadea5e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigns_path.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigns_path.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle index 35b9d8777b7..47e610fd265 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/assigns_range.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigns_range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call_assigns_all diff --git a/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle index da37a8a78a0..564b0922bf5 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/axioms.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/axioms.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle index 545557ea6d6..436b0b25bcc 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/base_offset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle index 70d1558a270..320a3fd9ef4 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/bitwise.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function band diff --git a/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle index 93a098b8218..107c96ad0ad 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/bitwise2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/bitwise2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle/block_length.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/block_length.res.oracle index a3bc5a8c09b..30094770c41 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/block_length.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/block_length.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/block_length.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/boolean.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/boolean.res.oracle index ea971496a84..61274ae7016 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/boolean.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/boolean.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/boolean.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_u8_is_continue_assigns_part3 : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle/checks.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/checks.0.res.oracle index bae891952be..795c0dfaafc 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/checks.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/checks.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/checks.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_acsl/oracle/checks.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/checks.1.res.oracle index 6de4c095087..d9362c1ce5c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/checks.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/checks.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/checks.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_acsl/oracle/checks.2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/checks.2.res.oracle index db600bf51f7..38d790b5a4d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/checks.2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/checks.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/checks.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle index 72d6142a7ae..8df080b73db 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_acsl/chunk_typing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function function ------------------------------------------------------------ Function function diff --git a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing_usable.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing_usable.res.oracle index f066a94e1eb..40c1a5853ba 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing_usable.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing_usable.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_acsl/chunk_typing_usable.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function usable_axiom [rte] annotating function usable_lemma [wp] 3 goals scheduled diff --git a/src/plugins/wp/tests/wp_acsl/oracle/classify_float.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/classify_float.res.oracle index 8ce615934da..27e7dccf575 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/classify_float.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/classify_float.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/classify_float.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/ctor.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/ctor.res.oracle index 6a6bd49b1a0..dc62954e6b5 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/ctor.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/ctor.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/ctor.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Axiomatic 'Event' ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/div_mod.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/div_mod.res.oracle index 91eb8c84ada..670b0774270 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/div_mod.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/div_mod.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/div_mod.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/e_imply.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/e_imply.res.oracle index b6ef93ebb14..ea5fa8f5945 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/e_imply.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/e_imply.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/e_imply.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/equal.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/equal.res.oracle index 3a3c58f00c0..a543f1f54a2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/equal.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/equal.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/equal.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function simple_array diff --git a/src/plugins/wp/tests/wp_acsl/oracle/float_compare.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/float_compare.res.oracle index b43e2d4a815..54ae1cc9e6b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/float_compare.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/float_compare.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/float_compare.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle index d1a648f8189..47c04b9140b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/float_const.res.oracle @@ -5,7 +5,6 @@ [kernel:parser:decimal-float] tests/wp_acsl/float_const.i:19: Warning: Floating-point constant 0.1 is not represented exactly. Will use 0x1.999999999999ap-4. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp:print-generated] diff --git a/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.0.res.oracle index 98e419a07ae..2c16374dc4a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp_acsl/funvar_inv.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/funvar_inv.i:24: Warning: Can not compare pointers in Empty model diff --git a/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.1.res.oracle index 1e8b67744c3..9ed2d133fee 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/funvar_inv.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_acsl/funvar_inv.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle index 6b7463a9cd6..233aa076c4f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/generalized_checks.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/generalized_checks.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Axiomatic 'Th' diff --git a/src/plugins/wp/tests/wp_acsl/oracle/implicit_enum_cast.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/implicit_enum_cast.res.oracle index eb1d9e231e8..42361373eba 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/implicit_enum_cast.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/implicit_enum_cast.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/implicit_enum_cast.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bar diff --git a/src/plugins/wp/tests/wp_acsl/oracle/inductive.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/inductive.res.oracle index a1016679f96..5a0fc4b056c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/inductive.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/inductive.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/inductive.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 3 goals scheduled --------------------------------------------- --- Context 'typed' Cluster 'Compound' diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_label.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_label.res.oracle index fa3df7a23c2..d6d7a763dab 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_label.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_label.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/init_label.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_acsl/init_label.i:27: Warning: No code nor implicit assigns clause for function main, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle index ce62bdd3dcb..c072c17ac8b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function fa1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle index ec03acf8c19..9501f9dee9b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function fa1 diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.0.res.oracle index 2e42b9e3cb6..c1cd26ad017 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/init_value_mem.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.1.res.oracle index 9a56e40c655..c84b034766c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/init_value_mem.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Hoare' [...] [kernel] Parsing tests/wp_acsl/init_value_mem.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/init_value_mem.i:24: Warning: Can not load value in Empty model diff --git a/src/plugins/wp/tests/wp_acsl/oracle/initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/initialized_memtyped.res.oracle index 391310e752a..10608888723 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/initialized_memtyped.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/initialized_memtyped.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function formal diff --git a/src/plugins/wp/tests/wp_acsl/oracle/initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/initialized_memvar.res.oracle index a243863d16a..5a91bd928d6 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/initialized_memvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/initialized_memvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function globals diff --git a/src/plugins/wp/tests/wp_acsl/oracle/intbool.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/intbool.res.oracle index 753b578819b..be8e2dc018c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/intbool.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/intbool.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/intbool.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bug diff --git a/src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle index f1bb59e94b4..a9d75cace6c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/invalid_pointer.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/invalid_pointer.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/invalid_pointer.c:21: Warning: void object ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/label_escape.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/label_escape.res.oracle index 69e92d2508b..4fca509b739 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/label_escape.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/label_escape.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/label_escape.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/logic.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/logic.res.oracle index 85d318865a1..631003d71ae 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/logic.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/logic.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/logic.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/logic.i:65: Warning: Cast with incompatible pointers types (source: __anonstruct_Buint_4*) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle index d6d7c7ffd7f..c4c9cd16d8a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/looplabels.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/looplabels.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function copy diff --git a/src/plugins/wp/tests/wp_acsl/oracle/null.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/null.res.oracle index 7d61a351b3e..16ac874aa69 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/null.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/null.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/null.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle index 76387c61d81..4339266bbaf 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/pointer.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/pointer.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t.(0) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/post_result.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/post_result.res.oracle index 0f84cd85b5c..ea63412d59c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/post_result.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/post_result.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/post_result.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function correct diff --git a/src/plugins/wp/tests/wp_acsl/oracle/precedence.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/precedence.res.oracle index 0071a69eb1e..eac17274f26 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/precedence.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/precedence.res.oracle @@ -37,7 +37,6 @@ [kernel:annot-error] tests/wp_acsl/precedence.i:176: Warning: P is not a logic variable. Ignoring code annotation [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bitwise diff --git a/src/plugins/wp/tests/wp_acsl/oracle/predicates_functions.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/predicates_functions.res.oracle index cc8be9b8f30..666a26c85f5 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/predicates_functions.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/predicates_functions.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/predicates_functions.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp:print-generated] theory WP diff --git a/src/plugins/wp/tests/wp_acsl/oracle/range.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/range.res.oracle index 84774868393..e0054bf13b6 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/range.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/range.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function test diff --git a/src/plugins/wp/tests/wp_acsl/oracle/reads.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/reads.res.oracle index 3a8f0e7073f..430cdc96add 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/reads.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/reads.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/reads.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/record.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/record.res.oracle index da2599913d0..43d8c4d3ece 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/record.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/record.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/record.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle index 42be62e6194..f4bf9c3fb0e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/simpl_is_type.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/simpl_is_type.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function check_acsl diff --git a/src/plugins/wp/tests/wp_acsl/oracle/sizeof.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/sizeof.res.oracle index f7f75c47193..36be29ece00 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/sizeof.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/sizeof.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/sizeof.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle index 671f41e12da..2e93da0b17e 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-no-let [...] [kernel] Parsing tests/wp_acsl/struct_fields.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function foo [wp] 2 goals scheduled --------------------------------------------- diff --git a/src/plugins/wp/tests/wp_acsl/oracle/struct_use_case.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/struct_use_case.res.oracle index 0c38eb7360b..64f1be48e24 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/struct_use_case.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/struct_use_case.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_acsl/struct_use_case.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/sum_types.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/sum_types.res.oracle index 41bb0db4071..ed60c90f282 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/sum_types.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/sum_types.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/sum_types.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 3 goals scheduled --------------------------------------------- --- Context 'typed' Cluster 'A_A' diff --git a/src/plugins/wp/tests/wp_acsl/oracle/tset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/tset.res.oracle index 50ee7b41eb8..60245b69a89 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/tset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/tset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/tset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle/type_guard.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/type_guard.res.oracle index 272aafaea49..795eedf06cd 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/type_guard.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/type_guard.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/type_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle index fd300d3519d..9cc603d5697 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/unit_bit_test.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/unit_bit_test.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function rotate_left diff --git a/src/plugins/wp/tests/wp_acsl/oracle/unit_bool.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/unit_bool.res.oracle index d4de7cfa3f0..ed47c09c4a6 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/unit_bool.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/unit_bool.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/unit_bool.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Axiomatic 'Foo' diff --git a/src/plugins/wp/tests/wp_acsl/oracle/unit_compare.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/unit_compare.res.oracle index daf696e3420..b0b0dba7b56 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/unit_compare.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/unit_compare.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/unit_compare.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_acsl/oracle/unsupported_builtin.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/unsupported_builtin.res.oracle index ba6653276cc..0becba4e377 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/unsupported_builtin.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/unsupported_builtin.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/unsupported_builtin.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_acsl/unsupported_builtin.i:10: Warning: No code nor implicit assigns clause for function foo, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_acsl/oracle/user_def_type_guard.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/user_def_type_guard.res.oracle index bb65f617048..c617b1318c2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/user_def_type_guard.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/user_def_type_guard.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/user_def_type_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0708.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0708.res.oracle index bcd622025b4..fc7dbb75573 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0708.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0708.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts0708.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle index 6fe18cd9966..8c6fd6aed1b 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts0843.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts0843.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f3 diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle index bf5748d6871..0340355af42 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts779.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts779.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts788.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts788.res.oracle index 59fb21a87df..fcb5d4edc86 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts788.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts788.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_bts/bts788.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts986.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts986.res.oracle index f0a8fc075ef..f7dbfc4d45a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts986.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts986.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts986.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_0896.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_0896.res.oracle index 2918c8ef8ab..8e39845f524 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_0896.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_0896.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_0896.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1174.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1174.res.oracle index 0f15882a716..377b3829406 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1174.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1174.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1174.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1176.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1176.res.oracle index f309987b2d5..b56f41848c0 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1176.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1176.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1176.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1360.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1360.res.oracle index 71741906413..7c44e0c9ee5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1360.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1360.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_bts/bts_1360.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function foo_correct [rte] annotating function foo_wrong ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1382.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1382.res.oracle index 07498d37853..d59e50a899d 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1382.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1382.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1382.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_bts/bts_1382.i:18: Warning: Cast with incompatible pointers types (source: sint32*) (target: sint8*) diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1462.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1462.res.oracle index bbb9f2c50e5..aa5c4e32001 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1462.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1462.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1462.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function local diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1586.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1586.res.oracle index c2ffd640b72..4020061d0ec 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1586.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1586.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1586.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function compute_bizarre with behavior Bizarre diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1588.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1588.res.oracle index 00b3e3e05a9..a688528d7bc 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1588.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1588.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1588.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_bts/bts_1588.i:19: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1601.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1601.res.oracle index 89700347331..a7a44770530 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1601.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1601.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1601.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1647.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1647.res.oracle index 72a0500b84a..d2d36e4287a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1647.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1647.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1647.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1776.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1776.res.oracle index a7a3e7e5f91..aff5dc75447 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1776.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1776.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1776.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle index 66651f78d70..640c9952226 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1828.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function global_frame diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle index 04d57e17090..5b00c3b48f3 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_1828.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_bts/bts_1828.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function global_frame diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2040.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2040.res.oracle index 69059aeba48..3601e1976dd 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2040.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2040.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2040.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2079.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2079.res.oracle index 3aaa31af0f6..a59bf702249 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2079.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2079.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2079.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle index b1af7c7da5c..38acae5e6e4 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2110.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2110.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled --------------------------------------------- diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2159.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2159.res.oracle index aac7caf8ba1..445eee0ff76 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2159.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2159.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2159.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2201.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2201.res.oracle index 9669fdaf70d..61491a01bbb 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2201.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2201.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2201.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2246.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2246.res.oracle index 961bf498400..9d81968e9e5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2246.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2246.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2246.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bad diff --git a/src/plugins/wp/tests/wp_bts/oracle/bts_2501.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/bts_2501.res.oracle index f38cfc4e5fd..550dd7a5454 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/bts_2501.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/bts_2501.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2501.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled [wp] 2 goals generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/ergo_typecheck.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/ergo_typecheck.res.oracle index 694a8eed3ce..5cbab700501 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/ergo_typecheck.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/ergo_typecheck.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/ergo_typecheck.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/ex5.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/ex5.res.oracle index b37af5db7fe..b7b15905eb2 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/ex5.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/ex5.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/ex5.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function dummy diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue-364.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue-364.res.oracle index ae3e885d910..cb25cf5612d 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue-364.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue-364.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue-364.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue-516.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue-516.res.oracle index 9bf1f55fb10..7a59fcea651 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue-516.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue-516.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue-516.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No definition for 'to_logic_list' interpreted as reads nothing ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue-684-exit.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue-684-exit.res.oracle index 2b2e6c21c2d..cb499212b74 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue-684-exit.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue-684-exit.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue-684-exit.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function inconditional_exit diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_141.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_141.res.oracle index f84001a741b..9dd3dd748e7 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_141.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_141.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-steps 50 [...] [kernel] Parsing tests/wp_bts/issue_141.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function f [rte] annotating function main [wp] tests/wp_bts/issue_141.i:18: Warning: diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_198.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_198.res.oracle index 3995ac6f0b6..e7f427ccd5d 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_198.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_198.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_198.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_447.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_447.res.oracle index e034a5bf910..f8dc63d5e20 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_447.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_447.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_447.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_453.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_453.res.oracle index 99a9aed869a..9c1dde973cc 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_453.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_453.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_453.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f1 diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_494.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_494.res.oracle index 297b4d98186..faaeeb6e2dd 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_494.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_494.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_494.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_508.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_508.res.oracle index 179be9f834b..69016b5d1ff 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_508.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_508.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_508.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function add diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_711.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_711.res.oracle index 786b948ba14..d30781324d4 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_711.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_711.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_711.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Axiomatic 'LISTS' ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_715_a.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_715_a.res.oracle index 3d37a96e7d7..e41e8f471f5 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_715_a.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_715_a.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_715_a.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_bts/issue_715_a.i:6: Warning: No code nor implicit assigns clause for function dummy, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_715_b.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_715_b.res.oracle index 06b261910a5..8c82bc192ba 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_715_b.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_715_b.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_715_b.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_bts/issue_715_b.i:9: Warning: No code nor implicit assigns clause for function dummy, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle index d54cb383836..14535c7cf0c 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_751.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_751.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function acquire diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_801.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_801.res.oracle index 81c0ed9a9db..0021dc1ad13 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_801.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_801.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_801.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function LoopCurrent diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_81.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_81.res.oracle index 3c3d2d46a68..ede0b64f8b9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_81.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_81.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_81.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function getMax diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_825.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_825.res.oracle index 65c234448ba..6af1e96a96a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_825.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_825.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_825.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function issue diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_837.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_837.res.oracle index d1e95f07802..6505c959c08 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_837.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_837.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_837.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bar diff --git a/src/plugins/wp/tests/wp_bts/oracle/issue_898.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/issue_898.res.oracle index f3dbc6f8d16..d832b6f5796 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/issue_898.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/issue_898.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_898.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle b/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle index 094d64fd5cc..60c6a834f15 100644 --- a/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle/nupw-bcl-bts1120.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/nupw-bcl-bts1120.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp_bts/nupw-bcl-bts1120.i:54: Warning: [cfg] Forget exits clause of node <blkIn-stmt:26> [wp] tests/wp_bts/nupw-bcl-bts1120.i:54: Warning: diff --git a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle index f573edafe8d..4a3a4384db1 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication-without-overflow.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -warn-unsigned-overflow [...] [kernel] Parsing tests/wp_gallery/binary-multiplication-without-overflow.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function BinaryMultiplication [wp] Goal typed_lemma_ax1_lack : not tried [wp] Goal typed_lemma_sizeof_ok_ok : trivial diff --git a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle index 129465cef77..58d59aef852 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/binary-multiplication.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_gallery/binary-multiplication.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function BinaryMultiplication [wp] Goal typed_lemma_ax1_lack : not tried [wp] Goal typed_lemma_ax2_lack : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle index b4f4caaaf02..e0c5b20b99e 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/find.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_gallery/find.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function find [rte] annotating function find_ptr [rte] annotating function iter_ptr diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle index 388a5387f67..cdf72d9135a 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo1_solved.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_gallery/frama_c_exo1_solved.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function exo1 [wp] Goal typed_exo1_ensures : not tried [wp] Goal typed_exo1_ensures_2 : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle index 01cfab82cf3..daf1e9d366b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo2_solved.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -no-warn-signed-overflow [...] [kernel] Parsing tests/wp_gallery/frama_c_exo2_solved.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function max_subarray [wp] Goal typed_max_subarray_ensures : not tried [wp] Goal typed_max_subarray_ensures_2 : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle index 5976d3b8cb9..e21f8f5fe4b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_gallery/frama_c_exo3_solved.old.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function equal_elements [wp] Goal typed_ref_equal_elements_ensures : not tried [wp] Goal typed_ref_equal_elements_ensures_2 : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle index ea1e78b5835..0a5004c6765 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.old.v2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_gallery/frama_c_exo3_solved.old.v2.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function equal_elements [wp] Goal typed_ref_equal_elements_ensures_v1_good : not tried [wp] Goal typed_ref_equal_elements_ensures_v2_good : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle index d19091020e7..21850665dd1 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_exo3_solved.simplified.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_gallery/frama_c_exo3_solved.simplified.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function pair [wp] Goal typed_pair_complete_has_pair_no_pair : trivial [wp] Goal typed_pair_disjoint_has_pair_no_pair : trivial diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle index 064dce264b9..a73f6deff1e 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_gallery/frama_c_hashtbl_solved.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function add [rte] annotating function eq_string [rte] annotating function hash diff --git a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle index 52b5a0ec02f..128fa9a9dd6 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/loop-statement.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/loop-statement.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Goal typed_lemma_Lb : not tried [wp] Goal typed_loop_statement_ensures_Scond : not tried diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle index 4b800e90173..832baab84eb 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function comprehension_alias diff --git a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle index 4eb7ef19181..3da623e2493 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/alias_assigns_hypotheses.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function comprehension_alias diff --git a/src/plugins/wp/tests/wp_hoare/oracle/byref.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/byref.0.res.oracle index 9ec8bc14a7f..f9c6a96edce 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/byref.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/byref.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/byref.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle index 051a94929b4..54ad8489278 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/byref.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/byref.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle index bb48a4672be..d2646994c22 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var.res.oracle @@ -23,7 +23,6 @@ Function call_two_ref: { r0 tmp tmp_0 __retres } Function g: { *pg tmp } Function array_in_struct_param: { sf } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function array_in_struct_param diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle index 72989020ece..8c876f6db38 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' -wp-no-let [...] [kernel] Parsing tests/wp_hoare/dispatch_var2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call_global diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle index 181d3c1dad2..44ae58e7b74 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/dispatch_var2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call_global diff --git a/src/plugins/wp/tests/wp_hoare/oracle/isHoare.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/isHoare.res.oracle index bfbd22dfea9..31b64ff3337 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/isHoare.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/isHoare.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/isHoare.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function cmp_invalid_addr_as_int diff --git a/src/plugins/wp/tests/wp_hoare/oracle/logicarr.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/logicarr.res.oracle index bfb7581b49d..9875c8c8f67 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/logicarr.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/logicarr.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/logicarr.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_hoare/oracle/logicref.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/logicref.res.oracle index 093b63521e6..0eb82222466 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/logicref.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/logicref.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/logicref.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function fvrange_n diff --git a/src/plugins/wp/tests/wp_hoare/oracle/logicref_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/logicref_simple.res.oracle index e789d39c37d..3d20b3ef6be 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/logicref_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/logicref_simple.res.oracle @@ -10,7 +10,6 @@ Function fsimple_array: { &t __retres } Function ftwo_star: { d __retres } Function fvpositive: { b } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function fsimple diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle index 3eef87eaec3..c6bec6fef07 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call_f2 diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle index 6759eb2c636..6be3aa72874 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_and_struct.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference_and_struct.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call_array_in_struct_param diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle index 98a1e48694b..2801c12e3a4 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_array.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference_array.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function add_1_5 diff --git a/src/plugins/wp/tests/wp_hoare/oracle/reference_array_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/reference_array_simple.res.oracle index e71891e1ea8..2c5447e5d1d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/reference_array_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/reference_array_simple.res.oracle @@ -12,7 +12,6 @@ Function call_f2: { tt tmp __retres } Function f3: { p3[] k } Function call_f3: { tp tmp } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function call_f1 diff --git a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle index 884cf8a6f5c..59c0568ee15 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/refguards.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/refguards.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/abs.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/abs.res.oracle index 64ce1c0a275..9a4cc941082 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/abs.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/abs.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/abs.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function abs diff --git a/src/plugins/wp/tests/wp_plugin/oracle/asm.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/asm.res.oracle index 250316f99ab..0f8a43912a0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/asm.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/asm.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/asm.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_plugin/oracle/bit_test.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/bit_test.res.oracle index e56158295b1..1296b169a5d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/bit_test.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/bit_test.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function check1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle index c80bbdfdc62..fd6a26d1a47 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_plugin/bool.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function band_bool with behavior false diff --git a/src/plugins/wp/tests/wp_plugin/oracle/call.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/call.res.oracle index 62179a864c5..5199a49d5ed 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/call.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/call.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.0.res.oracle index 887dec88157..6f58be4f1af 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.0.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/cint.i:22: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function signed_bitwise diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.1.res.oracle index 55a848888ce..59b50c4132f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.1.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/cint.i:22: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function signed_bitwise diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.2.res.oracle index c0c5ae7b8c0..514e872a600 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.2.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/cint.i:22: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function signed_bitwise diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle index b169564f3f3..3aaad8d66c9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.3.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/cint.i:22: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function signed_bitwise diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.4.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.4.res.oracle index f8b89938178..6530278cbb9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.4.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.4.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/cint.i:22: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function signed_bitwise diff --git a/src/plugins/wp/tests/wp_plugin/oracle/cint.5.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/cint.5.res.oracle index bb09f85e02c..064a3b68491 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/cint.5.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/cint.5.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/cint.i:22: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function signed_bitwise diff --git a/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle index 67dda1bd3fc..232d0259c30 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/combined.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/combined.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/convert.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/convert.res.oracle index e322ec1a1e8..a05054d57a9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/convert.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/convert.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/convert.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle index ec243b296db..9faa41ee552 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/copy.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function copy diff --git a/src/plugins/wp/tests/wp_plugin/oracle/doomed.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/doomed.0.res.oracle index 4f81eda9072..0e195c8fcd2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/doomed.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/doomed.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bar diff --git a/src/plugins/wp/tests/wp_plugin/oracle/doomed.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/doomed.1.res.oracle index 96ea7f28a84..07bf46ceb48 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/doomed.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/doomed.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bar diff --git a/src/plugins/wp/tests/wp_plugin/oracle/doomed_axioms.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/doomed_axioms.res.oracle index 66b4587a6b7..da669bd36eb 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/doomed_axioms.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/doomed_axioms.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_axioms.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_plugin/oracle/doomed_loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/doomed_loop.res.oracle index 665deb24842..97103136af1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/doomed_loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/doomed_loop.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_loop.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_plugin/oracle/doomed_unroll.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/doomed_unroll.res.oracle index 16932140287..53bfdc8c969 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/doomed_unroll.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/doomed_unroll.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_unroll.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/doomed_unroll.i:15: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle index 6e4b15fb4d0..e71c6e9ae9a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/dynamic.res.oracle @@ -10,7 +10,6 @@ [wp] tests/wp_plugin/dynamic.i:87: Calls h1 [wp] tests/wp_plugin/dynamic.i:100: Calls unreachable_g [wp:calls] Dynamic call(s): 6. -[wp] Loading driver 'share/wp.driver' [wp] tests/wp_plugin/dynamic.i:78: Warning: Missing 'calls' for default behavior [wp] Warning: Missing RTE guards ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/fallback.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/fallback.res.oracle index 61fd74dd9d8..c3ed1e741d4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/fallback.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/fallback.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/fallback.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/flash.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/flash.0.res.oracle index 818a355e2d1..d987807fecd 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/flash.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/flash.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/flash.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/flash.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/flash.1.res.oracle index 312f0897fc5..31d6bb17966 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/flash.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/flash.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/flash.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp_plugin/flash-ergo.driver:2: Warning: Redefinition of logic INDEX_init [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_plugin/oracle/flash.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/flash.2.res.oracle index 4e5d804718e..c1cd5c4035a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/flash.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/flash.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/flash.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_driver.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_driver.res.oracle index f193a1188d9..d7358dce80b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/float_driver.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_driver.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/float_driver.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 20 goals scheduled [wp:print-generated] diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_format.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_format.res.oracle index 85e995df279..4a8215d591e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/float_format.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_format.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function output diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle index a711e372d35..00f3e8dab4c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_model.0.res.oracle @@ -6,7 +6,6 @@ Floating-point constant 2.1 is not represented exactly. Will use 0x1.0cccccccccccdp1. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle index 55eefc41f89..7fbd6b3ca7b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_model.1.res.oracle @@ -6,7 +6,6 @@ Floating-point constant 2.1 is not represented exactly. Will use 0x1.0cccccccccccdp1. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle index 7e9d87ee00d..39e9f3d8359 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_real.0.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function dequal diff --git a/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle index 4249f034461..acae1296cda 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/float_real.1.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function dequal diff --git a/src/plugins/wp/tests/wp_plugin/oracle/frame.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/frame.res.oracle index 3ef9251b463..b48c65edf9e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/frame.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/frame.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/frame.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function alias diff --git a/src/plugins/wp/tests/wp_plugin/oracle/ground_real.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/ground_real.res.oracle index ca03a014002..1777e7e4198 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/ground_real.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/ground_real.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/ground_real.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/inductive.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/inductive.res.oracle index e9c5272c0cd..56fce1fae01 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/inductive.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/inductive.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/inductive.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 2 goals scheduled [wp:print-generated] diff --git a/src/plugins/wp/tests/wp_plugin/oracle/init_const.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/init_const.res.oracle index dcdf495be17..46f3cde2efb 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/init_const.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/init_const.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/init_const.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function fA diff --git a/src/plugins/wp/tests/wp_plugin/oracle/init_const_guard.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/init_const_guard.res.oracle index 3fcaa7780cb..1b028ec86ba 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/init_const_guard.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/init_const_guard.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/init_const_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/init_extern.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/init_extern.res.oracle index 25a6346f68a..4fb7c09c0aa 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/init_extern.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/init_extern.res.oracle @@ -2,7 +2,6 @@ [kernel] Parsing tests/wp_plugin/init_extern.i (no preprocessing) [kernel] Parsing tests/wp_plugin/init_linker.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/init_valid.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/init_valid.res.oracle index c816306f8df..c630d5f5437 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/init_valid.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/init_valid.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/init_valid.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function validA diff --git a/src/plugins/wp/tests/wp_plugin/oracle/initarr.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/initarr.res.oracle index 402be8d8ac5..296121a1db1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/initarr.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/initarr.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/initarr.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle/injector.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/injector.res.oracle index 9f80dffaa4d..1ac8bbc1f3f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/injector.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/injector.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/injector.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/invertible.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/invertible.res.oracle index 7b4df2e87f0..fb1d1f3185b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/invertible.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/invertible.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/invertible.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_plugin/invertible.i:17: Warning: No code nor implicit assigns clause for function main, generating default assigns from the prototype ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle index 9dd899de5f1..42f63d8aedb 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/loop.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loop.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function init diff --git a/src/plugins/wp/tests/wp_plugin/oracle/loopcurrent.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/loopcurrent.res.oracle index b477c37199d..a562cec21c9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/loopcurrent.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/loopcurrent.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loopcurrent.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/loopcurrent.i:12: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/loopentry.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/loopentry.res.oracle index 991c9e2a2de..fad72a0a769 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/loopentry.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/loopentry.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loopentry.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/loopentry.i:12: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/loopextra.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/loopextra.res.oracle index a01b081f525..ba2abdd43f8 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/loopextra.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/loopextra.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loopextra.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/loopextra.i:6: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/mask.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/mask.res.oracle index 93ca42d9b44..ee4cd2e5dd9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/mask.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/mask.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/mask.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function compute diff --git a/src/plugins/wp/tests/wp_plugin/oracle/math.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/math.res.oracle index 8faae9123de..738cdb2ffba 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/math.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/math.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/math.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle index b0884297aa8..743c3bfc6a9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/model.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/model.i:10: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle/nowp.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/nowp.res.oracle index 134cf5cfbb8..78a2178dc95 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/nowp.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/nowp.res.oracle @@ -1,6 +1,5 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/nowp.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] No proof obligations diff --git a/src/plugins/wp/tests/wp_plugin/oracle/nth.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/nth.res.oracle index 13e8d343c16..565ac6b571e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/nth.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/nth.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/nth.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Axiomatic 'Nth' ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/overarray.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/overarray.res.oracle index d314b7d06ef..5392e0e5e2b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/overarray.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/overarray.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/overarray.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f1_ok diff --git a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle index c0547370f6f..a3bcc315fda 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/overassign.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/overassign.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f1_ok diff --git a/src/plugins/wp/tests/wp_plugin/oracle/params.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/params.res.oracle index 06390f95302..b61273a928c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/params.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/params.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/params.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/plet.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/plet.res.oracle index 8b4eb23ef7f..6dafe4cc77a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/plet.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/plet.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/plet.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Axiomatic 'Test' ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle index ec3540368c3..0697c55a730 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/prenex.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/prenex.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function diag diff --git a/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle index 1ece42d9dc3..02280de6dca 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/repeat.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/repeat.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/repeat.c:47: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle index 7eb7d1df64d..979f8d1dcd4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp:rte] function job: generate rte for memory access [wp:rte] function job: generate rte for division by zero [wp:rte] function job: generate rte for signed overflow diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle index 3136da68bb2..14242727aae 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -no-warn-signed-overflow [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp:rte] function job: generate rte for memory access [wp:rte] function job: generate rte for division by zero [wp:rte] function job: generate rte for invalid bool value diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle index ec0f537db15..a19a1e491e6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -warn-unsigned-overflow [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp:rte] function job: generate rte for memory access [wp:rte] function job: generate rte for division by zero [wp:rte] function job: generate rte for signed overflow diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle index d5189e5215a..0e988b36311 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-model 'Typed (Nat)' [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp:rte] function job: generate rte for memory access [wp:rte] function job: generate rte for division by zero [wp:rte] function job: generate rte for signed overflow diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle index 7a1f8d54362..e9d3ee4047a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.4.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-model 'Typed (Nat)' -warn-unsigned-overflow [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp:rte] function job: generate rte for memory access [wp:rte] function job: generate rte for division by zero [wp:rte] function job: generate rte for signed overflow diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle index b8d50097f75..6d174fd9f0f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.5.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Nat)' [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp:rte] function job: missing rte for memory access [wp:rte] function job: missing rte for division by zero [wp:rte] function job: missing rte for signed overflow diff --git a/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle index b4f10b26519..0a3228cc97c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/rte.6.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -wp-model 'Typed (Nat)' [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: -wp-rte can annotate memory access because -rte-mem is not set [wp:rte] function job: generate rte for division by zero [wp:rte] function job: generate rte for signed overflow diff --git a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle index c42d51cfe76..fdfb80b6c39 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/sep.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_plugin/sep.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f1_none diff --git a/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle index 897f3be73ba..62b9c9001fa 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/sequence.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_plugin/sequence.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function loops diff --git a/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle index 9b3f58137ab..124de2a508d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/stmt.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal f_exits : Valid (Unreachable) [wp] [CFG] Goal g_exits : Valid (Unreachable) [wp] [CFG] Goal g_assigns : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle index 42a767b4657..aa233aaddc7 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/string_c.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/string_c.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards Goal Post-condition 'copied_contents' in 'memcpy': diff --git a/src/plugins/wp/tests/wp_plugin/oracle/struct.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/struct.res.oracle index bd7e4d2e01d..b0a83c5583c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/struct.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/struct.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/struct.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/subset.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/subset.res.oracle index 29cc3bb6297..31e97c17095 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/subset.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/subset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/subset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function mem diff --git a/src/plugins/wp/tests/wp_plugin/oracle/subset_fopen.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/subset_fopen.res.oracle index d18122a712f..fde06aafdfc 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/subset_fopen.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/subset_fopen.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/subset_fopen.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/trig.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/trig.res.oracle index beb2d13df62..6cad2d7458d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/trig.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/trig.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/trig.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle index 45858c34dea..60291308af6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unfold_assigns.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function ASSIGN_NO_UNFOLD_KO diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle index ab37e2fb1b5..f681ec0f923 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unfold_assigns.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unfold_assigns.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function ASSIGN_NO_UNFOLD_KO diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle index 05fc31fd1c1..6dc9e4477f0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unroll.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unroll.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/unroll.i:20: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.0.res.oracle index 77915655ed3..0d6d70086ee 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unsafe-arrays.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.1.res.oracle index 24ef4545877..d68704a19a6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/unsafe-arrays.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unsafe-arrays.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/unsafe-arrays.i:13: User Error: Invalid infinite range (shiftfield_F1_f p_0)+(..) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle index 8f8e6a453d9..8f0c8d4ce8a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/volatile.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/volatile.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job_assigns diff --git a/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle index 129e94d6af2..8f7b2282f20 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/volatile.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-no-volatile [...] [kernel] Parsing tests/wp_plugin/volatile.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/volatile.i:15: Warning: unsafe volatile access to (term) l-value diff --git a/src/plugins/wp/tests/wp_store/oracle/array.res.oracle b/src/plugins/wp/tests/wp_store/oracle/array.res.oracle index 70648cc14cd..cf476ad115d 100644 --- a/src/plugins/wp/tests/wp_store/oracle/array.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle/array.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/array.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function g diff --git a/src/plugins/wp/tests/wp_store/oracle/natural.res.oracle b/src/plugins/wp/tests/wp_store/oracle/natural.res.oracle index 3f1d57dc0cb..fc4518d506c 100644 --- a/src/plugins/wp/tests/wp_store/oracle/natural.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle/natural.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/natural.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_store/oracle/nonaliasing.res.oracle b/src/plugins/wp/tests/wp_store/oracle/nonaliasing.res.oracle index d98e119512c..0850a3c16ed 100644 --- a/src/plugins/wp/tests/wp_store/oracle/nonaliasing.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle/nonaliasing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/nonaliasing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_store/oracle/struct.res.oracle b/src/plugins/wp/tests/wp_store/oracle/struct.res.oracle index 5b15a883bf9..175f393e79e 100644 --- a/src/plugins/wp/tests/wp_store/oracle/struct.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle/struct.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/struct.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_tip/oracle/chunk_printing.res.oracle b/src/plugins/wp/tests/wp_tip/oracle/chunk_printing.res.oracle index e6de0501d53..1cb5b23e556 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/chunk_printing.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle/chunk_printing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_tip/chunk_printing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function main ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_tip/oracle/tac_split_quantifiers.res.oracle b/src/plugins/wp/tests/wp_tip/oracle/tac_split_quantifiers.res.oracle index 31f7225f21a..a43b8e6759f 100644 --- a/src/plugins/wp/tests/wp_tip/oracle/tac_split_quantifiers.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle/tac_split_quantifiers.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_tip/tac_split_quantifiers.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function split diff --git a/src/plugins/wp/tests/wp_typed/oracle/array_initialized.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/array_initialized.0.res.oracle index b461930a19a..6911b721195 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/array_initialized.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/array_initialized.0.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_typed/array_initialized.c:13: Warning: Too many initializers for array g [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main1 diff --git a/src/plugins/wp/tests/wp_typed/oracle/array_initialized.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/array_initialized.1.res.oracle index a4351662142..91c35e494c2 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/array_initialized.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/array_initialized.1.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_typed/array_initialized.c:13: Warning: Too many initializers for array g [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main1 diff --git a/src/plugins/wp/tests/wp_typed/oracle/avar.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/avar.0.res.oracle index 2aff985d9a4..fd7ab0c35a6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/avar.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/avar.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/avar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/avar.i:4: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle/avar.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/avar.1.res.oracle index 42142a26a79..79830d2882d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/avar.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/avar.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/avar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/avar.i:4: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle/bug_9.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/bug_9.0.res.oracle index 6955c7e9f33..78f07a37773 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/bug_9.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/bug_9.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/bug_9.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_typed/oracle/bug_9.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/bug_9.1.res.oracle index d1a9c2edc88..4b6dba37d8e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/bug_9.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/bug_9.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/bug_9.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle index 5de789f115c..175f532ae7f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/cast_fits.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/cast_fits.i:13: Warning: Cast with incompatible pointers types (source: __anonstruct_L2_2*) diff --git a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle index 965f27bfd7d..0db2247f414 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/cast_fits.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/cast_fits.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/cast_fits.i:13: Warning: Cast with incompatible pointers types (source: __anonstruct_L2_2*) diff --git a/src/plugins/wp/tests/wp_typed/oracle/frame.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/frame.0.res.oracle index 1e91b9fe01b..ff1c02a4ba5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/frame.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/frame.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/frame.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function compound diff --git a/src/plugins/wp/tests/wp_typed/oracle/frame.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/frame.1.res.oracle index 3cc68cc1bef..93b72601618 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/frame.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/frame.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/frame.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function compound diff --git a/src/plugins/wp/tests/wp_typed/oracle/mvar.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/mvar.0.res.oracle index 573cc01ba43..c00b06312b6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/mvar.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/mvar.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/mvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/mvar.i:14: Warning: No code nor implicit assigns clause for function Write, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle/mvar.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/mvar.1.res.oracle index a4c11cbaf13..fef31f96530 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/mvar.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/mvar.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/mvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/mvar.i:14: Warning: No code nor implicit assigns clause for function Write, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle index 9fea0aa32cc..4d36bdaa42c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/shift_lemma.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle index 4a80ee7c1be..4b06e83a958 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/shift_lemma.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/shift_lemma.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle index 1de296f9e9a..5fcad89c141 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/struct_array_type.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/struct_array_type.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.0.res.oracle index dc5985c4828..d2e3f2a9cd7 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_alloc.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.1.res.oracle index 3716b8fceb3..115e7900443 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_alloc.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_alloc.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_bitwise.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_bitwise.res.oracle index c73cb0f2080..6bddd899e5d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_bitwise.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_bitwise.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle index 8db4499af68..2b7c8292fd5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_call.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/unit_call.i:7: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle index 4d1955acf51..2fe4a448986 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_call.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/unit_call.i:7: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle index dfda7aa3f9a..280d1b5db6a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_cast.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_cast.i:4: Warning: Cast with incompatible pointers types (source: sint32*) (target: sint8*) diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle index bb48de46dd6..84e952f6019 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_cast.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_cast.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_cast.i:4: Warning: Cast with incompatible pointers types (source: sint32*) (target: sint8*) diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_cst.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_cst.0.res.oracle index c96410cf87b..f220848799e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_cst.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_cst.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_cst.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_cst.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_cst.1.res.oracle index 2dc8392a426..ac27acaa0dd 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_cst.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_cst.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_cst.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_float.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_float.res.oracle index bb4bf933617..157f2dd9361 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_float.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_float.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_hard.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_hard.0.res.oracle index 8dee3ca102c..8c6dba5f1eb 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_hard.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_hard.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_hard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_hard.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_hard.1.res.oracle index 92ab010a2b7..dc71a1a475c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_hard.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_hard.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_hard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.0.res.oracle index 7388a4baf80..508a664970f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_ite.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function check diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle index 43877a40342..c0eec988340 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_ite.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_ite.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function check diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.0.res.oracle index c1c14a0c647..f610bd6ab0f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_labels.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function duplet diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle index e11c326de60..98b60be4d4a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_labels.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_labels.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function duplet diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.0.res.oracle index 6be54b4bb09..7c21a18a61a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_lemma.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.1.res.oracle index e3fed83ab4c..8d72724d212 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_lemma.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_lemma.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_local.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_local.0.res.oracle index e81bad545d0..b79c6356f02 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_local.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_local.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_local.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bar diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_local.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_local.1.res.oracle index ca652b49c38..f756360a105 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_local.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_local.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Raw)' [...] [kernel] Parsing tests/wp_typed/unit_local.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function bar diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.0.res.oracle index 3ef9cfde404..5a1fdea5b33 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_loopscope.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle index 62ec7355781..9cd81cf8107 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_loopscope.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_loopscope.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.0.res.oracle index b744d1ea2de..f3cb015dea5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_matrix.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function make diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.1.res.oracle index 8a07fab0501..c0f6bc8b083 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_matrix.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_matrix.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function make diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_string.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_string.0.res.oracle index e131924404a..09bf1833614 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_string.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_string.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_string.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_string.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_string.1.res.oracle index b129820adfb..33e37139a19 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_string.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_string.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_string.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_tset.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_tset.0.res.oracle index 9d00a4ee69a..fd636bbb09f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_tset.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_tset.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_tset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function complex diff --git a/src/plugins/wp/tests/wp_typed/oracle/unit_tset.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/unit_tset.1.res.oracle index 68e873a5b9f..7af88b3ded6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/unit_tset.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/unit_tset.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_tset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function complex diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle index 056fdd1bee8..4e4f0bbf55a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_bitwise.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function rl1 diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.1.res.oracle index 90e88cdc057..8bb1f805315 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_bitwise.1.res.oracle @@ -1,6 +1,5 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_bitwise.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] No proof obligations diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle index 6d48fd74589..08ed2413253 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_collect.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_collect.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function caller diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle index b5584066b9c..af4d14ff9c3 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_collect.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_collect.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function caller diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle index e8e6e13bc58..6d82d57897c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_init.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal init_exits : Valid (Unreachable) [wp] [CFG] Goal init_t1_exits : Valid (Unreachable) [wp] [CFG] Goal init_t2_v1_exits : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle index aa1fcfbc2ff..253772faadc 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_init.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal init_exits : Valid (Unreachable) [wp] [CFG] Goal init_t1_exits : Valid (Unreachable) [wp] [CFG] Goal init_t2_v1_exits : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle index 01aafec9e30..b49ad5f8ddd 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_injector.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_injector.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle index 46d05c94af5..3df342a583b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_rec.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_rec.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle index e8561738bcd..14d0ebde9e9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_rec.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_rec.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Global diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_string.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_string.0.res.oracle index 758429573e3..f6ac9a650ae 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_string.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_string.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_string.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function strlen diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_string.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_string.1.res.oracle index d99aaaf937e..b0256f00b0c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_string.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_string.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_string.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function strlen diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_swap.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_swap.0.res.oracle index 1bb42be2636..ed045c6b782 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_swap.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_swap.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_swap.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle index 14d31113393..abbc64b85da 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_swap.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_swap.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function main diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat.0.res.oracle index 218d938c66f..3e326765311 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat.0.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_usage/caveat.i:41: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function explicit diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle index bf777e68401..b4a9f732ab5 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat.1.res.oracle @@ -11,7 +11,6 @@ Function implicit: { a *r p q } Function explicit: { a *r p q } Function observer: { a *r p q } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function explicit diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle index bb429c2780e..c4439057d74 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_usage/caveat2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_usage/caveat2.i:22: Warning: Undefined array-size (sint32[]) ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle index 200b214f0cc..d15c7f73b49 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/caveat_range.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_usage/caveat_range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function reset diff --git a/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle index a812acef1d1..253cb2dea90 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/code_spec.res.oracle @@ -39,7 +39,6 @@ Function calling_spec: Function cup: { val *ref &addr array[] &addr_value val_ref array_ref[] value_array } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal by_addr_in_code_annotation_requires : Valid (Unreachable) [wp] [CFG] Goal by_reference_in_code_annotation_no_exit_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle index d9760199b7e..fd9f352e5c8 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_usage/core.i:11: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_usage/core.i:24: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_usage/oracle/core.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/core.1.res.oracle index 68fa4441538..337bce578f7 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/core.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/core.1.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_usage/core.i:11: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_usage/core.i:24: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.0.res.oracle index 4535eb5a131..6bb95463d0e 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Raw)' [...] [kernel] Parsing tests/wp_usage/global.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle index 504e20e6bd6..0243fc9b178 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed' [...] [kernel] Parsing tests/wp_usage/global.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle index 4e060164a41..6d03c92ee56 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/global.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_usage/global.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function foo diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.0.res.oracle index c089fb5d1fb..2ed983d3f5f 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_usage/issue-189-bis.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function memcpy_alias_vars diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle index bcd929e7df7..71a2cdaccb6 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189-bis.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_usage/issue-189-bis.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards Goal Post-condition 'memcpy,ok' in 'memcpy_context_vars': diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189.0.res.oracle index b4b1200e289..4751ddf0b3f 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_usage/issue-189.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189.1.res.oracle index 5e33a1a8de1..4b1378e9384 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189.1.res.oracle @@ -7,7 +7,6 @@ Init: { } Function f: { *ptr src idx } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_usage/issue-189.i:17: Warning: forbidden write to variable 'src' considered in an isolated context. diff --git a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle index 557f81f473c..0b9c5b7d7e6 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/issue-189.2.res.oracle @@ -7,7 +7,6 @@ Init: { } Function f: { *ptr src idx } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_usage/oracle/reads.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/reads.res.oracle index 45812dbfaba..1328bbed17f 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/reads.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/reads.res.oracle @@ -15,6 +15,5 @@ Function declared_equals_x: { x p } Function defined_equals_x: { x p } Function recursive_usage: { x y b } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] No proof obligations diff --git a/src/plugins/wp/tests/wp_usage/oracle/save_load.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/save_load.1.res.oracle index b335b1e24b1..d951b156c9d 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/save_load.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/save_load.1.res.oracle @@ -1,6 +1,5 @@ [kernel] Warning: ignoring source files specified on the command line while loading a global initial context. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Function f ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_usage/oracle/save_load.sav.res b/src/plugins/wp/tests/wp_usage/oracle/save_load.sav.res index 565f6392f5a..5271ccf0c21 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/save_load.sav.res +++ b/src/plugins/wp/tests/wp_usage/oracle/save_load.sav.res @@ -1,6 +1,5 @@ [kernel] Parsing tests/wp_usage/save_load.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function f diff --git a/src/plugins/wp/tests/wp_usage/oracle/valinit.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/valinit.res.oracle index e7916ad1659..d35aef5194b 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/valinit.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/valinit.res.oracle @@ -9,6 +9,5 @@ Function f: { &ly0 lz0 lx1 &ly1 lz1 lq0 lq1 lp1 &la0 la1 ls0 &lv0 lw0 ls1 ls2 ls3 ls4 ls5 ls6 } ................................................. -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] No proof obligations -- GitLab From 0c9f1377fb888380f0f2318b43f9bd6e9c8b0cd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 14 Sep 2020 15:20:50 +0200 Subject: [PATCH 164/255] [wp] goal printer debug --- src/plugins/wp/GuiSequent.ml | 2 +- src/plugins/wp/Pcond.ml | 21 ++++++++++++--------- src/plugins/wp/Pcond.mli | 12 +++++++----- src/plugins/wp/cfgDump.ml | 5 ++++- src/plugins/wp/cfgWP.ml | 9 ++++++--- src/plugins/wp/wpPropId.ml | 16 +++++++++++++--- 6 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/plugins/wp/GuiSequent.ml b/src/plugins/wp/GuiSequent.ml index 9576660cdd5..8792a599e94 100644 --- a/src/plugins/wp/GuiSequent.ml +++ b/src/plugins/wp/GuiSequent.ml @@ -341,7 +341,7 @@ class pcond (focus : step_selection) (plang : Pcond.state) = object(self) - inherit Pcond.sequence plang as super + inherit Pcond.seqengine plang as super (* All displayed entries *) val mutable domain = Vars.empty diff --git a/src/plugins/wp/Pcond.ml b/src/plugins/wp/Pcond.ml index 76ab4ae4970..c3fe43ec6ea 100644 --- a/src/plugins/wp/Pcond.ml +++ b/src/plugins/wp/Pcond.ml @@ -333,7 +333,7 @@ class engine (lang : #Plang.engine) = let is_nop = function None -> true | Some(_,upd) -> Bag.is_empty upd -class sequence (lang : #state) = +class seqengine (lang : #state) = object(self) inherit engine lang as super @@ -440,7 +440,7 @@ class sequence (lang : #state) = let engine () = if Wp_parameters.has_dkey dkey_state then - ( new sequence (new state) :> engine ) + ( new seqengine (new state) :> engine ) else new engine (new Plang.engine) @@ -449,15 +449,18 @@ let pretty fmt seq = let () = Conditions.pretty := pretty -let sequence ?(clause="Sequence") fmt seq = +let dump_sequence ?(clause="Sequence") ?goal fmt seq = let plang = new Plang.engine in let pcond = new engine plang in plang#global - (fun () -> - Vars.iter (fun x -> ignore (plang#bind x)) (Conditions.vars_hyp seq) ; - pcond#pp_sequence ~clause fmt seq) + begin fun () -> + pcond#pp_block ~clause fmt seq ; + match goal with + | None -> () + | Some g -> Format.fprintf fmt "@ @[<hov 2>Prove %a@]" plang#pp_pred g + end -let bundle ?clause fmt bundle = - sequence ?clause fmt (Conditions.bundle bundle) +let dump_bundle ?clause ?goal fmt bundle = + dump_sequence ?clause ?goal fmt (Conditions.bundle bundle) -let dump = bundle ~clause:"Bundle" +let dump = dump_bundle ?goal:None ~clause:"Bundle" diff --git a/src/plugins/wp/Pcond.mli b/src/plugins/wp/Pcond.mli index ece9925515e..cb7c4c44b6f 100644 --- a/src/plugins/wp/Pcond.mli +++ b/src/plugins/wp/Pcond.mli @@ -23,16 +23,18 @@ open Qed.Plib open Conditions +open Lang.F + (** {2 All-in-one printers} *) -val dump : bundle printer -val bundle : ?clause:string -> bundle printer -val sequence : ?clause:string -> sequence printer val pretty : sequent printer +val dump : bundle printer +val dump_bundle : ?clause:string -> ?goal:pred -> bundle printer +val dump_sequence : ?clause:string -> ?goal:pred -> sequence printer + (** {2 Low-level API} *) -open Lang.F type env = Plang.Env.t val alloc_hyp : Plang.pool -> (var -> unit) -> sequence -> unit @@ -103,7 +105,7 @@ class state : method pp_value : Format.formatter -> term -> unit end -class sequence : #state -> +class seqengine : #state -> object inherit engine method set_sequence : Conditions.sequence -> unit diff --git a/src/plugins/wp/cfgDump.ml b/src/plugins/wp/cfgDump.ml index 90c0924ba5d..5fbdbfb4a42 100644 --- a/src/plugins/wp/cfgDump.ml +++ b/src/plugins/wp/cfgDump.ml @@ -121,6 +121,7 @@ struct let add_assigns env (pid,_) k = let u = node () in Format.fprintf !out " %a [ color=red , label=\"Assigns %a\" ] ;@." pretty u WpPropId.pp_propid pid ; + Format.fprintf !out " %a -> %a [ style=dotted ] ;@." pretty u pretty k ; merge env u k let use_assigns _env _stmt region d k = @@ -215,7 +216,9 @@ struct (fun (_,p) -> Format.fprintf fmt "\n@[<hov 2>Requires %a ;@]" Printer.pp_predicate p) pre end ; - ignore pre ; merge env u k + ignore pre ; + Format.fprintf !out " %a -> %a [ style=dotted ] ;@." pretty u pretty k ; + merge env u k let call env stmt _r kf _es ~pre ~post ~pexit ~assigns ~p_post ~p_exit = let u_post = List.fold_right (add_hyp env) post p_post in diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index 8a35afd310f..ddf5fcd5cd1 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -101,6 +101,10 @@ struct struct type t = effect let compare e1 e2 = P.compare e1.e_pid e2.e_pid + let pretty fmt e = + Format.fprintf fmt "@[<hov 2>EFFECT %a:@ %a@]" + P.pretty e.e_pid (Cvalues.pp_region M.pretty) e.e_region + [@@ warning "-32"] end module G = Qed.Collection.Make(TARGET) @@ -140,9 +144,8 @@ struct (* -------------------------------------------------------------------------- *) let pp_vc fmt vc = - Format.fprintf fmt "%a@ @[<hov 2>Prove %a@]" - Pcond.dump vc.hyps - F.pp_pred vc.goal + Format.fprintf fmt "%a" + (Pcond.dump_bundle ~clause:"Context" ~goal:vc.goal) vc.hyps let pp_vcs fmt vcs = let k = ref 0 in diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index ec5d88cd371..22988574935 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -230,7 +230,7 @@ let compare_prop_id pid1 pid2 = else Stdlib.compare pid1.p_part pid2.p_part -module PropId = +module PropIdRaw = Datatype.Make_with_collections( struct type t = prop_id @@ -356,7 +356,7 @@ end = struct in normalize_basename basename - module UniquifyPropId = NameUniquify(PropId)(struct + module UniquifyPropId = NameUniquify(PropIdRaw)(struct let name = "WpProperty" let basename = get_prop_id_basename end) @@ -435,7 +435,7 @@ struct if n < 1000 then Printf.sprintf "%s_part%03d" basename (succ k) else Printf.sprintf "%s_part%06d" basename (succ k) - module Uniquify2 = NameUniquify(PropId)(struct + module Uniquify2 = NameUniquify(PropIdRaw)(struct let name = "Wp.WpPropId.Names2." let basename = get_prop_id_basename end) @@ -573,6 +573,16 @@ end let pretty_local = Pretty.pp_local +(* -------------------------------------------------------------------------- *) +(* --- Datatype --- *) +(* -------------------------------------------------------------------------- *) + +module PropId = +struct + include PropIdRaw + let pretty = pp_propid +end + (* -------------------------------------------------------------------------- *) (* --- Hints --- *) (* -------------------------------------------------------------------------- *) -- GitLab From b435c0ea74319fc9f98fedd98b9ae6256fe1933b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 14 Sep 2020 16:10:40 +0200 Subject: [PATCH 165/255] [wp] refactor scope --- src/plugins/wp/calculus.ml | 10 +- src/plugins/wp/cfgDump.ml | 5 +- src/plugins/wp/cfgWP.ml | 9 +- src/plugins/wp/mcfg.ml | 5 +- .../oracle/dispatch_var2.0.res.oracle | 14 +-- .../wp/tests/wp_plugin/oracle_qualif/f.dot | 94 +++++++++---------- .../oracle_qualif/f_default_for_stmt_2.dot | 82 ++++++++-------- .../wp/tests/wp_plugin/oracle_qualif/g.dot | 52 +++++----- 8 files changed, 130 insertions(+), 141 deletions(-) diff --git a/src/plugins/wp/calculus.ml b/src/plugins/wp/calculus.ml index b380551db5c..da054bcaad8 100644 --- a/src/plugins/wp/calculus.ml +++ b/src/plugins/wp/calculus.ml @@ -495,9 +495,8 @@ module Cfg (W : Mcfg.S) = struct | Mcfg.SC_Global -> "global" | Mcfg.SC_Block_in -> "block in" | Mcfg.SC_Block_out -> "block out" - | Mcfg.SC_Function_in -> "function in" - | Mcfg.SC_Function_frame -> "function frame" - | Mcfg.SC_Function_out -> "function out" ) + | Mcfg.SC_Frame_in -> "frame in" + | Mcfg.SC_Frame_out -> "frame out" ) (Pretty_utils.pp_list ~sep:", " Printer.pp_varinfo) vars; match scope with | Mcfg.(SC_Block_in | SC_Block_out) when vars = [] -> obj @@ -564,13 +563,12 @@ module Cfg (W : Mcfg.S) = struct Wp_error.unsupported "strange CFGs." | Cil2cfg.VfctIn -> let obj = get_only_succ env cfg v in - let obj = wp_scope wenv formals Mcfg.SC_Function_in obj in let obj = wp_scope wenv [] Mcfg.SC_Global obj in obj | Cil2cfg.VblkIn (Cil2cfg.Bfct, b) -> let obj = get_only_succ env cfg v in let obj = wp_scope wenv b.blocals Mcfg.SC_Block_in obj in - let obj = wp_scope wenv formals Mcfg.SC_Function_frame obj in + let obj = wp_scope wenv formals Mcfg.SC_Frame_in obj in obj | Cil2cfg.VblkOut (Cil2cfg.Bfct, b) -> let obj = get_only_succ env cfg v in @@ -604,7 +602,7 @@ module Cfg (W : Mcfg.S) = struct | Cil2cfg.VfctOut | Cil2cfg.Vexit -> let obj = get_only_succ env cfg v (* exitpost / postcondition *) in - wp_scope wenv formals Mcfg.SC_Function_out obj + wp_scope wenv formals Mcfg.SC_Frame_out obj | Cil2cfg.Vend -> W.empty (* LC : unused entry point... diff --git a/src/plugins/wp/cfgDump.ml b/src/plugins/wp/cfgDump.ml index 5fbdbfb4a42..6091b24dc5a 100644 --- a/src/plugins/wp/cfgDump.ml +++ b/src/plugins/wp/cfgDump.ml @@ -234,9 +234,8 @@ struct let pp_scope sc fmt xs = let title = match sc with | Mcfg.SC_Global -> "Global" - | Mcfg.SC_Function_in -> "F-in" - | Mcfg.SC_Function_frame -> "F-frame" - | Mcfg.SC_Function_out -> "F-out" + | Mcfg.SC_Frame_in -> "F-in" + | Mcfg.SC_Frame_out -> "F-out" | Mcfg.SC_Block_in -> "B-in" | Mcfg.SC_Block_out -> "B-out" in begin diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index ddf5fcd5cd1..35f5540f842 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -1203,11 +1203,10 @@ struct let hs = M.frame (L.current env) in let vcs = gmap (assume_vc ~descr:"Heap" ~domain:true hs) wp.vcs in { wp with vcs } - | Mcfg.SC_Function_in -> wp - | Mcfg.SC_Function_frame -> - wp_scope env wp ~descr:"Function Frame" Enter xs - | Mcfg.SC_Function_out -> - wp_scope env wp ~descr:"Function Exit" Leave xs + | Mcfg.SC_Frame_in -> + wp_scope env wp ~descr:"Frame In" Enter xs + | Mcfg.SC_Frame_out -> + wp_scope env wp ~descr:"Frame Out" Leave xs | Mcfg.SC_Block_in -> wp_scope env wp ~descr:"Block In" Enter xs | Mcfg.SC_Block_out -> diff --git a/src/plugins/wp/mcfg.ml b/src/plugins/wp/mcfg.ml index 1961d71cf90..873001be1eb 100644 --- a/src/plugins/wp/mcfg.ml +++ b/src/plugins/wp/mcfg.ml @@ -24,9 +24,8 @@ open Cil_types type scope = | SC_Global - | SC_Function_in (* Just before the pre-state *) - | SC_Function_frame (* Just after the introduction of formals *) - | SC_Function_out (* Post-state *) + | SC_Frame_in + | SC_Frame_out | SC_Block_in | SC_Block_out diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle index 72989020ece..38bac71fd69 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle @@ -208,7 +208,7 @@ Assume { Have: (ta_y_0=true). (* Pre-condition *) Have: (ta_y_0=true). - (* Function Frame *) + (* Frame In *) Have: (ta_y_1=true) /\ (ta_y_0=false). (* Block In *) Have: (Init_tmp_0=false) /\ (ta_tmp_0=false). @@ -222,7 +222,7 @@ Assume { Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). (* Return *) Have: tmp_0 = call_param_0. - (* Function Exit *) + (* Frame Out *) Have: (ta_y_3=true). } Prove: call_param_0 = 0. @@ -243,7 +243,7 @@ Assume { Have: (ta_y_1=true). (* Pre-condition *) Have: (ta_y_1=true). - (* Function Frame *) + (* Frame In *) Have: (ta_y_2=true) /\ (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). @@ -271,7 +271,7 @@ Assume { Have: (ta_y_1=true). (* Pre-condition *) Have: (ta_y_1=true). - (* Function Frame *) + (* Frame In *) Have: (ta_y_2=true) /\ (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). @@ -291,7 +291,7 @@ Assume { Have: (ta_y_0=true). (* Pre-condition *) Have: (ta_y_0=true). - (* Function Frame *) + (* Frame In *) Have: (ta_y_1=true) /\ (ta_y_0=false). (* Block In *) Have: (Init_tmp_0=false) /\ (ta_tmp_1=false). @@ -314,7 +314,7 @@ Assume { Have: (ta_y_1=true). (* Pre-condition *) Have: (ta_y_1=true). - (* Function Frame *) + (* Frame In *) Have: (ta_y_0=true) /\ (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). @@ -331,7 +331,7 @@ Assume { Have: (ta_y_1=true). (* Pre-condition *) Have: (ta_y_1=true). - (* Function Frame *) + (* Frame In *) Have: (ta_y_2=true) /\ (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot index 077cfed3a2e..c480b21b82a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f.dot @@ -2,73 +2,71 @@ digraph f { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N056 [ color=red , label="Prove f_ensures" ] ; - N056 -> N000 [ style=dotted ] ; - N057 [ color=red , label="Prove f_ensures_2" ] ; - N057 -> N056 [ style=dotted ] ; - N058 [ label="" , shape=circle ] ; + N054 [ color=red , label="Prove f_ensures" ] ; + N054 -> N000 [ style=dotted ] ; + N055 [ color=red , label="Prove f_ensures_2" ] ; + N055 -> N054 [ style=dotted ] ; + N056 [ label="" , shape=circle ] ; + N056 -> N055 ; + N056 -> N054 ; + N057 [ color=lightblue , label="F-out { a b }" ] ; + N057 -> N056 ; + N058 [ label="Label wp:post" ] ; N058 -> N057 ; - N058 -> N056 ; - N059 [ color=lightblue , label="F-out { a b }" ] ; + N059 [ color=lightblue , label="B-out { __retres }" ] ; N059 -> N058 ; - N060 [ label="Label wp:post" ] ; + N060 [ color=orange , label="Return __retres" ] ; N060 -> N059 ; - N061 [ color=lightblue , label="B-out { __retres }" ] ; + N061 [ label="Label wp:sid27 (Stmt s27)" ] ; N061 -> N060 ; - N062 [ color=orange , label="Return __retres" ] ; + N062 [ label="Label wp:sid26 (Stmt s26)" ] ; N062 -> N061 ; - N063 [ label="Label wp:sid27 (Stmt s27)" ] ; + N063 [ color=green , label="Assume f_assert" ] ; N063 -> N062 ; - N064 [ label="Label wp:sid26 (Stmt s26)" ] ; - N064 -> N063 ; - N065 [ color=green , label="Assume f_assert" ] ; + N064 [ color=red , label="Prove f_assert" ] ; + N064 -> N063 [ style=dotted ] ; + N065 [ label="" , shape=circle ] ; N065 -> N064 ; - N066 [ color=red , label="Prove f_assert" ] ; - N066 -> N065 [ style=dotted ] ; - N067 [ label="" , shape=circle ] ; + N065 -> N063 ; + N066 [ label="Label wp:sid25 (Stmt s25)" ] ; + N066 -> N065 ; + N067 [ color=orange , label="__retres := a + b" ] ; N067 -> N066 ; - N067 -> N065 ; - N068 [ label="Label wp:sid25 (Stmt s25)" ] ; + N068 [ label="Label wp:sid6 (Stmt s6)" ] ; N068 -> N067 ; - N069 [ color=orange , label="__retres := a + b" ] ; + N069 [ label="Label wp:sid24 (Stmt s24)" ] ; N069 -> N068 ; - N070 [ label="Label wp:sid6 (Stmt s6)" ] ; - N070 -> N069 ; - N071 [ label="Label wp:sid24 (Stmt s24)" ] ; + N070 [ color=orange , label="Return __retres" ] ; + N070 -> N059 ; + N071 [ label="Label wp:sid27 (Stmt s27)" ] ; N071 -> N070 ; - N072 [ color=orange , label="Return __retres" ] ; - N072 -> N061 ; - N073 [ label="Label wp:sid27 (Stmt s27)" ] ; + N072 [ color=orange , label="__retres := -1" ] ; + N072 -> N071 ; + N073 [ label="Label wp:sid8 (Stmt s8)" ] ; N073 -> N072 ; - N074 [ color=orange , label="__retres := -1" ] ; + N074 [ color=green , label="Assume f_ensures_3" ] ; N074 -> N073 ; - N075 [ label="Label wp:sid8 (Stmt s8)" ] ; - N075 -> N074 ; - N076 [ color=green , label="Assume f_ensures_3" ] ; - N076 -> N075 ; - N077 [ color=orange , label="Havoc f_assigns: + N075 [ color=orange , label="Havoc f_assigns: assigns __retres;" ] ; + N075 -> N074 ; + N076 [ color=cyan , label="If a > 0" ] ; + N076 -> N069 ; + N076 -> N000 [ style=dotted ]; + N077 [ label="Label wp:sid4 (Stmt s4)" ] ; N077 -> N076 ; - N078 [ color=cyan , label="If a > 0" ] ; - N078 -> N071 ; - N078 -> N000 [ style=dotted ]; - N079 [ label="Label wp:sid4 (Stmt s4)" ] ; + N078 [ label="" , shape=circle ] ; + N078 -> N075 ; + N078 -> N077 ; + N079 [ label="Label wp:sid2 (Stmt s2)" ] ; N079 -> N078 ; - N080 [ label="" , shape=circle ] ; - N080 -> N077 ; + N080 [ color=lightblue , label="B-in { __retres }" ] ; N080 -> N079 ; - N081 [ label="Label wp:sid2 (Stmt s2)" ] ; + N081 [ color=lightblue , label="F-in { a b }" ] ; N081 -> N080 ; - N082 [ color=lightblue , label="B-in { __retres }" ] ; + N082 [ label="Label wp:pre" ] ; N082 -> N081 ; - N083 [ color=lightblue , label="F-frame { a b }" ] ; + N083 [ color=lightblue , label="Global { }" ] ; N083 -> N082 ; - N084 [ label="Label wp:pre" ] ; + N084 [ color=cyan , label="Function f" ] ; N084 -> N083 ; - N085 [ color=lightblue , label="F-in { a b }" ] ; - N085 -> N084 ; - N086 [ color=lightblue , label="Global { }" ] ; - N086 -> N085 ; - N087 [ color=cyan , label="Function f" ] ; - N087 -> N086 ; } diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot index be3a8a3a5db..adc97b189dd 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot @@ -2,64 +2,62 @@ digraph f { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N088 [ color=lightblue , label="F-out { a b }" ] ; - N088 -> N000 [ style=dotted ]; - N089 [ label="Label wp:post" ] ; + N085 [ color=lightblue , label="F-out { a b }" ] ; + N085 -> N000 [ style=dotted ]; + N086 [ label="Label wp:post" ] ; + N086 -> N085 ; + N087 [ color=lightblue , label="B-out { __retres }" ] ; + N087 -> N086 ; + N088 [ color=orange , label="Return __retres" ] ; + N088 -> N087 ; + N089 [ label="Label wp:sid27 (Stmt s27)" ] ; N089 -> N088 ; - N090 [ color=lightblue , label="B-out { __retres }" ] ; + N090 [ label="Label wp:sid26 (Stmt s26)" ] ; N090 -> N089 ; - N091 [ color=orange , label="Return __retres" ] ; + N091 [ color=green , label="Assume f_assert" ] ; N091 -> N090 ; - N092 [ label="Label wp:sid27 (Stmt s27)" ] ; + N092 [ label="Label wp:sid25 (Stmt s25)" ] ; N092 -> N091 ; - N093 [ label="Label wp:sid26 (Stmt s26)" ] ; + N093 [ color=orange , label="__retres := a + b" ] ; N093 -> N092 ; - N094 [ color=green , label="Assume f_assert" ] ; + N094 [ label="Label wp:sid6 (Stmt s6)" ] ; N094 -> N093 ; - N095 [ label="Label wp:sid25 (Stmt s25)" ] ; + N095 [ label="Label wp:sid24 (Stmt s24)" ] ; N095 -> N094 ; - N096 [ color=orange , label="__retres := a + b" ] ; - N096 -> N095 ; - N097 [ label="Label wp:sid6 (Stmt s6)" ] ; + N096 [ color=orange , label="Return __retres" ] ; + N096 -> N087 ; + N097 [ label="Label wp:sid27 (Stmt s27)" ] ; N097 -> N096 ; - N098 [ label="Label wp:sid24 (Stmt s24)" ] ; + N098 [ color=orange , label="__retres := -1" ] ; N098 -> N097 ; - N099 [ color=orange , label="Return __retres" ] ; - N099 -> N090 ; - N100 [ label="Label wp:sid27 (Stmt s27)" ] ; + N099 [ label="Label wp:sid8 (Stmt s8)" ] ; + N099 -> N098 ; + N100 [ color=green , label="Assume f_ensures_3" ] ; N100 -> N099 ; - N101 [ color=orange , label="__retres := -1" ] ; - N101 -> N100 ; - N102 [ label="Label wp:sid8 (Stmt s8)" ] ; + N101 [ color=red , label="Assigns f_assigns" ] ; + N102 [ label="" , shape=circle ] ; N102 -> N101 ; - N103 [ color=green , label="Assume f_ensures_3" ] ; - N103 -> N102 ; - N104 [ color=red , label="Assigns f_assigns" ] ; - N105 [ label="" , shape=circle ] ; + N102 -> N100 ; + N103 [ color=red , label="Prove f_ensures_3" ] ; + N103 -> N102 [ style=dotted ] ; + N104 [ label="" , shape=circle ] ; + N104 -> N103 ; + N104 -> N102 ; + N105 [ color=cyan , label="If a > 0" ] ; + N105 -> N095 ; N105 -> N104 ; - N105 -> N103 ; - N106 [ color=red , label="Prove f_ensures_3" ] ; - N106 -> N105 [ style=dotted ] ; - N107 [ label="" , shape=circle ] ; + N106 [ label="Label wp:sid4 (Stmt s4)" ] ; + N106 -> N105 ; + N107 [ label="Label wp:sid2 (Stmt s2)" ] ; N107 -> N106 ; - N107 -> N105 ; - N108 [ color=cyan , label="If a > 0" ] ; - N108 -> N098 ; + N108 [ color=lightblue , label="B-in { __retres }" ] ; N108 -> N107 ; - N109 [ label="Label wp:sid4 (Stmt s4)" ] ; + N109 [ color=lightblue , label="F-in { a b }" ] ; N109 -> N108 ; - N110 [ label="Label wp:sid2 (Stmt s2)" ] ; + N110 [ label="Label wp:pre" ] ; N110 -> N109 ; - N111 [ color=lightblue , label="B-in { __retres }" ] ; + N111 [ color=lightblue , label="Global { }" ] ; N111 -> N110 ; - N112 [ color=lightblue , label="F-frame { a b }" ] ; + N112 [ color=cyan , label="Function f" ] ; N112 -> N111 ; - N113 [ label="Label wp:pre" ] ; - N113 -> N112 ; - N114 [ color=lightblue , label="F-in { a b }" ] ; - N114 -> N113 ; - N115 [ color=lightblue , label="Global { }" ] ; - N115 -> N114 ; - N116 [ color=cyan , label="Function f" ] ; - N116 -> N115 ; } diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot index 4fffdb8fb16..90e91e8e87a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/g.dot @@ -2,47 +2,45 @@ digraph g { rankdir = TB ; node [ style = filled, shape = box ] ; N000 [ color = red, shape = circle, label = "*" ] ; - N035 [ color=red , label="Prove g_ensures_2" ] ; - N035 -> N000 [ style=dotted ] ; - N036 [ color=lightblue , label="F-out { a b }" ] ; + N034 [ color=red , label="Prove g_ensures_2" ] ; + N034 -> N000 [ style=dotted ] ; + N035 [ color=lightblue , label="F-out { a b }" ] ; + N035 -> N034 ; + N036 [ label="Label wp:post" ] ; N036 -> N035 ; - N037 [ label="Label wp:post" ] ; + N037 [ color=lightblue , label="B-out { __retres }" ] ; N037 -> N036 ; - N038 [ color=lightblue , label="B-out { __retres }" ] ; + N038 [ color=orange , label="Return __retres" ] ; N038 -> N037 ; - N039 [ color=orange , label="Return __retres" ] ; + N039 [ label="Label wp:sid32 (Stmt s32)" ] ; N039 -> N038 ; - N040 [ label="Label wp:sid32 (Stmt s32)" ] ; + N040 [ label="Label wp:sid31 (Stmt s31)" ] ; N040 -> N039 ; - N041 [ label="Label wp:sid31 (Stmt s31)" ] ; + N041 [ color=green , label="Assume g_assert" ] ; N041 -> N040 ; - N042 [ color=green , label="Assume g_assert" ] ; - N042 -> N041 ; - N043 [ color=red , label="Prove g_assert" ] ; - N043 -> N042 [ style=dotted ] ; - N044 [ label="" , shape=circle ] ; + N042 [ color=red , label="Prove g_assert" ] ; + N042 -> N041 [ style=dotted ] ; + N043 [ label="" , shape=circle ] ; + N043 -> N042 ; + N043 -> N041 ; + N044 [ label="Label wp:sid30 (Stmt s30)" ] ; N044 -> N043 ; - N044 -> N042 ; - N045 [ label="Label wp:sid30 (Stmt s30)" ] ; + N045 [ color=orange , label="__retres := a + b" ] ; N045 -> N044 ; - N046 [ color=orange , label="__retres := a + b" ] ; + N046 [ label="Label wp:sid13 (Stmt s13)" ] ; N046 -> N045 ; - N047 [ label="Label wp:sid13 (Stmt s13)" ] ; + N047 [ label="Label wp:sid29 (Stmt s29)" ] ; N047 -> N046 ; - N048 [ label="Label wp:sid29 (Stmt s29)" ] ; + N048 [ label="Label wp:sid11 (Stmt s11)" ] ; N048 -> N047 ; - N049 [ label="Label wp:sid11 (Stmt s11)" ] ; + N049 [ color=lightblue , label="B-in { __retres }" ] ; N049 -> N048 ; - N050 [ color=lightblue , label="B-in { __retres }" ] ; + N050 [ color=lightblue , label="F-in { a b }" ] ; N050 -> N049 ; - N051 [ color=lightblue , label="F-frame { a b }" ] ; + N051 [ label="Label wp:pre" ] ; N051 -> N050 ; - N052 [ label="Label wp:pre" ] ; + N052 [ color=lightblue , label="Global { }" ] ; N052 -> N051 ; - N053 [ color=lightblue , label="F-in { a b }" ] ; + N053 [ color=cyan , label="Function g" ] ; N053 -> N052 ; - N054 [ color=lightblue , label="Global { }" ] ; - N054 -> N053 ; - N055 [ color=cyan , label="Function g" ] ; - N055 -> N054 ; } -- GitLab From ca2cf4834c9b74bf01f0435c784d812432af90e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 14 Sep 2020 16:36:06 +0200 Subject: [PATCH 166/255] [wp] refactor internal CFG edges --- src/plugins/wp/calculus.ml | 3 +-- src/plugins/wp/cil2cfg.ml | 34 +++++++++++++++++----------------- src/plugins/wp/cil2cfg.mli | 4 ++-- src/plugins/wp/wpAnnot.ml | 4 ++-- 4 files changed, 22 insertions(+), 23 deletions(-) diff --git a/src/plugins/wp/calculus.ml b/src/plugins/wp/calculus.ml index da054bcaad8..ba69ffcc2a1 100644 --- a/src/plugins/wp/calculus.ml +++ b/src/plugins/wp/calculus.ml @@ -599,8 +599,7 @@ module Cfg (W : Mcfg.S) = struct | Cil2cfg.Vloop _ | Cil2cfg.Vloop2 _ -> let get_loop_head = fun n -> get_only_succ env cfg n in wp_loop env v e get_loop_head - | Cil2cfg.VfctOut - | Cil2cfg.Vexit -> + | Cil2cfg.VfctOut | Cil2cfg.VfctErr -> let obj = get_only_succ env cfg v (* exitpost / postcondition *) in wp_scope wenv formals Mcfg.SC_Frame_out obj | Cil2cfg.Vend -> diff --git a/src/plugins/wp/cil2cfg.ml b/src/plugins/wp/cil2cfg.ml index 7cbbb310313..6f09908bfe3 100644 --- a/src/plugins/wp/cil2cfg.ml +++ b/src/plugins/wp/cil2cfg.ml @@ -48,8 +48,8 @@ let pp_call_type fmt = function | Static kf -> Kernel_function.pretty fmt kf type node_type = - | Vstart | Vend | Vexit - | VfctIn | VfctOut (* TODO : not useful anymore -> Bfct *) + | Vstart | Vend + | VfctIn | VfctOut | VfctErr | VblkIn of block_type * block | VblkOut of block_type * block | Vstmt of stmt @@ -82,7 +82,7 @@ let node_type_id t : node_id = match t with | Vstart -> (0, 0) | VfctIn -> (0, 1) | VfctOut -> (0, 2) - | Vexit -> (0, 3) + | VfctErr -> (0, 3) | Vend -> (0, 4) | Vstmt s | Vtest (true, s, _) | Vswitch (s,_) | Vcall (s, _, _, _) -> (1, s.sid) @@ -113,8 +113,8 @@ let pp_node_type fmt n = match n with | Vstart -> Format.fprintf fmt "<start>" | VfctIn -> Format.fprintf fmt "<fctIn>" | VfctOut -> Format.fprintf fmt "<fctOut>" + | VfctErr -> Format.fprintf fmt "<fctErr>" | Vend -> Format.fprintf fmt "<end>" - | Vexit -> Format.fprintf fmt "<exit>" | VblkIn (bk,_) -> Format.fprintf fmt "<blkIn-%a>" pp_bkind bk | VblkOut (bk,_) -> Format.fprintf fmt "<blkOut-%a>" pp_bkind bk | Vcall (s, _, _, _) -> Format.fprintf fmt "<callIn-%d>" s.sid @@ -146,7 +146,7 @@ let pp_node fmt v = VL.pretty fmt v let start_stmt_of_node v = match node_type v with | Vstart | Vtest (false, _, _) | VblkOut _ - | VfctIn | VfctOut | Vend | Vexit | Vloop2 _ -> None + | VfctIn | VfctOut | VfctErr | Vend | Vloop2 _ -> None | VblkIn (bk, _) -> bkind_stmt bk | Vstmt s | Vtest (true, s, _) | Vloop (_, s) | Vswitch (s,_) | Vcall (s, _, _, _) @@ -154,7 +154,7 @@ let start_stmt_of_node v = match node_type v with let node_stmt_opt v = match node_type v with | Vstart | Vtest (false, _, _) - | VfctIn | VfctOut | Vend | Vexit | Vloop2 _ -> None + | VfctIn | VfctOut | VfctErr | Vend | Vloop2 _ -> None | VblkIn (bk, _) | VblkOut (bk, _) -> bkind_stmt bk | Vstmt s | Vtest (true, s, _) | Vloop (_, s) | Vswitch (s,_) | Vcall (s, _, _, _) @@ -479,14 +479,14 @@ let get_call_out_edges cfg v = in let en, ee = match node_type (edge_dst e1) , node_type (edge_dst e2) with - | _, Vexit -> e1, e2 - | Vexit, _ -> e2, e1 + | _, VfctErr -> e1, e2 + | VfctErr, _ -> e2, e1 | _, _ -> assert false in en, ee let get_edge_stmt e = match node_type (edge_dst e) with - | Vstart | VfctIn | Vexit | VfctOut -> None + | Vstart | VfctIn | VfctOut | VfctErr -> None | VblkIn (Bstmt s, _) | Vstmt s | Vcall (s,_,_,_) | Vtest (true, s, _) | Vswitch (s,_) -> Some s | Vloop (_,s) -> if is_back_edge e then None else Some s @@ -497,7 +497,7 @@ let get_edge_labels e = let l = match node_type v_after with | Vstart -> assert false | VfctIn -> [] - | Vexit | VfctOut -> [Clabels.post] + | VfctErr | VfctOut -> [Clabels.post] | VblkIn (Bstmt s, _) | Vcall (s,_,_,_) | Vstmt s | Vtest (true, s, _) | Vswitch (s,_) -> [Clabels.stmt s] @@ -556,7 +556,7 @@ let get_exit_edges cfg src = let add_exit e acc = let dst = edge_dst e in match node_type dst with - | Vexit -> + | VfctErr -> debug "[get_exit_edges] add %a@." pp_edge e; (* (succ_e cfg dst) @ acc *) @@ -660,12 +660,12 @@ let block_scope_for_edge cfg e = | VblkIn(Bstmt _,b) -> { b_opened=[b] ; b_closed=[] } | Vcall _ | VblkIn _ | VblkOut _ | Vtest(false,_,_) - | VfctIn | VfctOut | Vstart | Vend | Vexit | Vloop2 _ -> + | VfctIn | VfctOut | VfctErr | Vstart | Vend | Vloop2 _ -> no_scope let has_exit cfg = try - let node = Hashtbl.find cfg.stmt_node (node_type_id Vexit) in + let node = Hashtbl.find cfg.stmt_node (node_type_id VfctErr) in match pred_e cfg node with | [] -> false | _ -> true @@ -758,10 +758,10 @@ let init_cfg spec_only kf = let fct_in = add_node env (VfctIn) in let _ = add_edge env start Enone fct_in in let fct_out = add_node env (VfctOut) in - let nexit = add_node env (Vexit) in + let fct_err = add_node env (VfctErr) in let nend = add_node env (Vend) in let _ = add_edge env fct_out Enone nend in - let _ = add_edge env nexit Enone nend in + let _ = add_edge env fct_err Enone nend in env, fct_in, fct_out let get_node env t = @@ -883,7 +883,7 @@ and cfg_stmt env s next = setup_preconditions_proxies f; let in_call = get_stmt_node env s in add_edge env in_call Enone next; - let exit_node = get_node env (Vexit) in + let exit_node = get_node env VfctErr in add_edge env in_call Enone exit_node; in_call | Instr (Local_init(_,ConsInit (f, _, _), _)) -> @@ -891,7 +891,7 @@ and cfg_stmt env s next = Statuses_by_call.setup_all_preconditions_proxies kf; let in_call = get_stmt_node env s in add_edge env in_call Enone next; - let exit_node = get_node env Vexit in + let exit_node = get_node env VfctErr in add_edge env in_call Enone exit_node; in_call | Instr _ | Return _ -> diff --git a/src/plugins/wp/cil2cfg.mli b/src/plugins/wp/cil2cfg.mli index 5df3e524af0..808e3b6cfc6 100644 --- a/src/plugins/wp/cil2cfg.mli +++ b/src/plugins/wp/cil2cfg.mli @@ -70,8 +70,8 @@ val pp_call_type : Format.formatter -> call_type -> unit val get_call_type : exp -> call_type type node_type = private - | Vstart | Vend | Vexit - | VfctIn | VfctOut + | Vstart | Vend + | VfctIn | VfctOut | VfctErr | VblkIn of block_type * block | VblkOut of block_type * block | Vstmt of stmt diff --git a/src/plugins/wp/wpAnnot.ml b/src/plugins/wp/wpAnnot.ml index eaee55511cf..7a807ad6ae2 100644 --- a/src/plugins/wp/wpAnnot.ml +++ b/src/plugins/wp/wpAnnot.ml @@ -1056,7 +1056,7 @@ let get_behavior_annots config = let post = get_fct_post_annots config Normal spec in WpStrategy.add_on_edges annots post (Cil2cfg.succ_e cfg v) - | Cil2cfg.Vexit -> + | Cil2cfg.VfctErr -> let post = get_fct_post_annots config Exits spec in WpStrategy.add_on_edges annots post (Cil2cfg.succ_e cfg v) @@ -1313,7 +1313,7 @@ let process_unreached_annots cfg = | Cil2cfg.Vstart -> Wp_parameters.fatal "Start must be reachable" | Cil2cfg.VfctIn -> Wp_parameters.fatal "FctIn must be reachable" | Cil2cfg.VfctOut -> List.fold_left (do_bhv Normal) acc spec.spec_behavior - | Cil2cfg.Vexit -> + | Cil2cfg.VfctErr -> let acc = List.fold_left (do_bhv Exits) acc spec.spec_behavior in let visitor = new vexit kf acc in ignore Visitor.(visitFramacKf (visitor :> frama_c_visitor) kf) ; -- GitLab From 8a2d366c6308fbc499376f8e468d083467939c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 15 Sep 2020 09:53:53 +0200 Subject: [PATCH 167/255] [wp] broken tests for post-assigns and post-valid --- .../wp_plugin/oracle/post_assigns.res.oracle | 46 +++++++++++++++++++ .../wp_plugin/oracle/post_valid.res.oracle | 29 ++++++++++++ .../oracle_qualif/post_assigns.res.oracle | 21 +++++++++ .../oracle_qualif/post_valid.res.oracle | 16 +++++++ src/plugins/wp/tests/wp_plugin/post_assigns.i | 15 ++++++ src/plugins/wp/tests/wp_plugin/post_valid.i | 15 ++++++ 6 files changed, 142 insertions(+) create mode 100644 src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle create mode 100644 src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle create mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle create mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle create mode 100644 src/plugins/wp/tests/wp_plugin/post_assigns.i create mode 100644 src/plugins/wp/tests/wp_plugin/post_valid.i diff --git a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle new file mode 100644 index 00000000000..3817358af2d --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle @@ -0,0 +1,46 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_plugin/post_assigns.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function receive +------------------------------------------------------------ + +Goal Post-condition (file tests/wp_plugin/post_assigns.i, line 9) in 'receive': +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/post_assigns.i, line 10) in 'receive' (1/2): +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/post_assigns.i, line 10) in 'receive' (2/2): +Call Effect at line 14 +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/post_assigns.i, line 10) in 'receive' (1/2): +Prove: true. + +------------------------------------------------------------ + +Goal Assigns (file tests/wp_plugin/post_assigns.i, line 10) in 'receive' (2/2): +Call Effect at line 14 +Assume { + Have: 0 <= size_0. + Type: is_sint32(size_1) /\ is_sint32(size_0). + (* Heap *) + Type: (region(message_0.base) <= 0) /\ linked(Malloc_0). + (* Goal *) + When: !invalid(Malloc_0, shift_sint8(message_0, 0), 1 + size_0). +} +Prove: size_0 <= size_1. + +------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'receive': + /*@ behavior typed: requires \separated(&size,message+(..)); */ + void receive(int n, char *message); diff --git a/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle new file mode 100644 index 00000000000..ebeea945b1a --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle @@ -0,0 +1,29 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_plugin/post_valid.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function job +------------------------------------------------------------ + +Goal Post-condition 'LOCAL' in 'job': +Assume { (* Heap *) Type: linked(Malloc_0). } +Prove: !valid_rw(Malloc_0[P_formal_26 <- 1][L_local_28 <- 0][P_formal_26 + <- 0], global(L_local_28), 1). + +------------------------------------------------------------ + +Goal Post-condition 'FORMAL' in 'job': +Assume { (* Heap *) Type: linked(Malloc_0). } +Prove: valid_rw(Malloc_0[P_formal_26 <- 1][L_local_28 <- 0][P_formal_26 <- 0], + global(P_formal_26), 1). + +------------------------------------------------------------ + +Goal Post-condition 'GLOBAL' in 'job': +Assume { (* Heap *) Type: linked(Malloc_0). } +Prove: valid_rw(Malloc_0[P_formal_26 <- 1][L_local_28 <- 0][P_formal_26 <- 0], + global(G_global_20), 1). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle new file mode 100644 index 00000000000..cd7dd5d1006 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle @@ -0,0 +1,21 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_plugin/post_assigns.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 5 goals scheduled +[wp] [Qed] Goal typed_receive_ensures : Valid +[wp] [Qed] Goal typed_receive_assigns_exit_part1 : Valid +[wp] [Qed] Goal typed_receive_assigns_exit_part2 : Valid +[wp] [Qed] Goal typed_receive_assigns_normal_part1 : Valid +[wp] [Alt-Ergo] Goal typed_receive_assigns_normal_part2 : Unsuccess +[wp] Proved goals: 4 / 5 + Qed: 4 + Alt-Ergo: 0 (unsuccess: 1) +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + receive 4 - 5 80.0% +------------------------------------------------------------ +[wp] Warning: Memory model hypotheses for function 'receive': + /*@ behavior typed: requires \separated(&size,message+(..)); */ + void receive(int n, char *message); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle new file mode 100644 index 00000000000..7452d12d8c6 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle @@ -0,0 +1,16 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_plugin/post_valid.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards +[wp] 3 goals scheduled +[wp] [Alt-Ergo] Goal typed_job_ensures_LOCAL : Valid +[wp] [Alt-Ergo] Goal typed_job_ensures_FORMAL : Unsuccess +[wp] [Alt-Ergo] Goal typed_job_ensures_GLOBAL : Valid +[wp] Proved goals: 2 / 3 + Qed: 0 + Alt-Ergo: 2 (unsuccess: 1) +------------------------------------------------------------ + Functions WP Alt-Ergo Total Success + job - 2 3 66.7% +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/post_assigns.i b/src/plugins/wp/tests/wp_plugin/post_assigns.i new file mode 100644 index 00000000000..12185316ca7 --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/post_assigns.i @@ -0,0 +1,15 @@ +/*@ + assigns *(message + (0 .. n)); +*/ +extern void write(char *message, int n); + +int size; + +/*@ + ensures size == n; + assigns size, message[ 0 .. \at(size,Post) ]; // FAILS +*/ +void receive(int n,char *message) { + size = n ; + write(message, size); +} diff --git a/src/plugins/wp/tests/wp_plugin/post_valid.i b/src/plugins/wp/tests/wp_plugin/post_valid.i new file mode 100644 index 00000000000..a8add205c1e --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/post_valid.i @@ -0,0 +1,15 @@ +int global; + +int *p_global, *p_local, *p_formal ; + +/*@ + ensures LOCAL: !\valid(p_local); + ensures FORMAL: \valid(p_formal); // FAILS + ensures GLOBAL: \valid(p_global); +*/ +void job(int formal) { + int local = formal; + p_local = &local; + p_global = &global; + p_formal = &formal; +} -- GitLab From cbe1c519b3ee1fef2df1bbd2007103a7bad8d675 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 15 Sep 2020 10:06:59 +0200 Subject: [PATCH 168/255] [wp] optimise passive form --- src/plugins/wp/Sigma.ml | 19 ++++++++++--------- src/plugins/wp/cfgWP.ml | 22 +++++++++++++--------- 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/src/plugins/wp/Sigma.ml b/src/plugins/wp/Sigma.ml index d93f60130f5..bb4a82b2798 100644 --- a/src/plugins/wp/Sigma.ml +++ b/src/plugins/wp/Sigma.ml @@ -115,15 +115,16 @@ struct let mem w c = H.Map.mem c w.map let join a b = - let p = ref Passive.empty in - H.Map.iter2 - (fun chunk x y -> - match x,y with - | Some x , Some y -> p := Passive.join x y !p - | Some x , None -> b.map <- H.Map.add chunk x b.map - | None , Some y -> a.map <- H.Map.add chunk y a.map - | None , None -> ()) - a.map b.map ; !p + if a == b then Passive.empty else + let p = ref Passive.empty in + H.Map.iter2 + (fun chunk x y -> + match x,y with + | Some x , Some y -> p := Passive.join x y !p + | Some x , None -> b.map <- H.Map.add chunk x b.map + | None , Some y -> a.map <- H.Map.add chunk y a.map + | None , None -> ()) + a.map b.map ; !p let assigned ~pre ~post written = let p = ref Bag.empty in diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index 35f5540f842..c34642fe824 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -253,10 +253,6 @@ struct (fun vc (warn,hyp) -> assume_vc ?descr ?filter ?init ~warn [hyp] vc) vc whs - let passify_vc pa vc = - let hs = Passive.conditions pa (occurs_vc vc) in - assume_vc hs vc - (* -------------------------------------------------------------------------- *) (* --- Branching --- *) (* -------------------------------------------------------------------------- *) @@ -365,6 +361,14 @@ struct (fun g -> Splitter.merge_all merge_vcs (List.map (goal g) cases)) targets + let passify_vc pa vc = + let hs = Passive.conditions pa (occurs_vc vc) in + assume_vc hs vc + + let passify_vcs pa vcs = + if Passive.is_empty pa then vcs + else gmap (passify_vc pa) vcs + (* -------------------------------------------------------------------------- *) (* --- Merge for Calculus --- *) (* -------------------------------------------------------------------------- *) @@ -386,8 +390,8 @@ struct (fun () -> let sigma,pa1,pa2 = merge_sigma wp1.sigma wp2.sigma in let effects = Eset.union wp1.effects wp2.effects in - let vcs1 = gmap (passify_vc pa1) wp1.vcs in - let vcs2 = gmap (passify_vc pa2) wp2.vcs in + let vcs1 = passify_vcs pa1 wp1.vcs in + let vcs2 = passify_vcs pa2 wp2.vcs in let vcs = gmerge vcs1 vcs2 in { sigma = sigma ; vcs = vcs ; effects = effects } ) () @@ -659,7 +663,7 @@ struct let pa = Sigma.join s_here s_labl in let stop,effects = Eset.partition (is_stopeffect label) wp.effects in let vcs = Gmap.filter (not_posteffect stop) wp.vcs in - let vcs = gmap (passify_vc pa) vcs in + let vcs = passify_vcs pa vcs in let vcs = check_nothing stop vcs in let vcs = state_vcs stmt s_here vcs in { sigma = Some s_here ; vcs=vcs ; effects=effects }) @@ -809,8 +813,8 @@ struct Some (Splitter.union (merge_vc) s1 s2) ) vcs1 vcs2 else - let vcs1 = gmap (passify_vc pa1) wp1.vcs in - let vcs2 = gmap (passify_vc pa2) wp2.vcs in + let vcs1 = passify_vcs pa1 wp1.vcs in + let vcs2 = passify_vcs pa2 wp2.vcs in gbranch ~left:(assume_vc ~descr:"Then" ~stmt ~warn [cond]) ~right:(assume_vc ~descr:"Else" ~stmt ~warn [p_not cond]) -- GitLab From 0749a30c9a6ad8a4cb1e736ccf21421def4f3008 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 15 Sep 2020 10:07:26 +0200 Subject: [PATCH 169/255] [wp] fix post assigns --- src/plugins/wp/LogicCompiler.ml | 4 + src/plugins/wp/LogicCompiler.mli | 1 + src/plugins/wp/LogicSemantics.ml | 1 + src/plugins/wp/Sigs.ml | 3 + src/plugins/wp/cfgWP.ml | 12 +- .../oracle/dispatch_var2.0.res.oracle | 121 +++++++++++------- .../wp/tests/wp_plugin/oracle/copy.res.oracle | 10 +- .../wp_plugin/oracle/post_assigns.res.oracle | 10 +- .../wp_plugin/oracle_qualif/copy.res.oracle | 11 +- .../oracle_qualif/post_assigns.res.oracle | 9 +- src/plugins/wp/tests/wp_plugin/post_assigns.i | 2 +- .../wp_typed/oracle/user_init.0.res.oracle | 10 +- .../wp_typed/oracle/user_init.1.res.oracle | 10 +- .../oracle_qualif/user_init.0.res.oracle | 11 +- .../tests/wp_usage/oracle/core.0.res.oracle | 18 +-- 15 files changed, 139 insertions(+), 94 deletions(-) diff --git a/src/plugins/wp/LogicCompiler.ml b/src/plugins/wp/LogicCompiler.ml index 69019743d70..3227e86dea2 100644 --- a/src/plugins/wp/LogicCompiler.ml +++ b/src/plugins/wp/LogicCompiler.ml @@ -258,6 +258,10 @@ struct types = []; } + let has_at_frame frame label = + assert (not (Clabels.is_here label)); + LabelMap.mem label frame.labels + let mem_at_frame frame label = assert (not (Clabels.is_here label)); try LabelMap.find label frame.labels diff --git a/src/plugins/wp/LogicCompiler.mli b/src/plugins/wp/LogicCompiler.mli index eece42b069e..9a4352ba05b 100644 --- a/src/plugins/wp/LogicCompiler.mli +++ b/src/plugins/wp/LogicCompiler.mli @@ -76,6 +76,7 @@ sig val guards : frame -> pred list val mem_frame : c_label -> sigma + val has_at_frame : frame -> c_label -> bool val mem_at_frame : frame -> c_label -> sigma val set_at_frame : frame -> c_label -> sigma -> unit diff --git a/src/plugins/wp/LogicSemantics.ml b/src/plugins/wp/LogicSemantics.ml index a6593bfd553..47cbf26bed3 100644 --- a/src/plugins/wp/LogicSemantics.ml +++ b/src/plugins/wp/LogicSemantics.ml @@ -63,6 +63,7 @@ struct let mk_frame = C.mk_frame let in_frame = C.in_frame let mem_frame = C.mem_frame + let has_at_frame = C.has_at_frame let mem_at_frame = C.mem_at_frame let set_at_frame = C.set_at_frame let mem_at = C.mem_at diff --git a/src/plugins/wp/Sigs.ml b/src/plugins/wp/Sigs.ml index bc4f14f098b..e5c252e0076 100644 --- a/src/plugins/wp/Sigs.ml +++ b/src/plugins/wp/Sigs.ml @@ -658,6 +658,9 @@ sig (** Update a frame with a specific environment for the given label. *) val set_at_frame : frame -> Clabels.c_label -> sigma -> unit + (** Chek if a frame already has a specific envioronement for the given label. *) + val has_at_frame : frame -> Clabels.c_label -> bool + (** Same as [mem_at_frame] but for the current frame. *) val mem_frame : Clabels.c_label -> sigma diff --git a/src/plugins/wp/cfgWP.ml b/src/plugins/wp/cfgWP.ml index c34642fe824..93a00b75b28 100644 --- a/src/plugins/wp/cfgWP.ml +++ b/src/plugins/wp/cfgWP.ml @@ -658,15 +658,20 @@ struct if Clabels.is_here label then wp else in_wenv wenv wp (fun env wp -> + let frame = L.get_frame () in let s_here = L.current env in - let s_labl = L.mem_frame label in - let pa = Sigma.join s_here s_labl in + let s_frame = + if L.has_at_frame frame label then + L.mem_at_frame frame label + else + (L.set_at_frame frame label s_here ; s_here) in + let pa = Sigma.join s_here s_frame in let stop,effects = Eset.partition (is_stopeffect label) wp.effects in let vcs = Gmap.filter (not_posteffect stop) wp.vcs in let vcs = passify_vcs pa vcs in let vcs = check_nothing stop vcs in let vcs = state_vcs stmt s_here vcs in - { sigma = Some s_here ; vcs=vcs ; effects=effects }) + { sigma = Some s_frame ; vcs=vcs ; effects=effects }) (* -------------------------------------------------------------------------- *) (* --- WP RULE : assignation --- *) @@ -1051,6 +1056,7 @@ struct let seq_post = cc_havoc dom_call seq_result.pre in let seq_exit = cc_havoc dom_call (sigma_at wexit) in (* Pre-State *) + (* Passive: joined later by call_proper *) let sigma_pre, _, _ = Sigma.merge seq_post.pre seq_exit.pre in let formals = List.map (C.exp sigma_pre) es in let call = L.call kf formals in diff --git a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle index 38bac71fd69..09b623d4dfd 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle/dispatch_var2.0.res.oracle @@ -14,15 +14,20 @@ Assume { (* Heap *) Type: is_sint32(x_1). (* Block In *) - Have: (Init_tmp_0=false) /\ (ta_tmp_0=false). + Have: (Init_tmp_0=false) /\ (ta_tmp_0=true) /\ (ta_tmp_1=false). + Have: ((Init_tmp_0=true) <-> (Init_tmp_1=true)) /\ + ((ta_tmp_0=true) <-> (ta_tmp_2=true)). (* Call 'reset' *) Have: x = 0. + Have: (ta_tmp_2=true) <-> (ta_tmp_3=true). (* Call 'load' *) Have: (tmp_0 = load_0) /\ (x = load_0). (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). (* Return *) Have: tmp_0 = call_global_0. + (* Block Out *) + Have: (ta_tmp_3=true). } Prove: call_global_0 = 0. @@ -47,12 +52,13 @@ Assume { Have: (ta_tmp_1=true) <-> (ta_tmp_0=true). (* Block In *) Have: (Init_tmp_0=false) /\ (ta_tmp_1=false). + Have: (Init_tmp_0=true) <-> (Init_tmp_1=true). (* Call 'reset' *) Have: x = 0. (* Call 'load' *) Have: x = load_0. (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). } Prove: (ta_tmp_0=false). @@ -78,19 +84,26 @@ Assume { Type: is_sint32(call_local_0) /\ is_sint32(load_0) /\ is_sint32(tmp_0) /\ is_sint32(z). (* Block In *) - Have: (Init_tmp_0=false) /\ (Init_z_0=false) /\ (ta_tmp_0=false) /\ - (ta_z_0=false). - Have: (Init_z_0=true) <-> (Init_z_1=true). + Have: (Init_tmp_0=false) /\ (Init_z_0=false) /\ (ta_tmp_0=true) /\ + (ta_tmp_1=false) /\ (ta_z_0=true) /\ (ta_z_1=false). + Have: ((Init_tmp_0=true) <-> (Init_tmp_1=true)) /\ + ((Init_z_0=true) <-> (Init_z_1=true)) /\ + ((ta_tmp_0=true) <-> (ta_tmp_2=true)) /\ + ((ta_z_0=true) <-> (ta_z_2=true)). (* Call 'reset' *) - Have: z = 0. + Have: (ta_z_0=true) /\ (z = 0). (* Call Effects *) Have: ((Init_z_1=true) -> (Init_z_2=true)). + Have: ((ta_tmp_2=true) <-> (ta_tmp_3=true)) /\ + ((ta_z_2=true) <-> (ta_z_3=true)). (* Call 'load' *) - Have: (tmp_0 = load_0) /\ (z = load_0). + Have: (ta_z_2=true) /\ (tmp_0 = load_0) /\ (z = load_0). (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). (* Return *) Have: tmp_0 = call_local_0. + (* Block Out *) + Have: (ta_tmp_3=true) /\ (ta_z_3=true). } Prove: call_local_0 = 0. @@ -107,17 +120,20 @@ Assume { Type: is_sint32(status_0) /\ is_sint32(status_1) /\ is_sint32(z). Have: (ta_z_1=true) <-> (ta_z_0=true). (* Block In *) - Have: (Init_z_0=false) /\ (ta_tmp_0=false) /\ (ta_z_1=false). + Have: (Init_z_0=false) /\ (ta_tmp_0=false) /\ (ta_z_2=true) /\ + (ta_z_1=false). (* Merge *) Either { Case: Have: (Init_z_0=true) <-> (Init_z_1=true). (* Call 'reset' *) - Have: z = 0. + Have: (ta_z_2=true) /\ (z = 0). (* Call Effects *) Have: ((Init_z_1=true) -> (Init_z_2=true)). Case: Have: (Init_z_0=true) <-> (Init_z_3=true). + (* Exit 'reset' *) + Have: (ta_z_2=true). (* Exit Effects *) Have: ((Init_z_3=true) -> (Init_z_4=true)). } @@ -137,10 +153,11 @@ Assume { Type: is_sint32(z). Have: (ta_z_1=true) <-> (ta_z_0=true). (* Block In *) - Have: (Init_z_0=false) /\ (ta_tmp_0=false) /\ (ta_z_1=false). + Have: (Init_z_0=false) /\ (ta_tmp_0=false) /\ (ta_z_2=true) /\ + (ta_z_1=false). Have: (Init_z_0=true) <-> (Init_z_1=true). (* Call 'reset' *) - Have: z = 0. + Have: (ta_z_2=true) /\ (z = 0). (* Call Effects *) Have: ((Init_z_1=true) -> (Init_z_2=true)). } @@ -155,16 +172,18 @@ Assume { Have: (ta_tmp_1=true) <-> (ta_tmp_0=true). (* Block In *) Have: (Init_tmp_0=false) /\ (Init_z_0=false) /\ (ta_tmp_1=false) /\ - (ta_z_0=false). - Have: (Init_z_0=true) <-> (Init_z_1=true). + (ta_z_0=true) /\ (ta_z_1=false). + Have: ((Init_tmp_0=true) <-> (Init_tmp_1=true)) /\ + ((Init_z_0=true) <-> (Init_z_1=true)) /\ + ((ta_z_0=true) <-> (ta_z_2=true)). (* Call 'reset' *) - Have: z = 0. + Have: (ta_z_0=true) /\ (z = 0). (* Call Effects *) Have: ((Init_z_1=true) -> (Init_z_2=true)). (* Call 'load' *) - Have: z = load_0. + Have: (ta_z_2=true) /\ (z = load_0). (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). } Prove: (ta_tmp_0=false). @@ -185,11 +204,12 @@ Goal Instance of 'Pre-condition (file tests/wp_hoare/dispatch_var2.i, line 27) i Assume { Type: is_sint32(z). (* Block In *) - Have: (Init_z_0=false) /\ (ta_tmp_0=false) /\ (ta_z_0=true) /\ - (ta_z_1=false). - Have: (Init_z_0=true) <-> (Init_z_1=true). + Have: (Init_z_0=false) /\ (ta_tmp_0=false) /\ (ta_z_1=true) /\ + (ta_z_2=false). + Have: ((Init_z_0=true) <-> (Init_z_1=true)) /\ + ((ta_z_1=true) <-> (ta_z_0=true)). (* Call 'reset' *) - Have: (ta_z_0=true) /\ (z = 0). + Have: (ta_z_1=true) /\ (z = 0). (* Call Effects *) Have: ((Init_z_1=true) -> (Init_z_2=true)). } @@ -209,21 +229,22 @@ Assume { (* Pre-condition *) Have: (ta_y_0=true). (* Frame In *) - Have: (ta_y_1=true) /\ (ta_y_0=false). + Have: (ta_y_0=false). (* Block In *) - Have: (Init_tmp_0=false) /\ (ta_tmp_0=false). - Have: (ta_y_1=true) <-> (ta_y_2=true). + Have: (Init_tmp_0=false) /\ (ta_tmp_0=true) /\ (ta_tmp_1=false). + Have: ((Init_tmp_0=true) <-> (Init_tmp_1=true)) /\ + ((ta_tmp_0=true) <-> (ta_tmp_2=true)). (* Call 'reset' *) - Have: (ta_y_1=true) /\ (y = 0). - Have: (ta_y_2=true) <-> (ta_y_3=true). + Have: y = 0. + Have: (ta_tmp_2=true) <-> (ta_tmp_3=true). (* Call 'load' *) - Have: (ta_y_2=true) /\ (tmp_0 = load_0) /\ (y = load_0). + Have: (tmp_0 = load_0) /\ (y = load_0). (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). (* Return *) Have: tmp_0 = call_param_0. - (* Frame Out *) - Have: (ta_y_3=true). + (* Block Out *) + Have: (ta_tmp_3=true). } Prove: call_param_0 = 0. @@ -244,14 +265,11 @@ Assume { (* Pre-condition *) Have: (ta_y_1=true). (* Frame In *) - Have: (ta_y_2=true) /\ (ta_y_1=false). + Have: (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). (* Merge *) - Either { - Case: (* Call 'reset' *) Have: (ta_y_2=true) /\ (y = 0). - Case: (* Exit 'reset' *) Have: (ta_y_2=true). - } + Either { Case: (* Call 'reset' *) Have: y = 0. Case: } } Prove: (ta_y_0=false). @@ -272,11 +290,11 @@ Assume { (* Pre-condition *) Have: (ta_y_1=true). (* Frame In *) - Have: (ta_y_2=true) /\ (ta_y_1=false). + Have: (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). (* Call 'reset' *) - Have: (ta_y_2=true) /\ (y = 0). + Have: y = 0. } Prove: (ta_y_0=false). @@ -292,16 +310,16 @@ Assume { (* Pre-condition *) Have: (ta_y_0=true). (* Frame In *) - Have: (ta_y_1=true) /\ (ta_y_0=false). + Have: (ta_y_0=false). (* Block In *) Have: (Init_tmp_0=false) /\ (ta_tmp_1=false). - Have: (ta_y_1=true) <-> (ta_y_2=true). + Have: (Init_tmp_0=true) <-> (Init_tmp_1=true). (* Call 'reset' *) - Have: (ta_y_1=true) /\ (y = 0). + Have: y = 0. (* Call 'load' *) - Have: (ta_y_2=true) /\ (y = load_0). + Have: y = load_0. (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). } Prove: (ta_tmp_0=false). @@ -332,12 +350,11 @@ Assume { (* Pre-condition *) Have: (ta_y_1=true). (* Frame In *) - Have: (ta_y_2=true) /\ (ta_y_1=false). + Have: (ta_y_0=true) /\ (ta_y_1=false). (* Block In *) Have: (ta_tmp_0=false). - Have: (ta_y_2=true) <-> (ta_y_0=true). (* Call 'reset' *) - Have: (ta_y_2=true) /\ (y = 0). + Have: (ta_y_0=true) /\ (y = 0). } Prove: (ta_y_0=true). @@ -351,15 +368,20 @@ Assume { Type: is_sint32(call_param_ref_0) /\ is_sint32(load_0) /\ is_sint32(q) /\ is_sint32(tmp_0). (* Block In *) - Have: (Init_tmp_0=false) /\ (ta_tmp_0=false). + Have: (Init_tmp_0=false) /\ (ta_tmp_0=true) /\ (ta_tmp_1=false). + Have: ((Init_tmp_0=true) <-> (Init_tmp_1=true)) /\ + ((ta_tmp_0=true) <-> (ta_tmp_2=true)). (* Call 'reset' *) Have: q = 0. + Have: (ta_tmp_2=true) <-> (ta_tmp_3=true). (* Call 'load' *) Have: (q = load_0) /\ (tmp_0 = load_0). (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). (* Return *) Have: tmp_0 = call_param_ref_0. + (* Block Out *) + Have: (ta_tmp_3=true). } Prove: call_param_ref_0 = 0. @@ -382,12 +404,13 @@ Assume { Have: (ta_tmp_1=true) <-> (ta_tmp_0=true). (* Block In *) Have: (Init_tmp_0=false) /\ (ta_tmp_1=false). + Have: (Init_tmp_0=true) <-> (Init_tmp_1=true). (* Call 'reset' *) Have: q = 0. (* Call 'load' *) Have: q = load_0. (* Return Effects *) - Have: ((Init_tmp_0=true) -> (Init_tmp_1=true)). + Have: ((Init_tmp_1=true) -> (Init_tmp_2=true)). } Prove: (ta_tmp_0=false). diff --git a/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle index ec243b296db..a77cbc87bec 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/copy.res.oracle @@ -151,12 +151,18 @@ Prove: a_3[a_4] = a_2[a_4]. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/copy.i, line 12) (1/2): +Goal Loop assigns (file tests/wp_plugin/copy.i, line 12) (1/3): Prove: true. ------------------------------------------------------------ -Goal Loop assigns (file tests/wp_plugin/copy.i, line 12) (2/2): +Goal Loop assigns (file tests/wp_plugin/copy.i, line 12) (2/3): +Effect at line 14 +Prove: true. + +------------------------------------------------------------ + +Goal Loop assigns (file tests/wp_plugin/copy.i, line 12) (3/3): Effect at line 16 Let a_1 = shift_sint32(a, 0). Let a_2 = havoc(Mint_undef_0, Mint_0, a_1, n). diff --git a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle index 3817358af2d..356a117f24e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle @@ -30,15 +30,7 @@ Prove: true. Goal Assigns (file tests/wp_plugin/post_assigns.i, line 10) in 'receive' (2/2): Call Effect at line 14 -Assume { - Have: 0 <= size_0. - Type: is_sint32(size_1) /\ is_sint32(size_0). - (* Heap *) - Type: (region(message_0.base) <= 0) /\ linked(Malloc_0). - (* Goal *) - When: !invalid(Malloc_0, shift_sint8(message_0, 0), 1 + size_0). -} -Prove: size_0 <= size_1. +Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'receive': diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle index 93afd0e2d84..8c4637944db 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle @@ -3,7 +3,7 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 10 goals scheduled +[wp] 11 goals scheduled [wp] [Alt-Ergo] Goal typed_copy_ensures : Valid [wp] [Alt-Ergo] Goal typed_copy_loop_invariant_Copy_preserved : Valid [wp] [Qed] Goal typed_copy_loop_invariant_Copy_established : Valid @@ -12,12 +12,13 @@ [wp] [Alt-Ergo] Goal typed_copy_assert_A : Valid [wp] [Alt-Ergo] Goal typed_copy_assert_B : Valid [wp] [Qed] Goal typed_copy_loop_assigns_part1 : Valid -[wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_copy_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_copy_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_copy_assigns : Valid -[wp] Proved goals: 10 / 10 - Qed: 4 +[wp] Proved goals: 11 / 11 + Qed: 5 Alt-Ergo: 6 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - copy 4 6 10 100% + copy 5 6 11 100% ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle index cd7dd5d1006..0aace62366d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle @@ -8,13 +8,12 @@ [wp] [Qed] Goal typed_receive_assigns_exit_part1 : Valid [wp] [Qed] Goal typed_receive_assigns_exit_part2 : Valid [wp] [Qed] Goal typed_receive_assigns_normal_part1 : Valid -[wp] [Alt-Ergo] Goal typed_receive_assigns_normal_part2 : Unsuccess -[wp] Proved goals: 4 / 5 - Qed: 4 - Alt-Ergo: 0 (unsuccess: 1) +[wp] [Qed] Goal typed_receive_assigns_normal_part2 : Valid +[wp] Proved goals: 5 / 5 + Qed: 5 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - receive 4 - 5 80.0% + receive 5 - 5 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'receive': /*@ behavior typed: requires \separated(&size,message+(..)); */ diff --git a/src/plugins/wp/tests/wp_plugin/post_assigns.i b/src/plugins/wp/tests/wp_plugin/post_assigns.i index 12185316ca7..bbd341cbb13 100644 --- a/src/plugins/wp/tests/wp_plugin/post_assigns.i +++ b/src/plugins/wp/tests/wp_plugin/post_assigns.i @@ -7,7 +7,7 @@ int size; /*@ ensures size == n; - assigns size, message[ 0 .. \at(size,Post) ]; // FAILS + assigns size, message[ 0 .. \at(size,Post) ]; */ void receive(int n,char *message) { size = n ; diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle index e8e6e13bc58..6b9c8bf453d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_init.0.res.oracle @@ -87,12 +87,18 @@ Prove: true. ------------------------------------------------------------ -Goal Loop assigns 'Zone' (1/2): +Goal Loop assigns 'Zone' (1/3): Prove: true. ------------------------------------------------------------ -Goal Loop assigns 'Zone' (2/2): +Goal Loop assigns 'Zone' (2/3): +Effect at line 20 +Prove: true. + +------------------------------------------------------------ + +Goal Loop assigns 'Zone' (3/3): Effect at line 20 Let a_1 = shift_sint32(a, 0). Let a_2 = shift_sint32(a, i). diff --git a/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle index aa1fcfbc2ff..df4678a0752 100644 --- a/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle/user_init.1.res.oracle @@ -87,12 +87,18 @@ Prove: true. ------------------------------------------------------------ -Goal Loop assigns 'Zone' (1/2): +Goal Loop assigns 'Zone' (1/3): Prove: true. ------------------------------------------------------------ -Goal Loop assigns 'Zone' (2/2): +Goal Loop assigns 'Zone' (2/3): +Effect at line 20 +Prove: true. + +------------------------------------------------------------ + +Goal Loop assigns 'Zone' (3/3): Effect at line 20 Let a_1 = shift_sint32(a, 0). Let a_2 = shift_sint32(a, i). diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle index ba6a1083ab4..a3eb99d5242 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle @@ -8,14 +8,15 @@ [wp] [CFG] Goal init_t2_v2_exits : Valid (Unreachable) [wp] [CFG] Goal init_t2_v3_exits : Valid (Unreachable) [wp] Warning: Missing RTE guards -[wp] 91 goals scheduled +[wp] 92 goals scheduled [wp] [Alt-Ergo] Goal typed_init_ensures : Valid [wp] [Alt-Ergo] Goal typed_init_loop_invariant_Partial_preserved : Valid [wp] [Qed] Goal typed_init_loop_invariant_Partial_established : Valid [wp] [Alt-Ergo] Goal typed_init_loop_invariant_Range_preserved : Valid [wp] [Qed] Goal typed_init_loop_invariant_Range_established : Valid [wp] [Qed] Goal typed_init_loop_assigns_part1 : Valid -[wp] [Alt-Ergo] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Qed] Goal typed_init_loop_assigns_part2 : Valid +[wp] [Alt-Ergo] Goal typed_init_loop_assigns_part3 : Valid [wp] [Qed] Goal typed_init_assigns : Valid [wp] [Qed] Goal typed_init_loop_variant_decrease : Valid [wp] [Qed] Goal typed_init_loop_variant_positive : Valid @@ -100,12 +101,12 @@ [wp] [Qed] Goal typed_init_t2_v3_loop_variant_positive : Valid [wp] [Alt-Ergo] Goal typed_init_t2_v3_loop_variant_2_decrease : Valid [wp] [Qed] Goal typed_init_t2_v3_loop_variant_2_positive : Valid -[wp] Proved goals: 91 / 91 - Qed: 51 +[wp] Proved goals: 92 / 92 + Qed: 52 Alt-Ergo: 40 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - init 6 4 10 100% + init 7 4 11 100% init_t1 6 4 10 100% init_t2_v1 9 8 17 100% init_t2_v2 9 8 17 100% diff --git a/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle index d9760199b7e..b17b67ed8d6 100644 --- a/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle/core.0.res.oracle @@ -18,20 +18,16 @@ Goal Post-condition (file tests/wp_usage/core.i, line 12) in 'f': Assume { Type: is_sint32(a) /\ is_sint32(b) /\ is_sint32(c) /\ is_sint32(x) /\ - is_sint32(x_1) /\ is_sint32(x_2) /\ is_sint32(x_3) /\ is_sint32(x_4). + is_sint32(x_1) /\ is_sint32(x_2) /\ is_sint32(x_3). If a != 0 - Then { Have: x_4 = x. } - Else { Have: x_4 = x. } + Then { Have: x_3 = x. } + Else { Have: x_3 = x. } If b != 0 - Then { Have: x_4 = x_3. } - Else { Have: x_4 = x_3. } + Then { Have: x_3 = x_2. } + Else { Have: x_3 = x_2. } If c != 0 - Then { - Let x_5 = 1 + x_3. - Have: x_5 = x_1. - Have: (x_2 = x_1) /\ (x_5 = x_2). - } - Else { Have: x_5 = x_1. } + Then { Have: (1 + x_2) = x_1. } + Else { Have: (1 + x_2) = x_1. } } Prove: P_OBS(x, x_1). -- GitLab From dc9ee50f48889a81b2ae4c9f3adfd43836bf9768 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Tue, 15 Sep 2020 14:34:50 +0200 Subject: [PATCH 170/255] [wp] better feedback for cache miss (wp-qualif) --- src/plugins/wp/Cache.ml | 5 +++ src/plugins/wp/Cache.mli | 2 + src/plugins/wp/VCS.ml | 40 ++++++++++--------- src/plugins/wp/VCS.mli | 3 +- src/plugins/wp/register.ml | 20 ++++++---- src/plugins/wp/tests/wp/stmtcompiler_test.ml | 4 +- .../wp/tests/wp/stmtcompiler_test_rela.ml | 4 +- src/plugins/wp/wpo.ml | 8 ++-- 8 files changed, 51 insertions(+), 35 deletions(-) diff --git a/src/plugins/wp/Cache.ml b/src/plugins/wp/Cache.ml index d08034e93ca..65da7ca4b52 100644 --- a/src/plugins/wp/Cache.ml +++ b/src/plugins/wp/Cache.ml @@ -136,6 +136,11 @@ module MODE = WpContext.StaticGenerator(Datatype.Unit) let get_mode = MODE.get let set_mode m = MODE.clear () ; Wp_parameters.Cache.set (mode_name m) +let is_updating () = + match MODE.get () with + | NoCache | Replay | Offline -> false + | Update | Rebuild | Cleanup -> true + let task_hash wpo drv prover task = lazy begin diff --git a/src/plugins/wp/Cache.mli b/src/plugins/wp/Cache.mli index 39af5105141..85130ef5bbf 100644 --- a/src/plugins/wp/Cache.mli +++ b/src/plugins/wp/Cache.mli @@ -30,6 +30,8 @@ val get_hits : unit -> int val get_miss : unit -> int val get_removed : unit -> int +val is_updating : unit -> bool + val cleanup_cache : unit -> unit type runner = diff --git a/src/plugins/wp/VCS.ml b/src/plugins/wp/VCS.ml index 1a855c3bbbe..50507c33c39 100644 --- a/src/plugins/wp/VCS.ml +++ b/src/plugins/wp/VCS.ml @@ -317,31 +317,35 @@ let pp_result fmt r = | Stepout -> Format.fprintf fmt "Step limit%a" pp_perf r | Timeout -> Format.fprintf fmt "Timeout%a" pp_perf r -let pp_cache_miss fmt st prover r = - let qualified = - match prover with - | Qed | Tactical -> true - | NativeAltErgo | NativeCoq -> r.verdict <> Timeout - | Why3 _ -> r.cached || r.prover_time < Rformat.epsilon - in - if not qualified && Wp_parameters.has_dkey dkey_shell then - Format.fprintf fmt "%s%a (unqualified)" st pp_perf r +let is_qualified prover result = + match prover with + | Qed | Tactical -> true + | NativeAltErgo | NativeCoq -> result.verdict <> Timeout + | Why3 _ -> result.cached || result.prover_time < Rformat.epsilon + +let pp_cache_miss fmt st updating prover result = + if not updating + && not (is_qualified prover result) + && Wp_parameters.has_dkey dkey_shell + then + Format.fprintf fmt "%s%a (missing cache)" st pp_perf result else - Format.pp_print_string fmt (if is_valid r then "Valid" else "Unsuccess") + Format.pp_print_string fmt @@ + if is_valid result then "Valid" else "Unsuccess" -let pp_result_qualif prover fmt r = +let pp_result_qualif ?(updating=true) prover result fmt = if Wp_parameters.has_dkey dkey_shell then - match r.verdict with + match result.verdict with | NoResult -> Format.pp_print_string fmt "No Result" | Computing _ -> Format.pp_print_string fmt "Computing" | Invalid -> Format.pp_print_string fmt "Invalid" - | Failed -> Format.fprintf fmt "Failed@ %s" r.prover_errmsg - | Valid -> pp_cache_miss fmt "Valid" prover r - | Unknown -> pp_cache_miss fmt "Unsuccess" prover r - | Timeout -> pp_cache_miss fmt "Timeout" prover r - | Stepout -> pp_cache_miss fmt "Stepout" prover r + | Failed -> Format.fprintf fmt "Failed@ %s" result.prover_errmsg + | Valid -> pp_cache_miss fmt "Valid" updating prover result + | Unknown -> pp_cache_miss fmt "Unsuccess" updating prover result + | Timeout -> pp_cache_miss fmt "Timeout" updating prover result + | Stepout -> pp_cache_miss fmt "Stepout" updating prover result else - pp_result fmt r + pp_result fmt result let compare p q = let rank = function diff --git a/src/plugins/wp/VCS.mli b/src/plugins/wp/VCS.mli index 0e869ebea14..54b34f23ef8 100644 --- a/src/plugins/wp/VCS.mli +++ b/src/plugins/wp/VCS.mli @@ -119,7 +119,8 @@ val configure : result -> config val autofit : result -> bool (** Result that fits the default configuration *) val pp_result : Format.formatter -> result -> unit -val pp_result_qualif : prover -> Format.formatter -> result -> unit +val pp_result_qualif : ?updating:bool -> prover -> result -> + Format.formatter -> unit val compare : result -> result -> int (* best is minimal *) val merge : result -> result -> result diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index 6cb8afbc7c0..58c0b6ab08b 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -391,19 +391,21 @@ let results g = (Wpo.get_results g) let do_wpo_failed goal = + let updating = Cache.is_updating () in match results goal with | [p,r] -> - Wp_parameters.result "[%a] Goal %s : %a%a" + Wp_parameters.result "[%a] Goal %s : %t%a" VCS.pp_prover p (Wpo.get_gid goal) - (VCS.pp_result_qualif p) r pp_warnings goal + (VCS.pp_result_qualif ~updating p r) pp_warnings goal | pres -> Wp_parameters.result "[Failed] Goal %s%t" (Wpo.get_gid goal) begin fun fmt -> pp_warnings fmt goal ; List.iter (fun (p,r) -> - Format.fprintf fmt "@\n%8s: @[<hv>%a@]" - (VCS.title_of_prover p) (VCS.pp_result_qualif p) r + Format.fprintf fmt "@\n%8s: @[<hv>%t@]" + (VCS.title_of_prover p) + (VCS.pp_result_qualif ~updating p r) ) pres ; end @@ -416,11 +418,12 @@ let do_wpo_smoke status goal = (Wpo.get_gid goal) begin fun fmt -> pp_warnings fmt goal ; + let updating = Cache.is_updating () in List.iter (fun (p,r) -> - Format.fprintf fmt "@\n%8s: @[<hv>%a@]" + Format.fprintf fmt "@\n%8s: @[<hv>%t@]" (VCS.title_of_prover p) - (VCS.pp_result_qualif p) r + (VCS.pp_result_qualif ~updating p r) ) (results goal) ; end @@ -453,10 +456,11 @@ let do_wpo_success goal s = VCS.pp_prover script (Wpo.get_gid goal) | Some prover -> let result = Wpo.get_result goal prover in + let updating = Cache.is_updating () in Wp_parameters.feedback ~ontty:`Silent - "[%a] Goal %s : %a" + "[%a] Goal %s : %t" VCS.pp_prover prover (Wpo.get_gid goal) - (VCS.pp_result_qualif prover) result + (VCS.pp_result_qualif ~updating prover result) end let do_report_time fmt s = diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test.ml b/src/plugins/wp/tests/wp/stmtcompiler_test.ml index 7d61b014274..07e77bf2309 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test.ml @@ -28,8 +28,8 @@ let run () = let spawn goal = let result _ prv res = - Format.printf "[%a] %a@.@\n" - VCS.pp_prover prv (VCS.pp_result_qualif prv) res + Format.printf "[%a] %t@.@\n" + VCS.pp_prover prv (VCS.pp_result_qualif prv res) in let server = ProverTask.server () in Prover.spawn goal ~delayed:true ~result provers; diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml b/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml index 513c205deea..f38450c4501 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml @@ -27,8 +27,8 @@ let run () = let spawn goal = let result _ prv res = - Format.printf "[%a] %a@.@\n" - VCS.pp_prover prv (VCS.pp_result_qualif prv) res + Format.printf "[%a] %t@.@\n" + VCS.pp_prover prv (VCS.pp_result_qualif prv res) in let server = ProverTask.server () in Prover.spawn goal ~delayed:true ~result provers; diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index 1e5cc14b71b..0574facb577 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -283,8 +283,8 @@ struct List.iter (fun (prover,result) -> if result.verdict <> NoResult then - Format.fprintf fmt "Prover %a returns %a@\n" - pp_prover prover (pp_result_qualif prover) result + Format.fprintf fmt "Prover %a returns %t@\n" + pp_prover prover (pp_result_qualif prover result) ) results ; end @@ -347,9 +347,9 @@ struct List.iter (fun (prover,result) -> if result.verdict <> NoResult then - Format.fprintf fmt "Prover %a returns %a@\n" + Format.fprintf fmt "Prover %a returns %t@\n" pp_prover prover - (pp_result_qualif prover) result + (pp_result_qualif prover result) ) results ; end -- GitLab From 4d463015a18bd757a9e6f37cd892a20cecb778b9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Fri, 18 Sep 2020 14:14:36 +0200 Subject: [PATCH 171/255] [wp] reverted post-validity --- .../wp/tests/wp_plugin/oracle/post_assigns.res.oracle | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle index 356a117f24e..0a5c1608e7c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle @@ -34,5 +34,9 @@ Prove: true. ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'receive': - /*@ behavior typed: requires \separated(&size,message+(..)); */ + /*@ + behavior typed: + requires \separated(message + (..), &size); + requires \separated(message + (0 .. \at(size,Post)), &size); + */ void receive(int n, char *message); -- GitLab From c866a933810ac60af33fe7ee386653da8d3d961c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Fri, 18 Sep 2020 14:15:28 +0200 Subject: [PATCH 172/255] [wp] updating qualif logs without driver --- src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle | 1 - src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle | 1 - .../wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle | 1 - .../wp/oracle_qualif/stmtcompiler_test_rela.res.oracle | 1 - .../wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle | 1 - .../wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle | 1 - .../wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle | 1 - src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle | 1 - .../wp/tests/wp/oracle_qualif/wp_strategy.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle | 1 - .../oracle_qualif/assigned_initialized_memtyped.res.oracle | 1 - .../oracle_qualif/assigned_initialized_memvar.res.oracle | 1 - .../assigned_not_initialized_memtyped.res.oracle | 1 - .../assigned_not_initialized_memvar.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/boolean.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/checks.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle | 1 - .../wp_acsl/oracle_qualif/chunk_typing_usable.res.oracle | 1 - .../wp_acsl/oracle_qualif/classify_float.0.res.oracle | 1 - .../wp_acsl/oracle_qualif/classify_float.1.res.oracle | 1 - .../wp_acsl/oracle_qualif/classify_float.2.res.oracle | 1 - .../wp_acsl/oracle_qualif/classify_float.3.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle_qualif/ctor.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/equal.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle | 1 - .../wp_acsl/oracle_qualif/generalized_checks.res.oracle | 1 - .../wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle | 1 - .../wp_acsl/oracle_qualif/initialized_memtyped.res.oracle | 1 - .../wp_acsl/oracle_qualif/initialized_memvar.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/label_escape.0.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/label_escape.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/logic.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/post_result.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/range.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle | 1 - .../wp_acsl/oracle_qualif/struct_use_case.0.res.oracle | 1 - .../wp_acsl/oracle_qualif/struct_use_case.1.res.oracle | 1 - src/plugins/wp/tests/wp_acsl/oracle_qualif/tset.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle | 1 - .../tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle | 1 - .../wp/tests/wp_acsl/oracle_qualif/unit_bool.res.oracle | 1 - .../wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle | 1 - .../wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts779.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts788.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts986.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1174.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1176.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_2040.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_2471.0.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_2471.1.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/bts_2471.2.res.oracle | 1 - .../tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue-364.res.oracle | 1 - .../tests/wp_bts/oracle_qualif/issue-684-exit.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_711.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_715_a.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_715_b.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_801.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_81.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle | 1 - .../wp/tests/wp_bts/oracle_qualif/issue_898.res.oracle | 1 - .../tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle | 1 - .../binary-multiplication-without-overflow.res.oracle | 1 - .../oracle_qualif/binary-multiplication.res.oracle | 1 - .../wp/tests/wp_gallery/oracle_qualif/find.res.oracle | 1 - .../oracle_qualif/frama_c_exo1_solved.res.oracle | 1 - .../oracle_qualif/frama_c_exo2_solved.res.oracle | 1 - .../oracle_qualif/frama_c_exo3_solved.old.res.oracle | 1 - .../oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle | 1 - .../frama_c_exo3_solved.simplified.res.oracle | 1 - .../oracle_qualif/frama_c_hashtbl_solved.res.oracle | 1 - .../wp_gallery/oracle_qualif/loop-statement.res.oracle | 1 - .../oracle_qualif/alias_assigns_hypotheses.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle | 1 - .../tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle | 1 - .../wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle | 1 - .../wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle | 1 - .../wp_hoare/oracle_qualif/logicref_simple.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/reference.res.oracle | 1 - .../wp_hoare/oracle_qualif/reference_and_struct.res.oracle | 1 - .../wp_hoare/oracle_qualif/reference_array.res.oracle | 1 - .../oracle_qualif/reference_array_simple.res.oracle | 1 - .../wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle | 1 - .../wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle | 1 - .../wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle/post_assigns.res.oracle | 1 - .../wp/tests/wp_plugin/oracle/post_valid.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/asm.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/bit_test.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/bool.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/convert.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/convert.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/copy.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_axioms.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_loop.res.oracle | 1 - .../wp_plugin/oracle_qualif/doomed_report_ko.res.oracle | 1 - .../wp_plugin/oracle_qualif/doomed_report_ok.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/doomed_unroll.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot | 1 + .../wp/tests/wp_plugin/oracle_qualif/fallback.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle | 1 - .../wp_plugin/oracle_qualif/float_format.0.res.oracle | 1 - .../wp_plugin/oracle_qualif/float_format.1.res.oracle | 1 - .../wp_plugin/oracle_qualif/float_format.2.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/float_real.0.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/float_real.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/frame.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/ground_real.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/inductive.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle | 1 - .../wp_plugin/oracle_qualif/init_const_guard.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/init_extern.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/init_valid.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/loop.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/loopextra.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/mask.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/model.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/nosession.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/nth.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/params.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/plet.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/post_assigns.res.oracle | 7 +++++-- .../wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/region_to_coq.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/removed.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/rte.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/struct.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/struct_hack.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/subset.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/subset_fopen.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/trig.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/unroll.res.oracle | 1 - .../tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle | 1 - .../wp/tests/wp_plugin/oracle_qualif/unsigned.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array1.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array2.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array3.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array4.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array5.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array6.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array7.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/array8.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/garbled.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/index.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/matrix.res.oracle | 1 - .../tests/wp_region/oracle_qualif/structarray1.res.oracle | 1 - .../tests/wp_region/oracle_qualif/structarray2.res.oracle | 1 - .../tests/wp_region/oracle_qualif/structarray3.res.oracle | 1 - .../tests/wp_region/oracle_qualif/structarray4.res.oracle | 1 - .../wp/tests/wp_region/oracle_qualif/swap.res.oracle | 1 - .../wp/tests/wp_store/oracle_qualif/array.res.oracle | 1 - .../wp/tests/wp_store/oracle_qualif/natural.res.oracle | 1 - .../tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle | 1 - .../tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle | 1 - .../wp/tests/wp_store/oracle_qualif/struct.res.oracle | 1 - .../wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle | 1 - .../wp_typed/oracle_qualif/array_initialized.0.res.oracle | 1 - .../wp_typed/oracle_qualif/array_initialized.1.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/avar.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/frame.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/mvar.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle | 1 - .../wp_typed/oracle_qualif/struct_array_type.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/unit_local.0.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/unit_local.1.res.oracle | 1 - .../wp_typed/oracle_qualif/unit_loopscope.0.res.oracle | 1 - .../wp_typed/oracle_qualif/unit_loopscope.1.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/user_bitwise.1.res.oracle | 1 - .../tests/wp_typed/oracle_qualif/user_collect.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle | 1 - .../wp_typed/oracle_qualif/user_injector.0.res.oracle | 1 - .../wp_typed/oracle_qualif/user_injector.1.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_string.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle | 1 - .../wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle | 1 - .../wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle | 1 - .../tests/wp_usage/oracle_qualif/caveat_range.res.oracle | 1 - .../wp_usage/oracle_qualif/issue-189-bis.0.res.oracle | 1 - .../wp_usage/oracle_qualif/issue-189-bis.1.res.oracle | 1 - 295 files changed, 6 insertions(+), 295 deletions(-) diff --git a/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle index 783f051c009..0f4c53717a1 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/cfg_loop.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/cfg_loop.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 15 goals scheduled [wp] [Qed] Goal typed_loop_continue_loop_invariant_preserved : Valid diff --git a/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle index 7d5f6951348..94689205688 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/sharing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/sharing.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle index 6c7bce3b389..c396c4f4d7b 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp/stmtcompiler_test.i:136: Warning: Body of function if_assert falls-through. Adding a return statement [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/stmtcompiler_test.i:145: Warning: No code nor implicit assigns clause for function behavior1, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test_rela.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test_rela.res.oracle index 6b7b63c6d93..85e1744ce20 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test_rela.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/stmtcompiler_test_rela.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/stmtcompiler_test_rela.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_empty_assert : Valid diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle index 83812560087..8fb43bd64b1 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 1 [...] [kernel] Parsing tests/wp/wp_behav.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp/wp_behav.c:172: Warning: Ignored specification 'for b1' (generalize to all behavior) [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle index 70bb96ddf24..5d374947a3c 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp/wp_behav.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp/wp_behav.c:172: Warning: Ignored specification 'for b1' (generalize to all behavior) [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle index f27ec49d1b7..2da6874c320 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_call_pre.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_call_pre.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp/wp_call_pre.c:53: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [kernel] tests/wp/wp_call_pre.c:53: Warning: diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle index b91abd82765..11c277d30e4 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_eqb.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp/wp_eqb.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle index 505785f5e07..e630f56e9a5 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_strategy.res.oracle @@ -9,7 +9,6 @@ [rte] annotating function spec_if_cond [rte] annotating function spec_if_not_cond [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 25 goals scheduled [wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko1 : Unsuccess [wp] [Alt-Ergo] Goal hoare_bts0513_ensures_qed_ko_ko2 : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle index 54afe789f74..7f14ed8bcd3 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/arith.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 24 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ASSOC_land_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle index 8164480855d..414816fbfb3 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/arith.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/arith.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_cast_sgn_usgn_ensures_qed_ko_KO : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle index 5ec6a5228a3..09587f786aa 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assign_array.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assign_array.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_jobA_assigns_exit : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle index b2c5f9a9db3..4179df2cf6f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memtyped.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_initialized_memtyped.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 42 goals scheduled [wp] [Alt-Ergo] Goal typed_array_check_CHECK : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle index 45f96059729..bca9df7601c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_initialized_memvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_initialized_memvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled [wp] [Alt-Ergo] Goal typed_array_check_CHECK : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle index da65ee4ddd2..f95259fd614 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memtyped.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_not_initialized_memtyped.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Alt-Ergo] Goal typed_array_check_FAIL : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle index d43006f651c..f7b59bf049b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigned_not_initialized_memvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigned_not_initialized_memvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_array_check_FAIL : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle index a2e6ef5f8fb..180d946c317 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_path.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigns_path.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Qed] Goal typed_job_ensures_N : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle index 12d57a19994..3cbb5dfd2f1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/assigns_range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 17 goals scheduled [wp] [Qed] Goal typed_call_assigns_all_assigns_exit_part1 : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle index d1cface46cf..18f62e7ca9b 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/assigns_range.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/assigns_range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_call_assigns_t1_assigns_exit : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle index 2f3e2cbcff8..f2b749cff0c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/axioms.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/axioms.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_P_todo : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle index 365c8b069ca..a8fdef13518 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/base_offset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle index fe9cf947ab4..be66e97ea6a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/bitwise.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 29 goals scheduled [wp] [Qed] Goal typed_band_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle index 722cd23bada..df621b7dc0c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/bitwise2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Qed] Goal typed_job1_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle index c366fd7097f..41e65885935 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/block_length.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/block_length.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Qed] Goal typed_f_ensures_Pt : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/boolean.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/boolean.res.oracle index 9df0dc2a560..339f025ca51 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/boolean.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/boolean.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/boolean.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_u8_is_continue_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/checks.res.oracle index b4d2560332c..76d4cc6f9dd 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/checks.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/checks.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 5 [...] [kernel] Parsing tests/wp_acsl/checks.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_main_check_c1 : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle index 992ef461134..48e98d4fa14 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_acsl/chunk_typing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function function [wp] 39 goals scheduled [wp] [Alt-Ergo] Goal typed_function_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.res.oracle index c503421c8a9..01ceab39f72 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_acsl/chunk_typing_usable.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function usable_axiom [rte] annotating function usable_lemma [wp] Warning: native support for coq is deprecated, use tip instead diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.0.res.oracle index 80fb3297716..9d414c889b3 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/classify_float.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_InfN_not_finite : Valid [wp] [Alt-Ergo] Goal typed_lemma_InfP_not_finite : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.1.res.oracle index bef955a1d64..e4946583721 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/classify_float.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 3 goals scheduled [wp] [Alt-Ergo (native)] Goal typed_lemma_InfN_not_finite : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.2.res.oracle index f0c942664c1..4da1cb298a6 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/classify_float.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 3 goals scheduled [wp] [Coq] Goal typed_lemma_InfN_not_finite : Saved script diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.3.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.3.res.oracle index b6583d3f4c6..6f5af142a49 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.3.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/classify_float.3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Real)' [...] [kernel] Parsing tests/wp_acsl/classify_float.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 3 goals scheduled [wp] [Qed] Goal typed_real_lemma_InfN_not_finite : Valid [wp] [Qed] Goal typed_real_lemma_InfP_not_finite : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle index 979b8b88f24..9ecfe8363f1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/cnf.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/cnf.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 43 goals scheduled [wp:cnf] CNF=P_A /\ P_A1 /\ P_A2 diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/ctor.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/ctor.res.oracle index e9fd5565a05..8aa8444599f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/ctor.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/ctor.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/ctor.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled [wp] [Qed] Goal typed_lemma_cons : Valid [wp] [Qed] Goal typed_lemma_diff : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle index 711ee91f78a..94777d12bef 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/div_mod.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_d0_div_pos_pos : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle index 711ee91f78a..94777d12bef 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/div_mod.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_d0_div_pos_pos : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle index b798c16bdb6..65c66c6e2b9 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/div_mod.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/div_mod.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_d7_div_0_x_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle index 7718ca4b67d..1f2b15cef67 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/e_imply.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/e_imply.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 42 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_p0 : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle index da11be9212d..da0936200fd 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/equal.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/equal.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_simple_array_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle index cb949a9f954..484d3489bb0 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/float_compare.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 19 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_finite_32_64 : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle index 08e524f9e5a..37aaf32ef37 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_compare.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Real)' [...] [kernel] Parsing tests/wp_acsl/float_compare.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 19 goals scheduled [wp] [Qed] Goal typed_real_lemma_finite_32_64 : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle index bc8717807fd..a5148398dc4 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/float_const.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.1f is not represented exactly. Will use 0x1.99999a0000000p-4. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_double_convertible_check : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle index d5aaa7c1240..538b5fb67c2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/funvar_inv.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_acsl/funvar_inv.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_ref_f_loop_assigns : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle index 4b3a0044393..f34b9052819 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 1 [...] [kernel] Parsing tests/wp_acsl/generalized_checks.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 17 goals scheduled [wp] [Alt-Ergo] Goal typed_check_lemma_C_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle index 39d383ddb17..1d332c3eba2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/implicit_enum_cast.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/implicit_enum_cast.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Qed] Goal typed_bar_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle index 222fe3b9040..880080271e2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_label.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/init_label.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_acsl/init_label.i:27: Warning: No code nor implicit assigns clause for function main, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle index 1fc7282684f..b396aef3b54 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 24 goals scheduled [wp] [Qed] Goal typed_fa1_ensures_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle index b790e806354..853a40b3b23 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/init_value.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled [wp] [Alt-Ergo] Goal typed_fa1_ensures_qed_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle index d5307168781..3cf52a8c985 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/init_value_mem.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_main_ensures_P : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle index 53fe740ee7b..11647c01b3d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memtyped.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/initialized_memtyped.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 28 goals scheduled [wp] [Alt-Ergo] Goal typed_formal_assert_provable : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memvar.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memvar.res.oracle index ea40fb15e88..fa2acc12292 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memvar.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/initialized_memvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/initialized_memvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 54 goals scheduled [wp] [Qed] Goal typed_globals_check_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle index cf80df81df2..8bf8b806834 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/intbool.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/intbool.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_bug_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle index 600fdf9a79b..e4c9550dc03 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/invalid_pointer.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/invalid_pointer.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/invalid_pointer.c:21: Warning: void object [wp] 19 goals scheduled diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.0.res.oracle index 43a22d025e2..f71b1ba16e1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/label_escape.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_g_assert_qed_ok_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.1.res.oracle index 6481802874a..fa9e50b10c4 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/label_escape.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/label_escape.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_assert_qed_ko_oracle_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle index 4f622671cdd..7c60acbc6bc 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/logic.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/logic.i:65: Warning: Cast with incompatible pointers types (source: __anonstruct_Buint_4*) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle index 492eb9634e0..c7494eb3cc7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/looplabels.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/looplabels.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_copy_ensures : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle index c1a5e39bed0..1f8e9e47349 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/null.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/null.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_valid_non_null : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle index e84a81d1246..b078d29e165 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_acsl/pointer.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t.(0) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle index 89712b41fe4..a902f3f43d8 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/pointer.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/pointer.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_acsl/pointer.i:50: Warning: Uncomparable locations p_0 and mem:t.(0) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/post_result.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/post_result.res.oracle index e45ff82098c..d2eb8110c95 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/post_result.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/post_result.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/post_result.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Qed] Goal typed_correct_assert_OK : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle index ecfa8fc993b..b27efefadcd 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.0.res.oracle @@ -37,7 +37,6 @@ [kernel:annot-error] tests/wp_acsl/precedence.i:176: Warning: P is not a logic variable. Ignoring code annotation [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 52 goals scheduled [wp] [Qed] Goal typed_bitwise_ensures_r_precedence_and_xor : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle index 614ab582313..16f68c44ff1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/precedence.1.res.oracle @@ -37,7 +37,6 @@ [kernel:annot-error] tests/wp_acsl/precedence.i:176: Warning: P is not a logic variable. Ignoring code annotation [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 37 goals scheduled [wp] [Alt-Ergo] Goal typed_bitwise_ensures_ko_l_precedence_xor_and : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle index c6b10dca91f..4d389265cd8 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/range.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_test_ensures_P1_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle index 6444362e5e2..9befe574b90 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/reads.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle index 4d228ae7143..11234264105 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/reads.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/reads.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_modifies_x_ensures_qed_ko_G_KO : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle index be665b9cca1..aafa831a5d6 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/record.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 11 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_M1_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle index 6cf9ed0803c..9ee1634559a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/record.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/record.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_KP5_qed_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle index 2f04de9548a..7db00e97afe 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/simpl_is_type.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/simpl_is_type.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled [wp] [Alt-Ergo] Goal typed_check_acsl_check_ok_C1_absurd_is_cint : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle index 1e3debd8363..5eebd01bb77 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/sizeof.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/sizeof.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_foo_assert_A : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle index bc32b522fd6..3b8c905ab63 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_acsl/struct_use_case.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_caveat_f_ensures_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle index 692720f957a..f43f461d6c1 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/struct_use_case.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/struct_use_case.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_caveat_f_ensures_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/tset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/tset.res.oracle index 6277a80bafa..bad7bc16a7c 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/tset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/tset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/tset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 4 goals scheduled [wp] [Qed] Goal typed_lemma_UNION_DESCR : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle index 9b59b6bac5c..d891a566292 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/type_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle index 986a5310134..6cd53f6a5bb 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/type_guard.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/type_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle index f4ce0c5e623..d886facd8a8 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bit_test.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/unit_bit_test.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_rotate_left_ensures_bit_zero : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bool.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bool.res.oracle index ebd003d69d4..6d9d902295d 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bool.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/unit_bool.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/unit_bool.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 15 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_f_1 : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle index 3eb172046e5..022b0364fa9 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_acsl/user_def_type_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle index a9b8d3dfbf9..0368f3b6126 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/user_def_type_guard.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_acsl/user_def_type_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle index 665ff4aed3b..2dd56ced052 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0708.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts0708.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_A : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle index af4c7b91ddd..fbd210f679c 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts0843.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts0843.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_f3_assigns : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle index c5515d3585a..7f1e9b6e40f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_bts/bts779.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function f [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_f_assert : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle index 81c8416d16f..07263eaba24 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts788.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_bts/bts788.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_ref_main_ensures_I0 : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts986.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts986.res.oracle index 03a9507ea81..8d3d1c250bf 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts986.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts986.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_bts/bts986.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_assert_A : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1174.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1174.res.oracle index 5a020f66ee1..2cdd4e30969 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1174.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1174.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Real)' [...] [kernel] Parsing tests/wp_bts/bts_1174.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for coq is deprecated, use tip instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1176.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1176.res.oracle index abcda8d369d..e3b5535c1cb 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1176.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1176.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_bts/bts_1176.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_f_assert_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle index bf325fc4ff1..3472cd3cdfd 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1360.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_bts/bts_1360.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function foo_correct [rte] annotating function foo_wrong [wp] 10 goals scheduled diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle index 84c5b56ed46..0b3c861aaa9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1462.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1462.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled [wp] [Qed] Goal typed_local_loop_invariant_preserved : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle index 8f62c5605c8..5d88cb99d2c 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1586.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1586.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_compute_bizarre_Bizarre_ensures_TRANS : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle index 5d175d94ffb..4b070090eaa 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1588.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1588.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_bts/bts_1588.i:19: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle index 7efb8386c5f..86708cc7d79 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1601.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1601.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_foo_assert : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle index ebe06ce52f4..31ff857069f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_1828.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_global_frame_ensures_sep_iff_ref : Unsuccess diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle index 7e368e5770a..efbd5c95df3 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_1828.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_bts/bts_1828.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_ref_global_frame_ensures_sep_iff_ref : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2040.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2040.res.oracle index 058efe3f4e9..c47673e6b51 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2040.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2040.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2040.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_call_assert : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle index bfcb01c492d..6f837f71940 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2079.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2079.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Qed] Goal typed_main_ensures_Eval_P : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle index afb849952b4..c02dc9c178f 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2159.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2159.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_job_ensures : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.0.res.oracle index 75f2f1ffe20..99642408d02 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 1 [...] [kernel] Parsing tests/wp_bts/bts_2471.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_foo_assert_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.1.res.oracle index 332bc081e7b..ffb3913bc38 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 1 [...] [kernel] Parsing tests/wp_bts/bts_2471.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.2.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.2.res.oracle index 50cddea1b70..daef8736024 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.2.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts_2471.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/bts_2471.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for coq is deprecated, use tip instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle index 7c15d302575..abf5b969263 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/ergo_typecheck.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/ergo_typecheck.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Qed] Goal typed_f_ensures_var_divded : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-364.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-364.res.oracle index 6fda3dfb53c..ea1d384da71 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-364.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-364.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue-364.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_main_assert_ZERO : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-684-exit.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-684-exit.res.oracle index e1937ad2d56..be5d63c71f6 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-684-exit.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue-684-exit.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue-684-exit.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_inconditional_exit_ensures : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle index 485a5ed91f4..0f948292e59 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_143.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] [Alt-Ergo] Goal typed_lemma_ok_because_consistent : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle index 0e57e63b9d9..c34591c0821 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_143.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle index 485a5ed91f4..0f948292e59 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_143.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ok_because_inconsistent : Valid [wp] [Alt-Ergo] Goal typed_lemma_ok_because_consistent : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle index a4f2f3787a6..c4d6c3bd192 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_143.3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_143.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 2 goals scheduled [wp] [Coq] Goal typed_lemma_ok_because_inconsistent : Default tactic diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle index 6ab759c07bb..19ffd064dfc 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_198.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_198.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_broken : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle index d5e25e1edd5..df5e033c97c 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_447.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_447.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_foo : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle index c23bd61bb48..c4d33cc9b69 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_453.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_453.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_f1_loop_assigns : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle index b4c5c4f4286..437f33f00c3 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_494.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_494.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle index 72ff7aaa1bd..f5c735d0395 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_508.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_508.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_add_assigns_part1 : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_711.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_711.res.oracle index ebb6855f35d..87633b0ea70 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_711.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_711.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_711.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_A : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_a.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_a.res.oracle index ed8d24a253a..2ab4a1454a9 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_a.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_a.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_715_a.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_bts/issue_715_a.i:6: Warning: No code nor implicit assigns clause for function dummy, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_b.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_b.res.oracle index 9f9bc155c5f..694a10a84e8 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_b.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_715_b.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_715_b.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_bts/issue_715_b.i:9: Warning: No code nor implicit assigns clause for function dummy, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle index 300d4c7ea1f..6fc62ce363b 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_751.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_751.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 40 goals scheduled [wp] [Alt-Ergo] Goal typed_acquire_loop_invariant_RANGE_preserved : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_801.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_801.res.oracle index 338d948dadc..455278246bd 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_801.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_801.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_801.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_LoopCurrent_ensures : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_81.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_81.res.oracle index 9486ece4ecc..30935254772 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_81.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_81.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_81.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_getMax_ensures : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle index 35895046c31..cdf10ae7090 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_825.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_825.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_issue_check_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle index 1e55e4e4da4..c8ec6fc55f2 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_837.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_837.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Qed] Goal typed_bar_assigns_part1 : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_898.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_898.res.oracle index 7d9049804fb..9e1e9bcdbea 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_898.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/issue_898.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/issue_898.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_job_ensures : Valid diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle b/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle index 272e07b8fe6..164271bc40a 100644 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/nupw-bcl-bts1120.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_bts/nupw-bcl-bts1120.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal unreachable_smt_with_contract_assigns : Valid (Unreachable) [wp] [CFG] Goal unreachable_smt_with_contract_exits_ok : Valid (Unreachable) [wp] [CFG] Goal unreachable_smt_with_contract_ensures_ok : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle index 0c30eb6cf12..41402c7b8c2 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte -warn-unsigned-overflow [...] [kernel] Parsing tests/wp_gallery/binary-multiplication-without-overflow.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function BinaryMultiplication [wp] 16 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ax1_lack : Unsuccess diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle index 92bfb254ae4..c0a3091f89c 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_gallery/binary-multiplication.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function BinaryMultiplication [wp] 17 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ax4_ok : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle index c73a41611eb..f6155b9473b 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/find.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 41 goals scheduled [wp] [Qed] Goal typed_find_complete_found_not_found : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle index 6fc6f361576..e6750a21946 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/frama_c_exo1_solved.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Alt-Ergo] Goal typed_exo1_ensures : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle index bd27fc93329..5af041259b1 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/frama_c_exo2_solved.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 22 goals scheduled [wp] [Alt-Ergo] Goal typed_max_subarray_ensures : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle index 6d3d8657fd9..ee4bb865187 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_gallery/frama_c_exo3_solved.old.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle index 0eb2143d7b4..e7d12e16b29 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_gallery/frama_c_exo3_solved.old.v2.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 35 goals scheduled [wp] [Alt-Ergo] Goal typed_ref_equal_elements_ensures_v1_good : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle index af7f5f6418e..c3667e36d84 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/frama_c_exo3_solved.simplified.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 26 goals scheduled [wp] [Qed] Goal typed_pair_complete_has_pair_no_pair : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle index 8e5320587c9..3d56522f9e5 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/frama_c_hashtbl_solved.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 102 goals scheduled [wp] [Alt-Ergo] Goal typed_add_complete_full_nominal : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle index 206278a5b0a..bebcd6d2a22 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/loop-statement.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_gallery/loop-statement.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 15 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_Lb : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle index 35b2ee5a8b5..cb72f2b3ee0 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/alias_assigns_hypotheses.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/alias_assigns_hypotheses.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 30 goals scheduled [wp] [Qed] Goal typed_comprehension_alias_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle index 056f3917be7..24386e88747 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/byref.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Qed] Goal typed_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle index 0d4681981ee..447bc62e87d 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/byref.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/byref.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Qed] Goal typed_ref_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle index 179a9259950..54ef16384aa 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/dispatch_var.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 78 goals scheduled [wp] [Qed] Goal typed_ref_array_in_struct_param_ensures_Pload2 : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle index f2b9868fd88..54fb25c926c 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' -wp-no-let [...] [kernel] Parsing tests/wp_hoare/dispatch_var2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled [wp] [Qed] Goal typed_ref_call_global_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle index d23ba332da0..6601e9e2d00 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/dispatch_var2.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/dispatch_var2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled [wp] [Qed] Goal typed_ref_call_global_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle index dcf9b471da8..04d5a4f2629 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/isHoare.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/isHoare.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_ref_cmp_invalid_addr_as_int_ensures_ok : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle index cd7e781214b..efe1f7fdd17 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_hoare/logicarr.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_job_ensures_PTR : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle index d2264fc7e59..1c127a17545 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/logicref.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Qed] Goal typed_ref_fvrange_n_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle index 44f733dcecf..061f51954ca 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicref_simple.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/logicref_simple.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Alt-Ergo] Goal typed_ref_fsimple_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle index e4be92ac66b..009b3d29625 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 23 goals scheduled [wp] [Qed] Goal typed_ref_call_f2_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle index 757cef883b0..e29464dd555 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_and_struct.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference_and_struct.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled [wp] [Qed] Goal typed_ref_call_array_in_struct_param_ensures_Pload2 : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle index edfb3c339c7..2d2721f7301 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference_array.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 36 goals scheduled [wp] [Alt-Ergo] Goal typed_ref_add_1_5_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle index a53989661a5..b5390221da4 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/reference_array_simple.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/reference_array_simple.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_ref_call_f1_ensures : Valid diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle index beca524545c..02a4bffe2c4 100644 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/refguards.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_hoare/refguards.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Qed] Goal typed_ref_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle index 676668f5c0a..213ee06d29f 100644 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.0.res.oracle @@ -3,7 +3,6 @@ [kernel] Parsing tests/wp_manual/working_dir/swap.c (with preprocessing) [kernel] Parsing tests/wp_manual/working_dir/swap1.h (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle index 7eeef927165..4f1030ab270 100644 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.res.oracle @@ -3,7 +3,6 @@ [kernel] Parsing tests/wp_manual/working_dir/swap.c (with preprocessing) [kernel] Parsing tests/wp_manual/working_dir/swap2.h (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function swap [wp] 8 goals scheduled [wp] [Alt-Ergo] Goal typed_swap_ensures_A : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle index 0a5c1608e7c..fc860528300 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/post_assigns.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/post_assigns.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function receive diff --git a/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle index ebeea945b1a..9848d7b4c8d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/post_valid.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/post_valid.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards ------------------------------------------------------------ Function job diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle index 29ad79718d7..16adfa4946a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/abs.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_abs_abs_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle index 1065fc610ec..3c71816dbbf 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/abs.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for coq is deprecated, use tip instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle index 3a68e2ef5e1..d5a8298ccca 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/abs.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/abs.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle index 9548820aa57..344e6b07847 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/asm.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/asm.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_main_assert_OK : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bit_test.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bit_test.res.oracle index f6a082b42cc..fef95834e2e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bit_test.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bit_test.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/bit_test.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_bit_test_check1_ensures_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle index 3d4c24ffb4a..d23de5bf36c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-no-let [...] [kernel] Parsing tests/wp_plugin/bool.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.0.res.oracle index 0f454d8c9dc..c58a574b23e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/convert.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_ceil : Valid [wp] [Alt-Ergo] Goal typed_lemma_floor : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.1.res.oracle index 451f9a65769..e920dbe1256 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/convert.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/convert.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 2 goals scheduled [wp] [Alt-Ergo (native)] Goal typed_lemma_ceil : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle index 8c4637944db..097475c27fe 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/copy.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/copy.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 11 goals scheduled [wp] [Alt-Ergo] Goal typed_copy_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle index a3d176c2b04..541ee8719f9 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Passed] Smoke-test typed_bar_wp_smoke_default_requires diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_axioms.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_axioms.res.oracle index f11a3888e1d..dfc863b89cd 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_axioms.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_axioms.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_axioms.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Failed] Smoke-test typed_foo_wp_smoke_dead_loop_s2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle index 31663282840..0f1ab89f30e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Qed] Goal typed_f1_ok_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle index 3d349ae8897..1ccce739712 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 33 goals scheduled [wp] [Passed] Smoke-test typed_call_exit_ok_wp_smoke_dead_call_s2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle index 51c6311db51..972512d6665 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_call.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-split [...] [kernel] Parsing tests/wp_plugin/doomed_call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 36 goals scheduled [wp] [Passed] Smoke-test typed_call_exit_ok_wp_smoke_dead_call_s2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle index 0b7ac571bbb..b256a09e43c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_dead.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 46 goals scheduled [wp] [Passed] Smoke-test typed_f1_ok_wp_smoke_dead_code_s3 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle index b5c0258a177..0b4390c4e11 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_dead.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-split [...] [kernel] Parsing tests/wp_plugin/doomed_dead.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 48 goals scheduled [wp] [Passed] Smoke-test typed_f1_ok_wp_smoke_dead_code_s3 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_loop.res.oracle index c1ea877c9ba..6cbe64cf0f1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_loop.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_loop.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 8 goals scheduled [wp] [Failed] Smoke-test typed_foo_wp_smoke_dead_loop_s2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ko.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ko.res.oracle index 9daa85dfb61..4a65820f41c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ko.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ko.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_report_ko.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Failed] Smoke-test typed_foo_wp_smoke_dead_loop_s2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ok.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ok.res.oracle index 2b80ca79ba3..c578928320d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ok.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_report_ok.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_report_ok.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Passed] Smoke-test typed_foo_wp_smoke_dead_loop_s2 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_unroll.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_unroll.res.oracle index bcd42d15cb2..9f20f169f87 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_unroll.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/doomed_unroll.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/doomed_unroll.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/doomed_unroll.i:15: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle index a0f09e08be3..2561d69246c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/dynamic.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/dynamic.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp_plugin/dynamic.i:78: Warning: Missing 'calls' for default behavior [wp] Warning: Missing RTE guards [wp] 51 goals scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot index adc97b189dd..7c51f93dabe 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/f_default_for_stmt_2.dot @@ -35,6 +35,7 @@ digraph f { N100 [ color=green , label="Assume f_ensures_3" ] ; N100 -> N099 ; N101 [ color=red , label="Assigns f_assigns" ] ; + N101 -> N100 [ style=dotted ] ; N102 [ label="" , shape=circle ] ; N102 -> N101 ; N102 -> N100 ; diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/fallback.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/fallback.res.oracle index 4b005c11a31..c78a7cf65a3 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/fallback.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/fallback.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/fallback.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: Prover 'Alt-Ergo:1.2.0' not found, fallback to 'Alt-Ergo:2.0.0' [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle index 219472265d9..0d5f90a7526 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 1 [...] [kernel] Parsing tests/wp_plugin/flash.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_job_ensures_Events : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle index 70adda93016..a01eeba9e85 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/flash.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] tests/wp_plugin/flash-ergo.driver:2: Warning: Redefinition of logic INDEX_init [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle index 847a02d9f75..a87892007ee 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/flash.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/flash.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_flash_job_ensures_Events : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle index beac21fa7b5..5ba66e74bab 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.0.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for coq is deprecated, use tip instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle index fd00d9ebd5b..0423017c2be 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.1.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 1 goal scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle index 5974584a73c..fcad25a085a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_format.2.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_output_ensures_KO : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle index 96493d8e91a..265dcf74630 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.0.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_real_dequal_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle index 497f15c885f..a42394bed4b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/float_real.1.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 1e-5 is not represented exactly. Will use 0x1.4f8b588e368f1p-17. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_dequal_ensures : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle index 47c2b9e78e3..fb7fe232616 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/frame.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/frame.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_alias_ensures_KO : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/ground_real.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/ground_real.res.oracle index 9a35ec5ad1c..a875c26ce74 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/ground_real.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/ground_real.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/ground_real.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_R : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/inductive.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/inductive.res.oracle index 4c1700d30e3..6d7143512ed 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/inductive.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/inductive.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 240 [...] [kernel] Parsing tests/wp_plugin/inductive.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: native support for coq is deprecated, use tip instead [wp] 2 goals scheduled [wp] [Coq] Goal typed_lemma_offset : Saved script diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle index cdc1cc3b7c5..4389c814aec 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/init_const.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_fA_ensures_KO : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle index 21ceab5595d..2a606446dc5 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_const_guard.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/init_const_guard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Qed] Goal typed_f_ensures_Const : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle index a998137dcc1..bbc0f9b1738 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_extern.res.oracle @@ -2,7 +2,6 @@ [kernel] Parsing tests/wp_plugin/init_extern.i (no preprocessing) [kernel] Parsing tests/wp_plugin/init_linker.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_f_ensures_OK : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_valid.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_valid.res.oracle index 2ad8b725969..3f9234d02bd 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_valid.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/init_valid.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/init_valid.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Qed] Goal typed_validA_assert_OK : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle index 1654af3ba93..1607fa27193 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/initarr.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/initarr.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_job_ensures_SEP : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle index af35f6b8507..65ebd21fce6 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/injector.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled [wp] [Qed] Goal typed_f_call_g_requires : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle index 273409a9bca..8730d221d29 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/injector.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_plugin/injector.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ko_ensures_qed_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle index 33f5a985986..602235b4e17 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loop.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loop.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Alt-Ergo] Goal typed_init_ensures_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle index 60ddf9009c6..75c868bd36a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopcurrent.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loopcurrent.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/loopcurrent.i:12: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle index 93b40345adb..f62dda1b35e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopentry.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loopentry.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/loopentry.i:12: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopextra.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopextra.res.oracle index 32ed32900d4..111bb4a02c0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopextra.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/loopextra.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/loopextra.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/loopextra.i:6: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle index fab459f7a10..a212cb8779f 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/mask.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/mask.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Qed] Goal typed_compute_ensures_A : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle index 82888040205..4af858324c1 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 100 -wp-steps 1500 [...] [kernel] Parsing tests/wp_plugin/math.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 30 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_abs_neg : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle index a3c9e94c53e..40753d2a146 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 100 -wp-steps 1500 [...] [kernel] Parsing tests/wp_plugin/math.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 30 goals scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle index 6dd9859b669..ffc737646cc 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 100 -wp-steps 10 [...] [kernel] Parsing tests/wp_plugin/math.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 9 goals scheduled [wp] [Alt-Ergo] Goal typed_ko_ensures_ko_sin_asin : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle index 5b07b133292..81ba2360317 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/math.3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 100 -wp-steps 10 [...] [kernel] Parsing tests/wp_plugin/math.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for alt-ergo is deprecated, use why3 instead [wp] 9 goals scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle index 45defe11c25..becab8e8f06 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/model.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/model.i:10: Warning: parsing obsolete ACSL construct 'logic declaration'. 'an axiomatic block' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled --------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nosession.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nosession.res.oracle index 21dad7a45d6..d56af67a507 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nosession.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nosession.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/nosession.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Failed] Goal typed_f_ensures diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle index 28d3b1aac61..f11f92c390e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/nowp.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nth.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nth.res.oracle index f7ef9322a99..1647eed4e12 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nth.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nth.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/nth.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_access_16_16_ok : Valid [wp] [Alt-Ergo] Goal typed_lemma_access_4_4_ok : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle index a78f9d23cc2..6daeab38c98 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overarray.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/overarray.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Qed] Goal typed_f1_ok_assigns_exit : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle index 5222a717ce6..5bfb2cf3e34 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/overassign.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/overassign.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Qed] Goal typed_f1_ok_assigns_exit : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/params.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/params.res.oracle index 66f2e22013f..f5af22f7014 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/params.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/params.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/params.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_lem : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/plet.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/plet.res.oracle index a8a6e9e1f36..30017bf15b0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/plet.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/plet.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/plet.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_GOAL : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle index 0aace62366d..5f2225e888c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_assigns.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/post_assigns.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Qed] Goal typed_receive_ensures : Valid @@ -16,5 +15,9 @@ receive 5 - 5 100% ------------------------------------------------------------ [wp] Warning: Memory model hypotheses for function 'receive': - /*@ behavior typed: requires \separated(&size,message+(..)); */ + /*@ + behavior typed: + requires \separated(message + (..), &size); + requires \separated(message + (0 .. \at(size,Post)), &size); + */ void receive(int n, char *message); diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle index 7452d12d8c6..42883461442 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/post_valid.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/post_valid.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_job_ensures_LOCAL : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle index 522d782c44a..dcaa1de220c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/prenex.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/prenex.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Alt-Ergo] Goal typed_diag_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/region_to_coq.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/region_to_coq.res.oracle index e9138f7b492..90915c00cf2 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/region_to_coq.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/region_to_coq.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/region_to_coq.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: native support for coq is deprecated, use tip instead [wp] 4 goals scheduled diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle index b622a45a0f7..2580c0129be 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle @@ -12,7 +12,6 @@ [eva:final-states] Values at end of function main: __retres ∈ [-2147483647..2147483647] [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_main_assert_Eva_signed_overflow : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle index 28ac3e50e6e..d2e67a0b560 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/repeat.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/repeat.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/repeat.c:47: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle index 71c6b6ffc4b..b15eec1d8c0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_plugin/rte.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [rte] annotating function job [rte] annotating function job2 [rte] annotating function job3 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle index 64612393030..2be801f58b0 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_plugin/sequence.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 39 goals scheduled [wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle index 8905c23c28d..ad0100e7a0d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_plugin/sequence.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 34 goals scheduled [wp] [Qed] Goal typed_caveat_loops_ensures_ok_first : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle index b58e86cce5e..9f08e04867c 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' -wp-steps 50 [...] [kernel] Parsing tests/wp_plugin/sequence.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle index d9273f9a996..7bd29dc92c3 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/stmt.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal f_exits : Valid (Unreachable) [wp] [CFG] Goal g_exits : Valid (Unreachable) [wp] [CFG] Goal g_assigns : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle index 0c67db7db87..e5ecf9b5e00 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/string_c.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-timeout 120 -wp-steps 2500 [...] [kernel] Parsing tests/wp_plugin/string_c.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 44 goals scheduled [wp] [Alt-Ergo] Goal typed_memcpy_ensures_copied_contents : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle index 37e0be540b7..43fba563315 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/struct.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled [wp] [Qed] Goal typed_f_ensures_qed_ok_E0 : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle index f42dd19bc62..15e36ca17c4 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/struct_hack.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_plugin/struct_hack.i:46: Warning: parsing obsolete ACSL construct '\valid_range(addr,min,max)'. '\valid(addr+(min..max))' should be used instead. [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/struct_hack.i:37: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle index 1330ec957e6..8fc2d073364 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/subset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_mem_ensures : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset_fopen.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset_fopen.res.oracle index bc26d1ed0e5..7f76d80b00a 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset_fopen.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/subset_fopen.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/subset_fopen.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Alt-Ergo] Goal typed_f_assert_Ok_A : Unsuccess diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle index a4bc55ce426..59455952143 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/trig.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/trig.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_foo_assert_qed_ok_S : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.res.oracle index e847532a8b0..1acc6c2f671 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unroll.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unroll.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_plugin/unroll.i:20: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle index 2d2d4a2621c..6944a089a56 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsafe-arrays.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unsafe-arrays.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_f_ensures_ARRAYS : Valid diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsigned.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsigned.res.oracle index 1901df8a161..4dc2d8b6cab 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsigned.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/unsigned.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_plugin/unsigned.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Script] Goal typed_lemma_U32 : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle index ed869315385..1af004f7352 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array1.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle index 5e7de78ee60..8a08fc00234 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle index d46d52bdc2c..1344cd80f93 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array3.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle index b732e6a34d5..cfd2596b059 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array4.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle index 31f6983483f..96c8bb9496d 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array5.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle index 34d7eb2a982..e9b4be282bb 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array6.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle index 0e0ad91c163..014de0bbb3a 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array7.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle index 13c02c6b2d1..c045da519b1 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/array8.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle index 0db49291906..524115e64b4 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/fb_ADD.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle index 372e798b673..98b5221f175 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/fb_SORT.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle index af0aea662d2..7cae27dc0bb 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/garbled.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle index fe16dc545ec..851c520b684 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/index.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle index d0a1dcf567a..bd22d004dbb 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/matrix.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle index 4f31df7dff8..f420eeb6427 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/structarray1.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle index 94c1cbf1865..47409954b5b 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/structarray2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle index 0cee2a2b631..1acebc060c0 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/structarray3.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle index 70c1d992d17..ec6b5a2de86 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/structarray4.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle index 258e09a4a69..f736619caac 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_region/swap.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle index 910812b95aa..9373264bf9d 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/array.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/array.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Qed] Goal typed_g_ensures_P_startof_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle index e2f8762967c..8d3b99ea687 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/natural.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/natural.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_f_ensures_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle index fd22abbbb9a..139e0d95e80 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/nonaliasing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ok_P : Valid diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle index bb918fb79e2..8d1a5b9cac9 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/nonaliasing.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-steps 50 [...] [kernel] Parsing tests/wp_store/nonaliasing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_f_ensures_qed_ko_P_oracle_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle index 461e3fcaa6f..344ab6e6f74 100644 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_store/struct.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_f_assert_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle b/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle index 0de1e597932..1fc22002b22 100644 --- a/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle +++ b/src/plugins/wp/tests/wp_tip/oracle_qualif/tac_split_quantifiers.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_tip/tac_split_quantifiers.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Script] Goal typed_split_ensures_Goal_Exist_Or : Unsuccess diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle index e2a176a72f5..0d1a283b5f8 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.0.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_typed/array_initialized.c:13: Warning: Too many initializers for array g [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Alt-Ergo] Goal typed_main1_assert : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle index e2a176a72f5..0d1a283b5f8 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/array_initialized.1.res.oracle @@ -3,7 +3,6 @@ [kernel] tests/wp_typed/array_initialized.c:13: Warning: Too many initializers for array g [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Alt-Ergo] Goal typed_main1_assert : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle index a9b513c05f6..878e590dd1e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/avar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/avar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/avar.i:4: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle index b720cb1e0e2..e706b784a7a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/cast_fits.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/cast_fits.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/cast_fits.i:13: Warning: Cast with incompatible pointers types (source: __anonstruct_L2_2*) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/frame.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/frame.res.oracle index 2c002e7b1b1..dbc23301428 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/frame.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/frame.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/frame.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Alt-Ergo] Goal typed_compound_assert_SEP : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle index 2d667089f84..65452ad8fe8 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/mvar.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/mvar.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/mvar.i:14: Warning: No code nor implicit assigns clause for function Write, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle index e8a80395ed3..b09f19d9e21 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/shift_lemma.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/shift_lemma.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 5 goals scheduled [wp] [Alt-Ergo] Goal typed_f_assert : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle index 7513018dcd9..a7963a1a6f9 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/struct_array_type.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/struct_array_type.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_f_ensures : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle index 5e5b91dc94a..e3689c507d2 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_alloc.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Qed] Goal typed_f_assigns : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle index 97a099bc62c..14f99e8e67f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_alloc.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_alloc.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Qed] Goal typed_ref_f_assigns : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle index 03bc287592f..aa4dc3db059 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_bitwise.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 61 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_band_sint8 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle index 9c4dc9afa22..1c174b6ad2a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_bitwise.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_bitwise.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 4 goals scheduled [wp] [Alt-Ergo] Goal typed_band_int_assert_ko : Unsuccess diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle index e39935873a6..e2091a07708 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_call.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_call.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [kernel] tests/wp_typed/unit_call.i:7: Warning: No code nor implicit assigns clause for function f, generating default assigns from the prototype [wp] Warning: Missing RTE guards diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle index 8d8d1eff5fc..c54e6f55894 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cast.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_cast.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_cast.i:4: Warning: Cast with incompatible pointers types (source: sint32*) (target: sint8*) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle index 70fa445d32b..503a254a25f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_cst.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_cst.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Qed] Goal typed_f_ensures_A : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle index 6b5ca009e8d..df568124db5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_float.res.oracle @@ -4,7 +4,6 @@ Floating-point constant 0.2 is not represented exactly. Will use 0x1.999999999999ap-3. (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_main_ensures_CST_F : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle index 00ea955fe66..71e047a463e 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_hard.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_hard.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_main_requires_p_is_33FF : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle index 0bc63584c9b..0fc85faf32b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_ite.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_ite.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Qed] Goal typed_check_ensures : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle index 802c3513d53..a255ecbfec3 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_labels.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_labels.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_duplet_ensures : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle index 6015427dddc..820a581c2e1 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_lemma.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_lemma.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_lemma_P23_KO : Unsuccess [wp] [Alt-Ergo] Goal typed_lemma_P52 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle index ffa7b49597e..ab1c9992d7b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_local.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Qed] Goal typed_bar_assigns : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle index 86474c5e363..131788981a3 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_local.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Raw)' [...] [kernel] Parsing tests/wp_typed/unit_local.c (with preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_raw_bar_assigns : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle index 3b196114d45..80e267199ec 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_loopscope.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle index 7e327b11a78..4417ddd127a 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_loopscope.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/unit_loopscope.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_typed/unit_loopscope.i:14: Warning: Missing assigns clause (assigns 'everything' instead) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle index 94ce30099a1..f48df3d43f6 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_matrix.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_matrix.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 3 goals scheduled [wp] [Alt-Ergo] Goal typed_make_ensures_OK1 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle index 43b55a82a22..85998f35519 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_string.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_string.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_f_assert_AB : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle index 756da0b5ce2..d82295e1dc5 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/unit_tset.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/unit_tset.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 2 goals scheduled [wp] [Qed] Goal typed_complex_call_job_requires : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle index a29035c5b07..c210a11f4cc 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_bitwise.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Qed] Goal typed_ref_rl1_ensures_b0 : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.1.res.oracle index ae33efb03cb..803894a6a5d 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_bitwise.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_bitwise.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle index ccc488ddf66..5e4efa11a65 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_collect.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_collect.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 32 goals scheduled [wp] [Qed] Goal typed_caller_ensures_K : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle index a3eb99d5242..0ba543bbd4f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_init.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal init_exits : Valid (Unreachable) [wp] [CFG] Goal init_t1_exits : Valid (Unreachable) [wp] [CFG] Goal init_t2_v1_exits : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle index 3a972745592..757500ea677 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_init.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal init_exits : Valid (Unreachable) [wp] [CFG] Goal init_t1_exits : Valid (Unreachable) [wp] [CFG] Goal init_t2_v1_exits : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle index 21d17e27f81..ef421c4c808 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_init.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] [CFG] Goal init_exits : Valid (Unreachable) [wp] [CFG] Goal init_t1_exits : Valid (Unreachable) [wp] [CFG] Goal init_t2_v1_exits : Valid (Unreachable) diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle index d75c812e601..20fdb332cff 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_injector.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 20 goals scheduled [wp] [Qed] Goal typed_job_ensures_SEQ : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle index 90efeb24fce..93b4fb88899 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_injector.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_injector.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 16 goals scheduled [wp] [Qed] Goal typed_ref_job_ensures_SEQ : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle index fdc05455b8d..16e16726067 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_rec.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_rec.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 18 goals scheduled [wp] [Alt-Ergo] Goal typed_F1_ensures : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle index 3b813077d9b..48d205c0e68 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_string.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_string.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 13 goals scheduled [wp] [Qed] Goal typed_strlen_ensures : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle index dd19834fbb2..17290739f7c 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_typed/user_swap.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 7 goals scheduled [wp] [Qed] Goal typed_main_assert : Valid diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle index 8b1b07121dc..258b04e2719 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_swap.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Ref)' [...] [kernel] Parsing tests/wp_typed/user_swap.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 6 goals scheduled [wp] [Qed] Goal typed_ref_main_assert : Valid diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle index f8365548e57..6c1a2b88219 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat2.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_usage/caveat2.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] tests/wp_usage/caveat2.i:22: Warning: Undefined array-size (sint32[]) [wp] 9 goals scheduled diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle index d985f8cbec7..050004166a7 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/caveat_range.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-model 'Typed (Caveat)' [...] [kernel] Parsing tests/wp_usage/caveat_range.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 12 goals scheduled [wp] [Alt-Ergo] Goal typed_caveat_reset_ensures : Valid diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle index 1c5952f1a02..1aa3a66475c 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.0.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_usage/issue-189-bis.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 30 goals scheduled [wp] [Alt-Ergo] Goal typed_memcpy_alias_vars_ensures_memcpy : Valid diff --git a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle index 045de5e319b..c2679dccf0d 100644 --- a/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle +++ b/src/plugins/wp/tests/wp_usage/oracle_qualif/issue-189-bis.1.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp [...] [kernel] Parsing tests/wp_usage/issue-189-bis.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards [wp] 10 goals scheduled [wp] [Alt-Ergo] Goal typed_memcpy_context_vars_ensures_memcpy_ok : Valid -- GitLab From 4e275860a3f7cb4abbd4c5d51240f9990935e13f Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 18 Sep 2020 10:43:13 +0200 Subject: [PATCH 173/255] [wp] RefUsage considers lemmas --- src/plugins/wp/LogicUsage.ml | 5 +++++ src/plugins/wp/LogicUsage.mli | 1 + src/plugins/wp/RefUsage.ml | 13 ++++++++++--- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/LogicUsage.ml b/src/plugins/wp/LogicUsage.ml index 1058d7ffa96..f3ea81418d8 100644 --- a/src/plugins/wp/LogicUsage.ml +++ b/src/plugins/wp/LogicUsage.ml @@ -501,6 +501,11 @@ let iter_lemmas f = let d = Database.get () in SMap.iter (fun _name (lem,_) -> f lem) d.lemmas +let fold_lemmas f = + compute () ; + let d = Database.get () in + SMap.fold (fun _name (lem,_) -> f lem) d.lemmas + let logic_lemma l = fst (get_lemma l) let section_of_lemma l = snd (get_lemma l) diff --git a/src/plugins/wp/LogicUsage.mli b/src/plugins/wp/LogicUsage.mli index b36713d5209..ef9e2cb0360 100644 --- a/src/plugins/wp/LogicUsage.mli +++ b/src/plugins/wp/LogicUsage.mli @@ -60,6 +60,7 @@ val compute : unit -> unit (** To force computation *) val ip_lemma : logic_lemma -> Property.t val iter_lemmas : (logic_lemma -> unit) -> unit +val fold_lemmas : (logic_lemma -> 'a -> 'a) -> 'a -> 'a val logic_lemma : string -> logic_lemma val axiomatic : string -> axiomatic val section_of_lemma : string -> logic_section diff --git a/src/plugins/wp/RefUsage.ml b/src/plugins/wp/RefUsage.ml index d94275dc6b2..df5426a0018 100644 --- a/src/plugins/wp/RefUsage.ml +++ b/src/plugins/wp/RefUsage.ml @@ -79,7 +79,7 @@ sig val cup : t -> t -> t val cup_differ : t -> t -> t * bool (* val leq : t -> t -> bool *) (* unused for now *) - (* val lcup : t list -> t *) (* unused for now *) + val lcup : t list -> t val fcup : ('a -> t) -> 'a list -> t val get : varinfo -> t -> access val access : varinfo -> access -> t -> t @@ -120,7 +120,7 @@ struct (* let leq = Xmap.subset (fun _ -> Access.leq) *) (* unused for now *) - (* let rec lcup = function [] -> bot |[x] -> x |x::xs -> cup x (lcup xs)*) + let rec lcup = function [] -> bot |[x] -> x |x::xs -> cup x (lcup xs) let rec fcup f = function [] -> bot | [x] -> f x | x::xs -> cup (f x) (fcup f xs) @@ -731,6 +731,11 @@ let compute_usage () = Wp_parameters.feedback ~ontty:`Transient "Collecting variable usage" ; (* initial state from variable initializers *) let u_init = Globals.Vars.fold cvarinit E.bot in + (* Usage in lemmas *) + let u_lemmas = + LogicUsage.fold_lemmas + (fun l -> E.cup (pred (mk_ctx()) l.lem_property)) E.bot + in (* initial state by kf *) let usage = Globals.Functions.fold (fun kf env -> KFmap.insert (fun _ _u _old -> assert false) kf (cfun kf) env) @@ -790,10 +795,12 @@ let compute_usage () = ignore (KFmap.interf (kf_fp state_fp) callers todo); fixpoint state_fp.todo in fixpoint todo ; + let u_init = E.cup u_init u_lemmas in (* TODO[LC]: prendre en compte la compilation des fonctions logiques et predicats ; Cf. add_lphi *) let usage = KFmap.map - (fun ctx -> E.cup (E.cup ctx.code ctx.spec_globals) ctx.spec_formals) + (fun ctx -> + E.lcup [ u_lemmas ; ctx.code ; ctx.spec_globals ; ctx.spec_formals]) usage in u_init, usage -- GitLab From c55b78426d9b6810f5e424815ca129695dd35b48 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 18 Sep 2020 15:45:37 +0200 Subject: [PATCH 174/255] [wp] Test that RefUsage takes lemmas in account --- .../oracle/ref-usage-lemmas.res.oracle | 19 +++++++++++ .../wp/tests/wp_usage/ref-usage-lemmas.i | 34 +++++++++++++++++++ 2 files changed, 53 insertions(+) create mode 100644 src/plugins/wp/tests/wp_usage/oracle/ref-usage-lemmas.res.oracle create mode 100644 src/plugins/wp/tests/wp_usage/ref-usage-lemmas.i diff --git a/src/plugins/wp/tests/wp_usage/oracle/ref-usage-lemmas.res.oracle b/src/plugins/wp/tests/wp_usage/oracle/ref-usage-lemmas.res.oracle new file mode 100644 index 00000000000..a22e16a5c31 --- /dev/null +++ b/src/plugins/wp/tests/wp_usage/oracle/ref-usage-lemmas.res.oracle @@ -0,0 +1,19 @@ +# frama-c -wp [...] +[kernel] Parsing tests/wp_usage/ref-usage-lemmas.i (no preprocessing) +[wp] Running WP plugin... +................................................. +... Ref Usage +................................................. +Init: { &a b } +Function foo: { &a b *x } +Function main: { &a b __retres } +................................................. +[wp] Warning: Missing RTE guards +------------------------------------------------------------ + Function main +------------------------------------------------------------ + +Goal Pre-condition (file tests/wp_usage/ref-usage-lemmas.i, line 30) in 'main': +Prove: true. + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_usage/ref-usage-lemmas.i b/src/plugins/wp/tests/wp_usage/ref-usage-lemmas.i new file mode 100644 index 00000000000..77c4c585522 --- /dev/null +++ b/src/plugins/wp/tests/wp_usage/ref-usage-lemmas.i @@ -0,0 +1,34 @@ +/* run.config + OPT: -wp-msg-key refusage +*/ +/* run.config_qualif + DONTRUN: +*/ + +int a ; +int b ; + +/*@ axiomatic A{ + logic int* get reads \nothing ; + logic int* get_h = &a ; + + axiom a: get_h == get ; + } + +*/ + +/*@ axiomatic B{ + logic integer value reads \nothing ; + axiom b: value == b ; + } +*/ + +void foo(int* x){ + *x = a = b ; +} + +/*@ requires a <= b ; */ +int main(void){ + int e ; + foo(&e) ; +} -- GitLab From 2ffe4871933e0d358b6780877b240f6d00c38bf4 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 18 Sep 2020 16:21:12 +0200 Subject: [PATCH 175/255] [Gui] rename misleading 'Cancel' button in Analyses panel --- src/plugins/gui/launcher.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/gui/launcher.ml b/src/plugins/gui/launcher.ml index 012baa36514..93505053884 100644 --- a/src/plugins/gui/launcher.ml +++ b/src/plugins/gui/launcher.ml @@ -275,7 +275,7 @@ let show ?height ?width ~(host:basic_main) () = `HORIZONTAL ~layout:`END ~packing:dialog#action_area#pack () in let cancel = - GButton.button ~label:"Cancel" ~stock:`CANCEL ~packing:buttons#pack () + GButton.button ~label:"Close" ~stock:`CANCEL ~packing:buttons#pack () in ignore (cancel#connect#released dialog#destroy); let button_run = -- GitLab From 7255c3dd9856c030dd4e18034f7a47981043f82a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 16 Jun 2020 10:55:17 +0200 Subject: [PATCH 176/255] [kernel] Fixes the bug reporting messages: uses gitlab instead of the old bts. --- src/kernel_services/analysis/service_graph.ml | 16 ++++++++++------ .../cmdline_parameters/cmdline.ml | 7 ++++--- .../erroneous/oracle/variadic-builtin.res.oracle | 2 +- tests/misc/oracle/debug_category.16.res.oracle | 4 ++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/kernel_services/analysis/service_graph.ml b/src/kernel_services/analysis/service_graph.ml index e145f6ea292..40be8864a66 100644 --- a/src/kernel_services/analysis/service_graph.ml +++ b/src/kernel_services/analysis/service_graph.ml @@ -125,10 +125,12 @@ struct let edge_invariant src dst = function | Inter_functions -> if not (Vertex.equal src.root dst.root || dst.is_root) then - Kernel.failure + Kernel.failure "Correctness bug when computing services.\n\ -PLEASE REPORT AS MAJOR BUG on http://bts.frama-c.com with the following info.\n\ -Src:%s in %s (is_root:%b) Dst:%s in %s (is_root:%b)" + PLEASE REPORT AS MAJOR BUG on \ + https://git.frama-c.com/pub/frama-c/issues \ + with the following info.\n\ + Src:%s in %s (is_root:%b) Dst:%s in %s (is_root:%b)" (G.V.name src.node) (G.V.name src.root.node) src.is_root @@ -137,10 +139,12 @@ Src:%s in %s (is_root:%b) Dst:%s in %s (is_root:%b)" dst.is_root | Inter_services | Both -> if not (src.is_root && dst.is_root) then - Kernel.failure + Kernel.failure "Correctness bug when computing services.\n\ -PLEASE REPORT AS MAJOR BUG on http://bts.frama-c.com with the following info.\n\ -Src root:%s in %s (is_root:%b) Dst:%s in %s (is_root:%b) [2d case]" + PLEASE REPORT AS MAJOR BUG on \ + https://git.frama-c.com/pub/frama-c/issues \ + with the following info.\n\ + Src root:%s in %s (is_root:%b) Dst:%s in %s (is_root:%b) [2d case]" (G.V.name src.node) (G.V.name src.root.node) src.is_root diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index b9e34c5015c..c9149a34007 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -106,11 +106,11 @@ let get_backtrace () = let request_crash_report = Format.sprintf - "Please report as 'crash' at http://bts.frama-c.com/.\n\ + "Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues.\n\ Your Frama-C version is %s.\n\ Note that a version and a backtrace alone often do not contain enough\n\ information to understand the bug. Guidelines for reporting bugs are at:\n\ - http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines\n" + https://git.frama-c.com/pub/frama-c/-/wikis/Guidelines-for-reporting-bugs\n" Fc_config.version_and_codename let protect = function @@ -139,7 +139,8 @@ let protect = function let name = long_plugin_name p in Printf.sprintf "%s aborted: unimplemented feature.%s\n\ - You may send a feature request at http://bts.frama-c.com with:\n\ + You may send a feature request at \ + https://git.frama-c.com/pub/frama-c/issues with:\n\ '[%s] %s'." name (additional_info ()) name m | e -> diff --git a/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle b/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle index 30f7e2cf18c..7af1312eace 100644 --- a/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle +++ b/src/plugins/variadic/tests/erroneous/oracle/variadic-builtin.res.oracle @@ -1,5 +1,5 @@ [variadic] tests/erroneous/variadic-builtin.i:1: Variadic builtin Frama_C_show_each_warning left untransformed. [kernel] Plug-in variadic aborted: unimplemented feature. - You may send a feature request at http://bts.frama-c.com with: + You may send a feature request at https://git.frama-c.com/pub/frama-c/issues with: '[Plug-in variadic] The variadic plugin doesn't handle calls to a pointer to the variadic builtin Frama_C_show_each_warning.'. diff --git a/tests/misc/oracle/debug_category.16.res.oracle b/tests/misc/oracle/debug_category.16.res.oracle index 94d8b8d1965..a1b76fbcb82 100644 --- a/tests/misc/oracle/debug_category.16.res.oracle +++ b/tests/misc/oracle/debug_category.16.res.oracle @@ -8,8 +8,8 @@ The full backtrace is: Plug-in test aborted: internal error. - Please report as 'crash' at http://bts.frama-c.com/. + Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues. Your Frama-C version is VERSION Note that a version and a backtrace alone often do not contain enough information to understand the bug. Guidelines for reporting bugs are at: - http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines + https://git.frama-c.com/pub/frama-c/-/wikis/Guidelines-for-reporting-bugs -- GitLab From c337fd8b29e3accf11b1c686d5cac2d4cb03f869 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 18 Sep 2020 17:00:16 +0200 Subject: [PATCH 177/255] [Kernel] remove dot after URL in crash message --- src/kernel_services/cmdline_parameters/cmdline.ml | 2 +- tests/misc/oracle/debug_category.16.res.oracle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index c9149a34007..9cc9722f843 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -106,7 +106,7 @@ let get_backtrace () = let request_crash_report = Format.sprintf - "Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues.\n\ + "Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues\n\ Your Frama-C version is %s.\n\ Note that a version and a backtrace alone often do not contain enough\n\ information to understand the bug. Guidelines for reporting bugs are at:\n\ diff --git a/tests/misc/oracle/debug_category.16.res.oracle b/tests/misc/oracle/debug_category.16.res.oracle index a1b76fbcb82..e0deb923209 100644 --- a/tests/misc/oracle/debug_category.16.res.oracle +++ b/tests/misc/oracle/debug_category.16.res.oracle @@ -8,7 +8,7 @@ The full backtrace is: Plug-in test aborted: internal error. - Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues. + Please report as 'crash' at https://git.frama-c.com/pub/frama-c/issues Your Frama-C version is VERSION Note that a version and a backtrace alone often do not contain enough information to understand the bug. Guidelines for reporting bugs are at: -- GitLab From 620443c2ac1944172d98bad02c3ae8980193daa9 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Fri, 18 Sep 2020 17:32:04 +0200 Subject: [PATCH 178/255] [eacsl] Standardize cleanup functions --- .../src/code_generator/global_observer.ml | 8 +++---- .../src/code_generator/global_observer.mli | 6 ++--- .../e-acsl/src/code_generator/injector.ml | 24 +++++++++---------- .../oracle_ci/gen_bts1386_complex_flowgraph.c | 4 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts1478.c | 4 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts1837.c | 4 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts2191.c | 4 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts2192.c | 4 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts2305.c | 4 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts2406.c | 4 ++-- .../tests/bts/oracle_ci/gen_issue-eacsl-91.c | 4 ++-- .../tests/constructs/oracle_ci/gen_ghost.c | 4 ++-- .../tests/format/oracle_ci/gen_printf.c | 4 ++-- .../full-mtracking/oracle_ci/gen_addrOf.c | 4 ++-- .../tests/memory/oracle_ci/gen_base_addr.c | 4 ++-- .../tests/memory/oracle_ci/gen_block_length.c | 4 ++-- .../tests/memory/oracle_ci/gen_block_valid.c | 4 ++-- .../oracle_ci/gen_compound_initializers.c | 4 ++-- .../e-acsl/tests/memory/oracle_ci/gen_errno.c | 4 ++-- .../tests/memory/oracle_ci/gen_freeable.c | 4 ++-- .../e-acsl/tests/memory/oracle_ci/gen_goto.c | 4 ++-- .../e-acsl/tests/memory/oracle_ci/gen_init.c | 4 ++-- .../tests/memory/oracle_ci/gen_initialized.c | 4 ++-- .../memory/oracle_ci/gen_literal_string.c | 4 ++-- .../tests/memory/oracle_ci/gen_local_init.c | 4 ++-- .../tests/memory/oracle_ci/gen_offset.c | 4 ++-- .../tests/memory/oracle_ci/gen_ptr_init.c | 4 ++-- .../tests/memory/oracle_ci/gen_stdout.c | 4 ++-- .../e-acsl/tests/memory/oracle_ci/gen_valid.c | 4 ++-- .../tests/temporal/oracle_ci/gen_t_darray.c | 4 ++-- .../tests/temporal/oracle_ci/gen_t_fptr.c | 4 ++-- .../temporal/oracle_ci/gen_t_global_init.c | 4 ++-- .../temporal/oracle_ci/gen_t_local_init.c | 4 ++-- 33 files changed, 79 insertions(+), 79 deletions(-) diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.ml b/src/plugins/e-acsl/src/code_generator/global_observer.ml index 023dd1cfc9d..c53604fc55f 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/global_observer.ml @@ -24,7 +24,7 @@ open Cil_types open Cil_datatype let function_init_name = Functions.RTL.mk_api_name "globals_init" -let function_delete_name = Functions.RTL.mk_api_name "globals_delete" +let function_clean_name = Functions.RTL.mk_api_name "globals_clean" (* Hashtable mapping global variables (as Cil_type.varinfo) to their initializers (if any). @@ -186,10 +186,10 @@ let mk_init_function () = fundec.sbody.bstmts <- stmts; vi, fundec -let mk_delete_function () = - (* Create and register [__e_acsl_globals_delete] function with definition +let mk_clean_function () = + (* Create and register [__e_acsl_globals_clean] function with definition for de-allocation of global variables *) - let vi, fundec, _kf = mk_function function_delete_name in + let vi, fundec, _kf = mk_function function_clean_name in (* Generate delete statements and add them to the function body *) let stmts = Varinfo.Hashtbl.fold_sorted diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.mli b/src/plugins/e-acsl/src/code_generator/global_observer.mli index fa18ebead12..e37f39301d3 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.mli +++ b/src/plugins/e-acsl/src/code_generator/global_observer.mli @@ -27,8 +27,8 @@ open Cil_types val function_init_name: string (** Name of the function in which [mk_init_function] (see below) generates the code. *) -val function_delete_name: string -(** Name of the function in which [mk_delete_function] (see below) generates the +val function_clean_name: string +(** Name of the function in which [mk_clean_function] (see below) generates the code. *) val reset: unit -> unit @@ -44,7 +44,7 @@ val mk_init_function: unit -> varinfo * fundec (** Generate a new C function containing the observers for global variable declarations and initializations. *) -val mk_delete_function: unit -> varinfo * fundec +val mk_clean_function: unit -> varinfo * fundec (** Generate a new C function containing the observers for global variable de-allocations. *) diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index c7ea8438a11..36c62ebc2dd 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -707,8 +707,8 @@ let inject_global_handler file main = let vi_init, fundec_init = Global_observer.mk_init_function () in let cil_fct_init = GFun(fundec_init, Location.unknown) in (* Create [__e_acsl_globals_delete] function *) - let vi_delete, fundec_delete = Global_observer.mk_delete_function () in - let cil_fct_delete = GFun(fundec_delete, Location.unknown) in + let vi_clean, fundec_clean = Global_observer.mk_clean_function () in + let cil_fct_clean = GFun(fundec_clean, Location.unknown) in match main with | Some main -> let mk_fct_call vi = @@ -727,14 +727,14 @@ let inject_global_handler file main = (* Create [__e_acsl_globals_init();] call *) let stmt_init = mk_fct_call vi_init in (* Create [__e_acsl_globals_delete();] call *) - let stmt_delete = - match fundec_delete.sbody.bstmts with + let stmt_clean = + match fundec_clean.sbody.bstmts with | [] -> None - | _ -> Some (mk_fct_call vi_delete) + | _ -> Some (mk_fct_call vi_clean) in (* Surround the content of main with the calls to [__e_acsl_globals_init();] and [__e_acsl_globals_delete();] *) - surround_function_with main main_fundec stmt_init stmt_delete; + surround_function_with main main_fundec stmt_init stmt_clean; (* Retrieve all globals except main *) let main_vi = Globals.Functions.get_vi main in let new_globals = @@ -753,11 +753,11 @@ let inject_global_handler file main = in (* [main] at the end *) let globals_to_add = [ GFun(main_fundec, Location.unknown) ] in - (* Prepend [__e_acsl_globals_delete] if not empty *) + (* Prepend [__e_acsl_globals_clean] if not empty *) let globals_to_add = - match fundec_delete.sbody.bstmts with + match fundec_clean.sbody.bstmts with | [] -> globals_to_add - | _ -> cil_fct_delete :: globals_to_add + | _ -> cil_fct_clean :: globals_to_add in (* Prepend [__e_acsl_globals_init] *) let globals_to_add = cil_fct_init :: globals_to_add in @@ -777,11 +777,11 @@ let inject_global_handler file main = `__e_acsl_memory_init' and `__e_acsl_memory_clean' \ by yourself.@]" Global_observer.function_init_name - Global_observer.function_delete_name; + Global_observer.function_clean_name; let globals_func = - match fundec_delete.sbody.bstmts with + match fundec_clean.sbody.bstmts with | [] -> [ cil_fct_init ] - | _ -> [ cil_fct_init; cil_fct_delete ] + | _ -> [ cil_fct_init; cil_fct_clean ] in file.globals <- file.globals @ globals_func diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c index 8131e10a3bd..be6316c86be 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1386_complex_flowgraph.c @@ -272,7 +272,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(target)); __e_acsl_delete_block((void *)(source)); @@ -286,7 +286,7 @@ int main(void) initialize(source,100); duffcopy(source,target,43); __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c index 93c920650cd..8597f7d23ee 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1478.c @@ -53,7 +53,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& global_i_ptr)); __e_acsl_delete_block((void *)(& global_i)); @@ -66,7 +66,7 @@ int main(void) __e_acsl_globals_init(); __gen_e_acsl_loop(); __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c index bc80c8d28dc..fc9046840ed 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1837.c @@ -88,7 +88,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& S)); } @@ -149,7 +149,7 @@ int main(void) } f(); __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c index ee4442c59fd..0786c95e01e 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2191.c @@ -31,7 +31,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(_G)); } @@ -60,7 +60,7 @@ int main(int argc, char **argv) } /*@ assert \valid_read(_G[0].str); */ ; __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c index b8f3d271918..5ade9142b8f 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2192.c @@ -50,7 +50,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& n)); } @@ -63,7 +63,7 @@ int main(int argc, char **argv) argc = __gen_e_acsl_atoi((char const *)n); a = argc; __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c index 634afea64ae..2ce056ec2ae 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2305.c @@ -24,7 +24,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& t)); } @@ -40,7 +40,7 @@ int main(int argc, char **argv) t.j = (_Bool)1; /*@ assert \initialized(&t.j); */ ; tmp = test(& t); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return tmp; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c index 0c331aeb3b6..3c48bb9e561 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2406.c @@ -14,7 +14,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(t)); } @@ -45,7 +45,7 @@ int main(void) /*@ assert \valid(&t[0 .. 9]); */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c index 33c28617704..c3248c722e3 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_issue-eacsl-91.c @@ -40,7 +40,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& a)); @@ -56,7 +56,7 @@ int main(void) __e_acsl_full_init((void *)(& __retres)); __retres = 0; __e_acsl_delete_block((void *)(& __retres)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c index 89cee38a6d7..d1e84e229ba 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_ghost.c @@ -16,7 +16,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& P)); __e_acsl_delete_block((void *)(& G)); @@ -74,7 +74,7 @@ int main(void) } __retres = 0; __e_acsl_delete_block((void *)(& q)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c index e5b082351a5..74db87f2f2c 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c +++ b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c @@ -2486,7 +2486,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& __fc_p_time_tm)); __e_acsl_delete_block((void *)(& __fc_time_tm)); @@ -6552,7 +6552,7 @@ int main(int argc, char const **argv) __retres = 0; __e_acsl_delete_block((void *)(& argc)); __e_acsl_delete_block((void *)(& vptr)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c index 3d27c36ba8d..8b38c74f47a 100644 --- a/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c +++ b/src/plugins/e-acsl/tests/full-mtracking/oracle_ci/gen_addrOf.c @@ -39,7 +39,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& f)); } @@ -61,7 +61,7 @@ int main(void) __retres = 0; __e_acsl_delete_block((void *)(& x)); __e_acsl_delete_block((void *)(& __retres)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c index 9927263df1e..b831f777ef0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_base_addr.c @@ -17,7 +17,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& PA)); __e_acsl_delete_block((void *)(A)); @@ -327,7 +327,7 @@ int main(void) __e_acsl_delete_block((void *)(& l)); __e_acsl_delete_block((void *)(& pa)); __e_acsl_delete_block((void *)(a)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c index 70135545c5c..cec16f53eaf 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_length.c @@ -23,7 +23,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& ZERO)); __e_acsl_delete_block((void *)(& PA)); @@ -254,7 +254,7 @@ int main(void) __e_acsl_delete_block((void *)(& pa)); __e_acsl_delete_block((void *)(a)); __e_acsl_delete_block((void *)(& zero)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c index 44cb0bfe503..33dd06e7f2d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_block_valid.c @@ -16,7 +16,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& B)); } @@ -161,7 +161,7 @@ int main(int argc, char **argv) __e_acsl_delete_block((void *)(& pmin)); __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c index 96bcfdbdcdf..ab6e1941648 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_compound_initializers.c @@ -65,7 +65,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(_G)); __e_acsl_delete_block((void *)(& _E)); @@ -187,7 +187,7 @@ int main(int argc, char **argv) "tests/memory/compound_initializers.c",43); /*@ assert _G[0].num ≡ 99; */ ; __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c index f38474ba466..66d885e493a 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_errno.c @@ -14,7 +14,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& errno)); } @@ -45,7 +45,7 @@ int main(int argc, char const **argv) /*@ assert \valid(p); */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c index 06eabe4d9f0..ab2185597f8 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_freeable.c @@ -14,7 +14,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(array)); } @@ -82,7 +82,7 @@ int main(void) /*@ assert ¬\freeable(&array[5]); */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c index 4e033175d14..aa5bc854da2 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_goto.c @@ -13,7 +13,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& a)); } @@ -40,7 +40,7 @@ int main(void) /*@ assert \initialized(b); */ ; __retres = 0; __e_acsl_delete_block((void *)(& b)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c index c063f126339..c4eb1d146e1 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_init.c @@ -16,7 +16,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& a)); @@ -53,7 +53,7 @@ int main(void) __retres = 0; __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c index 50566fb3407..2fc7f4ff024 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_initialized.c @@ -17,7 +17,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& B)); __e_acsl_delete_block((void *)(& A)); @@ -366,7 +366,7 @@ int main(void) __e_acsl_delete_block((void *)(& a)); __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c index 8710dc8c595..3fc0d11efa0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_literal_string.c @@ -82,7 +82,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& l_str)); __e_acsl_delete_block((void *)(& s_str)); @@ -148,7 +148,7 @@ int main(void) l_str ++; __retres = 0; __e_acsl_delete_block((void *)(& SS)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c index 508da20bd2b..bae0a768655 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_local_init.c @@ -22,7 +22,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& p)); __e_acsl_delete_block((void *)(& X)); @@ -35,7 +35,7 @@ int main(void) __e_acsl_globals_init(); f(); __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c index a294b87c024..90041c6e180 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_offset.c @@ -17,7 +17,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& PA)); __e_acsl_delete_block((void *)(A)); @@ -221,7 +221,7 @@ int main(void) __e_acsl_delete_block((void *)(& pl)); __e_acsl_delete_block((void *)(& l)); __e_acsl_delete_block((void *)(a)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c index 7437d4c8785..9f802d1b7fc 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ptr_init.c @@ -33,7 +33,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& B)); __e_acsl_delete_block((void *)(& A)); @@ -69,7 +69,7 @@ int main(void) __retres = 0; __e_acsl_delete_block((void *)(& y)); __e_acsl_delete_block((void *)(& x)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c index 225763b343e..63d1db28971 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_stdout.c @@ -16,7 +16,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& stdout)); __e_acsl_delete_block((void *)(& stdin)); @@ -53,7 +53,7 @@ int main(void) } /*@ assert \valid(__fc_stdout); */ ; __retres = 0; - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c index 133ae6895b7..872f31b112b 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid.c @@ -138,7 +138,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& Z)); __e_acsl_delete_block((void *)(& X)); @@ -533,7 +533,7 @@ int main(void) __e_acsl_delete_block((void *)(& c)); __e_acsl_delete_block((void *)(& b)); __e_acsl_delete_block((void *)(& a)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c index 39664bb15a9..8b6f8a3517a 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_darray.c @@ -58,7 +58,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(Vertices2)); __e_acsl_delete_block((void *)(Vertices)); @@ -116,7 +116,7 @@ int main(int argc, char const **argv) __e_acsl_delete_block((void *)(vertices3)); __e_acsl_delete_block((void *)(vertices2)); __e_acsl_delete_block((void *)(vertices)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c index a1ab4f085fb..a0774cc3429 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_fptr.c @@ -18,7 +18,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(& foo)); } @@ -69,7 +69,7 @@ int main(int argc, char const **argv) __e_acsl_delete_block((void *)(& fp)); __e_acsl_delete_block((void *)(& q)); __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c index bfb6fd16794..c91eca2c101 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_global_init.c @@ -110,7 +110,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(descs2)); __e_acsl_delete_block((void *)(& l_desc2)); @@ -204,7 +204,7 @@ int main(int argc, char const **argv) /*@ assert \valid_read(*p); */ ; __retres = 0; __e_acsl_delete_block((void *)(& p)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c index e77ce2220c0..1b6b3cd7af3 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/gen_t_local_init.c @@ -106,7 +106,7 @@ void __e_acsl_globals_init(void) return; } -void __e_acsl_globals_delete(void) +void __e_acsl_globals_clean(void) { __e_acsl_delete_block((void *)(Str)); __e_acsl_delete_block((void *)(Strings)); @@ -426,7 +426,7 @@ int main(int argc, char const **argv) __e_acsl_delete_block((void *)(str)); __e_acsl_delete_block((void *)(& p)); __e_acsl_delete_block((void *)(strings)); - __e_acsl_globals_delete(); + __e_acsl_globals_clean(); __e_acsl_memory_clean(); return __retres; } -- GitLab From 23005457554ac384b00ca2b6aaae65fb74a9cbfc Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 10 Sep 2020 16:30:28 +0200 Subject: [PATCH 179/255] [Kernel] extend -permissive to include unknown options --- .../cmdline_parameters/cmdline.ml | 29 +++++- .../cmdline_parameters/cmdline.mli | 7 ++ .../cmdline_parameters/parameter_builder.ml | 2 +- .../cmdline_parameters/parameter_customize.ml | 2 - .../parameter_customize.mli | 5 - .../plugin_entry_points/kernel.ml | 99 +++++++++---------- .../plugin_entry_points/kernel.mli | 3 + tests/misc/oracle/permissive.res.oracle | 3 + tests/misc/permissive.i | 6 ++ 9 files changed, 91 insertions(+), 65 deletions(-) create mode 100644 tests/misc/oracle/permissive.res.oracle create mode 100644 tests/misc/permissive.i diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index 9cc9722f843..8e6729761d0 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -76,6 +76,7 @@ let journal_isset_ref = ref false let use_obj_ref = ref true let use_type_ref = ref true let deterministic = ref false +let permissive = ref false let last_project_created_by_copy = ref (fun () -> assert false) @@ -268,6 +269,11 @@ let error name msg = "option `%s' %s.@\nuse `%s -help' for more information." name msg bin_name +let warning name msg = + Kernel_log.warning + "option `%s' %s, ignoring. [-permissive]@\n" + name msg + let all_options = match Array.to_list Sys.argv with | [] -> assert false | _binary :: l -> l @@ -343,6 +349,9 @@ let parse known_options_list then_expected options_list = unknown_options, nb_used, Some (then_options, Replace) | "-then-on" :: project_name :: then_options when then_expected -> unknown_options, nb_used, Some (then_options, Name project_name) + | "-permissive" :: next_options -> + permissive := true; + go unknown_options nb_used next_options | option :: (arg :: next_options as arg_next) -> let unknown, use_arg, is_used = parse_one_option unknown_options option arg @@ -386,6 +395,7 @@ let () = "-kernel-verbose", Int (fun n -> Kernel_verbose_level.set n); "-kernel-debug", Int (fun n -> Kernel_debug_level.set n); "-deterministic", Unit (fun () -> deterministic := true); + "-permissive", Unit (fun () -> permissive := true); ] false all_options @@ -417,6 +427,7 @@ let journal_isset = !journal_isset_ref let use_obj = !use_obj_ref let use_type = !use_type_ref let deterministic = !deterministic +let permissive = !permissive (* ************************************************************************* *) (** {2 Plugin} *) @@ -762,11 +773,19 @@ let use_cmdline_files = On_Files.extend let set_files used_loading l = Kernel_log.feedback ~dkey "setting files from command lines."; - List.iter - (fun s -> - if s = "" then error "" "has no name. What do you exactly have in mind?"; - if s.[0] = '-' then error s "is unknown") - l; + let l = + List.fold_right + (fun s acc -> + if s = "" then + if permissive then (warning "" "has no name"; acc) + else error "" "has no name. What do you exactly have in mind?" + else if s.[0] = '-' then + if permissive then (warning s "is unknown"; acc) + else error s "is unknown" + else + s :: acc + ) l [] + in assert (Kernel_log.verify (not (On_Files.is_empty ())) diff --git a/src/kernel_services/cmdline_parameters/cmdline.mli b/src/kernel_services/cmdline_parameters/cmdline.mli index 025cb258599..8162a9f0030 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.mli +++ b/src/kernel_services/cmdline_parameters/cmdline.mli @@ -396,6 +396,13 @@ val deterministic: bool are acceptable, as reproducibility is more important. @since Aluminium-20160501 *) +val permissive: bool + (** Downgrades some command-line errors to warnings, such as + unknown option names and invalid values for some options + (e.g. inexistent function names). + + @since Frama-C+dev *) + val last_project_created_by_copy: (unit -> string option) ref val load_all_plugins: (unit -> unit) ref diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.ml b/src/kernel_services/cmdline_parameters/parameter_builder.ml index 5675500ced7..fbad1cab327 100644 --- a/src/kernel_services/cmdline_parameters/parameter_builder.ml +++ b/src/kernel_services/cmdline_parameters/parameter_builder.ml @@ -1031,7 +1031,7 @@ struct if must_exist then error s else - if !Parameter_customize.is_permissive_ref then begin + if Cmdline.permissive then begin P.L.warning "ignoring non-existing function%s '%s'." specific_msg s; set diff --git a/src/kernel_services/cmdline_parameters/parameter_customize.ml b/src/kernel_services/cmdline_parameters/parameter_customize.ml index 9781ec098dc..2a6a18e92cd 100644 --- a/src/kernel_services/cmdline_parameters/parameter_customize.ml +++ b/src/kernel_services/cmdline_parameters/parameter_customize.ml @@ -93,8 +93,6 @@ let is_invisible () = let use_category_ref = ref true let no_category () = use_category_ref := false -let is_permissive_ref = ref false - let find_kf_by_name: (string -> Cil_types.kernel_function) ref = Extlib.mk_fun "Parameter_customize.find_kf_by_name" diff --git a/src/kernel_services/cmdline_parameters/parameter_customize.mli b/src/kernel_services/cmdline_parameters/parameter_customize.mli index f919786877f..d2697198825 100644 --- a/src/kernel_services/cmdline_parameters/parameter_customize.mli +++ b/src/kernel_services/cmdline_parameters/parameter_customize.mli @@ -143,11 +143,6 @@ val no_category: unit -> unit @since Sodium-20150201 *) -val is_permissive_ref: bool ref -(** if [true], less checks are performed on value of arguments. - Set by {!Kernel.Permissive} option - *) - (* ************************************************************************* *) (** {2 Function names} *) (* ************************************************************************* *) diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index c4b3ed0833f..869402e01d9 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -521,23 +521,6 @@ let () = Quiet.add_set_hook (fun _ b -> assert b; GeneralVerbose.set 0; GeneralDebug.set 0) -let () = Parameter_customize.set_group messages -let () = Parameter_customize.set_cmdline_stage Cmdline.Early -let () = Parameter_customize.do_not_projectify () -let () = Parameter_customize.do_not_journalize () -module Permissive = - Bool - (struct - let default = !Parameter_customize.is_permissive_ref - let option_name = "-permissive" - let module_name = "Permissive" - let help = - "performs less verification on validity of command-line options" - end) -let () = - Permissive.add_set_hook - (fun _ b -> Parameter_customize.is_permissive_ref := b) - let () = Parameter_customize.set_group messages let () = Parameter_customize.set_cmdline_stage Cmdline.Extended let () = Parameter_customize.do_not_journalize () @@ -1650,11 +1633,45 @@ let () = Project.Datatype.Set.iter (fun project -> Project.remove ~project ()) s) (* ************************************************************************* *) -(** {2 Others options} *) +(** {2 Checks} *) +(* ************************************************************************* *) + +let checks = add_group "Checks" + +let () = Parameter_customize.set_group checks +let () = Parameter_customize.do_not_reset_on_copy () +module Check = + False(struct + let option_name = "-check" + let module_name = "Check" + let help = "performs consistency checks over the Abstract Syntax \ + Tree" + end) + +let () = Parameter_customize.set_group checks +module Copy = + False(struct + let option_name = "-copy" + let module_name = "Copy" + let help = + "always perform a copy of the original AST before analysis begin" + end) + +let () = Parameter_customize.set_group checks +let () = Parameter_customize.set_negative_option_name "" +module TypeCheck = + True(struct + let module_name = "TypeCheck" + let option_name = "-typecheck" + let help = "forces typechecking of the source files" + end) + +(* ************************************************************************* *) +(** {2 Other options} *) (* ************************************************************************* *) [@@@warning "-60"] -(* Warning this three options are parsed and used directly from Cmdline *) +(* Warning: these options are parsed and used directly from Cmdline *) let () = Parameter_customize.set_negative_option_name "" let () = Parameter_customize.set_cmdline_stage Cmdline.Early @@ -1692,41 +1709,19 @@ module Deterministic = let help = "" end) -[@@@warning "+60"] - -(* ************************************************************************* *) -(** {2 Checks} *) -(* ************************************************************************* *) - -let checks = add_group "Checks" - -let () = Parameter_customize.set_group checks -let () = Parameter_customize.do_not_reset_on_copy () -module Check = - False(struct - let option_name = "-check" - let module_name = "Check" - let help = "performs consistency checks over the Abstract Syntax \ - Tree" - end) - -let () = Parameter_customize.set_group checks -module Copy = - False(struct - let option_name = "-copy" - let module_name = "Copy" - let help = - "always perform a copy of the original AST before analysis begin" - end) - let () = Parameter_customize.set_group checks let () = Parameter_customize.set_negative_option_name "" -module TypeCheck = - True(struct - let module_name = "TypeCheck" - let option_name = "-typecheck" - let help = "forces typechecking of the source files" - end) +let () = Parameter_customize.set_cmdline_stage Cmdline.Early +module Permissive = + False + (struct + let module_name = "Permissive" + let option_name = "-permissive" + let help = + "perform less verifications on validity of command-line options" + end) + +[@@@warning "+60"] (* Local Variables: diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index fd3da8db17c..4ee7fc8182a 100644 --- a/src/kernel_services/plugin_entry_points/kernel.mli +++ b/src/kernel_services/plugin_entry_points/kernel.mli @@ -246,6 +246,9 @@ module GeneralDebug: Parameter_sig.Int module Quiet: Parameter_sig.Bool (** Behavior of option "-quiet" *) +module Permissive: Parameter_sig.Bool +(** Behavior of option "-permissive" *) + (** @plugin development guide *) module Unicode: sig include Parameter_sig.Bool diff --git a/tests/misc/oracle/permissive.res.oracle b/tests/misc/oracle/permissive.res.oracle new file mode 100644 index 00000000000..0ab1f5d114c --- /dev/null +++ b/tests/misc/oracle/permissive.res.oracle @@ -0,0 +1,3 @@ +[kernel] Warning: option `-non-existing-option' is unknown, ignoring. [-permissive] +[kernel] Parsing tests/misc/permissive.i (no preprocessing) +[kernel] Warning: ignoring non-existing function 'non_existing_function'. diff --git a/tests/misc/permissive.i b/tests/misc/permissive.i new file mode 100644 index 00000000000..2daf3446926 --- /dev/null +++ b/tests/misc/permissive.i @@ -0,0 +1,6 @@ +/*run.config + OPT: -permissive -non-existing-option -inline-calls non_existing_function +*/ + +void main() { +} -- GitLab From 4d07346d3d0604ec74add6116f3f23f62842eab7 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 21 Sep 2020 10:23:56 +0200 Subject: [PATCH 180/255] [Kernel] minor fixes after review --- src/kernel_services/cmdline_parameters/cmdline.mli | 2 +- src/kernel_services/plugin_entry_points/kernel.ml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/kernel_services/cmdline_parameters/cmdline.mli b/src/kernel_services/cmdline_parameters/cmdline.mli index 8162a9f0030..0d90e2d6dbe 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.mli +++ b/src/kernel_services/cmdline_parameters/cmdline.mli @@ -399,7 +399,7 @@ val deterministic: bool val permissive: bool (** Downgrades some command-line errors to warnings, such as unknown option names and invalid values for some options - (e.g. inexistent function names). + (e.g. non-existent function names). @since Frama-C+dev *) diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 869402e01d9..83c199a92dc 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -1639,6 +1639,7 @@ let () = let checks = add_group "Checks" let () = Parameter_customize.set_group checks +let () = Parameter_customize.do_not_projectify () let () = Parameter_customize.do_not_reset_on_copy () module Check = False(struct @@ -1649,6 +1650,7 @@ module Check = end) let () = Parameter_customize.set_group checks +let () = Parameter_customize.do_not_projectify () module Copy = False(struct let option_name = "-copy" @@ -1658,6 +1660,7 @@ module Copy = end) let () = Parameter_customize.set_group checks +let () = Parameter_customize.do_not_projectify () let () = Parameter_customize.set_negative_option_name "" module TypeCheck = True(struct @@ -1710,6 +1713,7 @@ module Deterministic = end) let () = Parameter_customize.set_group checks +let () = Parameter_customize.do_not_projectify () let () = Parameter_customize.set_negative_option_name "" let () = Parameter_customize.set_cmdline_stage Cmdline.Early module Permissive = -- GitLab From e61551a8f1fccc4451a66c28ff06e1726dc27e64 Mon Sep 17 00:00:00 2001 From: Julien Signoles <julien.signoles@cea.fr> Date: Mon, 21 Sep 2020 11:16:53 +0200 Subject: [PATCH 181/255] changelog --- Changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Changelog b/Changelog index 281ea948fa2..76ba6294e47 100644 --- a/Changelog +++ b/Changelog @@ -16,6 +16,9 @@ ################################## Open Source Release <next-release> ################################## + +- Kernel [2020-09-21] Option -permissive now allows non-existent option + names. - Logic [2020-09-11] Introduce check-only annotations for requires, ensures, loop invariant and lemmas - Kernel [2020-09-08] Add option -print-cpp-commands, to print the -- GitLab From 857d2db3339d1bb7ef2e32c2d84f98aad88532c6 Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Mon, 21 Sep 2020 14:28:04 +0200 Subject: [PATCH 182/255] Do not remove sources in the docker image when compilation fails --- devel_tools/docker/frama-c.custom/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devel_tools/docker/frama-c.custom/Dockerfile b/devel_tools/docker/frama-c.custom/Dockerfile index 226b19fcf00..c742082bbd4 100644 --- a/devel_tools/docker/frama-c.custom/Dockerfile +++ b/devel_tools/docker/frama-c.custom/Dockerfile @@ -47,7 +47,7 @@ RUN cd /root && \ make -j && \ make install \ ) && \ - [ "${with_source}" != "no" ] || rm -rf frama-c + ([ "${with_source}" != "no" ] || rm -rf frama-c) # with_test: run Frama-C tests; requires "with_source=yes" ARG with_test=no -- GitLab From b7c324c420a8b2f4f6bd03f23a8d2aff5c0a550e Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 21 Sep 2020 17:06:37 +0200 Subject: [PATCH 183/255] [Doc] update installation details in User Manual --- doc/userman/user-start.tex | 63 ++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 36 deletions(-) diff --git a/doc/userman/user-start.tex b/doc/userman/user-start.tex index 0822ca20404..bd0a7d6d9e3 100644 --- a/doc/userman/user-start.tex +++ b/doc/userman/user-start.tex @@ -6,9 +6,8 @@ This chapter describes \emph{how} to install \FramaC and \section{Installation}\label{sec:install}\index{Installation} -The \FramaC platform is distributed as source code. Binaries -are also available for popular architectures. All distributions -include the \FramaC kernel and a base set of open-source plug-ins. +The \FramaC platform is distributed as source code, including the \FramaC kernel +and a base set of open-source plug-ins. The recommended way to install \FramaC is by using the \opam\index{opam}\footnote{\url{http://opam.ocaml.org}} package manager to @@ -22,46 +21,38 @@ there is a delay between each new \FramaC release and the availability of a binary package for the considered platform. Finally, \FramaC can be compiled and installed from the source distribution, -as long as its dependencies have already been installed. +as long as its dependencies have already been installed. The exact set of +dependencies varies from release to release. They are listed as constraints +in the \texttt{opam/opam} file of the source distribution. + +A {\em reference configuration}, guaranteed to be a working set of dependencies +for \FramaC kernel and the open-source plug-ins included in the source +distribution, is available in the \texttt{reference-configuration.md} file of +the source distribution. + +For more installation instructions, consider reading the \texttt{INSTALL.md} +file of the source distribution. The main components necessary for compiling +and running \FramaC are described below. -The dependencies of the \FramaC kernel are as follows. Each plug-in may -define its own set of additional dependencies. -Instructions for installing \FramaC from source -may be found in the file \texttt{INSTALL.md} of the source distribution. \begin{description} \item[A \C pre-processor]\index{C pre-processor} is required for \emph{using} - \FramaC on \C files. By default, \FramaC tries to use \texttt{gcc -C -E -I.} - as pre-processing command, but this command can be customized (see - Section~\ref{sec:preprocessing}). If you do not have any \C pre-processor, + \FramaC on \C files. If you do not have any \C pre-processor, you can only run \FramaC on already pre-processed \texttt{.i} files. -\item[A \C compiler]\index{C compiler} is required to compile the \FramaC kernel. -\item[A \tool{Unix}-like compilation environment] is mandatory and shall - have at least the tool \texttt{GNU - make}\footnote{\url{http://www.gnu.org/software/make}} version 3.81 or - higher, as well as various POSIX commands, libraries and header files. +\item[A \C compiler]\index{C compiler} is required to compile the \FramaC + kernel. +\item[A \tool{Unix}-like compilation environment] with at least the tool + \texttt{GNU make}\footnote{\url{http://www.gnu.org/software/make}}, + as well as various POSIX commands, libraries and header files, is necessary + for compiling \FramaC and its plug-ins. \item[The \caml compiler]\index{OCaml compiler}\footnote{\url{http://ocaml.org}} - is required both for compiling \FramaC from source \emph{and} for compiling additional - plug-ins. Version greater or equal than 4.05.0 of the compiler must be used. - -% Support for some plug-ins in native compilation mode (see -% Section~\ref{sec:modes})\index{Native-compiled} requires the so-called -% \emph{native dynamic linking} feature of \caml. -\item[\tool{Gtk}-related - packages:]\codeidx{GTK+}\codeidx{Lablgtk}\codeidx{GtkSourceView} \tool{\sc - gtk+}\footnote{\url{http://www.gtk.org}} version 2.4 or higher, - \tool{GtkSourceView}\footnote{\url{http://projects.gnome.org/gtksourceview}} - version 2.x, \tool{GnomeCanvas}\footnote{\url{http://library.gnome.org/devel/libgnomecanvas}} version 2.x as well as - \tool{LablGtk}\footnote{\url{http://lablgtk.forge.ocamlcore.org}} - version 2.18.2 or higher are required for building the Graphical User Interface - (GUI) of \FramaC. -\item[\tool{OcamlGraph} package:]\codeidx{OcamlGraph} \FramaC needs the - \tool{OcamlGraph}\footnote{\url{http://ocamlgraph.lri.fr}} package, version - $1.8.8$. -\item[\tool{Zarith} package:]\codeidx{Zarith} \FramaC requires the - \tool{Zarith}\footnote{\url{http://forge.ocamlcore.org/projects/zarith}} - package, used for large integer computations. + is required both for compiling \FramaC from source \emph{and} for compiling + additional plug-ins. Compatible OCaml versions are listed as constraints in + the \texttt{opam/opam} file. \end{description} +Other components, such as OcamlGraph, Zarith, Gtk-related packages for the GUI, +etc., are listed in the \texttt{INSTALL.md} and \texttt{opam/opam} files. + \section{One Framework, Several Executables}\label{sec:modes} \FramaC installs some executables\footnote{On Windows OS, the -- GitLab From 66490704cb5131faad715849b0d27934798b7bbd Mon Sep 17 00:00:00 2001 From: Julien Signoles <julien.signoles@cea.fr> Date: Mon, 21 Sep 2020 17:26:42 +0200 Subject: [PATCH 184/255] [userman] update changes --- doc/userman/user-changes.tex | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/userman/user-changes.tex b/doc/userman/user-changes.tex index ae1a9e54c79..5689809133c 100644 --- a/doc/userman/user-changes.tex +++ b/doc/userman/user-changes.tex @@ -6,6 +6,7 @@ release. First we list changes of the last release. \section*{\nextframacversion} \begin{itemize} +\item \textbf{Getting Started:} updated installation instructions. \item \textbf{Preparing the Sources:} added option \texttt{-print-cpp-commands}. \item \textbf{Reports:} add section about SARIF output -- GitLab From 4f321fac3d4020f08aab11325654d0abd8586921 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 22 Sep 2020 09:12:53 +0200 Subject: [PATCH 185/255] [Wp/Doc] fix typo in option name --- src/plugins/wp/doc/manual/wp_plugin.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/wp/doc/manual/wp_plugin.tex b/src/plugins/wp/doc/manual/wp_plugin.tex index 650b869af3e..3e343ef02f7 100644 --- a/src/plugins/wp/doc/manual/wp_plugin.tex +++ b/src/plugins/wp/doc/manual/wp_plugin.tex @@ -1455,7 +1455,7 @@ several categories of formatters (PO stands for \emph{Proof Obligations}): can be written \verb+"%.."+ or \verb+"%{..}"+. When \verb+range+ is used instead of \verb+steps+, the maximal number $n$ of steps is printed as a range $a..b$ that contains $n$. -When option \verb+-report-json+ is used, the previous rank $a$ and $b$ are kept when +When option \verb+-wp-report-json+ is used, the previous rank $a$ and $b$ are kept when available and still fits with the new maximal step number. Otherwise, $a$ and $b$ are re-adjusted following an heurisitics designed to increase the stability for non-regression testing. -- GitLab From a1fbeef76961fe564381881914cd8acadc6dbef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Sun, 20 Sep 2020 18:57:57 +0200 Subject: [PATCH 186/255] [wp] refactoring task & cache for batch mode --- src/plugins/wp/Cache.ml | 37 ++++++----------- src/plugins/wp/Cache.mli | 11 +++-- src/plugins/wp/ProverWhy3.ml | 77 ++++++++++++++++++++--------------- src/plugins/wp/Why3Provers.ml | 2 + 4 files changed, 66 insertions(+), 61 deletions(-) diff --git a/src/plugins/wp/Cache.ml b/src/plugins/wp/Cache.ml index 65da7ca4b52..74e6c3b7ea8 100644 --- a/src/plugins/wp/Cache.ml +++ b/src/plugins/wp/Cache.ml @@ -141,22 +141,6 @@ let is_updating () = | NoCache | Replay | Offline -> false | Update | Rebuild | Cleanup -> true -let task_hash wpo drv prover task = - lazy - begin - let file = Wpo.DISK.file_goal - ~pid:wpo.Wpo.po_pid - ~model:wpo.Wpo.po_model - ~prover:(VCS.Why3 prover) in - let _ = Command.print_file file - begin fun fmt -> - Format.fprintf fmt "(* WP Task for Prover %s *)@\n" - (Why3Provers.print_why3 prover) ; - Why3.Driver.print_task_prepared drv fmt task ; - end - in Digest.file file |> Digest.to_hex - end - let time_fits time = function | None | Some 0 -> true | Some limit -> time <= float limit @@ -256,23 +240,24 @@ let cleanup_cache () = Wp_parameters.warning ~current:false "Cannot cleanup cache" -type runner = - timeout:int option -> steplimit:int option -> - Why3.Driver.driver -> Why3Provers.t -> Why3.Task.task -> +type 'a digest = + Why3Provers.t -> 'a -> string + +type 'a runner = + timeout:int option -> steplimit:int option -> Why3Provers.t -> 'a -> VCS.result Task.task -let get_result wpo runner ~timeout ~steplimit drv prover task = +let get_result ~digest ~runner ~timeout ~steplimit prover goal = let mode = get_mode () in match mode with - | NoCache -> - runner ~timeout ~steplimit drv prover task + | NoCache -> runner ~timeout ~steplimit prover goal | Offline -> - let hash = task_hash wpo drv prover task in + let hash = lazy (digest prover goal) in let result = get_cache_result ~mode hash |> VCS.cached in if VCS.is_verdict result then incr hits else incr miss ; Task.return result | Update | Replay | Rebuild | Cleanup -> - let hash = task_hash wpo drv prover task in + let hash = lazy (digest prover goal) in let result = get_cache_result ~mode hash |> promote ~timeout ~steplimit |> VCS.cached in @@ -284,10 +269,12 @@ let get_result wpo runner ~timeout ~steplimit drv prover task = end else Task.finally - (runner ~timeout ~steplimit drv prover task) + (runner ~timeout ~steplimit prover goal) begin function | Task.Result result when VCS.is_verdict result -> incr miss ; set_cache_result ~mode hash prover result | _ -> () end + +(* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/Cache.mli b/src/plugins/wp/Cache.mli index 85130ef5bbf..7197a8dc222 100644 --- a/src/plugins/wp/Cache.mli +++ b/src/plugins/wp/Cache.mli @@ -34,9 +34,12 @@ val is_updating : unit -> bool val cleanup_cache : unit -> unit -type runner = - timeout:int option -> steplimit:int option -> - Why3.Driver.driver -> Why3Provers.t -> Why3.Task.task -> +type 'a digest = Why3Provers.t -> 'a -> string + +type 'a runner = + timeout:int option -> steplimit:int option -> Why3Provers.t -> 'a -> VCS.result Task.task -val get_result: Wpo.t -> runner -> runner +val get_result: digest:('a digest) -> runner:('a runner) -> 'a runner + +(**************************************************************************) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index d19bacb5bd4..17a55fcf05e 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1198,34 +1198,11 @@ let ping_prover_call p = VCS.pp_result r; Task.Return (Task.Result r) -let call_prover prover_config ~timeout ~steplimit drv prover task = - let steps = match steplimit with Some 0 -> None | _ -> steplimit in - let limit = - let def = Why3.Call_provers.empty_limit in - { def with - Why3.Call_provers.limit_time = Why3.Opt.get_def def.limit_time timeout; - Why3.Call_provers.limit_steps = Why3.Opt.get_def def.limit_time steps; - } in - let with_steps = match steps, prover_config.Why3.Whyconf.command_steps with - | None, _ -> false - | Some _, Some _ -> true - | Some _, None -> - Wp_parameters.warning ~once:true ~current:false - "%a does not support steps limit (ignored option)" - Why3.Whyconf.print_prover prover ; - false - in - let command = Why3.Whyconf.get_complete_command prover_config ~with_steps in - let call = - Why3.Driver.prove_task_prepared ~command ~limit drv task in - let pp_steps fmt s = - if with_steps then Format.fprintf fmt "%i steps" (Why3.Opt.get_def (-1) s) - else Format.fprintf fmt "" - in - Wp_parameters.debug ~dkey "Why3 run prover %a with %i timeout %a@." +let call_prover_task ~timeout ~steps prover call = + Wp_parameters.debug ~dkey "Why3 run prover %a with timeout %d, steps %d@." Why3.Whyconf.print_prover prover (Why3.Opt.get_def (-1) timeout) - pp_steps steps ; + (Why3.Opt.get_def (-1) steps) ; let timeout = match timeout with None -> 0 | Some tlimit -> tlimit in let pcall = { call ; prover ; @@ -1242,14 +1219,48 @@ let call_prover prover_config ~timeout ~steplimit drv prover task = in Task.async ping -let is_trivial (t : Why3.Task.task) = - let goal = Why3.Task.task_goal_fmla t in - Why3.Term.t_equal goal Why3.Term.t_true +(* -------------------------------------------------------------------------- *) +(* --- Batch Prover --- *) +(* -------------------------------------------------------------------------- *) + +let digest wpo drv prover task = + let file = Wpo.DISK.file_goal + ~pid:wpo.Wpo.po_pid + ~model:wpo.Wpo.po_model + ~prover:(VCS.Why3 prover) in + let _ = Command.print_file file + begin fun fmt -> + Format.fprintf fmt "(* WP Task for Prover %s *)@\n" + (Why3Provers.print_why3 prover) ; + Why3.Driver.print_task_prepared drv fmt task ; + end + in Digest.file file |> Digest.to_hex + +let batch pconf driver ~timeout ~steplimit prover task = + let steps = match steplimit with Some 0 -> None | _ -> steplimit in + let limit = + let def = Why3.Call_provers.empty_limit in + { def with + Why3.Call_provers.limit_time = Why3.Opt.get_def def.limit_time timeout; + Why3.Call_provers.limit_steps = Why3.Opt.get_def def.limit_time steps; + } in + let with_steps = match steps, pconf.Why3.Whyconf.command_steps with + | None, _ -> false + | Some _, Some _ -> true + | Some _, None -> false + in + let command = Why3.Whyconf.get_complete_command pconf ~with_steps in + let call = Why3.Driver.prove_task_prepared ~command ~limit driver task in + call_prover_task ~timeout ~steps prover call (* -------------------------------------------------------------------------- *) (* --- Prove WPO --- *) (* -------------------------------------------------------------------------- *) +let is_trivial (t : Why3.Task.task) = + let goal = Why3.Task.task_goal_fmla t in + Why3.Term.t_equal goal Why3.Term.t_true + let build_proof_task ?timeout ?steplimit ~prover wpo () = try (* Always generate common task *) @@ -1259,12 +1270,14 @@ let build_proof_task ?timeout ?steplimit ~prover wpo () = then Task.return VCS.no_result (* Only generate *) else let env = WpContext.on_context context get_why3_env () in - let drv , config , task = prover_task env prover task in + let drv , pconf , task = prover_task env prover task in if is_trivial task then Task.return VCS.valid else - Cache.get_result wpo (call_prover config) - ~timeout ~steplimit drv prover task + Cache.get_result + ~digest:(digest wpo drv) + ~runner:(batch pconf drv) + ~timeout ~steplimit prover task with exn -> if Wp_parameters.has_dkey dkey_api then Wp_parameters.fatal "[Why3 Error] %a@\n%s" diff --git a/src/plugins/wp/Why3Provers.ml b/src/plugins/wp/Why3Provers.ml index ab50c9858b2..46a1f714ab5 100644 --- a/src/plugins/wp/Why3Provers.ml +++ b/src/plugins/wp/Why3Provers.ml @@ -109,3 +109,5 @@ let has_shortcut p s = (Why3.Whyconf.get_prover_shortcuts (config ())) with | None -> false | Some p' -> Why3.Whyconf.Prover.equal p p' + +(* -------------------------------------------------------------------------- *) -- GitLab From 43bf7404d56bef281cae3a7bd908dacc794ae3a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 10:17:57 +0200 Subject: [PATCH 187/255] [wp] draft of why3-coq prover --- src/plugins/wp/ProverWhy3.ml | 51 +++++++++++++++++++++++++++++++++--- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 17a55fcf05e..2a5bbea102a 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1236,7 +1236,7 @@ let digest wpo drv prover task = end in Digest.file file |> Digest.to_hex -let batch pconf driver ~timeout ~steplimit prover task = +let batch pconf driver ?script ~timeout ~steplimit prover task = let steps = match steplimit with Some 0 -> None | _ -> steplimit in let limit = let def = Why3.Call_provers.empty_limit in @@ -1250,9 +1250,51 @@ let batch pconf driver ~timeout ~steplimit prover task = | Some _, None -> false in let command = Why3.Whyconf.get_complete_command pconf ~with_steps in - let call = Why3.Driver.prove_task_prepared ~command ~limit driver task in + let inplace = if script <> None then Some true else None in + let call = Why3.Driver.prove_task_prepared ?old:script ?inplace + ~command ~limit driver task in call_prover_task ~timeout ~steps prover call +(* -------------------------------------------------------------------------- *) +(* --- Interactive Prover (Coq) --- *) +(* -------------------------------------------------------------------------- *) + +let editor pconf = + let config = Why3Provers.config () in + try + let ed = Why3.Whyconf.editor_by_id config pconf.Why3.Whyconf.editor in + String.concat " " (ed.editor_command :: ed.editor_options) + with Not_found -> + Why3.Whyconf.(default_editor (get_main config)) +[@@ warning "-32"] + +let script ~force wpo = + let dir = Wp_parameters.get_session_dir ~force "coq" in + Format.sprintf "%s/%s.v" (dir :> string) wpo.Wpo.po_sid + +let prepare ~file driver task = + Command.pp_to_file file (fun fmt -> + ignore (Why3.Driver.print_task_prepared driver fmt task) + ) + +let editscript ~file pconf = + let call = Why3.Call_provers.call_editor ~command:(editor pconf) file in + call_prover_task ~timeout:None ~steps:None pconf.prover call + +let interactive wpo pconf driver prover task = + let file = script ~force:true wpo in + if not (Sys.file_exists file) then prepare ~file driver task ; + let time = Wp_parameters.CoqTimeout.get () in + let timeout = if time <= 0 then None else Some time in + let open Task in + batch pconf driver ~script:file ~timeout ~steplimit:None prover task + >>= fun result -> + if VCS.is_valid result then + Task.return result + else + editscript ~file pconf >>= fun _ -> + batch pconf driver ~script:file ~timeout ~steplimit:None prover task + (* -------------------------------------------------------------------------- *) (* --- Prove WPO --- *) (* -------------------------------------------------------------------------- *) @@ -1273,10 +1315,13 @@ let build_proof_task ?timeout ?steplimit ~prover wpo () = let drv , pconf , task = prover_task env prover task in if is_trivial task then Task.return VCS.valid + else + if prover.prover_name = "Coq" then + interactive wpo pconf drv prover task else Cache.get_result ~digest:(digest wpo drv) - ~runner:(batch pconf drv) + ~runner:(batch pconf drv ?script:None) ~timeout ~steplimit prover task with exn -> if Wp_parameters.has_dkey dkey_api then -- GitLab From 527755fa23cec8fa5fee71c144386d63a946ae4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 10:25:14 +0200 Subject: [PATCH 188/255] [wp] prover coq is ok --- src/plugins/wp/ProverWhy3.ml | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 2a5bbea102a..c99841c04e5 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1153,18 +1153,20 @@ let ping_prover_call p = match Why3.Call_provers.query_call p.call with | NoUpdates | ProverStarted -> - let () = match p.timeover with - | None -> - let started = Unix.time () in - p.timeover <- Some (started +. 2.0 +. float p.timeout) - | Some timeout -> - let time = Unix.time () in - if time > timeout then - begin - Wp_parameters.debug ~dkey "Hard Kill (late why3server timeout)" ; - p.interrupted <- true ; - Why3.Call_provers.interrupt_call p.call ; - end + let () = + if p.timeout > 0 then + match p.timeover with + | None -> + let started = Unix.time () in + p.timeover <- Some (started +. 2.0 +. float p.timeout) + | Some timeout -> + let time = Unix.time () in + if time > timeout then + begin + Wp_parameters.debug ~dkey "Hard Kill (late why3server timeout)" ; + p.interrupted <- true ; + Why3.Call_provers.interrupt_call p.call ; + end in Task.Wait 100 | InternalFailure exn -> let msg = Format.asprintf "@[<hov 2>%a@]" @@ -1279,9 +1281,10 @@ let prepare ~file driver task = let editscript ~file pconf = let call = Why3.Call_provers.call_editor ~command:(editor pconf) file in + Wp_parameters.feedback ~ontty:`Transient "Editing %S..." file ; call_prover_task ~timeout:None ~steps:None pconf.prover call -let interactive wpo pconf driver prover task = +let interactive ~ide wpo pconf driver prover task = let file = script ~force:true wpo in if not (Sys.file_exists file) then prepare ~file driver task ; let time = Wp_parameters.CoqTimeout.get () in @@ -1289,7 +1292,7 @@ let interactive wpo pconf driver prover task = let open Task in batch pconf driver ~script:file ~timeout ~steplimit:None prover task >>= fun result -> - if VCS.is_valid result then + if not ide || VCS.is_valid result then Task.return result else editscript ~file pconf >>= fun _ -> @@ -1317,7 +1320,7 @@ let build_proof_task ?timeout ?steplimit ~prover wpo () = Task.return VCS.valid else if prover.prover_name = "Coq" then - interactive wpo pconf drv prover task + interactive ~ide:true wpo pconf drv prover task else Cache.get_result ~digest:(digest wpo drv) -- GitLab From e0c6993f0c215cb0949cb709a77ea9d949ed0bda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 11:13:02 +0200 Subject: [PATCH 189/255] [wp] prover mode for why3 --- src/plugins/wp/ProverWhy3.ml | 74 ++++++++++++++++++++++------------- src/plugins/wp/ProverWhy3.mli | 4 +- src/plugins/wp/VCS.ml | 10 ++++- src/plugins/wp/prover.ml | 2 +- 4 files changed, 58 insertions(+), 32 deletions(-) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index c99841c04e5..5613f905d4f 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1268,35 +1268,53 @@ let editor pconf = String.concat " " (ed.editor_command :: ed.editor_options) with Not_found -> Why3.Whyconf.(default_editor (get_main config)) -[@@ warning "-32"] -let script ~force wpo = - let dir = Wp_parameters.get_session_dir ~force "coq" in - Format.sprintf "%s/%s.v" (dir :> string) wpo.Wpo.po_sid +let scriptfile ~force ~ext wpo = + let dir = Wp_parameters.get_session_dir ~force "interactive" in + Format.sprintf "%s/%s.%s" (dir :> string) wpo.Wpo.po_sid ext -let prepare ~file driver task = - Command.pp_to_file file (fun fmt -> - ignore (Why3.Driver.print_task_prepared driver fmt task) - ) - -let editscript ~file pconf = - let call = Why3.Call_provers.call_editor ~command:(editor pconf) file in - Wp_parameters.feedback ~ontty:`Transient "Editing %S..." file ; +let call_editor ~script pconf = + Wp_parameters.feedback ~ontty:`Transient "Editing %S..." script ; + let call = Why3.Call_provers.call_editor ~command:(editor pconf) script in call_prover_task ~timeout:None ~steps:None pconf.prover call -let interactive ~ide wpo pconf driver prover task = - let file = script ~force:true wpo in - if not (Sys.file_exists file) then prepare ~file driver task ; +let compile ~script ~timeout pconf driver prover task = + let digest _prover _task = Digest.file script |> Digest.to_hex in + let runner = batch pconf driver ~script in + Cache.get_result ~digest ~runner ~timeout ~steplimit:None prover task + +let prepare ~mode wpo driver task = + let force = match mode with VCS.BatchMode -> false | _ -> true in + let ext = Filename.extension (Why3.Driver.file_of_task driver "S" "T" task) in + let script = scriptfile ~force wpo ~ext in + if Sys.file_exists script then Some script + else if force then + begin + Command.pp_to_file script (fun fmt -> + ignore (Why3.Driver.print_task_prepared driver fmt task) + ) ; Some script + end + else None + +let interactive ~mode wpo pconf driver prover task = let time = Wp_parameters.CoqTimeout.get () in let timeout = if time <= 0 then None else Some time in - let open Task in - batch pconf driver ~script:file ~timeout ~steplimit:None prover task - >>= fun result -> - if not ide || VCS.is_valid result then - Task.return result - else - editscript ~file pconf >>= fun _ -> - batch pconf driver ~script:file ~timeout ~steplimit:None prover task + match prepare ~mode wpo driver task with + | None -> Task.return VCS.unknown + | Some script -> + match mode with + | VCS.BatchMode -> + compile ~script ~timeout pconf driver prover task + | VCS.EditMode -> + let open Task in + call_editor ~script pconf >>= fun _ -> + compile ~script ~timeout pconf driver prover task + | VCS.FixMode -> + let open Task in + compile ~script ~timeout pconf driver prover task >>= fun r -> + if VCS.is_valid r then return r else + call_editor ~script pconf >>= fun _ -> + compile ~script ~timeout pconf driver prover task (* -------------------------------------------------------------------------- *) (* --- Prove WPO --- *) @@ -1306,7 +1324,7 @@ let is_trivial (t : Why3.Task.task) = let goal = Why3.Task.task_goal_fmla t in Why3.Term.t_equal goal Why3.Term.t_true -let build_proof_task ?timeout ?steplimit ~prover wpo () = +let build_proof_task ?(mode=VCS.BatchMode) ?timeout ?steplimit ~prover wpo () = try (* Always generate common task *) let context = Wpo.get_context wpo in @@ -1319,8 +1337,8 @@ let build_proof_task ?timeout ?steplimit ~prover wpo () = if is_trivial task then Task.return VCS.valid else - if prover.prover_name = "Coq" then - interactive ~ide:true wpo pconf drv prover task + if pconf.interactive then + interactive ~mode wpo pconf drv prover task else Cache.get_result ~digest:(digest wpo drv) @@ -1334,7 +1352,7 @@ let build_proof_task ?timeout ?steplimit ~prover wpo () = else Task.failed "[Why3 Error] %a" Why3.Exn_printer.exn_printer exn -let prove ?timeout ?steplimit ~prover wpo = - Task.later (build_proof_task ?timeout ?steplimit ~prover wpo) () +let prove ?mode ?timeout ?steplimit ~prover wpo = + Task.later (build_proof_task ?mode ?timeout ?steplimit ~prover wpo) () (* -------------------------------------------------------------------------- *) diff --git a/src/plugins/wp/ProverWhy3.mli b/src/plugins/wp/ProverWhy3.mli index ea029e0804b..e29b681ff44 100644 --- a/src/plugins/wp/ProverWhy3.mli +++ b/src/plugins/wp/ProverWhy3.mli @@ -26,8 +26,8 @@ val add_specific_equality: unit (** Equality used in the goal, simpler to prove than polymorphic equality *) -val prove : ?timeout:int -> ?steplimit:int -> prover:Why3Provers.t -> - Wpo.t -> VCS.result Task.task +val prove : ?mode:VCS.mode -> ?timeout:int -> ?steplimit:int -> + prover:Why3Provers.t -> Wpo.t -> VCS.result Task.task (** Return NoResult if it is already proved by Qed *) (**************************************************************************) diff --git a/src/plugins/wp/VCS.ml b/src/plugins/wp/VCS.ml index 50507c33c39..3b4c74e639f 100644 --- a/src/plugins/wp/VCS.ml +++ b/src/plugins/wp/VCS.ml @@ -122,8 +122,16 @@ let filename_for_prover = function | Tactical -> "Tactical" let is_auto = function - | Qed | NativeAltErgo | Why3 _ -> true + | Qed | NativeAltErgo -> true | Tactical | NativeCoq -> false + | Why3 p -> + match p.prover_name with + | "Alt-Ergo" | "CVC4" | "Z3" -> false + | "Coq" -> true + | _ -> + let config = Why3Provers.config () in + let prover_config = Why3.Whyconf.get_prover_config config p in + not prover_config.interactive let cmp_prover p q = match p,q with diff --git a/src/plugins/wp/prover.ml b/src/plugins/wp/prover.ml index 08291e8aeea..83b432ac6c2 100644 --- a/src/plugins/wp/prover.ml +++ b/src/plugins/wp/prover.ml @@ -40,7 +40,7 @@ let dispatch ?(config=VCS.default) mode prover wpo = ProverWhy3.prove ~timeout:(VCS.get_timeout ~smoke config) ~steplimit:(VCS.get_stepout config) - ~prover wpo + ~mode ~prover wpo end let started ?start wpo = -- GitLab From 8bcc87429795147d1f586c10917190a4a68706c7 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 4 Aug 2020 17:53:23 +0200 Subject: [PATCH 190/255] [Doc] update documentation about analysis-scripts --- doc/userman/user-analysis-scripts.tex | 128 +++++++++++++++++++------- 1 file changed, 94 insertions(+), 34 deletions(-) diff --git a/doc/userman/user-analysis-scripts.tex b/doc/userman/user-analysis-scripts.tex index 901130870c3..db293ea7979 100644 --- a/doc/userman/user-analysis-scripts.tex +++ b/doc/userman/user-analysis-scripts.tex @@ -64,11 +64,12 @@ The intended usage is as follows: the analysis, with the list of source files and required parameters (architecture, preprocessing flags, main function); \item The user edits and runs the generated Makefile, adjusting the - analysis as needed and re-running \texttt{make}. + analysis as needed and re-running \texttt{fcmake}\footnote{\texttt{fcmake} + is described in Section~\ref{sec:using-generated-makefile}.}. \end{enumerate} Ideally, after modifying the source code or re-parametrizing the analysis, -re-running \texttt{make} should be enough to obtain a new result. +re-running \texttt{fcmake} should be enough to obtain a new result. Section~\ref{sec:using-generated-makefile} details usage of the Makefile and presents an illustrative diagram. @@ -81,9 +82,9 @@ Makefile from a template. The user must fill in the following information, required for running an \Value analysis: \begin{description} -\item[machdep]: architectural information about system where the code will run: - integer type sizes, compiler, OS, etc. See section~\ref{sec:normalize} for - more details. +\item[machdep]: architectural information about the system where the code will + run: integer type sizes, compiler, OS, etc. + See section~\ref{sec:normalize} for more details. \item[preprocessing flags]: options given to the C preprocessor, mainly macros (\texttt{-D}) and include directories (\texttt{-I}). \item[list of sources]: the actual list of source files that make a logical @@ -151,10 +152,16 @@ They allow the production of a JSON Compilation Database in section~\ref{sec:preprocessing}). This leads to a different workflow: \begin{enumerate} -\item Run CMake with the flag \texttt{-DCMAKE\_EXPORT\_COMPILE\_COMMANDS=1}, - or install Build EAR (\url{https://github.com/rizsotto/Bear}) and run - \texttt{bear make <targets>} instead of \texttt{make <targets>}. This will - create a \texttt{compile\_commands.json} file. +\item For CMake: + \begin{itemize} + \item Run \texttt{cmake -DCMAKE\_EXPORT\_COMPILE\_COMMANDS=1 <targets>}. + \end{itemize} + For Makefile: + \begin{itemize} + \item Install Build EAR (\url{https://github.com/rizsotto/Bear}); + \item Run \texttt{bear~make~<targets>} (instead of \texttt{make <targets>}). + \end{itemize} + In both cases, you will obtain a \texttt{compile\_commands.json} file. \item Run \texttt{frama-c-script list-files}. A list of the compiled files, along with files defining a \texttt{main} function, will be presented. \item Run \texttt{frama-c-script make-template} to create a template for @@ -168,12 +175,63 @@ however, the compilation database may include extraneous sources (e.g. when compiling the same source for different binary targets or test cases). Manual intervention may be necessary. -\section{Using the generated Makefile} +\section{Using the generated Makefile, via \texttt{fcmake}} \label{sec:using-generated-makefile} The generated Makefile can be used to run one or several analyses. -The diagram in Fig.~\ref{fig:analysis-scripts} summarizes its usage. -Makefile targets and outputs are detailed in this section. +Its basic usage is the following: + +\begin{itemize} +\item \texttt{fcmake <target>.parse}: parse the sources +\item \texttt{fcmake <target>.eva}: run Eva +\item \texttt{fcmake <target>.eva.gui}: open the results in the GUI +\end{itemize} + +This section details how to produce the Makefile, how to define the +\texttt{fcmake} alias, and lists other useful targets and settings. + +\subsection*{Storing Frama-C files and results in \texttt{.frama-c}} + +By default, the generated \texttt{GNUmakefile} is created in the (hidden) +directory \texttt{.frama-c}, which should contain all files specific to Frama-C. +This arrangement provides several benefits: + +\begin{itemize} +\item Frama-C-related files do not pollute the original code; everything + is stored in a separate directory, easily identifiable by its name; +\item Existing makefiles are not overridden by Frama-C's; +\item Having a standardized structure helps with CI integration. +\end{itemize} + +However, special attention is needed due to a few consequences of this +structure: + +\begin{itemize} +\item The \texttt{make} process will be run from a subdirectory of the + current one; therefore, source and include paths must be either absolute + or prefixed with \texttt{..}; +\item In some cases, it may be necessary to add flags such as \texttt{-I ..}, + so that the preprocessor will find the required files. +\end{itemize} + +\subsection*{Defining and using \texttt{fcmake}} + +We recommend defining the following {\em alias} in your shell: + +\begin{verbatim} +alias fcmake='make -C .frama-c' +\end{verbatim} + +Running \texttt{fcmake} will have the same effect as running \texttt{make} +inside the \texttt{.frama-c} directory. + +The commands in this section assume usage of the \texttt{fcmake} alias +defined above. + +\subsection*{Frama-C makefile targets and variables} + +The diagram in Fig.~\ref{fig:analysis-scripts} summarizes the usage of +the generated Makefile. Its targets and outputs are detailed in this section. \begin{figure}[htbp] \begin{center} @@ -193,8 +251,14 @@ That is, the target name (chosen by the user), suffixed with \texttt{.parse}, is defined as depending on each of its source files. Changes to any of these sources will trigger a recomputation of the AST. -{\em Note:} the target name itself {\em cannot} contain slashes or dots. +Note that, since the generated makefile is inside \texttt{.frama-c}, relative +paths to source files will always begin with \texttt{../}, except for +sources located within \texttt{.frama-c}, e.g. \texttt{fc\_stubs.c}. + +\begin{important} +Target names can contain hyphens and underscores, but neither slashes nor dots. See also the {\em Technical Notes} section about some current limitations. +\end{important} Then, for each \texttt{.parse} target, a corresponding \texttt{.eva} target needs to be added to the \texttt{TARGETS} variable in the Makefile. @@ -234,6 +298,12 @@ t2.parse: FCFLAGS += -main test2 t2.parse: CPPFLAGS += -DTEST2 \end{lstlisting} +\begin{important} +\texttt{-I} flags referencing relative paths must take into account the +fact that \FramaC will be run from the \texttt{.frama-c} directory, and +therefore must include an initial ``\texttt{../}''. +\end{important} + \subsection{Predefined targets} The predefined targets below are the {\em raison d'être} of the generated @@ -253,9 +323,6 @@ quick iterations during parametrization of the analysis. and runs the \Value plug-in, with the options given in \texttt{EVAFLAGS}. If the analysis succeeds, produces a directory \texttt{<target>.eva} with the analysis results and a saved session file. - Also creates a timestamped version of \texttt{<target>.eva}, to enable - future comparisons between different parametrizations. The non-timestamped - version corresponds to the latest (successful) analysis. If the analysis fails, tries to save a partial result in \texttt{<target>.eva.error} (when possible). \item[<target>.eva.gui]: loads the result of the corresponding @@ -274,17 +341,17 @@ Run \texttt{frama-c-script help} for more details and optional arguments. \begin{description} \item[make-template]: creates the initial Makefile, based on a template. - This command creates a file named \texttt{GNUmakefile} with some hardcoded - sections, some filled in interactively by the user, and comments indicating - which parts may need change. Once created, it enables the general workflow - mentioned earlier. + This command creates a file named \texttt{.frama-c/GNUmakefile} with some + hardcoded sections, some sections filled in interactively by the user, + and comments indicating which parts may need change. + Once created, it enables the general workflow mentioned earlier. \item[make-wrapper <target> <args>]: calls \texttt{make <target> <args>} with a special wrapper: when running \Value, upon encountering one of a few known error messages, suggests some actions on how to proceed. For instance, if a missing function definition is encountered when analyzing the code with \Value, the wrapper will look for its definition and, if found, suggest that its source code be added to the analysis. This script is meant - to be used with the {\em one at a time} workflow describe in + to be used with the {\em one at a time} workflow described in section~\ref{alternative-workflows}. \item[find-fun <fun>]: looks for possible declarations and definitions of function \texttt{<fun>}. Uses a heuristic that does not depend on \FramaC @@ -298,11 +365,11 @@ Other commands, only useful in a few cases, are described below. \item[configure <machdep>]: runs a \texttt{configure} script (based on Autoconf) with some settings to emulate a more portable system, removing optional code features that could prevent \FramaC from - parsing the sources. Currently still depends partially on the host system, + parsing the sources. Currently, it still depends partially on the host system, so many features are not disabled. \item[make-path] (for \FramaC developers): to be used when Frama-C is not - installed in the PATH; adds a \texttt{frama-c-path.mk} file that is used - by the Makefile generated by \texttt{make-template}. + installed in the PATH; adds a \texttt{path.mk} file that is used + by the Makefile generated via \texttt{make-template}. \item[flamegraph]: opens a {\em flamegraph}\footnote{% See \url{https://github.com/brendangregg/FlameGraph} for details about flamegraphs.} to visualize which functions take most of the time @@ -349,7 +416,7 @@ The {\em open-source-case-studies} Git repository (OSCS for short), available at \url{https://git.frama-c.com/pub/open-source-case-studies}, contains several open-source C code bases parametrized with the help of analysis scripts. Each case study has its own directory, with a -\texttt{GNUmakefile} defining one or more analysis targets. +\texttt{.frama-c/GNUmakefile} defining one or more analysis targets. Due to the variety of test cases, OSCS provide practical usage examples of the \texttt{GNUmakefile} described in this chapter. @@ -366,16 +433,9 @@ understand some unintuitive behaviors. \paragraph{\em Changes to header files do not trigger a new parsing/analysis.} Currently, changes to included files (e.g. headers) are {\em not} -tracked by the generated Makefile and may require running \texttt{make} +tracked by the generated Makefile and may require running \texttt{fcmake} with \texttt{-B} (to force recomputation of dependencies), or running -\texttt{make clean} before re-running \texttt{make}. - -\paragraph{\em Why is the generated Makefile called \texttt{GNUmakefile}?} -GNU Make, by default, searches for a file named \texttt{GNUmakefile} before -searching for a \texttt{Makefile}. Thus, running \texttt{make} without -arguments results in running the Makefile generated by \texttt{make-template}. -You can rename it to \texttt{framac.mk} or something else, and then run it -via \texttt{make -f framac.mk <targets>}. +\texttt{fcmake clean} before re-running \texttt{fcmake}. \paragraph{\em Most scripts are heuristics-based and offer no correctness/completeness guarantees.} In order to handle files {\em before} -- GitLab From 49eaa67cf1c6e17c16a9aaa686059c3252acc748 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 7 Sep 2020 15:45:51 +0200 Subject: [PATCH 191/255] [Analysis-scripts] update list-files --- share/analysis-scripts/list_files.py | 53 ++++++++++++++++----------- tests/fc_script/oracle/list_files.res | 13 ++++--- tests/jcdb/oracle/list_files.res | 9 +++-- 3 files changed, 44 insertions(+), 31 deletions(-) diff --git a/share/analysis-scripts/list_files.py b/share/analysis-scripts/list_files.py index e573679929c..68457003603 100755 --- a/share/analysis-scripts/list_files.py +++ b/share/analysis-scripts/list_files.py @@ -31,58 +31,69 @@ import sys import os import json import re +from pathlib import Path + +MIN_PYTHON = (3, 6) # for glob(recursive) and automatic Path conversions +if sys.version_info < MIN_PYTHON: + sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON) -arg = "" if len(sys.argv) < 2: # no argument, assume default name - arg = "compile_commands.json" + arg = Path("compile_commands.json") else: - arg = sys.argv[1] + arg = Path(sys.argv[1]) -if not os.path.exists(arg): +if not arg.exists(): print(f"error: file '{arg}' not found") sys.exit(f"usage: {sys.argv[0]} [compile_commands.json]") # check if arg has a known extension -def has_known_c_extension(arg): - return arg.endswith(".c") or arg.endswith(".i") or arg.endswith(".h") +def is_known_c_extension(ext): + return ext == ".c" or ext == ".i" or ext == ".h" pwd = os.getcwd() +fcmake_pwd = pwd / Path(".frama-c") # pwd as seen by the Frama-C makefile json = json.loads(open(arg).read()) -jcdb_dir = os.path.dirname(arg) +jcdb_dir = arg.parent includes = set() defines = set() -files = set() +files = set() # set of pairs of (file, file_for_fcmake) for entry in json: arg_includes = [] # before normalization - dir = entry["directory"] - file = entry["file"] - # json compile spec says either command or arguments are mandatory - if os.path.isabs(file): + if not "file" in entry: + # ignore entries without a filename + continue + file = Path(entry["file"]) + dir = Path(entry["directory"]) if "directory" in entry else None + if file.is_absolute(): filepath = file - elif os.path.isabs(dir): - filepath = os.path.join(dir, file) + elif dir and dir.is_absolute(): + filepath = dir / file + elif dir: + filepath = jcdb_dir / dir / file else: - filepath = os.path.join(jcdb_dir, dir, file) - if not has_known_c_extension(filepath): + filepath = jcdb_dir / file + if not is_known_c_extension(filepath.suffix): print(f"warning: ignoring file of unknown type: {filepath}") else: - files.add(os.path.relpath(filepath, pwd)) + files.add((os.path.relpath(filepath, pwd), os.path.relpath(filepath, fcmake_pwd))) -print("SRCS=\\\n" + " \\\n".join(sorted(files)) + " \\") +files_for_fcmake = map (lambda x:(x[1]), files) +print("# Paths as seen by a makefile inside subdirectory '.frama-c':") +print("SRCS=\\\n" + " \\\n".join(sorted(files_for_fcmake)) + " \\") print("") files_defining_main = set() re_main = re.compile("(int|void)\s+main\s*\([^)]*\)\s*\{") -for file in files: +for (file, file_for_fcmake) in files: assert os.path.exists(file), "file does not exist: %s" % file with open(file, 'r') as content_file: content = content_file.read() res = re.search(re_main, content) if res is not None: - files_defining_main.add(file) + files_defining_main.add(file_for_fcmake) if files_defining_main != []: print("") - print("# Possible definition of main function in the following file(s):") + print("# Possible definition of main function in the following file(s), as seen from '.frama-c':") print("\n".join(sorted(files_defining_main))) diff --git a/tests/fc_script/oracle/list_files.res b/tests/fc_script/oracle/list_files.res index 34ad2e0a628..90d796e981a 100644 --- a/tests/fc_script/oracle/list_files.res +++ b/tests/fc_script/oracle/list_files.res @@ -1,9 +1,10 @@ +# Paths as seen by a makefile inside subdirectory '.frama-c': SRCS=\ -tests/fc_script/main.c \ -tests/fc_script/main2.c \ -tests/fc_script/main3.c \ +../tests/fc_script/main.c \ +../tests/fc_script/main2.c \ +../tests/fc_script/main3.c \ -# Possible definition of main function in the following file(s): -tests/fc_script/main.c -tests/fc_script/main3.c +# Possible definition of main function in the following file(s), as seen from '.frama-c': +../tests/fc_script/main.c +../tests/fc_script/main3.c diff --git a/tests/jcdb/oracle/list_files.res b/tests/jcdb/oracle/list_files.res index 709ce6cc676..d74383b21c9 100644 --- a/tests/jcdb/oracle/list_files.res +++ b/tests/jcdb/oracle/list_files.res @@ -1,7 +1,8 @@ +# Paths as seen by a makefile inside subdirectory '.frama-c': SRCS=\ -tests/jcdb/file_without_main.c \ -tests/jcdb/jcdb.c \ +../tests/jcdb/file_without_main.c \ +../tests/jcdb/jcdb.c \ -# Possible definition of main function in the following file(s): -tests/jcdb/jcdb.c +# Possible definition of main function in the following file(s), as seen from '.frama-c': +../tests/jcdb/jcdb.c -- GitLab From 129f21cd696a4354cc1fb41aef99ba62b2839399 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 7 Sep 2020 15:47:19 +0200 Subject: [PATCH 192/255] [Analysis-scripts] fix and update normalize-jcdb --- Makefile | 2 + bin/frama-c-script | 34 +--------- headers/header_spec.txt | 1 + share/analysis-scripts/normalize_jcdb.py | 79 ++++++++++++++++++++++++ 4 files changed, 83 insertions(+), 33 deletions(-) create mode 100755 share/analysis-scripts/normalize_jcdb.py diff --git a/Makefile b/Makefile index 46cd5d27563..8b2e0e805f7 100644 --- a/Makefile +++ b/Makefile @@ -270,6 +270,7 @@ DISTRIB_FILES:=\ share/analysis-scripts/list_files.py \ share/analysis-scripts/make_template.py \ share/analysis-scripts/make_wrapper.py \ + share/analysis-scripts/normalize_jcdb.py \ share/analysis-scripts/parse-coverage.sh \ share/analysis-scripts/prologue.mk \ share/analysis-scripts/README.md \ @@ -1955,6 +1956,7 @@ install:: install-lib-$(OCAMLBEST) share/analysis-scripts/list_files.py \ share/analysis-scripts/make_template.py \ share/analysis-scripts/make_wrapper.py \ + share/analysis-scripts/normalize_jcdb.py \ share/analysis-scripts/parse-coverage.sh \ share/analysis-scripts/prologue.mk \ share/analysis-scripts/README.md \ diff --git a/bin/frama-c-script b/bin/frama-c-script index 0683f0371d7..0b1035fe647 100755 --- a/bin/frama-c-script +++ b/bin/frama-c-script @@ -208,38 +208,6 @@ configure_for_frama_c() { CPP="gcc -E -nostdinc -fno-builtin -I${FRAMAC_SHARE}/libc -D__FC_MACHDEP_${MACHDEP}" ./configure "$@" } -normalize_jcdb() { - path="" - if [ "$#" -eq 0 ]; then - path="./compile_commands.json" - else - path="$1" - fi - if [ ! -e "$path" ]; then - echo "error: cannot find file: $path"; - exit 1 - fi - sed "s|$PWD/||g" "$path" > "${path}.tmp" - cmp -s "$path" "${path}.tmp" - if [ $? -eq 0 ]; then - echo "No changes to be applied to $path" - rm "${path}.tmp" - else - echo "Differences to be applied to $path:" - diff -u0 "$path" "${path}.tmp" - read -p "Normalize $path? [y/N] " yn - case $yn in - [Yy]) - mv "${path}.tmp" "$path" - echo "Normalization applied to $path" - ;; - *) - echo "Exiting without overwriting." - exit 0;; - esac - fi -} - case "$command" in "help" | "-help" | "--help" | "-h") usage 0; @@ -279,7 +247,7 @@ case "$command" in ;; "normalize-jcdb") shift; - normalize_jcdb "$@"; + ${FRAMAC_SHARE}/analysis-scripts/normalize_jcdb.py "$@"; ;; *) echo "error: unrecognized command: $command"; diff --git a/headers/header_spec.txt b/headers/header_spec.txt index 92410411467..4b3ef56f0a6 100644 --- a/headers/header_spec.txt +++ b/headers/header_spec.txt @@ -127,6 +127,7 @@ share/analysis-scripts/git_utils.py: .ignore share/analysis-scripts/list_files.py: .ignore share/analysis-scripts/make_template.py: .ignore share/analysis-scripts/make_wrapper.py: .ignore +share/analysis-scripts/normalize_jcdb.py: .ignore share/analysis-scripts/parse-coverage.sh: .ignore share/analysis-scripts/prologue.mk: CEA_LGPL share/analysis-scripts/README.md: .ignore diff --git a/share/analysis-scripts/normalize_jcdb.py b/share/analysis-scripts/normalize_jcdb.py new file mode 100755 index 00000000000..c578730c143 --- /dev/null +++ b/share/analysis-scripts/normalize_jcdb.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python3 +#-*- coding: utf-8 -*- +########################################################################## +# # +# This file is part of Frama-C. # +# # +# Copyright (C) 2007-2020 # +# CEA (Commissariat à l'énergie atomique et aux énergies # +# alternatives) # +# # +# you can redistribute it and/or modify it under the terms of the GNU # +# Lesser General Public License as published by the Free Software # +# Foundation, version 2.1. # +# # +# It is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU Lesser General Public License for more details. # +# # +# See the GNU Lesser General Public License version 2.1 # +# for more details (enclosed in the file licenses/LGPLv2.1). # +# # +########################################################################## + +# This script removes absolute path references in a JSON Compilation Database. +# +# See: http://clang.llvm.org/docs/JSONCompilationDatabase.html + +import sys +import os +import json +import re +from pathlib import Path + +MIN_PYTHON = (3, 6) # for automatic Path conversions +if sys.version_info < MIN_PYTHON: + sys.exit("Python %s.%s or later is required.\n" % MIN_PYTHON) + +if len(sys.argv) < 2: + # no argument, assume default name + arg = Path("compile_commands.json") +else: + arg = Path(sys.argv[1]) + +if not arg.exists(): + print(f"error: file '{arg}' not found") + sys.exit(f"usage: {sys.argv[0]} [compile_commands.json]") + +jcdb_json = json.loads(open(arg).read()) +jcdb_dir = arg.parent +out_json = {} + +nb_diffs = 0 +for entry in jcdb_json: + if "file" in entry and os.path.isabs(entry["file"]): + old_entry = entry["file"] + entry["file"] = os.path.relpath(entry["file"], jcdb_dir) + if old_entry != entry["file"]: + nb_diffs += 1 + else: + print(f"warning: absolute path could not be normalized: {entry['file']}") + elif "directory" in entry and os.path.isabs(entry["directory"]): + old_entry = entry["directory"] + entry["directory"] = os.path.relpath(entry["directory"], jcdb_dir) + if old_entry != entry["directory"]: + nb_diffs += 1 + else: + print(f"warning: absolute path could not be normalized: {entry['directory']}") + +if nb_diffs == 0: + print(f"No changes to be applied to {arg}") +else: + yn = input(f"{nb_diffs} replacements to be applied. Normalize {arg}? [y/N] ") + if yn.lower() == "y": + with open(arg, 'w', encoding='utf-8') as outfile: + json.dump(jcdb_json, outfile, ensure_ascii=False, indent=4) + print(f"Normalization applied to {arg}") + else: + print("Exiting without overwriting.") -- GitLab From 7c43245d7c99d2a079be635e63fa4674ec55515d Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Thu, 17 Sep 2020 17:16:09 +0200 Subject: [PATCH 193/255] [Doc] add documentation on making new stages with analysis-scripts --- doc/userman/user-analysis-scripts.tex | 41 +++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/doc/userman/user-analysis-scripts.tex b/doc/userman/user-analysis-scripts.tex index db293ea7979..b1589fd6223 100644 --- a/doc/userman/user-analysis-scripts.tex +++ b/doc/userman/user-analysis-scripts.tex @@ -333,6 +333,47 @@ quick iterations during parametrization of the analysis. \texttt{.eva} targets. \end{description} +\subsection{Adding new analyses and stages} + +Besides the predefined \Value-oriented steps, you can easily add other stages +and analyses, which may or may not depend on \Value. + +For instance, to add a SARIF report using the \tool{Markdown Report} plug-in, +you can simply add, before the template epilogue, the following lines, where +\texttt{target} is the name of your target: + +\begin{makefilecode} +target.sarif: target.parse + $(FRAMAC) -load $^/framac.sav -mdr-gen sarif -mdr-out $@ +\end{makefilecode} + +This rule will create a file \texttt{target.sarif} inside the \texttt{.frama-c} +directory. The rule will depend on the parsing of \texttt{target.parse} and +use the saved session at \texttt{target.parse/framac.sav}. + +If you want the report to run after the analysis with \Value, instead, simply +replace \texttt{.parse} with \texttt{.eva}. + +Then, running \texttt{fcmake target.sarif} will create or update the report, +recomputing dependencies when needed. + +Adding a new stage, with a saved session that can be reused later for other +stages and analyses, requires just a few more lines, as in the following +example: + +\begin{makefilecode} +target.wp: target.parse + mkdir -p $@ + $(FRAMAC) -load $^/framac.sav -wp -save $@/framac.sav +\end{makefilecode} + +In the example above, we define a new stage, \texttt{target.wp}, which depends +on the parsing stage, runs the \tool{WP} plug-in, and saves the result in a +session file. This session file can then be loaded by another stage, +or in the GUI. For instance, the \texttt{.gui} predefined target works out of +the box in this case: running \texttt{fcmake target.wp.gui} will load the saved +session in the Frama-C GUI. + \section{Script Descriptions} \label{sec:script-descriptions} -- GitLab From 1fb793070c7cbba07da2b0d983d824469048027d Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Tue, 22 Sep 2020 12:41:09 +0200 Subject: [PATCH 194/255] [Doc] expand fcmake alias earlier --- doc/userman/user-analysis-scripts.tex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/userman/user-analysis-scripts.tex b/doc/userman/user-analysis-scripts.tex index b1589fd6223..2f17e71e214 100644 --- a/doc/userman/user-analysis-scripts.tex +++ b/doc/userman/user-analysis-scripts.tex @@ -179,7 +179,8 @@ cases). Manual intervention may be necessary. \label{sec:using-generated-makefile} The generated Makefile can be used to run one or several analyses. -Its basic usage is the following: +Its basic usage involving the \texttt{fcmake} alias (equivalent to +\texttt{make -C .frama-c}) is the following: \begin{itemize} \item \texttt{fcmake <target>.parse}: parse the sources -- GitLab From 80e7e4fe68208453834018669daa536488a6087c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 11:46:25 +0200 Subject: [PATCH 195/255] [wp] new option -wp-interactive --- src/plugins/wp/ProofScript.ml | 2 +- src/plugins/wp/ProverWhy3.ml | 5 +- src/plugins/wp/VCS.ml | 28 ++++-- src/plugins/wp/VCS.mli | 5 +- src/plugins/wp/register.ml | 92 ++++++++++--------- src/plugins/wp/tests/wp/stmtcompiler_test.ml | 4 +- .../wp/tests/wp/stmtcompiler_test_rela.ml | 4 +- .../oracle_qualif/no_step_limit.res.oracle | 1 - src/plugins/wp/wpReport.ml | 2 +- src/plugins/wp/wp_parameters.ml | 14 +++ src/plugins/wp/wp_parameters.mli | 1 + src/plugins/wp/wpo.ml | 2 +- 12 files changed, 93 insertions(+), 67 deletions(-) diff --git a/src/plugins/wp/ProofScript.ml b/src/plugins/wp/ProofScript.ml index 73c77b5b71d..4ad9bd70305 100644 --- a/src/plugins/wp/ProofScript.ml +++ b/src/plugins/wp/ProofScript.ml @@ -342,7 +342,7 @@ let json_of_result (p : VCS.prover) (r : VCS.result) = `Assoc (name :: verdict :: (time @ steps)) let prover_of_json js = - try VCS.prover_of_name (js >? "prover" |> Json.string) + try VCS.parse_prover (js >? "prover" |> Json.string) with Not_found -> None let result_of_json js = diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 5613f905d4f..6e2ccbe08bc 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1163,7 +1163,8 @@ let ping_prover_call p = let time = Unix.time () in if time > timeout then begin - Wp_parameters.debug ~dkey "Hard Kill (late why3server timeout)" ; + Wp_parameters.debug ~dkey + "Hard Kill (late why3server timeout)" ; p.interrupted <- true ; Why3.Call_provers.interrupt_call p.call ; end @@ -1271,7 +1272,7 @@ let editor pconf = let scriptfile ~force ~ext wpo = let dir = Wp_parameters.get_session_dir ~force "interactive" in - Format.sprintf "%s/%s.%s" (dir :> string) wpo.Wpo.po_sid ext + Format.sprintf "%s/%s%s" (dir :> string) wpo.Wpo.po_sid ext let call_editor ~script pconf = Wp_parameters.feedback ~ontty:`Transient "Editing %S..." script ; diff --git a/src/plugins/wp/VCS.ml b/src/plugins/wp/VCS.ml index 3b4c74e639f..2b7862a000d 100644 --- a/src/plugins/wp/VCS.ml +++ b/src/plugins/wp/VCS.ml @@ -38,7 +38,7 @@ type mode = | EditMode (* Edit then check scripts *) | FixMode (* Try check script, then edit script on non-success *) -let prover_of_name = function +let parse_prover = function | "" | "none" -> None | "qed" | "Qed" -> Some Qed | "native-alt-ergo" (* for wp-reports *) @@ -70,13 +70,19 @@ let prover_of_name = function (String.concat ":" prv) (Why3Provers.print_wp p) ; Some (Why3 p) | NotFound -> - Wp_parameters.error "Prover '%s' not found in why3.conf" name ; + Wp_parameters.error ~once:true + "Prover '%s' not found in why3.conf" name ; None -let mode_of_prover_name = function - | "native:coqedit" -> EditMode - | "native:coqide" | "native:altgr-ergo" -> FixMode - | _ -> BatchMode +let parse_mode m = + match String.lowercase_ascii m with + | "fix" -> FixMode + | "edit" -> EditMode + | "batch" -> BatchMode + | _ -> + Wp_parameters.error ~once:true + "Unrecognized mode %S (use 'batch' instead)" m ; + BatchMode let name_of_prover = function | Why3 s -> Why3Provers.print_wp s @@ -126,12 +132,14 @@ let is_auto = function | Tactical | NativeCoq -> false | Why3 p -> match p.prover_name with - | "Alt-Ergo" | "CVC4" | "Z3" -> false - | "Coq" -> true + | "Alt-Ergo" | "CVC4" | "Z3" -> true + | "Coq" -> false | _ -> let config = Why3Provers.config () in - let prover_config = Why3.Whyconf.get_prover_config config p in - not prover_config.interactive + try + let prover_config = Why3.Whyconf.get_prover_config config p in + not prover_config.interactive + with Not_found -> true let cmp_prover p q = match p,q with diff --git a/src/plugins/wp/VCS.mli b/src/plugins/wp/VCS.mli index 54b34f23ef8..e43bb526177 100644 --- a/src/plugins/wp/VCS.mli +++ b/src/plugins/wp/VCS.mli @@ -44,10 +44,11 @@ module Pmap : Map.S with type key = prover val name_of_prover : prover -> string val title_of_prover : prover -> string val filename_for_prover : prover -> string -val prover_of_name : string -> prover option -val mode_of_prover_name : string -> mode val title_of_mode : mode -> string +val parse_mode : string -> mode +val parse_prover : string -> prover option + val pp_prover : Format.formatter -> prover -> unit val pp_mode : Format.formatter -> mode -> unit diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index ed3a27c63af..74a692cf28f 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -551,7 +551,7 @@ let do_list_scheduled_result () = (* --- Proving --- *) (* ------------------------------------------------------------------------ *) -type mode = { +type script = { mutable tactical : bool ; mutable update : bool ; mutable depth : int ; @@ -561,24 +561,24 @@ type mode = { mutable provers : (VCS.mode * VCS.prover) list ; } -let spawn_wp_proofs ~mode goals = - if mode.tactical || mode.provers<>[] then +let spawn_wp_proofs ~script goals = + if script.tactical || script.provers<>[] then begin let server = ProverTask.server () in ignore (Wp_parameters.Share.get_dir "."); (* To prevent further errors *) Bag.iter (fun goal -> - if mode.tactical + if script.tactical && not (Wpo.is_trivial goal) - && (mode.auto <> [] || ProofSession.exists goal) + && (script.auto <> [] || ProofSession.exists goal) then ProverScript.spawn ~failed:false - ~auto:mode.auto - ~depth:mode.depth - ~width:mode.width - ~backtrack:mode.backtrack - ~provers:(List.map snd mode.provers) + ~auto:script.auto + ~depth:script.depth + ~width:script.width + ~backtrack:script.backtrack + ~provers:(List.map snd script.provers) ~start:do_wpo_start ~progress:do_progress ~result:do_wpo_result @@ -591,7 +591,7 @@ let spawn_wp_proofs ~mode goals = ~progress:do_progress ~result:do_wpo_result ~success:do_wpo_success - mode.provers + script.provers ) goals ; Task.on_server_wait server do_wpo_wait ; Task.launch server @@ -604,19 +604,20 @@ let env_script_update () = try Sys.getenv "FRAMAC_WP_SCRIPT" = "update" with Not_found -> false -let compute_provers ~mode = - mode.provers <- List.fold_right - (fun pname prvs -> - match VCS.prover_of_name pname with - | None -> prvs - | Some VCS.Tactical -> - mode.tactical <- true ; - if pname = "tip" || env_script_update () then - mode.update <- true ; - prvs - | Some prover -> - (VCS.mode_of_prover_name pname , prover) :: prvs) - (get_prover_names ()) [] +let compute_provers ~mode ~script = + script.provers <- List.fold_right + begin fun pname prvs -> + match VCS.parse_prover pname with + | None -> prvs + | Some VCS.Tactical -> + script.tactical <- true ; + if pname = "tip" || env_script_update () then + script.update <- true ; + prvs + | Some prover -> + let pmode = if VCS.is_auto prover then VCS.BatchMode else mode in + (pmode , prover) :: prvs + end (get_prover_names ()) [] let dump_strategies = let once = ref true in @@ -629,18 +630,18 @@ let dump_strategies = Format.fprintf fmt "@\n '%s': %s" h#id h#title ))) -let default_mode () = { +let default_script_mode () = { tactical = false ; update=false ; provers = [] ; depth=0 ; width = 0 ; auto=[] ; backtrack = 0 ; } -let compute_auto ~mode = - mode.auto <- [] ; - mode.width <- Wp_parameters.AutoWidth.get () ; - mode.depth <- Wp_parameters.AutoDepth.get () ; - mode.backtrack <- max 0 (Wp_parameters.BackTrack.get ()) ; +let compute_auto ~script = + script.auto <- [] ; + script.width <- Wp_parameters.AutoWidth.get () ; + script.depth <- Wp_parameters.AutoDepth.get () ; + script.backtrack <- max 0 (Wp_parameters.BackTrack.get ()) ; let auto = Wp_parameters.Auto.get () in - if mode.depth <= 0 || mode.width <= 0 then + if script.depth <= 0 || script.width <= 0 then ( if auto <> [] then Wp_parameters.feedback "Auto-search deactivated because of 0-depth or 0-width" ) @@ -650,17 +651,17 @@ let compute_auto ~mode = (fun id -> if id = "?" then dump_strategies () else - try mode.auto <- Strategy.lookup ~id :: mode.auto + try script.auto <- Strategy.lookup ~id :: script.auto with Not_found -> Wp_parameters.error ~current:false "Strategy -wp-auto '%s' unknown (ignored)." id ) auto ; - mode.auto <- List.rev mode.auto ; - if mode.auto <> [] then mode.tactical <- true ; + script.auto <- List.rev script.auto ; + if script.auto <> [] then script.tactical <- true ; end -let do_update_session mode goals = - if mode.update then +let do_update_session ~script goals = + if script.update then begin let removed = ref 0 in let updated = ref 0 in @@ -714,24 +715,25 @@ let do_update_session mode goals = end let do_wp_proofs ?provers ?tip (goals : Wpo.t Bag.t) = - let mode = default_mode () in - compute_provers ~mode ; - compute_auto ~mode ; + let script = default_script_mode () in + let mode = VCS.parse_mode (Wp_parameters.Interactive.get ()) in + compute_provers ~mode ~script ; + compute_auto ~script ; begin match provers with None -> () | Some prvs -> - mode.provers <- List.map (fun dp -> VCS.BatchMode , VCS.Why3 dp) prvs + script.provers <- List.map (fun dp -> VCS.BatchMode , VCS.Why3 dp) prvs end ; begin match tip with None -> () | Some tip -> - mode.tactical <- tip ; - mode.update <- tip ; + script.tactical <- tip ; + script.update <- tip ; end ; - let spawned = mode.tactical || mode.provers <> [] in + let spawned = script.tactical || script.provers <> [] in begin if spawned then do_list_scheduled goals ; - spawn_wp_proofs ~mode goals ; + spawn_wp_proofs ~script goals ; if spawned then begin do_list_scheduled_result () ; - do_update_session mode goals ; + do_update_session ~script goals ; end else if not (Wp_parameters.Print.get ()) then Bag.iter do_wpo_display goals diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test.ml b/src/plugins/wp/tests/wp/stmtcompiler_test.ml index 07e77bf2309..ab8fd28f71a 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test.ml @@ -19,10 +19,10 @@ let run () = let provers = List.fold_right - (fun pname prvs -> match VCS.prover_of_name pname with + (fun pname prvs -> match VCS.parse_prover pname with | None -> prvs | Some VCS.Tactical -> prvs - | Some prv -> (VCS.mode_of_prover_name pname, prv) :: prvs) + | Some prv -> (VCS.BatchMode, prv) :: prvs) ["qed"] [] in diff --git a/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml b/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml index f38450c4501..ee5548356cc 100644 --- a/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml +++ b/src/plugins/wp/tests/wp/stmtcompiler_test_rela.ml @@ -18,10 +18,10 @@ let run () = let provers = List.fold_right - (fun pname prvs -> match VCS.prover_of_name pname with + (fun pname prvs -> match VCS.parse_prover pname with | None -> prvs | Some VCS.Tactical -> prvs - | Some prv -> (VCS.mode_of_prover_name pname, prv) :: prvs) + | Some prv -> (VCS.BatchMode, prv) :: prvs) ["alt-ergo"] [] in diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle index 0aeeeccf367..ce12f14d75e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/no_step_limit.res.oracle @@ -2,7 +2,6 @@ [kernel] Parsing tests/wp_plugin/no_step_limit.i (no preprocessing) [wp] Running WP plugin... [wp] 1 goal scheduled -[wp] Warning: no-steps does not support steps limit (ignored option) [wp] [no-steps] Goal typed_lemma_truc : Unsuccess [wp] Proved goals: 0 / 1 no-steps: 0 (unsuccess: 1) diff --git a/src/plugins/wp/wpReport.ml b/src/plugins/wp/wpReport.ml index be5b8151c13..6bdd9397a04 100644 --- a/src/plugins/wp/wpReport.ml +++ b/src/plugins/wp/wpReport.ml @@ -609,7 +609,7 @@ let pstats ~config fmt s cmd arg = | "wp" | "qed" -> stat ~config fmt (get_prover s VCS.Qed) arg | cmd when is_stat_name cmd -> stat ~config fmt s.main cmd | prover -> - match (VCS.prover_of_name prover) with + match (VCS.parse_prover prover) with | None -> Wp_parameters.error ~once:true "Unknown prover name %s" prover | Some prover -> stat ~config fmt (get_prover s prover) arg diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 3fd6bd1b748..7c61f90180b 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -621,6 +621,20 @@ module Provers = String_list " end) +let () = Parameter_customize.set_group wp_prover +module Interactive = String + (struct + let option_name = "-wp-interactive" + let arg_name = "mode" + let default = "batch" + let help = + "WP mode for interactive provers:\n\ + - 'batch': use scripts (default)\n\ + - 'edit': run editor on every goal\n\ + - 'fix': run editor on unproved goal\n\ + " + end) + let () = Parameter_customize.set_group wp_prover module RunAllProvers = False(struct diff --git a/src/plugins/wp/wp_parameters.mli b/src/plugins/wp/wp_parameters.mli index 5723c87072a..8037fd1014d 100644 --- a/src/plugins/wp/wp_parameters.mli +++ b/src/plugins/wp/wp_parameters.mli @@ -108,6 +108,7 @@ module PrecondWeakening : Parameter_sig.Bool module Detect: Parameter_sig.Bool module Generate:Parameter_sig.Bool module Provers: Parameter_sig.String_list +module Interactive: Parameter_sig.String module RunAllProvers: Parameter_sig.Bool module Cache: Parameter_sig.String module CacheEnv: Parameter_sig.Bool diff --git a/src/plugins/wp/wpo.ml b/src/plugins/wp/wpo.ml index 252264a5f93..a36b1639819 100644 --- a/src/plugins/wp/wpo.ml +++ b/src/plugins/wp/wpo.ml @@ -954,7 +954,7 @@ let goals_of_property = let prover_of_name = Dynamic.register ~plugin:"Wp" "Wpo.prover_of_name" ~journalize:false (Datatype.func Datatype.string (Datatype.option ProverType.ty)) - VCS.prover_of_name + VCS.parse_prover (* -------------------------------------------------------------------------- *) (* --- Prover and Files --- *) -- GitLab From d3492715d5fe9f05a56ea6948c6b875a5f508f1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 12:31:59 +0200 Subject: [PATCH 196/255] [wp] new option -wp-interactive-timeout --- src/plugins/wp/ProverWhy3.ml | 2 +- src/plugins/wp/wp_parameters.ml | 16 ++++++++++++++-- src/plugins/wp/wp_parameters.mli | 1 + 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/ProverWhy3.ml b/src/plugins/wp/ProverWhy3.ml index 6e2ccbe08bc..a4e27a63283 100644 --- a/src/plugins/wp/ProverWhy3.ml +++ b/src/plugins/wp/ProverWhy3.ml @@ -1298,7 +1298,7 @@ let prepare ~mode wpo driver task = else None let interactive ~mode wpo pconf driver prover task = - let time = Wp_parameters.CoqTimeout.get () in + let time = Wp_parameters.InteractiveTimeout.get () in let timeout = if time <= 0 then None else Some time in match prepare ~mode wpo driver task with | None -> Task.return VCS.unknown diff --git a/src/plugins/wp/wp_parameters.ml b/src/plugins/wp/wp_parameters.ml index 7c61f90180b..85a91ef2373 100644 --- a/src/plugins/wp/wp_parameters.ml +++ b/src/plugins/wp/wp_parameters.ml @@ -629,9 +629,9 @@ module Interactive = String let default = "batch" let help = "WP mode for interactive provers:\n\ - - 'batch': use scripts (default)\n\ + - 'batch': use script only (default)\n\ - 'edit': run editor on every goal\n\ - - 'fix': run editor on unproved goal\n\ + - 'fix': run editor for unproved goal\n\ " end) @@ -746,6 +746,18 @@ module SmokeTimeout = "Set the timeout (in seconds) for provers (default: %d)." default end) +let () = Parameter_customize.set_group wp_prover +module InteractiveTimeout = + Int(struct + let option_name = "-wp-interactive-timeout" + let default = 30 + let arg_name = "n" + let help = + Printf.sprintf + "Set the timeout (in seconds) for checking scripts\n\ + of interactive provers (default: %d)." default + end) + let () = Parameter_customize.set_group wp_prover module TimeExtra = Int(struct diff --git a/src/plugins/wp/wp_parameters.mli b/src/plugins/wp/wp_parameters.mli index 8037fd1014d..236c418e018 100644 --- a/src/plugins/wp/wp_parameters.mli +++ b/src/plugins/wp/wp_parameters.mli @@ -119,6 +119,7 @@ module Script: Parameter_sig.String module UpdateScript: Parameter_sig.Bool module Timeout: Parameter_sig.Int module SmokeTimeout: Parameter_sig.Int +module InteractiveTimeout: Parameter_sig.Int module TimeExtra: Parameter_sig.Int module TimeMargin: Parameter_sig.Int module CoqTimeout: Parameter_sig.Int -- GitLab From 5a9828530ca60c1dbee4bcd77fbb804818961ecf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 13:12:50 +0200 Subject: [PATCH 197/255] [wp] added documentation --- src/plugins/wp/Changelog | 3 + src/plugins/wp/doc/manual/wp.bib | 33 +++++++++++ src/plugins/wp/doc/manual/wp_plugin.tex | 65 +++++++-------------- src/plugins/wp/doc/manual/wp_simplifier.tex | 10 ---- 4 files changed, 56 insertions(+), 55 deletions(-) diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index 389007c7c91..51c39384588 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -24,6 +24,9 @@ Plugin WP <next-release> ######################### +- WP [2020-09-21] Added support for Why3 Coq interactive prover +- WP [2020-09-21] New option -wp-interactive <mode> +- WP [2020-09-21] New option -wp-interactive-timeout <seconds> - WP [2020-09-17] New experimental option: -wp-check-model-hypotheses Generates requires in contracts for model hypotheses - WP [2020-09-17] Hypotheses: assigned memory locations diff --git a/src/plugins/wp/doc/manual/wp.bib b/src/plugins/wp/doc/manual/wp.bib index bcc4524f29d..cbe190e5609 100644 --- a/src/plugins/wp/doc/manual/wp.bib +++ b/src/plugins/wp/doc/manual/wp.bib @@ -98,6 +98,39 @@ url = {http://ergo.lri.fr/papers/ergo.ps} } +@inproceedings{CVC4, + url = "http://www.cs.stanford.edu/~barrett/pubs/BCD+11.pdf", + author = "Clark Barrett and Christopher L. Conway and Morgan Deters and + Liana Hadarean and Dejan Jovanovi{'{c}} and Tim King and + Andrew Reynolds and Cesare Tinelli", + title = "{CVC4}", + booktitle = "Proceedings of the 23rd International Conference on Computer Aided Verification (CAV '11)", + series = "Lecture Notes in Computer Science", + volume = 6806, + publisher = "Springer", + editor = "Ganesh Gopalakrishnan and Shaz Qadeer", + pages = "171--177", + month = jul, + year = 2011, + note = "Snowbird, Utah", + category = "Conference Publications" +} + +@InProceedings{Z3, +author="de Moura, Leonardo +and Bj{\o}rner, Nikolaj", +editor="Ramakrishnan, C. R. +and Rehof, Jakob", +title="Z3: An Efficient SMT Solver", +booktitle="Tools and Algorithms for the Construction and Analysis of Systems", +year="2008", +publisher="Springer Berlin Heidelberg", +address="Berlin, Heidelberg", +pages="337--340", +abstract="Satisfiability Modulo Theories (SMT) problem is a decision problem for logical first order formulas with respect to combinations of background theories such as: arithmetic, bit-vectors, arrays, and uninterpreted functions. Z3 is a new and efficient SMT Solver freely available from Microsoft Research. It is used in various software verification and analysis applications.", +isbn="978-3-540-78800-3" +} + @inproceedings{qed, author = {Lo{\"{\i}}c Correnson}, title = {Qed. Computing What Remains to Be Proved}, diff --git a/src/plugins/wp/doc/manual/wp_plugin.tex b/src/plugins/wp/doc/manual/wp_plugin.tex index 3e343ef02f7..e565b465840 100644 --- a/src/plugins/wp/doc/manual/wp_plugin.tex +++ b/src/plugins/wp/doc/manual/wp_plugin.tex @@ -10,51 +10,13 @@ This plug-in computes proof obligations of programs annotated with \textsf{ACSL} annotations by \emph{weakest precondition calculus}, using a parametrized memory model to represent pointers and heap values. The proof obligations may then be discharged by external -decision procedures, which range over automated theorem provers such -as \textsf{Alt-Ergo}~\cite{AltErgo2006}, interactive proof assistants -like \textsf{Coq}~\cite{Coq84} and the interactive proof manager -\textsf{Why3}~\cite{Why3}. - -This chapter describes how to use the plug-in, from the -\textsf{Frama-C} graphical user interface (section~\ref{wp-gui}), from -the command line (section~\ref{wp-cmdline}), or from another plug-in -(section~\ref{wp-api}). Additionally, the combination of the \textsf{WP} -plug-in with the load and save commands of \textsf{Frama-C} and/or the -\texttt{-then} command-line option is explained in section~\ref{wp-persistent}. - -\clearpage -%----------------------------------------------------------------------------- -\section{Installing Provers} -\label{wp-install-provers} -%----------------------------------------------------------------------------- - -The \textsf{WP} plug-in requires external provers to work. -The recommended versions for external provers are: -\begin{center} - \begin{tabular}{crlc} - Prover & Versions & Download &\\ - \hline - \textsf{Why3} & \verb|1.3.1| & - \url{http://why3.lri.fr} & \cite{Why3}\\ - \textsf{Alt-Ergo} & \verb|2.0.0| & - \url{http://alt-ergo.ocamlpro.com} & \cite{AltErgo2006}\\ - % \textsf{Coq} & \verb|8.9.0| & - % \url{http://coq.inria.fr} & \cite{Coq84}\\ - \end{tabular} -\end{center} - -Recent \textsf{OPAM}-provided versions should work smoothly. -Other versions might be supported as well, typically, as far as we know: -\begin{itemize} -\item \textsf{Alt-Ergo} \verb+2.2.0+ and \verb+2.3.0+, although distributed under a non-commercial licence. -% \item \textsf{Coq} \verb+8.7.2+ and \verb+8.8.2+, although proof scripts compatibility can be an issue. -\item \textsf{Why3} \verb+1.3.1+. -\end{itemize} - -Other provers, like \textsf{Coq}, \textsf{Gappa}, \textsf{Z3}, \textsf{CVC3}, -\textsf{CVC4}, \textsf{PVS}, and many others, are accessible from -\textsf{WP} through \textsf{Why3}. We refer the user to the manual of -\textsf{Why3} to handle specific configuration tasks. +automated theorem provers such as +\textsf{Alt-Ergo}~\cite{AltErgo2006}, +\textsf{CVC4}~\cite{CVC4} and +\textsf{Z3}~\cite{Z3} +or by interactive proof assistants +like \textsf{Coq}~\cite{Coq84} and more generally, any automated or interactive +proover supported by \textsf{Why3}~\cite{Why3}. \clearpage %----------------------------------------------------------------------------- @@ -1018,6 +980,10 @@ all unproved proof obligations are sent to external decision procedures. Support for \textsf{Why-3 IDE} is no longer provided. +Since \textsf{Frama-C 22.0} (Titanium) support for Coq interactive prover has +been added and might also work with other interactive provers. +See \texttt{-wp-interactive <mode>} option for details. + \begin{description} \item[\tt -wp-prover <dp,...>] selects the decision procedures used to discharge proof obligations. See below for supported provers. By @@ -1028,6 +994,13 @@ Support for \textsf{Why-3 IDE} is no longer provided. It is possible to ask for several decision procedures to be tried. For each goal, the first decision procedure that succeeds cancels the other attempts. +\item[\tt -wp-interactive <mode>] selects the interaction mode with + interactive provers such as Coq. Three modes are available: + \texttt{"batch"} mode only check existing scripts (the default); + \texttt{"edit"} mode opens the default prover editor on each generated goal; + \texttt{"fix"} mode only opens + editor for non-proved goals. New scripts are created in the \texttt{interactive} + directory of \textsf{WP} session (see option \texttt{-wp-session <dir>}). \item[\tt -wp-detect] lists the provers available for \textsf{Why-3}. This command can only work if \textsf{why3} API was installed before building and installing \textsf{Frama-C}. @@ -1053,6 +1026,8 @@ Support for \textsf{Why-3 IDE} is no longer provided. to the decision prover (defaults to 10 seconds). \item[\tt -wp-smoke-timeout <n>] sets the timeout (in seconds) for smoke tests (see \verb+-wp-smoke-tests+, defaults to 5 seconds). +\item[\tt -wp-interactive-timeout <n>] sets the timeout (in seconds) for checking + edited scripts with interactive provers (defaults to 30 seconds). \item[\tt -wp-time-extra <n>] additional time allocated to provers when replaying a script. This is used to cope with variable machine load. Default is \verb+5s+. diff --git a/src/plugins/wp/doc/manual/wp_simplifier.tex b/src/plugins/wp/doc/manual/wp_simplifier.tex index 4dda147545e..2e3e82551aa 100644 --- a/src/plugins/wp/doc/manual/wp_simplifier.tex +++ b/src/plugins/wp/doc/manual/wp_simplifier.tex @@ -344,13 +344,3 @@ following heuristic: Inside the same level of priority, alternatives are kept in their original order. - - - - - - - - - - -- GitLab From 10bfe780ee1ee0a7d01d7cb696bfd50986c13229 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 21 Sep 2020 13:33:43 +0200 Subject: [PATCH 198/255] [wp] interactive provers from GUI --- src/plugins/wp/GuiNavigator.ml | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/plugins/wp/GuiNavigator.ml b/src/plugins/wp/GuiNavigator.ml index a6bfe8c5311..48b88111f83 100644 --- a/src/plugins/wp/GuiNavigator.ml +++ b/src/plugins/wp/GuiNavigator.ml @@ -263,7 +263,7 @@ class behavior | Some m , _ -> m | None , VCS.NativeCoq -> VCS.EditMode | None , VCS.NativeAltErgo -> VCS.FixMode - | _ -> VCS.BatchMode in + | _ -> if VCS.is_auto prover then VCS.BatchMode else VCS.FixMode in schedule (Prover.prove w ~mode ~result prover) ; refresh w end @@ -291,7 +291,8 @@ class behavior val popup_tip = new Widget.popup () val popup_ergo = new Widget.popup () val popup_coq = new Widget.popup () - val popup_why3 = new Widget.popup () + val popup_why3_auto = new Widget.popup () + val popup_why3_inter = new Widget.popup () val mutable popup_target = None method private popup_delete () = @@ -327,8 +328,10 @@ class behavior popup_tip#add_item ~label:"Run Script" ~callback:(self#popup_run BatchMode) ; popup_tip#add_item ~label:"Edit Proof" ~callback:(self#popup_run EditMode) ; popup_tip#add_item ~label:"Delete Script" ~callback:(self#popup_delete_script) ; - self#add_popup_proofmodes popup_why3 - [ "Run",BatchMode ] ; + popup_why3_auto#add_item ~label:"Run Prover" ~callback:(self#popup_run VCS.BatchMode) ; + popup_why3_inter#add_item ~label:"Check Script" ~callback:(self#popup_run VCS.BatchMode) ; + popup_why3_inter#add_item ~label:"Edit Script" ~callback:(self#popup_run VCS.EditMode) ; + popup_why3_inter#add_item ~label:"Fixup Script" ~callback:(self#popup_run VCS.FixMode) ; self#add_popup_proofmodes popup_ergo [ "Run",BatchMode ; "Open Altgr-Ergo on Fail",EditMode ; "Open Altgr-Ergo",EditMode ] ; self#add_popup_proofmodes popup_coq @@ -344,7 +347,10 @@ class behavior | Some Qed -> popup_qed#run () | Some NativeCoq -> popup_coq#run () | Some NativeAltErgo -> popup_ergo#run () - | Some (Why3 _) -> popup_why3#run () + | Some (Why3 _ as p) -> + if VCS.is_auto p + then popup_why3_auto#run () + else popup_why3_inter#run () end method private action w p = -- GitLab From 07327b2186d67fa157a3860ce13d518ba47e0031 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 22 Sep 2020 14:46:26 +0200 Subject: [PATCH 199/255] [wp/doc] Typo in wp_plugin --- src/plugins/wp/doc/manual/wp_plugin.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/wp/doc/manual/wp_plugin.tex b/src/plugins/wp/doc/manual/wp_plugin.tex index e565b465840..a690b944e0e 100644 --- a/src/plugins/wp/doc/manual/wp_plugin.tex +++ b/src/plugins/wp/doc/manual/wp_plugin.tex @@ -16,7 +16,7 @@ automated theorem provers such as \textsf{Z3}~\cite{Z3} or by interactive proof assistants like \textsf{Coq}~\cite{Coq84} and more generally, any automated or interactive -proover supported by \textsf{Why3}~\cite{Why3}. +prover supported by \textsf{Why3}~\cite{Why3}. \clearpage %----------------------------------------------------------------------------- -- GitLab From e57aab6974783148ca5d632e341410072f695069 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 21 Sep 2020 16:34:20 +0200 Subject: [PATCH 200/255] [wp] base_offset now depends on the base --- src/plugins/wp/MemMemory.ml | 7 ++++- src/plugins/wp/MemMemory.mli | 2 +- src/plugins/wp/MemTyped.ml | 2 +- src/plugins/wp/share/coqwp/Memory.v | 29 ++++++++++++++----- .../wp/share/why3/frama_c_wp/memory.mlw | 11 +++++-- 5 files changed, 39 insertions(+), 12 deletions(-) diff --git a/src/plugins/wp/MemMemory.ml b/src/plugins/wp/MemMemory.ml index 2baa223b636..c010c839074 100644 --- a/src/plugins/wp/MemMemory.ml +++ b/src/plugins/wp/MemMemory.ml @@ -47,6 +47,9 @@ let f_shift = Lang.extern_f ~library ~result:t_addr "shift" let f_global = Lang.extern_f ~library ~result:t_addr ~category:L.Injection "global" let f_null = Lang.extern_f ~library ~result:t_addr "null" +let f_base_offset_table = Lang.extern_f ~library + ~category:Qed.Logic.Function ~result:L.Int "base_offset_table" + let f_base_offset = Lang.extern_f ~library ~category:Qed.Logic.Injection ~result:L.Int "base_offset" @@ -108,7 +111,9 @@ let a_offset p = e_fun f_offset [p] let a_global b = e_fun f_global [b] let a_shift l k = e_fun f_shift [l;k] let a_addr b k = a_shift (a_global b) k -let a_base_offset k = e_fun f_base_offset [k] +let a_base_offset b k = + let offset_index = e_fun f_base_offset_table [b] in + e_fun f_base_offset [offset_index ; k] (* -------------------------------------------------------------------------- *) (* --- Qed Simplifiers --- *) diff --git a/src/plugins/wp/MemMemory.mli b/src/plugins/wp/MemMemory.mli index bd50be0f171..1a90054368b 100644 --- a/src/plugins/wp/MemMemory.mli +++ b/src/plugins/wp/MemMemory.mli @@ -40,7 +40,7 @@ val a_addr : term -> term -> term (** Constructor for [{ base ; offset }] *) val a_shift : term -> term -> term (** Shift: [a_shift a k] adds [k] to [a.offset] *) val a_base : term -> term (** Returns the base *) val a_offset : term -> term (** Returns the offset *) -val a_base_offset : term -> term +val a_base_offset : term -> term -> term (** Returns the offset in {i bytes} from the {i logic} offset (which is a memory cell index, actually) *) diff --git a/src/plugins/wp/MemTyped.ml b/src/plugins/wp/MemTyped.ml index 485811385be..b885cd1e214 100644 --- a/src/plugins/wp/MemTyped.ml +++ b/src/plugins/wp/MemTyped.ml @@ -598,7 +598,7 @@ let pointer_val t = t let allocated sigma l = F.e_get (Sigma.value sigma T_alloc) (a_base l) let base_addr l = a_addr (a_base l) e_zero -let base_offset l = a_base_offset (a_offset l) +let base_offset l = a_base_offset (a_base l) (a_offset l) let block_length sigma obj l = e_fact (Ctypes.sizeof_object obj) (allocated sigma l) diff --git a/src/plugins/wp/share/coqwp/Memory.v b/src/plugins/wp/share/coqwp/Memory.v index de9c9ff5851..05f7eaacdd2 100644 --- a/src/plugins/wp/share/coqwp/Memory.v +++ b/src/plugins/wp/share/coqwp/Memory.v @@ -348,11 +348,11 @@ Definition addr_of_int : Z -> addr. Admitted. (* Why3 goal *) -Definition base_offset: Z -> Z. +Definition base_offset: Z -> Z -> Z. Admitted. (* Why3 goal *) -Definition base_index: Z -> Z. +Definition base_offset_table: Z -> Z. Admitted. (* Why3 goal *) @@ -370,15 +370,30 @@ Lemma addr_of_null : ((int_of_addr null) = 0%Z). Admitted. (* Why3 goal *) -Lemma base_offset_zero : ((base_offset 0%Z) = 0%Z). +Lemma base_offset_zero : forall (t: Z), ((base_offset t 0%Z) = 0%Z). Admitted. (* Why3 goal *) -Lemma base_offset_inj : forall (i:Z), ((base_index (base_offset i)) = i). +Lemma base_offset_monotonic : forall (t:Z) (i:Z) (j:Z), (i <= j)%Z -> + ((base_offset t i) <= (base_offset t j))%Z. Admitted. -(* Why3 goal *) -Lemma base_offset_monotonic : forall (i:Z) (j:Z), (i < j)%Z -> - ((base_offset i) < (base_offset j))%Z. +Definition cinits (m: farray addr bool) : Prop. +Admitted. + +Definition is_init_range(m: farray addr bool) (p: addr) (l: Z) := + forall i : int, (0 <= i)%Z /\ (i < l)%Z -> m .[ shift p i ] = true. + +Definition set_init (m: farray addr bool) (p:addr) (a: Z) : farray addr bool. +Admitted. + +Lemma set_init_access: + forall m: farray addr bool, + forall q p : addr, + forall a : int, + (~ separated q 1%Z p a -> (set_init m p a) .[ q ] = m .[ q ]) + /\ (separated q 1%Z p a -> (set_init m p a) .[ q ] = true). Admitted. +Definition monotonic_init(m1 m2 : farray addr bool) := + forall p: addr, m1 .[ p ] = true -> m2 .[ p ] = true. diff --git a/src/plugins/wp/share/why3/frama_c_wp/memory.mlw b/src/plugins/wp/share/why3/frama_c_wp/memory.mlw index 12cb76c9651..fffb52d4ea1 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/memory.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/memory.mlw @@ -182,8 +182,15 @@ theory Memory function int_of_addr addr : int function addr_of_int int : addr - function base_offset int : int - function base_index int : int + function base_offset int int : int + function base_offset_table int : int + + axiom base_offset_zero: + forall table: int. base_offset table 0 = 0 + + axiom base_offset_monotonic: + forall table o1 o2: int. + o1 <= o2 <-> base_offset table o1 <= base_offset table o2 axiom int_of_addr_bijection : forall a:int. int_of_addr (addr_of_int a) = a -- GitLab From b9db0c620c8863f4cdd99fa63fef021131a34f68 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 21 Sep 2020 16:57:19 +0200 Subject: [PATCH 201/255] [wp] Update test oracle --- .../wp/tests/wp_acsl/oracle/base_offset.res.oracle | 8 +++++--- .../wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle index 436b0b25bcc..fcc2455baea 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle @@ -17,13 +17,15 @@ Prove: true. ------------------------------------------------------------ Goal Post-condition (file tests/wp_acsl/base_offset.i, line 15) in 'f': -Let x = p.offset. +Let x = p.base. +Let x_1 = base_offset_table(x). +Let x_2 = p.offset. Assume { (* Heap *) - Type: region(p.base) <= 0. + Type: region(x) <= 0. (* Goal *) When: (0 <= i) /\ (i <= i_1) /\ (i_1 <= 3). } -Prove: base_offset(1 + i + x) <= base_offset(1 + i_1 + x). +Prove: base_offset(x_1, 1 + i + x_2) <= base_offset(x_1, 1 + i_1 + x_2). ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle index a8fdef13518..8b29211f4ec 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle @@ -5,11 +5,11 @@ [wp] 3 goals scheduled [wp] [Qed] Goal typed_f_ensures : Valid [wp] [Qed] Goal typed_f_ensures_2 : Valid -[wp] [Alt-Ergo] Goal typed_f_ensures_3 : Unsuccess -[wp] Proved goals: 2 / 3 +[wp] [Alt-Ergo] Goal typed_f_ensures_3 : Valid +[wp] Proved goals: 3 / 3 Qed: 2 - Alt-Ergo: 0 (unsuccess: 1) + Alt-Ergo: 1 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success - f 2 - 3 66.7% + f 2 1 3 100% ------------------------------------------------------------ -- GitLab From f456c7b7b3060f8f1c01aa0c26b13d6f8cf4010f Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 22 Sep 2020 14:15:14 +0200 Subject: [PATCH 202/255] [wp] More tests on base_offset --- src/plugins/wp/tests/wp_acsl/base_offset.i | 13 +++++++++++++ .../wp/tests/wp_acsl/oracle/base_offset.res.oracle | 13 +++++++++++++ .../wp_acsl/oracle_qualif/base_offset.res.oracle | 9 ++++++--- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/tests/wp_acsl/base_offset.i b/src/plugins/wp/tests/wp_acsl/base_offset.i index e4e96b65f5c..f38f29df60f 100644 --- a/src/plugins/wp/tests/wp_acsl/base_offset.i +++ b/src/plugins/wp/tests/wp_acsl/base_offset.i @@ -16,3 +16,16 @@ struct S* p ; \offset( &p->a[i] ) <= \offset( &p->a[j] ) ; */ void f(void){return;} + +struct { int a ; int b ; } x ; +struct { int a ; int b ; } y ; +struct { double a ; int b ; } z ; + +void g(void){ + int *xb = &x.b; + int *yb = &y.b; + int *zb = &z.b; + + //@ check KO: \offset(xb) == \offset(zb) ; + //@ check KO: \offset(xb) != \offset(yb) ; +} diff --git a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle index fcc2455baea..3876073ea1f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle @@ -29,3 +29,16 @@ Assume { Prove: base_offset(x_1, 1 + i + x_2) <= base_offset(x_1, 1 + i_1 + x_2). ------------------------------------------------------------ +------------------------------------------------------------ + Function g +------------------------------------------------------------ + +Goal Check 'KO' (file tests/wp_acsl/base_offset.i, line 29): +Prove: base_offset_table(G_z_33) = base_offset_table(G_x_31). + +------------------------------------------------------------ + +Goal Check 'KO' (file tests/wp_acsl/base_offset.i, line 30): +Prove: base_offset_table(G_y_32) != base_offset_table(G_x_31). + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle index 8b29211f4ec..05b7c9c11f2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle @@ -2,14 +2,17 @@ [kernel] Parsing tests/wp_acsl/base_offset.i (no preprocessing) [wp] Running WP plugin... [wp] Warning: Missing RTE guards -[wp] 3 goals scheduled +[wp] 5 goals scheduled [wp] [Qed] Goal typed_f_ensures : Valid [wp] [Qed] Goal typed_f_ensures_2 : Valid [wp] [Alt-Ergo] Goal typed_f_ensures_3 : Valid -[wp] Proved goals: 3 / 3 +[wp] [Alt-Ergo] Goal typed_g_check_KO : Unsuccess +[wp] [Alt-Ergo] Goal typed_g_check_KO_2 : Unsuccess +[wp] Proved goals: 3 / 5 Qed: 2 - Alt-Ergo: 1 + Alt-Ergo: 1 (unsuccess: 2) ------------------------------------------------------------ Functions WP Alt-Ergo Total Success f 2 1 3 100% + g - - 2 0.0% ------------------------------------------------------------ -- GitLab From b8c2f7ed1d5a7528e9488e02039f83d1bbd8a72e Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Tue, 22 Sep 2020 15:23:32 +0200 Subject: [PATCH 203/255] [wp] Introduces table abstract type for offsets --- src/plugins/wp/MemMemory.ml | 15 +++++++++------ src/plugins/wp/share/coqwp/Memory.v | 13 ++++++++----- src/plugins/wp/share/why3/frama_c_wp/memory.mlw | 16 +++++++++------- .../tests/wp_acsl/oracle/base_offset.res.oracle | 10 +++++----- .../init_t2_bis_v2_assigns_exit_part2.json | 4 ++-- .../init_t2_bis_v2_assigns_normal_part2.json | 4 ++-- .../init_t2_bis_v2_loop_assigns_part2.json | 4 ++-- .../init_t2_bis_v2_loop_assigns_part3.json | 4 ++-- 8 files changed, 39 insertions(+), 31 deletions(-) diff --git a/src/plugins/wp/MemMemory.ml b/src/plugins/wp/MemMemory.ml index c010c839074..c0f4455e346 100644 --- a/src/plugins/wp/MemMemory.ml +++ b/src/plugins/wp/MemMemory.ml @@ -47,11 +47,14 @@ let f_shift = Lang.extern_f ~library ~result:t_addr "shift" let f_global = Lang.extern_f ~library ~result:t_addr ~category:L.Injection "global" let f_null = Lang.extern_f ~library ~result:t_addr "null" -let f_base_offset_table = Lang.extern_f ~library - ~category:Qed.Logic.Function ~result:L.Int "base_offset_table" +let a_table = Lang.datatype ~library "table" +let t_table = L.Data(a_table,[]) -let f_base_offset = Lang.extern_f ~library - ~category:Qed.Logic.Injection ~result:L.Int "base_offset" +let f_table_of_base = Lang.extern_f ~library + ~category:Qed.Logic.Function ~result:t_table "table_of_base" + +let f_table_to_offset = Lang.extern_f ~library + ~category:Qed.Logic.Injection ~result:L.Int "table_to_offset" let ty_fst_arg = function | Some l :: _ -> l @@ -112,8 +115,8 @@ let a_global b = e_fun f_global [b] let a_shift l k = e_fun f_shift [l;k] let a_addr b k = a_shift (a_global b) k let a_base_offset b k = - let offset_index = e_fun f_base_offset_table [b] in - e_fun f_base_offset [offset_index ; k] + let offset_index = e_fun f_table_of_base [b] in + e_fun f_table_to_offset [offset_index ; k] (* -------------------------------------------------------------------------- *) (* --- Qed Simplifiers --- *) diff --git a/src/plugins/wp/share/coqwp/Memory.v b/src/plugins/wp/share/coqwp/Memory.v index 05f7eaacdd2..ff59f9557f9 100644 --- a/src/plugins/wp/share/coqwp/Memory.v +++ b/src/plugins/wp/share/coqwp/Memory.v @@ -347,12 +347,15 @@ Admitted. Definition addr_of_int : Z -> addr. Admitted. +Definition table : Type. +Admitted. + (* Why3 goal *) -Definition base_offset: Z -> Z -> Z. +Definition table_to_offset: table -> Z -> Z. Admitted. (* Why3 goal *) -Definition base_offset_table: Z -> Z. +Definition table_of_base: Z -> table. Admitted. (* Why3 goal *) @@ -370,12 +373,12 @@ Lemma addr_of_null : ((int_of_addr null) = 0%Z). Admitted. (* Why3 goal *) -Lemma base_offset_zero : forall (t: Z), ((base_offset t 0%Z) = 0%Z). +Lemma table_to_offset_zero : forall (t: table), ((table_to_offset t 0%Z) = 0%Z). Admitted. (* Why3 goal *) -Lemma base_offset_monotonic : forall (t:Z) (i:Z) (j:Z), (i <= j)%Z -> - ((base_offset t i) <= (base_offset t j))%Z. +Lemma table_to_offset_monotonic : forall (t:table) (i:Z) (j:Z), (i <= j)%Z -> + ((table_to_offset t i) <= (table_to_offset t j))%Z. Admitted. Definition cinits (m: farray addr bool) : Prop. diff --git a/src/plugins/wp/share/why3/frama_c_wp/memory.mlw b/src/plugins/wp/share/why3/frama_c_wp/memory.mlw index fffb52d4ea1..c2f0cc8634b 100644 --- a/src/plugins/wp/share/why3/frama_c_wp/memory.mlw +++ b/src/plugins/wp/share/why3/frama_c_wp/memory.mlw @@ -182,15 +182,17 @@ theory Memory function int_of_addr addr : int function addr_of_int int : addr - function base_offset int int : int - function base_offset_table int : int - axiom base_offset_zero: - forall table: int. base_offset table 0 = 0 + type table (* abstract for now, but can be more elaborated later on *) + function table_of_base int : table + function table_to_offset table int : int - axiom base_offset_monotonic: - forall table o1 o2: int. - o1 <= o2 <-> base_offset table o1 <= base_offset table o2 + axiom table_to_offset_zero: + forall t: table. table_to_offset t 0 = 0 + + axiom table_to_offset_monotonic: + forall t: table. forall o1 o2: int. + o1 <= o2 <-> table_to_offset t o1 <= table_to_offset t o2 axiom int_of_addr_bijection : forall a:int. int_of_addr (addr_of_int a) = a diff --git a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle index 3876073ea1f..386eb1ab4c2 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle @@ -18,15 +18,15 @@ Prove: true. Goal Post-condition (file tests/wp_acsl/base_offset.i, line 15) in 'f': Let x = p.base. -Let x_1 = base_offset_table(x). -Let x_2 = p.offset. +Let a = table_of_base(x). +Let x_1 = p.offset. Assume { (* Heap *) Type: region(x) <= 0. (* Goal *) When: (0 <= i) /\ (i <= i_1) /\ (i_1 <= 3). } -Prove: base_offset(x_1, 1 + i + x_2) <= base_offset(x_1, 1 + i_1 + x_2). +Prove: table_to_offset(a, 1 + i + x_1) <= table_to_offset(a, 1 + i_1 + x_1). ------------------------------------------------------------ ------------------------------------------------------------ @@ -34,11 +34,11 @@ Prove: base_offset(x_1, 1 + i + x_2) <= base_offset(x_1, 1 + i_1 + x_2). ------------------------------------------------------------ Goal Check 'KO' (file tests/wp_acsl/base_offset.i, line 29): -Prove: base_offset_table(G_z_33) = base_offset_table(G_x_31). +Prove: table_of_base(G_z_33) = table_of_base(G_x_31). ------------------------------------------------------------ Goal Check 'KO' (file tests/wp_acsl/base_offset.i, line 30): -Prove: base_offset_table(G_y_32) != base_offset_table(G_x_31). +Prove: table_of_base(G_y_32) != table_of_base(G_x_31). ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_exit_part2.json b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_exit_part2.json index 2b58bbe6577..3a1b937b6ff 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_exit_part2.json +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_exit_part2.json @@ -3,8 +3,8 @@ "target": "exists i_0,i_1:int.\n(i_0<=i_136) /\\ (i_1<=i_137) /\\ (0<=i_0) /\\ (i_136<=i_0) /\\ (i_137<=i_1)\n/\\ (i_0<=9)", "pattern": "\\E\\E&<=<=<=<=<=<=#1$i#0$i0#1$i#1" }, "children": { "Goal 1/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0092, + "verdict": "valid", "time": 0.0097, "steps": 12 } ], "Goal 2/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0095, + "verdict": "valid", "time": 0.0109, "steps": 16 } ] } } ] diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_normal_part2.json b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_normal_part2.json index 2b58bbe6577..3a1b937b6ff 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_normal_part2.json +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_assigns_normal_part2.json @@ -3,8 +3,8 @@ "target": "exists i_0,i_1:int.\n(i_0<=i_136) /\\ (i_1<=i_137) /\\ (0<=i_0) /\\ (i_136<=i_0) /\\ (i_137<=i_1)\n/\\ (i_0<=9)", "pattern": "\\E\\E&<=<=<=<=<=<=#1$i#0$i0#1$i#1" }, "children": { "Goal 1/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0092, + "verdict": "valid", "time": 0.0097, "steps": 12 } ], "Goal 2/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0095, + "verdict": "valid", "time": 0.0109, "steps": 16 } ] } } ] diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part2.json b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part2.json index be4d92c4fe5..d177a98c28b 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part2.json +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part2.json @@ -3,8 +3,8 @@ "target": "exists i_0,i_1:int.\n(i_0<=i_9) /\\ (i_1<=i_10) /\\ (0<=i_0) /\\ (i_9<=i_0) /\\ (i_10<=i_1)\n/\\ (i_0<=9)", "pattern": "\\E\\E&<=<=<=<=<=<=#1$i#0$i0#1$i#1" }, "children": { "Goal 1/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0106, + "verdict": "valid", "time": 0.0124, "steps": 22 } ], "Goal 2/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0128, + "verdict": "valid", "time": 0.009, "steps": 28 } ] } } ] diff --git a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part3.json b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part3.json index b790982cc65..f5c72396b7f 100644 --- a/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part3.json +++ b/src/plugins/wp/tests/wp_typed/oracle_qualif/user_init.1.session/script/init_t2_bis_v2_loop_assigns_part3.json @@ -3,8 +3,8 @@ "target": "exists i_1,i_2:int.\n(i_1<=i_0) /\\ (i_2<=i_3) /\\ (0<=i_1) /\\ (i_0<=i_1) /\\ (i_3<=i_2) /\\ (i_1<=9)", "pattern": "\\E\\E&<=<=<=<=<=<=#1$i#0$i0#1$i#1" }, "children": { "Goal 1/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0097, + "verdict": "valid", "time": 0.0133, "steps": 16 } ], "Goal 2/2": [ { "prover": "Alt-Ergo:2.0.0", - "verdict": "valid", "time": 0.0105, + "verdict": "valid", "time": 0.0081, "steps": 22 } ] } } ] -- GitLab From 0c70644129abf36067add678b5b5fe2f5cc0cda0 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Mon, 7 Sep 2020 15:37:12 +0200 Subject: [PATCH 204/255] [kernel] Update Property to use a Set for the complete and disjoint behaviors --- src/kernel_services/ast_data/property.ml | 30 ++++++++++++------- src/kernel_services/ast_data/property.mli | 2 +- .../ast_printing/description.ml | 19 ++++++++---- .../wp/tests/wp/oracle/wp_behav.res.oracle | 2 +- .../tests/wp/oracle/wp_behavior.0.res.oracle | 4 +-- .../tests/wp/oracle/wp_behavior.1.res.oracle | 4 +-- .../wp/oracle_qualif/wp_behav.0.res.oracle | 2 +- .../oracle/frama_c_hashtbl_solved.res.oracle | 8 ++--- .../frama_c_hashtbl_solved.res.oracle | 8 ++--- src/plugins/wp/wpPropId.ml | 9 ++++-- 10 files changed, 53 insertions(+), 35 deletions(-) diff --git a/src/kernel_services/ast_data/property.ml b/src/kernel_services/ast_data/property.ml index 4029b382948..76dbce8cdaf 100644 --- a/src/kernel_services/ast_data/property.ml +++ b/src/kernel_services/ast_data/property.ml @@ -76,7 +76,7 @@ type identified_complete = { ic_kf : kernel_function; ic_kinstr : kinstr; ic_active : Datatype.String.Set.t; - ic_bhvs : string list + ic_bhvs : Datatype.String.Set.t } type identified_disjoint = identified_complete @@ -461,14 +461,16 @@ include Datatype.Make_with_collections | IPCodeAnnot {ica_ca} -> Cil_printer.pp_code_annotation fmt ica_ca | IPComplete {ic_active; ic_bhvs} -> Format.fprintf fmt "complete@ %a" - (Pretty_utils.pp_list ~sep:"," - (fun fmt s -> Format.fprintf fmt "@ %s" s)) + (Pretty_utils.pp_iter ~sep:"," + Datatype.String.Set.iter + (fun fmt s -> Format.fprintf fmt "@ %s" s)) ic_bhvs; pp_active fmt ic_active | IPDisjoint {ic_active; ic_bhvs} -> Format.fprintf fmt "disjoint@ %a" - (Pretty_utils.pp_list ~sep:"," - (fun fmt s -> Format.fprintf fmt "@ %s" s)) + (Pretty_utils.pp_iter ~sep:"," + Datatype.String.Set.iter + (fun fmt s -> Format.fprintf fmt "@ %s" s)) ic_bhvs; pp_active fmt ic_active | IPAllocation {ial_allocs=(f,a)} -> @@ -511,11 +513,11 @@ include Datatype.Make_with_collections (* complete list is more likely to discriminate than active list. *) Hashtbl.hash (6, Kf.hash f, Kinstr.hash ki, - (y:string list), (x:Datatype.String.Set.t)) + Datatype.String.Set.hash y, Datatype.String.Set.hash x) | IPDisjoint {ic_kf=f; ic_kinstr=ki; ic_bhvs=y; ic_active=x} -> Hashtbl.hash (7, Kf.hash f, Kinstr.hash ki, - (y: string list), (x:Datatype.String.Set.t)) + Datatype.String.Set.hash y, Datatype.String.Set.hash x) | IPAssigns {ias_kf=f; ias_kinstr=ki; ias_bhv=b} -> Hashtbl.hash (8, Kf.hash f, Kinstr.hash ki, hash_bhv_loop b) | IPFrom {if_kf=kf; if_kinstr=ki; if_bhv=b; if_from=(t, _)} -> @@ -572,7 +574,7 @@ include Datatype.Make_with_collections IPComplete {ic_kf=f2;ic_kinstr=ki2;ic_active=a2;ic_bhvs=x2} | IPDisjoint {ic_kf=f1;ic_kinstr=ki1;ic_active=a1;ic_bhvs=x1}, IPDisjoint {ic_kf=f2;ic_kinstr=ki2;ic_active=a2;ic_bhvs=x2} -> - Kf.equal f1 f2 && Kinstr.equal ki1 ki2 && a1 = a2 && x1 = x2 + Kf.equal f1 f2 && Kinstr.equal ki1 ki2 && a1 = a2 && Datatype.String.Set.equal x1 x2 | IPAllocation {ial_kf=f1;ial_kinstr=ki1;ial_bhv=b1}, IPAllocation {ial_kf=f2;ial_kinstr=ki2;ial_bhv=b2} | IPAssigns {ias_kf=f1;ias_kinstr=ki1;ias_bhv=b1}, @@ -641,7 +643,7 @@ include Datatype.Make_with_collections if n = 0 then let n = Kinstr.compare ki1 ki2 in if n = 0 then - let n = Extlib.compare_basic x1 x2 in + let n = Datatype.String.Set.compare x1 x2 in if n = 0 then Datatype.String.Set.compare a1 a2 else n @@ -824,13 +826,13 @@ let rec pretty_debug fmt = function Cil_types_debug.pp_kernel_function ic_kf Cil_types_debug.pp_kinstr ic_kinstr Datatype.String.Set.pretty ic_active - (Cil_types_debug.pp_list Cil_types_debug.pp_string) ic_bhvs + Datatype.String.Set.pretty ic_bhvs | IPDisjoint {ic_kf; ic_kinstr; ic_active; ic_bhvs} -> Format.fprintf fmt "IPDisjoint(%a,%a,%a,%a)" Cil_types_debug.pp_kernel_function ic_kf Cil_types_debug.pp_kinstr ic_kinstr Datatype.String.Set.pretty ic_active - (Cil_types_debug.pp_list Cil_types_debug.pp_string) ic_bhvs + Datatype.String.Set.pretty ic_bhvs | IPDecrease {id_kf; id_kinstr; id_ca; id_variant} -> Format.fprintf fmt "IPDecrease(%a,%a,%a,%a)" Cil_types_debug.pp_kernel_function id_kf @@ -1023,9 +1025,11 @@ struct | AExtended(_,_,{ext_name}) -> ext_name in Format.asprintf "%s%s%a" (kf_prefix kf) name pp_code_annot_names ca | IPComplete {ic_kf=kf; ic_kinstr=ki; ic_active=a; ic_bhvs=lb} -> + let lb = Datatype.String.Set.elements lb in Format.asprintf "%s%s%acomplete%a" (kf_prefix kf) (ki_prefix ki) active_prefix a pp_names lb | IPDisjoint {ic_kf=kf; ic_kinstr=ki; ic_active=a; ic_bhvs=lb} -> + let lb = Datatype.String.Set.elements lb in Format.asprintf "%s%s%adisjoint%a" (kf_prefix kf) (ki_prefix ki) active_prefix a pp_names lb | IPDecrease {id_kf=kf; id_ca=None; id_variant=variant} -> @@ -1235,8 +1239,10 @@ struct [K kf ; A "loop_allocates" ] | IPComplete {ic_kf=kf; ic_bhvs=cs} -> + let cs = Datatype.String.Set.elements cs in (K kf :: A "complete" :: List.map (fun a -> A a) cs) | IPDisjoint {ic_kf=kf; ic_bhvs=cs} -> + let cs = Datatype.String.Set.elements cs in (K kf :: A "disjoint" :: List.map (fun a -> A a) cs) | IPReachable {ir_kf=None} -> [] @@ -1449,6 +1455,7 @@ let ip_all_of_behavior kf st ~active b = @ List.map (ip_of_extended (e_loc_of_stmt kf st)) b.b_extended let ip_of_complete ic_kf ic_kinstr ~active ic_bhvs = + let ic_bhvs = Datatype.String.Set.of_list ic_bhvs in let ic_active = Datatype.String.Set.of_list active in IPComplete {ic_kf; ic_kinstr; ic_active; ic_bhvs} @@ -1456,6 +1463,7 @@ let ip_complete_of_spec kf st ~active s = List.map (ip_of_complete kf st ~active) s.spec_complete_behaviors let ip_of_disjoint ic_kf ic_kinstr ~active ic_bhvs = + let ic_bhvs = Datatype.String.Set.of_list ic_bhvs in let ic_active = Datatype.String.Set.of_list active in IPDisjoint {ic_kf; ic_kinstr; ic_active; ic_bhvs} diff --git a/src/kernel_services/ast_data/property.mli b/src/kernel_services/ast_data/property.mli index 395250cf2e3..ef1f193333d 100644 --- a/src/kernel_services/ast_data/property.mli +++ b/src/kernel_services/ast_data/property.mli @@ -100,7 +100,7 @@ type identified_complete = { ic_kf : kernel_function; ic_kinstr : kinstr; ic_active : Datatype.String.Set.t; - ic_bhvs : string list + ic_bhvs : Datatype.String.Set.t } (** Same as for {!identified_behavior}. *) diff --git a/src/kernel_services/ast_printing/description.ml b/src/kernel_services/ast_printing/description.ml index e9de181388e..8ccda1048a0 100644 --- a/src/kernel_services/ast_printing/description.ml +++ b/src/kernel_services/ast_printing/description.ml @@ -95,12 +95,17 @@ let pp_bhv fmt bhv = if not (Cil.is_default_behavior bhv) then Format.fprintf fmt " for '%s'" bhv.b_name -let pp_bhvs fmt = function - | [] -> () - | b::bs -> - Format.fprintf fmt " @[<hov 0>'%s'" b ; - List.iter (fun b -> Format.fprintf fmt ",@ '%s'" b) bs ; - Format.fprintf fmt "@]" +let pp_bhvs fmt bhvs = + if Datatype.String.Set.is_empty bhvs then + () + else + Pretty_utils.pp_iter + ~pre:" @[<hov 0>" + ~suf:"@]" + ~sep:",@ " + Datatype.String.Set.iter + (fun fmt s -> Format.fprintf fmt "'%s'" s) + fmt bhvs let pp_for fmt = function | [] -> () @@ -492,8 +497,10 @@ let rec ip_order = function | IPBehavior {ib_kf;ib_kinstr;ib_active;ib_bhv} -> [I 6;F ib_kf;K ib_kinstr;B ib_bhv; A ib_active] | IPComplete {ic_kf;ic_kinstr;ic_active;ic_bhvs} -> + let ic_bhvs = Datatype.String.Set.elements ic_bhvs in [I 7;F ic_kf;K ic_kinstr; A ic_active] @ for_order 0 ic_bhvs | IPDisjoint {ic_kf;ic_kinstr;ic_active;ic_bhvs} -> + let ic_bhvs = Datatype.String.Set.elements ic_bhvs in [I 8;F ic_kf;K ic_kinstr; A ic_active] @ for_order 0 ic_bhvs | IPPredicate {ip_kind;ip_kf;ip_kinstr} -> [I 9;F ip_kf;K ip_kinstr] @ kind_order ip_kind diff --git a/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle index 5d027100e99..1482e87b434 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behav.res.oracle @@ -30,7 +30,7 @@ Prove: true. Function bhv ------------------------------------------------------------ -Goal Complete behaviors 'pos', 'neg': +Goal Complete behaviors 'neg', 'pos': Assume { Type: is_sint32(n). (* Pre-condition *) Have: n != 0. } Prove: (0 < n) \/ (n < 0). diff --git a/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle index c28768d2976..c377eb93bf7 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behavior.0.res.oracle @@ -6,7 +6,7 @@ Function behaviors ------------------------------------------------------------ -Goal Complete behaviors 'Y', 'X': +Goal Complete behaviors 'X', 'Y': Assume { (* Pre-condition *) Have: P_R. @@ -19,7 +19,7 @@ Prove: P_CX \/ P_CY. ------------------------------------------------------------ -Goal Disjoint behaviors 'Y', 'X': +Goal Disjoint behaviors 'X', 'Y': Assume { (* Pre-condition *) Have: P_R. diff --git a/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle b/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle index e6e7eac38d3..8d98a45587a 100644 --- a/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle +++ b/src/plugins/wp/tests/wp/oracle/wp_behavior.1.res.oracle @@ -6,13 +6,13 @@ Function behaviors ------------------------------------------------------------ -Goal Complete behaviors 'Y', 'X': +Goal Complete behaviors 'X', 'Y': Assume { (* Pre-condition *) Have: P_R. } Prove: P_CX \/ P_CY. ------------------------------------------------------------ -Goal Disjoint behaviors 'Y', 'X': +Goal Disjoint behaviors 'X', 'Y': Assume { (* Pre-condition *) Have: P_R. } Prove: (!P_CX) \/ (!P_CY). diff --git a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle index 36780873763..faa679c9669 100644 --- a/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle +++ b/src/plugins/wp/tests/wp/oracle_qualif/wp_behav.0.res.oracle @@ -22,7 +22,7 @@ [wp] [Qed] Goal typed_min_disjoint_bx_by : Valid [wp] [Qed] Goal typed_min_bx_ensures_qed_ok : Valid [wp] [Qed] Goal typed_min_by_ensures_qed_ok : Valid -[wp] [Alt-Ergo] Goal typed_bhv_complete_pos_neg : Valid +[wp] [Alt-Ergo] Goal typed_bhv_complete_neg_pos : Valid [wp] [Qed] Goal typed_bhv_pos_ensures_qed_ok : Valid [wp] [Qed] Goal typed_bhv_neg_ensures_qed_ok : Valid [wp] [Qed] Goal typed_stmt_contract_requires_qed_ok : Valid diff --git a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle index b4db2ed7bdd..2429963d412 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle/frama_c_hashtbl_solved.res.oracle @@ -7,8 +7,8 @@ [rte] annotating function init [rte] annotating function mem_binding [rte] annotating function size -[wp] Goal typed_eq_string_complete_not_eq_eq : trivial -[wp] Goal typed_eq_string_disjoint_not_eq_eq : trivial +[wp] Goal typed_eq_string_complete_eq_not_eq : trivial +[wp] Goal typed_eq_string_disjoint_eq_not_eq : trivial [wp] Goal typed_eq_string_loop_invariant_preserved : not tried [wp] Goal typed_eq_string_loop_invariant_established : not tried [wp] Goal typed_eq_string_loop_invariant_2_preserved : not tried @@ -111,8 +111,8 @@ [wp] Goal typed_add_full_assigns_normal_part7 : not tried [wp] Goal typed_add_full_assigns_normal_part8 : not tried [wp] Goal typed_add_full_assigns_normal_part9 : not tried -[wp] Goal typed_mem_binding_complete_not_found_found : not tried -[wp] Goal typed_mem_binding_disjoint_not_found_found : not tried +[wp] Goal typed_mem_binding_complete_found_not_found : not tried +[wp] Goal typed_mem_binding_disjoint_found_not_found : not tried [wp] Goal typed_mem_binding_loop_invariant_preserved : not tried [wp] Goal typed_mem_binding_loop_invariant_established : not tried [wp] Goal typed_mem_binding_loop_invariant_2_preserved : not tried diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle index aa0a56a75fb..b9066d9921a 100644 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.res.oracle @@ -3,8 +3,8 @@ [wp] Running WP plugin... [wp] Warning: Missing RTE guards [wp] 102 goals scheduled -[wp] [Qed] Goal typed_eq_string_complete_not_eq_eq : Valid -[wp] [Qed] Goal typed_eq_string_disjoint_not_eq_eq : Valid +[wp] [Qed] Goal typed_eq_string_complete_eq_not_eq : Valid +[wp] [Qed] Goal typed_eq_string_disjoint_eq_not_eq : Valid [wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_preserved : Valid [wp] [Qed] Goal typed_eq_string_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_eq_string_loop_invariant_2_preserved : Valid @@ -79,8 +79,8 @@ [wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part7 : Valid [wp] [Alt-Ergo] Goal typed_add_full_assigns_normal_part8 : Valid [wp] [Qed] Goal typed_add_full_assigns_normal_part9 : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_complete_not_found_found : Valid -[wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_not_found_found : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_complete_found_not_found : Valid +[wp] [Alt-Ergo] Goal typed_mem_binding_disjoint_found_not_found : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_preserved : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_established : Valid [wp] [Alt-Ergo] Goal typed_mem_binding_loop_invariant_2_preserved : Valid diff --git a/src/plugins/wp/wpPropId.ml b/src/plugins/wp/wpPropId.ml index 22988574935..441d8cbfb9a 100644 --- a/src/plugins/wp/wpPropId.ml +++ b/src/plugins/wp/wpPropId.ml @@ -458,8 +458,11 @@ let get_propid = Names.get_prop_id_name let pp_propid fmt pid = Format.pp_print_string fmt (get_propid pid) -let pp_names fmt l = match l with [] -> () | _ -> - Format.fprintf fmt "_%a" (Wp_error.pp_string_list ~empty:"" ~sep:"_") l +let pp_names fmt l = + let l = Datatype.String.Set.elements l in + match l with + | [] -> () + | _ -> Format.fprintf fmt "_%a" (Wp_error.pp_string_list ~empty:"" ~sep:"_") l let ident_names names = List.filter (function "" -> true @@ -670,7 +673,7 @@ let property_hints hs = List.iter (add_required hs) (il_name::il_pred.tp_statement.pred_name) | IPBehavior _ -> () | IPComplete {ic_bhvs} | IPDisjoint {ic_bhvs} -> - List.iter (add_required hs) ic_bhvs + Datatype.String.Set.iter (add_required hs) ic_bhvs | IPPredicate {ip_pred} -> List.iter (add_hint hs) ip_pred.ip_content.tp_statement.pred_name | IPExtended {ie_ext={ext_name}} -> List.iter (add_hint hs) [ext_name] -- GitLab From 7f7469ec68b37ef95c7723630f6067bb6b5e9d90 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 09:49:30 +0200 Subject: [PATCH 205/255] [eacsl:runtime] Add C API to track active behaviors --- src/plugins/e-acsl/headers/header_spec.txt | 2 + src/plugins/e-acsl/share/e-acsl/e_acsl.h | 1 + src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c | 1 + .../instrumentation_model/e_acsl_contract.c | 158 ++++++++++++++++++ .../instrumentation_model/e_acsl_contract.h | 124 ++++++++++++++ 5 files changed, 286 insertions(+) create mode 100644 src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.c create mode 100644 src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index d014a36259a..b08f8b18f34 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -13,6 +13,8 @@ man/e-acsl-gcc.sh.1: CEA_LGPL_OR_PROPRIETARY.E_ACSL scripts/e-acsl-gcc.sh: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_assert.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_assert.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_contract.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL +share/e-acsl/instrumentation_model/e_acsl_contract.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_temporal.c: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_temporal.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL share/e-acsl/instrumentation_model/e_acsl_temporal_timestamp.h: CEA_LGPL_OR_PROPRIETARY.E_ACSL diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl.h b/src/plugins/e-acsl/share/e-acsl/e_acsl.h index 4bbbe5c05e0..a39a76b8ea6 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl.h +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl.h @@ -90,6 +90,7 @@ /************************************************************************/ #include "observation_model/e_acsl_observation_model.h" +#include "instrumentation_model/e_acsl_contract.h" #include "instrumentation_model/e_acsl_temporal.h" #include "numerical_model/e_acsl_floating_point.h" #include "numerical_model/e_acsl_gmp_api.h" diff --git a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c index 15c2a8b2491..7e74611ac5e 100644 --- a/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c +++ b/src/plugins/e-acsl/share/e-acsl/e_acsl_rtl.c @@ -37,6 +37,7 @@ // Instrumentation model #include "instrumentation_model/e_acsl_assert.c" +#include "instrumentation_model/e_acsl_contract.c" #include "instrumentation_model/e_acsl_temporal.c" // Observation model diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.c b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.c new file mode 100644 index 00000000000..71143a43a2e --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.c @@ -0,0 +1,158 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief Implementation of E-ACSL API for contracts. +***************************************************************************/ + +#include <limits.h> +#include <stdarg.h> + +#include "../internals/e_acsl_debug.h" + +#include "e_acsl_contract.h" + +/*! \brief Return the index of the `char` where the bit number + `global_bit_index` is located. */ +static inline size_t find_char_index(size_t global_bit_index) { + return global_bit_index / CHAR_BIT; +} + +/*! \brief Return the index of the bit in the `char` given by + \ref find_char_index for the bit number `global_bit_index`. */ +static inline size_t find_bit_index(size_t global_bit_index) { + return global_bit_index % CHAR_BIT; +} + +/*! \brief Return the number of `char` to allocate to store `bit_count` bits. */ +static inline size_t find_char_count(size_t bit_count) { + size_t char_count = bit_count / CHAR_BIT; + if (bit_count % CHAR_BIT > 0) { + ++char_count; + } + return char_count; +} + +/*! \brief Normalize the boolean parameter `value` to 0 or 1 */ +static inline int normalize_to_boolean(int value) { + return value ? 1 : 0; +} + +/* Documented in e_acsl.h */ +struct contract_t { + /*! \brief Number of cells in the char array used to store the results of + * the assumes clauses. + */ + size_t char_count; + + /*! \brief Char array to store the results of the assumes clauses. One bit + * per behavior. + * + * The functions \ref find_char_index() and \ref find_bit_index() can be + * used to find the location of the bit for a specific behavior. */ + char * assumes; +}; + +/* Documented in e_acsl.h */ +contract_t * contract_init(size_t size) { + // Allocate memory for the structure + contract_t * c = malloc(sizeof(contract_t)); + DVASSERT(c != NULL, + "Unable to allocate %d bytes of memory for contract_t", + sizeof(contract_t)); + + // Compute the number of char needed to store `size` behaviors, assuming + // that one behavior is stored in one bit. + c->char_count = find_char_count(size); + + // Allocate an array of char of the computed count + if (c->char_count > 0) { + c->assumes = calloc(c->char_count, sizeof(char)); + DVASSERT(c->assumes != NULL, + "Unable to allocate %d cells of %d bytes of memory for contract_t::assumes", + c->char_count, sizeof(char)); + } else { + c->assumes = NULL; + } + + return c; +} + +/* Documented in e_acsl.h */ +void contract_clean(contract_t * c) { + // Free array of char + free(c->assumes); + // Free structure + free(c); +} + +/* Documented in e_acsl.h */ +void contract_set_behavior_assumes(contract_t * c, size_t i, int assumes) { + size_t char_idx = find_char_index(i); + DVASSERT(char_idx < c->char_count, + "Out of bound char index %d (char_count: %d)", + char_idx, c->char_count); + size_t bit_idx = find_bit_index(i); + assumes = normalize_to_boolean(assumes); + c->assumes[char_idx] |= (assumes<<bit_idx); +} + +/* Documented in e_acsl.h */ +int contract_get_behavior_assumes(const contract_t * c, size_t i) { + size_t char_idx = find_char_index(i); + DVASSERT(char_idx < c->char_count, + "Out of bound char index %d (char_count: %d)", + char_idx, c->char_count); + size_t bit_idx = find_bit_index(i); + int result = c->assumes[char_idx] & (1<<bit_idx); + return normalize_to_boolean(result); +} + +/* Documented in e_acsl.h */ +int contract_partial_count_behaviors(const contract_t * c, size_t count, ...) { + va_list args; + va_start(args, count); + + int result = 0; + for (size_t i = 0 ; i < 2 && i < count ; ++i) { + result += contract_get_behavior_assumes(c, va_arg(args, int)); + } + + va_end(args); + return result; +} + +/* Documented in e_acsl.h */ +int contract_partial_count_all_behaviors(const contract_t * c) { + int result = 0; + for (int i = 0 ; i < c->char_count && result < 2 ; ++i) { + // Counting bits set with Kernighan's algorithm, but stopping at two + // bits set. + // cf. <https://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetKernighan> + unsigned char assumes_cell = c->assumes[i]; + for (; assumes_cell && result < 2 ; ++result) { + assumes_cell &= assumes_cell - 1; + } + } + return result; +} diff --git a/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h new file mode 100644 index 00000000000..b3349fdf027 --- /dev/null +++ b/src/plugins/e-acsl/share/e-acsl/instrumentation_model/e_acsl_contract.h @@ -0,0 +1,124 @@ +/**************************************************************************/ +/* */ +/* This file is part of the Frama-C's E-ACSL plug-in. */ +/* */ +/* Copyright (C) 2012-2020 */ +/* CEA (Commissariat à l'énergie atomique et aux énergies */ +/* alternatives) */ +/* */ +/* you can redistribute it and/or modify it under the terms of the GNU */ +/* Lesser General Public License as published by the Free Software */ +/* Foundation, version 2.1. */ +/* */ +/* It is distributed in the hope that it will be useful, */ +/* but WITHOUT ANY WARRANTY; without even the implied warranty of */ +/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ +/* GNU Lesser General Public License for more details. */ +/* */ +/* See the GNU Lesser General Public License version 2.1 */ +/* for more details (enclosed in the file licenses/LGPLv2.1). */ +/* */ +/**************************************************************************/ + +/*! *********************************************************************** + * \file + * \brief E-ACSL support of function and statement contracts. +***************************************************************************/ + +#ifndef E_ACSL_CONTRACT_H +#define E_ACSL_CONTRACT_H + +#include <stddef.h> + +#include "../internals/e_acsl_alias.h" + +#ifdef __FC_STDLIB +#include <__fc_alloc_axiomatic.h> +#else +/*@ ghost extern int __fc_heap_status __attribute__((FRAMA_C_MODEL)); */ +#endif + +#define contract_t export_alias(contract_t) +#define contract_init export_alias(contract_init) +#define contract_clean export_alias(contract_clean) +#define contract_set_behavior_assumes export_alias(contract_set_behavior_assumes) +#define contract_get_behavior_assumes export_alias(contract_get_behavior_assumes) +#define contract_partial_count_behaviors export_alias(contract_partial_count_behaviors) +#define contract_partial_count_all_behaviors export_alias(contract_partial_count_all_behaviors) + +/*! \brief Structure to hold pieces of information about function and statement + * contracts at runtime. */ +typedef struct contract_t __attribute__((__FC_BUILTIN__)) contract_t; + +/*! \brief Allocate and initialize a structure to hold pieces of information + * about `size` behaviors. + * + * \param size Number of behaviors that the structure should support. + * \return A structure to hold pieces of information about contracts at runtime. + */ +/*@ assigns \result \from indirect:__fc_heap_status, indirect:size; + @ ensures \valid(\result); */ +contract_t * contract_init(size_t size) __attribute__((FC_BUILTIN)); + +/*! \brief Cleanup the structure `c` previously allocated by + * \ref contract_init. + * + * \param c The structure to deallocate. + */ +/*@ requires \valid(c); + @ assigns \nothing; */ +void contract_clean(contract_t * c) __attribute__((FC_BUILTIN)); + +/*! \brief Set the result of the assumes clauses for the behavior `i` in the + * structure. + * + * \param c Valid pointer to the structure to update. + * \param i Index of the behavior. The index must be valid. + * \param assumes Boolean result of the assumes clauses for the behavior. + * \see \ref contract_get_behavior_assumes to retrieve the value. + */ +/*@ requires \valid(c); + @ assigns *c \from indirect:c, indirect:i, assumes; */ +void contract_set_behavior_assumes(contract_t * c, size_t i, int assumes) + __attribute__((FC_BUILTIN)); + +/*! \brief Retrieve the result of the assumes clauses for the behavior `i` from + * the structure. + * + * \param c Valid pointer to the structure to read. + * \param i Index of the behavior. The index must be valid. + * \return The result of the assumes clauses for the behavior `i` (1 for true, + * 0 for false). + * \see \ref contract_set_behavior_assumes to set the value. + */ +/*@ requires \valid_read(c); + @ assigns \result \from indirect:c, indirect:i; + @ ensures \result == 0 || \result == 1; */ +int contract_get_behavior_assumes(const contract_t * c, size_t i) + __attribute__((FC_BUILTIN)); + +/*! \brief Count the number of active behaviors among the `count` given + * behaviors. + * + * \param c Valid pointer to the structure to read. + * \param count Number of behaviors to test. There must be `count` values in + * `indexes`. + * \param ... Indexes of the behaviors to test. The indexes must be valid + * and there must be `count` indexes. + * \return 0 if no behaviors are active, 1 if exactly one behavior is active, + * and 2 if more than one behavior is active. + */ +int contract_partial_count_behaviors(const contract_t * c, size_t count, ...) + __attribute__((FC_BUILTIN)); + +/*! \brief Count the number of active behaviors among all the behaviors of the + * contract. + * + * \param c Valid pointer to the structure to read. + * \return 0 if no behaviors are active, 1 if exactly one behavior is active, + * and 2 if more than one behavior is active. + */ +int contract_partial_count_all_behaviors(const contract_t * c) + __attribute__((FC_BUILTIN)); + +#endif -- GitLab From 3275ea5164fab7460807afda4eb97d58ba0a768a Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 09:58:38 +0200 Subject: [PATCH 206/255] [eacsl:libs] Extract the processing of annotation errors in a separate function --- src/plugins/e-acsl/src/libraries/error.ml | 21 ++++++++++++++------- src/plugins/e-acsl/src/libraries/error.mli | 7 +++++++ 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/plugins/e-acsl/src/libraries/error.ml b/src/plugins/e-acsl/src/libraries/error.ml index a572ecdffc6..5c8fec2f96b 100644 --- a/src/plugins/e-acsl/src/libraries/error.ml +++ b/src/plugins/e-acsl/src/libraries/error.ml @@ -48,21 +48,28 @@ module Nb_not_yet = let nb_not_yet = Nb_not_yet.get -let generic_handle f res x = - try - f x - with +let process_error = function | Typing_error s -> let msg = Format.sprintf "@[invalid E-ACSL construct@ `%s'.@]" s in Options.warning ~once:true ~current:true "@[%s@ Ignoring annotation.@]" msg; - Nb_typing.set (Nb_typing.get () + 1); - res + Nb_typing.set (Nb_typing.get () + 1) | Not_yet s -> let msg = Format.sprintf "@[E-ACSL construct@ `%s'@ is not yet supported.@]" s in Options.warning ~once:true ~current:true "@[%s@ Ignoring annotation.@]" msg; - Nb_not_yet.set (Nb_not_yet.get () + 1); + Nb_not_yet.set (Nb_not_yet.get () + 1) + | exn -> + Options.fatal + "Unexpected error in `Error.process_error`: %s" + (Printexc.to_string exn) + +let generic_handle f res x = + try + f x + with + | exn -> + process_error exn; res let handle f x = generic_handle f x x diff --git a/src/plugins/e-acsl/src/libraries/error.mli b/src/plugins/e-acsl/src/libraries/error.mli index 34176dd34e9..2cbea96413a 100644 --- a/src/plugins/e-acsl/src/libraries/error.mli +++ b/src/plugins/e-acsl/src/libraries/error.mli @@ -45,6 +45,13 @@ val nb_untypable: unit -> int val nb_not_yet: unit -> int (** Number of not-yet-supported annotations. *) +val process_error: exn -> unit +(** Process the given error. + + Print a warning message and update the number of not-yet-supported and + untypable annotations. Print a fatal message and abort in case of unknown + errors. *) + (* Local Variables: compile-command: "make" -- GitLab From 8a36630fc050ef809e5c086a8db7bcae5678ca4b Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:04:40 +0200 Subject: [PATCH 207/255] [eacsl:codegen] Extract `handle_error` functions to `Env` --- src/plugins/e-acsl/src/code_generator/env.ml | 17 +++++ src/plugins/e-acsl/src/code_generator/env.mli | 17 +++++ .../e-acsl/src/code_generator/translate.ml | 66 ++++++++----------- 3 files changed, 63 insertions(+), 37 deletions(-) diff --git a/src/plugins/e-acsl/src/code_generator/env.ml b/src/plugins/e-acsl/src/code_generator/env.ml index cfdbe5fdda4..5466f4cc98c 100644 --- a/src/plugins/e-acsl/src/code_generator/env.ml +++ b/src/plugins/e-acsl/src/code_generator/env.ml @@ -491,6 +491,23 @@ module Context = struct end +let handle_error f env = + let env = Error.handle f env in + Context.restore env + +let handle_error_with_args f (env, args) = + let env, args = Error.handle f (env, args) in + let env = Context.restore env in + env, args + +let not_yet env s = + Context.save env; + Error.not_yet s + +let untypable env s = + Context.save env; + Error.untypable s + (* debugging purpose *) let pretty fmt env = let local_env, _ = top env in diff --git a/src/plugins/e-acsl/src/code_generator/env.mli b/src/plugins/e-acsl/src/code_generator/env.mli index 94c11335f1c..065d3babd2b 100644 --- a/src/plugins/e-acsl/src/code_generator/env.mli +++ b/src/plugins/e-acsl/src/code_generator/env.mli @@ -175,6 +175,23 @@ module Context: sig val restore: t -> t end +val handle_error: (t -> t) -> t -> t +(** Run the closure with the given environment and handle potential errors. + Restore the globals of the environment to the last time [Env.Context.save] + was called and return it in case of errors. *) + +val handle_error_with_args: (t * 'a -> t * 'a) -> t * 'a -> t * 'a +(** Run the closure with the given environment and arguments and handle + potential errors. + Restore the globals of the environment to the last time [Env.Context.save] + was called and return it in case of errors. *) + +val not_yet: t -> string -> 'a +(** Save the current context and raise [Error.Not_yet] exception. *) + +val untypable: t -> string -> 'a +(** Save the current context and raise [Error.Typing_error] exception. *) + val pretty: Format.formatter -> t -> unit (* diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 882a4b41f47..5729abd22cd 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -26,14 +26,6 @@ open Cil_datatype let dkey = Options.dkey_translation -let not_yet env s = - Env.Context.save env; - Error.not_yet s - -let handle_error f env = - let env = Error.handle f env in - Env.Context.restore env - (* internal to [named_predicate_to_exp] but put it outside in order to not add extra tedious parameter. It is [true] iff we are currently visiting \valid. *) @@ -257,7 +249,7 @@ and toffset_to_offset ?loc kf env = function let e, env = term_to_exp kf env t in let offset, env = toffset_to_offset kf env offset in Index(e, offset), env - | TModel _ -> not_yet env "model" + | TModel _ -> Env.not_yet env "model" and tlval_to_lval kf env (host, offset) = let host, env, name = thost_to_host kf env host in @@ -307,7 +299,7 @@ and context_insensitive_term_to_exp kf env t = in e, env, C_number, "" else if Gmp_types.Q.is_t ty then - not_yet env "reals: Neg | BNot" + Env.not_yet env "reals: Neg | BNot" else Cil.new_exp ~loc (UnOp(op, e, ty)), env, C_number, "" | TUnOp(LNot, t) -> @@ -602,7 +594,7 @@ and context_insensitive_term_to_exp kf env t = let ty = Typing.get_typ t in Cil.new_exp ~loc (BinOp(MinusPP, e1, e2, ty)), env, C_number, "" | Typing.Gmpz -> - not_yet env "pointer subtraction resulting in gmp" + Env.not_yet env "pointer subtraction resulting in gmp" | Typing.(C_float _ | Rational | Real | Nan) -> assert false end @@ -673,9 +665,9 @@ and context_insensitive_term_to_exp kf env t = in e, env, C_number, "app" | Tapp(_, _ :: _, _) -> - not_yet env "logic functions with labels" - | Tlambda _ -> not_yet env "functional" - | TDataCons _ -> not_yet env "constructor" + Env.not_yet env "logic functions with labels" + | Tlambda _ -> Env.not_yet env "functional" + | TDataCons _ -> Env.not_yet env "constructor" | Tif(t1, t2, t3) -> let e1, env1 = term_to_exp kf (Env.rte env true) t1 in let (_, env2 as res2) = term_to_exp kf (Env.push env1) t2 in @@ -699,29 +691,29 @@ and context_insensitive_term_to_exp kf env t = let name = "base_addr" in let e, env = Memory_translate.call ~loc kf name Cil.voidPtrType env t in e, env, C_number, name - | Tbase_addr _ -> not_yet env "labeled \\base_addr" + | Tbase_addr _ -> Env.not_yet env "labeled \\base_addr" | Toffset(BuiltinLabel Here, t) -> let size_t = Cil.theMachine.Cil.typeOfSizeOf in let name = "offset" in let e, env = Memory_translate.call ~loc kf name size_t env t in e, env, C_number, name - | Toffset _ -> not_yet env "labeled \\offset" + | Toffset _ -> Env.not_yet env "labeled \\offset" | Tblock_length(BuiltinLabel Here, t) -> let size_t = Cil.theMachine.Cil.typeOfSizeOf in let name = "block_length" in let e, env = Memory_translate.call ~loc kf name size_t env t in e, env, C_number, name - | Tblock_length _ -> not_yet env "labeled \\block_length" + | Tblock_length _ -> Env.not_yet env "labeled \\block_length" | Tnull -> Cil.mkCast (Cil.zero ~loc) (TPtr(TVoid [], [])), env, C_number, "null" - | TUpdate _ -> not_yet env "functional update" - | Ttypeof _ -> not_yet env "typeof" - | Ttype _ -> not_yet env "C type" - | Tempty_set -> not_yet env "empty tset" - | Tunion _ -> not_yet env "union of tsets" - | Tinter _ -> not_yet env "intersection of tsets" - | Tcomprehension _ -> not_yet env "tset comprehension" - | Trange _ -> not_yet env "range" + | TUpdate _ -> Env.not_yet env "functional update" + | Ttypeof _ -> Env.not_yet env "typeof" + | Ttype _ -> Env.not_yet env "C type" + | Tempty_set -> Env.not_yet env "empty tset" + | Tunion _ -> Env.not_yet env "union of tsets" + | Tinter _ -> Env.not_yet env "intersection of tsets" + | Tcomprehension _ -> Env.not_yet env "tset comprehension" + | Trange _ -> Env.not_yet env "range" | Tlet(li, t) -> let lvs = Lscope.Lvs_let(li.l_var_info, Misc.term_of_li li) in let env = Env.Logic_scope.extend env lvs in @@ -888,10 +880,10 @@ and named_predicate_content_to_exp ?name kf env p = Typing.type_term ~use_gmp_opt:false ~ctx:Typing.c_int tapp; let e, env = term_to_exp kf env tapp in e, env - | Pseparated _ -> not_yet env "\\separated" - | Pdangling _ -> not_yet env "\\dangling" - | Pobject_pointer _ -> not_yet env "\\object_pointer" - | Pvalid_function _ -> not_yet env "\\valid_function" + | Pseparated _ -> Env.not_yet env "\\separated" + | Pdangling _ -> Env.not_yet env "\\dangling" + | Pobject_pointer _ -> Env.not_yet env "\\object_pointer" + | Pvalid_function _ -> Env.not_yet env "\\valid_function" | Prel(rel, t1, t2) -> let ity = Typing.get_integer_op_of_predicate p in comparison_to_exp ~loc kf env ity (relation_to_binop rel) t1 t2 None @@ -910,7 +902,7 @@ and named_predicate_content_to_exp ?name kf env p = let res2 = named_predicate_to_exp kf (Env.push env') p2 in let name = match name with None -> "or" | Some n -> n in conditional_to_exp ~name loc kf None e1 (Cil.one loc, env') res2 - | Pxor _ -> not_yet env "xor" + | Pxor _ -> Env.not_yet env "xor" | Pimplies(p1, p2) -> (* (p1 ==> p2) <==> !p1 || p2 *) named_predicate_to_exp @@ -986,8 +978,8 @@ and named_predicate_content_to_exp ?name kf env p = | _ -> call_valid t p end - | Pvalid _ -> not_yet env "labeled \\valid" - | Pvalid_read _ -> not_yet env "labeled \\valid_read" + | Pvalid _ -> Env.not_yet env "labeled \\valid" + | Pvalid_read _ -> Env.not_yet env "labeled \\valid_read" | Pinitialized(BuiltinLabel Here, t) -> (match t.term_node with (* optimisation when we know that the initialisation is ok *) @@ -1005,12 +997,12 @@ and named_predicate_content_to_exp ?name kf env p = env t p) - | Pinitialized _ -> not_yet env "labeled \\initialized" - | Pallocable _ -> not_yet env "\\allocate" + | Pinitialized _ -> Env.not_yet env "labeled \\initialized" + | Pallocable _ -> Env.not_yet env "\\allocate" | Pfreeable(BuiltinLabel Here, t) -> Memory_translate.call ~loc kf "freeable" Cil.intType env t - | Pfreeable _ -> not_yet env "labeled \\freeable" - | Pfresh _ -> not_yet env "\\fresh" + | Pfreeable _ -> Env.not_yet env "labeled \\freeable" + | Pfresh _ -> Env.not_yet env "\\fresh" and named_predicate_to_exp ?name kf ?rte env p = let rte = match rte with None -> Env.generate_rte env | Some b -> b in @@ -1039,7 +1031,7 @@ and translate_rte_annots: List.fold_left (fun env a -> match a.annot_content with | AAssert(_, p) -> - handle_error + Env.handle_error (fun env -> Options.feedback ~dkey ~level:4 "prevent RTE from %a" pp elt; (* The logic scope MUST NOT be reset here since we still might -- GitLab From 8dc4d8e96858ca3deaea2a05ab83297af29c302f Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:07:13 +0200 Subject: [PATCH 208/255] [eacsl:codegen] Create a helper function to build a block statement from a list of statements --- src/plugins/e-acsl/src/code_generator/smart_stmt.ml | 1 + src/plugins/e-acsl/src/code_generator/smart_stmt.mli | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml index dec6438762f..98418854690 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_stmt.ml +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.ml @@ -29,6 +29,7 @@ open Cil_types let stmt sk = Cil.mkStmt ~valid_sid:true sk let instr i = stmt (Instr i) let block_stmt blk = stmt (Block blk) +let block_from_stmts stmts = block_stmt (Cil.mkBlock stmts) let call ~loc ?result e args = instr (Call(result, e, args, loc)) let assigns ~loc ~result e = instr (Set(result, e, loc)) diff --git a/src/plugins/e-acsl/src/code_generator/smart_stmt.mli b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli index e0c919a7f88..3aebb9f4cc2 100644 --- a/src/plugins/e-acsl/src/code_generator/smart_stmt.mli +++ b/src/plugins/e-acsl/src/code_generator/smart_stmt.mli @@ -36,6 +36,9 @@ val block: stmt -> block -> stmt val block_stmt: block -> stmt (** Create a block statement from a block *) +val block_from_stmts: stmt list -> stmt +(** Create a block statement from a statement list. *) + val assigns: loc:location -> result:lval -> exp -> stmt (** [assigns ~loc ~result value] create a statement to assign the [value] expression to the [result] lval. *) -- GitLab From cd81eaa6c5b3429f5535211040289a95ea25d4dc Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:17:52 +0200 Subject: [PATCH 209/255] [eacsl] Add optional dependency to the Eva plugin --- src/plugins/e-acsl/.gitignore | 1 + src/plugins/e-acsl/Makefile.in | 51 ++++++++++++++++++- src/plugins/e-acsl/headers/header_spec.txt | 3 ++ .../src/dependencies/dep_eva.disabled.ml | 23 +++++++++ .../src/dependencies/dep_eva.enabled.ml | 23 +++++++++ .../e-acsl/src/dependencies/dep_eva.mli | 27 ++++++++++ 6 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 src/plugins/e-acsl/src/dependencies/dep_eva.disabled.ml create mode 100644 src/plugins/e-acsl/src/dependencies/dep_eva.enabled.ml create mode 100644 src/plugins/e-acsl/src/dependencies/dep_eva.mli diff --git a/src/plugins/e-acsl/.gitignore b/src/plugins/e-acsl/.gitignore index f5ee39fdfac..5543dbdb43e 100644 --- a/src/plugins/e-acsl/.gitignore +++ b/src/plugins/e-acsl/.gitignore @@ -77,3 +77,4 @@ lib/libeacsl-rtl-bittree-dbg.a lib/libeacsl-rtl-segment-dbg.a tests/csrv14/* src/local_config.ml +src/dependencies/dep_eva.ml diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index 3dbd78d2aee..aed90a086c6 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -44,6 +44,11 @@ SRC_LIBRARIES:= \ varname SRC_LIBRARIES:=$(addprefix src/libraries/, $(SRC_LIBRARIES)) +# source files that depend on optional dependencies +SRC_DYN_DEPENDENCIES:= \ + dep_eva +SRC_DYN_DEPENDENCIES:=$(addprefix src/dependencies/, $(SRC_DYN_DEPENDENCIES)) + # project initializer SRC_PROJECT_INITIALIZER:= \ rtl \ @@ -92,6 +97,7 @@ PLUGIN_DIR ?=. PLUGIN_EXTRA_DIRS:=\ src \ src/libraries \ + src/dependencies \ src/analyses \ src/project_initializer \ src/code_generator @@ -101,6 +107,7 @@ PLUGIN_NAME:=E_ACSL PLUGIN_CMO:= src/local_config \ src/options \ $(SRC_LIBRARIES) \ + $(SRC_DYN_DEPENDENCIES) \ $(SRC_PROJECT_INITIALIZER) \ $(SRC_ANALYSES) \ $(SRC_CODE_GENERATOR) \ @@ -109,6 +116,7 @@ PLUGIN_CMO:= src/local_config \ PLUGIN_HAS_MLI:=yes PLUGIN_DISTRIBUTED:=yes PLUGIN_DEPENDENCIES:= RteGen +PLUGIN_GENERATED:= # We "save" this variable so that it can be used once PLUGIN_DIR has been reset EACSL_PLUGIN_DIR:=$(PLUGIN_DIR) @@ -118,6 +126,46 @@ $(EACSL_PLUGIN_DIR)/src/analyses/memory_tracking.cmo \ $(EACSL_PLUGIN_DIR)/src/analyses/memory_tracking.cmi: E_ACSL_BFLAGS+= -w -60 $(EACSL_PLUGIN_DIR)/src/analyses/memory_tracking.cmx: E_ACSL_OFLAGS+= -w -60 +######################## +# Dynamic dependencies # +######################## + +# Distributed files for the dynamic dependencies +EACSL_DISTRIB_DYNDEP:= + +# Eva +DEP_EVA :=src/dependencies/dep_eva +DEP_EVA_ENABLED :=$(DEP_EVA).enabled.ml +DEP_EVA_DISABLED :=$(DEP_EVA).disabled.ml +PLUGIN_GENERATED += $(EACSL_PLUGIN_DIR)/$(DEP_EVA).ml + +## Add enabled and disabled files to the list of distributed files +## (relative to e-acsl directory) +EACSL_DISTRIB_DYNDEP += $(DEP_EVA_ENABLED) $(DEP_EVA_DISABLED) + +## Update enabled and disabled files path to be relative to the root directory +DEP_EVA_ENABLED:=$(addprefix $(EACSL_PLUGIN_DIR)/, $(DEP_EVA_ENABLED)) +DEP_EVA_DISABLED:=$(addprefix $(EACSL_PLUGIN_DIR)/, $(DEP_EVA_DISABLED)) + +## Add Eva to the plugin dependencies if enabled +ifneq "$(ENABLE_EVA)" "no" + PLUGIN_DEPENDENCIES+= Eva +endif + +## Copy enabled or disabled file to the source file that will be used for the +## compilation +$(EACSL_PLUGIN_DIR)/src/dependencies/dep_eva.ml: \ + $(DEP_EVA_ENABLED) $(DEP_EVA_DISABLED) \ + $(EACSL_PLUGIN_DIR)/Makefile share/Makefile.config + $(PRINT_MAKING) $@ + $(RM) $@ +ifneq "$(ENABLE_EVA)" "no" + $(CP) $(DEP_EVA_ENABLED) $@ +else + $(CP) $(DEP_EVA_DISABLED) $@ +endif + $(CHMOD_RO) $@ + ############### # Local Flags # ############### @@ -128,7 +176,7 @@ IS_DISTRIBUTED:=no # Local configuration # ####################### -PLUGIN_GENERATED:= $(EACSL_PLUGIN_DIR)/src/local_config.ml +PLUGIN_GENERATED += $(EACSL_PLUGIN_DIR)/src/local_config.ml VERSION_FILE=$(FRAMAC_ROOT_SRCDIR)/VERSION @@ -324,6 +372,7 @@ EACSL_MISC_FILES = \ EACSL_SHARE_FILES = share/e-acsl/*.[ch] share/e-acsl/*/*.[ch] EACSL_DISTRIB_EXTERNAL =\ + $(EACSL_DISTRIB_DYNDEP) \ $(EACSL_SHARE_FILES) \ $(EACSL_MISC_FILES) \ $(EACSL_DOC_FILES) \ diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index b08f8b18f34..de8c767ec75 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -116,6 +116,9 @@ src/code_generator/temporal.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/temporal.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/translate.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/translate.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/dependencies/dep_eva.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/dependencies/dep_eva.enabled.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/dependencies/dep_eva.disabled.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/libraries/builtins.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/libraries/builtins.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/libraries/error.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL diff --git a/src/plugins/e-acsl/src/dependencies/dep_eva.disabled.ml b/src/plugins/e-acsl/src/dependencies/dep_eva.disabled.ml new file mode 100644 index 00000000000..574d25ed1ab --- /dev/null +++ b/src/plugins/e-acsl/src/dependencies/dep_eva.disabled.ml @@ -0,0 +1,23 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +let use_builtin _ _ = () diff --git a/src/plugins/e-acsl/src/dependencies/dep_eva.enabled.ml b/src/plugins/e-acsl/src/dependencies/dep_eva.enabled.ml new file mode 100644 index 00000000000..a1af5ca1cb0 --- /dev/null +++ b/src/plugins/e-acsl/src/dependencies/dep_eva.enabled.ml @@ -0,0 +1,23 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +let use_builtin = Eva.Value_parameters.use_builtin diff --git a/src/plugins/e-acsl/src/dependencies/dep_eva.mli b/src/plugins/e-acsl/src/dependencies/dep_eva.mli new file mode 100644 index 00000000000..a151c251eeb --- /dev/null +++ b/src/plugins/e-acsl/src/dependencies/dep_eva.mli @@ -0,0 +1,27 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types + +val use_builtin: kernel_function -> string -> unit +(** Call the function Eva.Value_parameters.use_builtin if Eva is enabled, + do nothing otherwise. *) -- GitLab From ecdf0f7b11ff947cafeed1ca9242beff0a703b8f Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:20:01 +0200 Subject: [PATCH 210/255] [eacsl:doc] Update code comments to be compatible with ocamldoc --- src/plugins/e-acsl/src/analyses/exit_points.mli | 4 ++-- src/plugins/e-acsl/src/code_generator/global_observer.ml | 4 ++-- src/plugins/e-acsl/src/code_generator/injector.ml | 2 +- src/plugins/e-acsl/src/code_generator/rational.mli | 4 ++-- src/plugins/e-acsl/src/code_generator/translate.ml | 4 +++- src/plugins/e-acsl/src/libraries/misc.mli | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/plugins/e-acsl/src/analyses/exit_points.mli b/src/plugins/e-acsl/src/analyses/exit_points.mli index 5af6fb4910d..9263b798ce5 100644 --- a/src/plugins/e-acsl/src/analyses/exit_points.mli +++ b/src/plugins/e-acsl/src/analyses/exit_points.mli @@ -25,8 +25,8 @@ - a call to [__e_acsl_delete_block] at the end of the scope. This is not always sufficient to track variables because execution may exit a scope early (for instance via a goto or a break statement). - This module computes program points at which extra `delete_block` statements - need to be added to handle such early scope exits. *) + This module computes program points at which extra [delete_block] + statements need to be added to handle such early scope exits. *) open Cil_types open Cil_datatype diff --git a/src/plugins/e-acsl/src/code_generator/global_observer.ml b/src/plugins/e-acsl/src/code_generator/global_observer.ml index c53604fc55f..352152f2c2a 100644 --- a/src/plugins/e-acsl/src/code_generator/global_observer.ml +++ b/src/plugins/e-acsl/src/code_generator/global_observer.ml @@ -60,11 +60,11 @@ let rec literal_in_initializer env kf = function | CompoundInit (_, l) -> List.fold_left (fun env (_, i) -> literal_in_initializer env kf i) env l -(* Create a global kernel function named `name`. +(* Create a global kernel function named [name]. Return a triple (varinfo * fundec * kernel_function) of the created global function. *) let mk_function name = - (* Create global function `name` *) + (* Create global function [name] *) let vi = Cil.makeGlobalVar ~source:true name diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index 36c62ebc2dd..cac63d6330a 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -508,7 +508,7 @@ and inject_in_block (env: Env.t) kf blk = (* The free statements are passed in the same order than the malloc ones. In order to free the variable in the reverse order, the list is reversed before appending the return statement. Moreover, - `rev_append` is tail recursive contrary to `append` *) + [List.rev_append] is tail recursive contrary to [List.append] *) List.rev_append free_stmts [ return_stmt ] | None -> [] in diff --git a/src/plugins/e-acsl/src/code_generator/rational.mli b/src/plugins/e-acsl/src/code_generator/rational.mli index 3648ecba602..90c4c9a5cfc 100644 --- a/src/plugins/e-acsl/src/code_generator/rational.mli +++ b/src/plugins/e-acsl/src/code_generator/rational.mli @@ -41,8 +41,8 @@ val init_set: loc:location -> lval -> exp -> exp -> stmt val normalize_str: string -> string (** Normalize the string so that it fits the representation used by the underlying real library. For example, "0.1" is a real number in ACSL - whereas it is considered as a double by `libgmp` because it is written in - decimal expansion. In order to make `libgmp` consider it to be a rational, + whereas it is considered as a double by [libgmp] because it is written in + decimal expansion. In order to make [libgmp] consider it to be a rational, it must be converted into "1/10". *) (* TODO: change the call convention *) diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 5729abd22cd..6433507c7fc 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -24,9 +24,11 @@ module E_acsl_label = Label open Cil_types open Cil_datatype +(** *) + let dkey = Options.dkey_translation -(* internal to [named_predicate_to_exp] but put it outside in order to not add +(* internal to [predicate_to_exp] but put it outside in order to not add extra tedious parameter. It is [true] iff we are currently visiting \valid. *) let is_visiting_valid = ref false diff --git a/src/plugins/e-acsl/src/libraries/misc.mli b/src/plugins/e-acsl/src/libraries/misc.mli index 6ea105fd88a..ca3f8fd00e6 100644 --- a/src/plugins/e-acsl/src/libraries/misc.mli +++ b/src/plugins/e-acsl/src/libraries/misc.mli @@ -47,7 +47,7 @@ val cty: logic_type -> typ val ptr_index: ?loc:location -> ?index:exp -> exp -> Cil_types.exp * Cil_types.exp -(** Split pointer-arithmetic expression of the type `p + i` into its +(** Split pointer-arithmetic expression of the type [p + i] into its pointer and integer parts. *) val term_of_li: logic_info -> term -- GitLab From 99e4f4323344e6ebdcd1f13cf1d2ea0ffe8e7852 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:28:22 +0200 Subject: [PATCH 211/255] [eacsl:codegen] Update `Translate` module - Rename `term_to_exp` and `predicate_to_exp` to `untyped_term_to_exp` and `untyped_predicate_to_exp` for the external API ; - Update `untyped_predicate_to_exp` to raise an exception if the translation isn't possible ; - Create functions `generalized_untyped_predicate_to_exp` and `predicate_to_exp` for internal use ; - Remove `named_` prefixes ; - Add an optional argument to `translate_predicate` to provide a secondary predicate to be used as mesage of the runtime check. --- src/plugins/e-acsl/E_ACSL.mli | 18 ++- .../src/code_generator/logic_functions.ml | 6 +- .../src/code_generator/logic_functions.mli | 2 +- .../e-acsl/src/code_generator/loops.ml | 12 +- .../e-acsl/src/code_generator/loops.mli | 4 +- .../e-acsl/src/code_generator/translate.ml | 106 ++++++++++-------- .../e-acsl/src/code_generator/translate.mli | 56 ++++++--- src/plugins/e-acsl/src/main.ml | 9 -- 8 files changed, 128 insertions(+), 85 deletions(-) diff --git a/src/plugins/e-acsl/E_ACSL.mli b/src/plugins/e-acsl/E_ACSL.mli index f6304d722fd..590545155a8 100644 --- a/src/plugins/e-acsl/E_ACSL.mli +++ b/src/plugins/e-acsl/E_ACSL.mli @@ -30,13 +30,21 @@ module Error: sig end module Translate: sig - exception No_simple_translation of term - val term_to_exp: typ option -> term -> exp - (** @raise New_typing_error when the given term cannot be typed (something wrong + exception No_simple_term_translation of term + val untyped_term_to_exp: typ option -> term -> exp + (** @raise Typing_error when the given term cannot be typed (something wrong happened with this term) @raise Not_yet when the given term contains an unsupported construct. - @raise No_simple_translation when the given term cannot be translated into - a single expression. *) + @raise No_simple_term_translation when the given term cannot be translated + into a single expression. *) + + exception No_simple_predicate_translation of predicate + val untyped_predicate_to_exp: predicate -> exp + (** @raise Typing_error when the given predicate cannot be typed + (something wrong happened with this predicate). + @raise Not_yet when the given predicate contains an unsupported construct. + @raise No_simple_predicate_translation when the given predicate cannot be + translated into a single expression. *) end module Functions: sig diff --git a/src/plugins/e-acsl/src/code_generator/logic_functions.ml b/src/plugins/e-acsl/src/code_generator/logic_functions.ml index 97c6523575a..ebac4f3a70f 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_functions.ml +++ b/src/plugins/e-acsl/src/code_generator/logic_functions.ml @@ -27,9 +27,9 @@ open Cil_datatype (********************** Forward references ********************************) (**************************************************************************) -let named_predicate_to_exp_ref +let predicate_to_exp_ref : (kernel_function -> Env.t -> predicate -> exp * Env.t) ref - = Extlib.mk_fun "named_predicate_to_exp_ref" + = Extlib.mk_fun "predicate_to_exp_ref" let term_to_exp_ref : (kernel_function -> Env.t -> term -> exp * Env.t) ref @@ -81,7 +81,7 @@ let generate_return_block ~loc env ret_vi e = match e.enode with (* Generate the function's body for predicates. *) let pred_to_block ~loc kf env ret_vi p = Typing.type_named_predicate ~must_clear:false p; - let e, env = !named_predicate_to_exp_ref kf env p in + let e, env = !predicate_to_exp_ref kf env p in (* for predicate, since the result is either 0 or 1, return it directly (it cannot be provided as extra argument *) generate_return_block ~loc env ret_vi e diff --git a/src/plugins/e-acsl/src/code_generator/logic_functions.mli b/src/plugins/e-acsl/src/code_generator/logic_functions.mli index 3025a6b94aa..0f8898ffb67 100644 --- a/src/plugins/e-acsl/src/code_generator/logic_functions.mli +++ b/src/plugins/e-acsl/src/code_generator/logic_functions.mli @@ -50,7 +50,7 @@ val add_generated_functions: global list -> global list (********************** Forward references ********************************) (**************************************************************************) -val named_predicate_to_exp_ref: +val predicate_to_exp_ref: (kernel_function -> Env.t -> predicate -> exp * Env.t) ref val term_to_exp_ref: diff --git a/src/plugins/e-acsl/src/code_generator/loops.ml b/src/plugins/e-acsl/src/code_generator/loops.ml index c8a5f714ddc..0018b0c8fe3 100644 --- a/src/plugins/e-acsl/src/code_generator/loops.ml +++ b/src/plugins/e-acsl/src/code_generator/loops.ml @@ -27,13 +27,13 @@ open Cil_types (********************** Forward references ********************************) (**************************************************************************) -let translate_named_predicate_ref +let translate_predicate_ref : (kernel_function -> Env.t -> predicate -> Env.t) ref - = Extlib.mk_fun "translate_named_predicate_ref" + = Extlib.mk_fun "translate_predicate_ref" -let named_predicate_ref +let predicate_to_exp_ref : (kernel_function -> Env.t -> predicate -> exp * Env.t) ref - = Extlib.mk_fun "named_predicate_ref" + = Extlib.mk_fun "predicate_to_exp_ref" let term_to_exp_ref : (kernel_function -> Env.t -> term -> exp * Env.t) ref @@ -53,7 +53,7 @@ let preserve_invariant env kf stmt = match stmt.skind with let invariants, env = Env.pop_loop env in let env = Env.push env in let env = - let translate_named_predicate = !translate_named_predicate_ref in + let translate_named_predicate = !translate_predicate_ref in List.fold_left (translate_named_predicate kf) env invariants in let blk, env = @@ -249,7 +249,7 @@ let rec mk_nested_loops ~loc mk_innermost_block kf env lscope_vars = | None -> guard :: body @ [ next ], env | Some p -> - let e, env = !named_predicate_ref kf (Env.push env) p in + let e, env = !predicate_to_exp_ref kf (Env.push env) p in let stmt, env = Smart_stmt.runtime_check Smart_stmt.RTE kf e p, env in diff --git a/src/plugins/e-acsl/src/code_generator/loops.mli b/src/plugins/e-acsl/src/code_generator/loops.mli index 4a450be1235..06d512d0cf6 100644 --- a/src/plugins/e-acsl/src/code_generator/loops.mli +++ b/src/plugins/e-acsl/src/code_generator/loops.mli @@ -51,10 +51,10 @@ val mk_nested_loops: (********************** Forward references ********************************) (**************************************************************************) -val translate_named_predicate_ref: +val translate_predicate_ref: (kernel_function -> Env.t -> predicate -> Env.t) ref -val named_predicate_ref: +val predicate_to_exp_ref: (kernel_function -> Env.t -> predicate -> exp * Env.t) ref val term_to_exp_ref: diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 6433507c7fc..0d42015860e 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -860,10 +860,10 @@ and env_of_li li kf env loc = in Env.add_stmt env kf stmt -(* Convert an ACSL named predicate into a corresponding C expression (if - any) in the given environment. Also extend this environment which includes - the generating constructs. *) -and named_predicate_content_to_exp ?name kf env p = +(* Convert an ACSL predicate into a corresponding C expression (if any) in the + given environment. Also extend this environment which includes the generating + constructs. *) +and predicate_content_to_exp ?name kf env p = let loc = p.pred_loc in match p.pred_content with | Pfalse -> Cil.zero ~loc, env @@ -891,30 +891,30 @@ and named_predicate_content_to_exp ?name kf env p = comparison_to_exp ~loc kf env ity (relation_to_binop rel) t1 t2 None | Pand(p1, p2) -> (* p1 && p2 <==> if p1 then p2 else false *) - let e1, env1 = named_predicate_to_exp kf (Env.rte env true) p1 in + let e1, env1 = predicate_to_exp kf (Env.rte env true) p1 in let _, env2 as res2 = - named_predicate_to_exp kf (Env.push env1) p2 in + predicate_to_exp kf (Env.push env1) p2 in let env3 = Env.push env2 in let name = match name with None -> "and" | Some n -> n in conditional_to_exp ~name loc kf None e1 res2 (Cil.zero loc, env3) | Por(p1, p2) -> (* p1 || p2 <==> if p1 then true else p2 *) - let e1, env1 = named_predicate_to_exp kf (Env.rte env true) p1 in + let e1, env1 = predicate_to_exp kf (Env.rte env true) p1 in let env' = Env.push env1 in - let res2 = named_predicate_to_exp kf (Env.push env') p2 in + let res2 = predicate_to_exp kf (Env.push env') p2 in let name = match name with None -> "or" | Some n -> n in conditional_to_exp ~name loc kf None e1 (Cil.one loc, env') res2 | Pxor _ -> Env.not_yet env "xor" | Pimplies(p1, p2) -> (* (p1 ==> p2) <==> !p1 || p2 *) - named_predicate_to_exp + predicate_to_exp ~name:"implies" kf env (Logic_const.por ~loc ((Logic_const.pnot ~loc p1), p2)) | Piff(p1, p2) -> (* (p1 <==> p2) <==> (p1 ==> p2 && p2 ==> p1) *) - named_predicate_to_exp + predicate_to_exp ~name:"equiv" kf env @@ -922,24 +922,24 @@ and named_predicate_content_to_exp ?name kf env p = (Logic_const.pimplies ~loc (p1, p2), Logic_const.pimplies ~loc (p2, p1))) | Pnot p -> - let e, env = named_predicate_to_exp kf env p in + let e, env = predicate_to_exp kf env p in Cil.new_exp ~loc (UnOp(LNot, e, Cil.intType)), env | Pif(t, p2, p3) -> let e1, env1 = term_to_exp kf (Env.rte env true) t in let (_, env2 as res2) = - named_predicate_to_exp kf (Env.push env1) p2 in - let res3 = named_predicate_to_exp kf (Env.push env2) p3 in + predicate_to_exp kf (Env.push env1) p2 in + let res3 = predicate_to_exp kf (Env.push env2) p3 in conditional_to_exp loc kf None e1 res2 res3 | Plet(li, p) -> let lvs = Lscope.Lvs_let(li.l_var_info, Misc.term_of_li li) in let env = Env.Logic_scope.extend env lvs in let env = env_of_li li kf env loc in - let e, env = named_predicate_to_exp kf env p in + let e, env = predicate_to_exp kf env p in Interval.Env.remove li.l_var_info; e, env | Pforall _ | Pexists _ -> Quantif.quantif_to_exp kf env p | Pat(p, BuiltinLabel Here) -> - named_predicate_to_exp kf env p + predicate_to_exp kf env p | Pat(p', label) -> let lscope = Env.Logic_scope.get env in let pot = Lscope.PoT_pred p' in @@ -947,7 +947,7 @@ and named_predicate_content_to_exp ?name kf env p = At_with_lscope.to_exp ~loc kf env pot label else begin (* convert [t'] to [e] in a separated local env *) - let e, env = named_predicate_to_exp kf (Env.push env) p' in + let e, env = predicate_to_exp kf (Env.push env) p' in let e, env, sty = at_to_exp_no_lscope env kf None label e in assert (sty = C_number); e, env @@ -976,7 +976,7 @@ and named_predicate_content_to_exp ?name kf env p = Typing.type_named_predicate ~must_clear:false init; let p = Logic_const.pand ~loc (init, p) in is_visiting_valid := true; - named_predicate_to_exp kf env p + predicate_to_exp kf env p | _ -> call_valid t p end @@ -1006,10 +1006,10 @@ and named_predicate_content_to_exp ?name kf env p = | Pfreeable _ -> Env.not_yet env "labeled \\freeable" | Pfresh _ -> Env.not_yet env "\\fresh" -and named_predicate_to_exp ?name kf ?rte env p = +and predicate_to_exp ?name kf ?rte env p = let rte = match rte with None -> Env.generate_rte env | Some b -> b in let env = Env.rte env false in - let e, env = named_predicate_content_to_exp ?name kf env p in + let e, env = predicate_content_to_exp ?name kf env p in let env = if rte then translate_rte kf env e else env in let cast = Typing.get_cast_of_predicate p in add_cast @@ -1022,6 +1022,15 @@ and named_predicate_to_exp ?name kf ?rte env p = None e +and generalized_untyped_predicate_to_exp ?name kf ?rte ?must_clear_typing env p = + let rte = match rte with None -> Env.generate_rte env | Some b -> b in + let must_clear = match must_clear_typing with None -> rte | Some b -> b in + Typing.type_named_predicate ~must_clear p; + let e, env = predicate_to_exp ?name kf ~rte env p in + assert (Typ.equal (Cil.typeOf e) Cil.intType); + let env = Env.Logic_scope.reset env in + e, env + and translate_rte_annots: 'a. (Format.formatter -> 'a -> unit) -> 'a -> kernel_function -> Env.t -> code_annotation list -> Env.t = @@ -1042,7 +1051,7 @@ and translate_rte_annots: let p = p.tp_statement in let lscope_reset_old = Env.Logic_scope.get_reset env in let env = Env.Logic_scope.set_reset env false in - let env = translate_named_predicate kf (Env.rte env false) p in + let env = translate_predicate kf (Env.rte env false) p in let env = Env.Logic_scope.set_reset env lscope_reset_old in env) env @@ -1063,14 +1072,18 @@ and translate_rte ?filter kf env e = in translate_rte_annots Printer.pp_exp e kf env l -and translate_named_predicate kf env p = +and translate_predicate ?pred_to_print kf env p = Options.feedback ~dkey ~level:3 "translating predicate %a" Printer.pp_predicate p; - let rte = Env.generate_rte env in - Typing.type_named_predicate ~must_clear:rte p; - let e, env = named_predicate_to_exp kf ~rte env p in - assert (Typ.equal (Cil.typeOf e) Cil.intType); - let env = Env.Logic_scope.reset env in + let pred_to_print = + match pred_to_print with + | Some pred -> + Options.feedback ~dkey ~level:3 "(predicate to print %a)" + Printer.pp_predicate pred; + pred + | None -> p + in + let e, env = generalized_untyped_predicate_to_exp kf env p in Env.add_stmt env kf @@ -1078,36 +1091,41 @@ and translate_named_predicate kf env p = (Env.annotation_kind env) kf e - p) + pred_to_print) -let named_predicate_to_exp ?name kf env p = - named_predicate_to_exp ?name kf env p (* forget optional argument ?rte *) +let predicate_to_exp_without_rte ?name kf env p = + predicate_to_exp ?name kf env p (* forget optional argument ?rte *) let () = Loops.term_to_exp_ref := term_to_exp; - Loops.translate_named_predicate_ref := translate_named_predicate; - Loops.named_predicate_ref := named_predicate_to_exp; - Quantif.predicate_to_exp_ref := named_predicate_to_exp; + Loops.translate_predicate_ref := translate_predicate; + Loops.predicate_to_exp_ref := predicate_to_exp_without_rte; + Quantif.predicate_to_exp_ref := predicate_to_exp_without_rte; At_with_lscope.term_to_exp_ref := term_to_exp; - At_with_lscope.predicate_to_exp_ref := named_predicate_to_exp; + At_with_lscope.predicate_to_exp_ref := predicate_to_exp_without_rte; Memory_translate.term_to_exp_ref := term_to_exp; - Memory_translate.predicate_to_exp_ref := named_predicate_to_exp; + Memory_translate.predicate_to_exp_ref := predicate_to_exp_without_rte; Logic_functions.term_to_exp_ref := term_to_exp; - Logic_functions.named_predicate_to_exp_ref := named_predicate_to_exp; + Logic_functions.predicate_to_exp_ref := predicate_to_exp_without_rte; Logic_array.translate_rte_ref := translate_rte +exception No_simple_term_translation of term +exception No_simple_predicate_translation of predicate + (* This function is used by Guillaume. However, it is correct to use it only in specific contexts. *) -let predicate_to_exp kf p = - Typing.type_named_predicate ~must_clear:true p; - let e, _ = named_predicate_to_exp kf Env.empty p in - assert (Typ.equal (Cil.typeOf e) Cil.intType); +let untyped_predicate_to_exp p = + let env = Env.push Env.empty in + let env = Env.rte env false in + let e, env = + try generalized_untyped_predicate_to_exp ~must_clear_typing:false (Kernel_function.dummy ()) env p + with Rtl.Symbols.Unregistered _ -> raise (No_simple_predicate_translation p) + in + if not (Env.has_no_new_stmt env) then raise (No_simple_predicate_translation p); e -exception No_simple_translation of term - (* This function is used by plug-in [Cfp]. *) -let term_to_exp typ t = +let untyped_term_to_exp typ t = (* infer a context from the given [typ] whenever possible *) let ctx_of_typ ty = if Gmp_types.Z.is_t ty then Typing.gmpz @@ -1124,9 +1142,9 @@ let term_to_exp typ t = let env = Env.rte env false in let e, env = try term_to_exp (Kernel_function.dummy ()) env t - with Rtl.Symbols.Unregistered _ -> raise (No_simple_translation t) + with Rtl.Symbols.Unregistered _ -> raise (No_simple_term_translation t) in - if not (Env.has_no_new_stmt env) then raise (No_simple_translation t); + if not (Env.has_no_new_stmt env) then raise (No_simple_term_translation t); e (* ************************************************************************** *) diff --git a/src/plugins/e-acsl/src/code_generator/translate.mli b/src/plugins/e-acsl/src/code_generator/translate.mli index 64a83c76113..c1e32fa28b9 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.mli +++ b/src/plugins/e-acsl/src/code_generator/translate.mli @@ -22,18 +22,32 @@ open Cil_types -(** [translate_*] translates a given ACSL annotation into the corresponding C - statement (if any) for runtime assertion checking. This C statements are - part of the resulting environment. *) - -val translate_pre_spec: kernel_function -> kinstr -> Env.t -> funspec -> Env.t -val translate_post_spec: kernel_function -> kinstr -> Env.t -> funspec -> Env.t -val translate_pre_code_annotation: - kernel_function -> stmt -> Env.t -> code_annotation -> Env.t -val translate_post_code_annotation: - kernel_function -> stmt -> Env.t -> code_annotation -> Env.t -val translate_named_predicate: - kernel_function -> Env.t -> predicate -> Env.t +(** Generate C implementations of expressions. *) + +val predicate_to_exp: + ?name:string -> + kernel_function -> + ?rte:bool -> + Env.t -> + predicate -> + exp * Env.t +(** Convert an ACSL predicate into a corresponding C expression. *) + +val generalized_untyped_predicate_to_exp: + ?name:string -> + kernel_function -> + ?rte:bool -> + ?must_clear_typing:bool -> + Env.t -> + predicate -> + exp * Env.t +(** Convert an untyped ACSL predicate into a corresponding C expression. *) + +val translate_predicate: + ?pred_to_print:predicate -> kernel_function -> Env.t -> predicate -> Env.t +(** Translate the given predicate to a runtime check in the given environment. + If [pred_to_print] is set, then the runtime check will use this predicate as + message. *) val translate_rte_annots: (Format.formatter -> 'a -> unit) -> @@ -42,11 +56,23 @@ val translate_rte_annots: Env.t -> code_annotation list -> Env.t +(** Translate the given RTE annotations into runtime checks in the given + environment. *) + +exception No_simple_term_translation of term +(** Exceptin raised if [untyped_term_to_exp] would generate new statements in + the environment *) + +exception No_simple_predicate_translation of predicate +(** Exceptin raised if [untyped_predicate_to_exp] would generate new statements + in the environment *) -exception No_simple_translation of term -val term_to_exp: typ option -> term -> exp +val untyped_term_to_exp: typ option -> term -> exp +(** Convert an untyped ACSL term into a corresponding C expression. *) -val predicate_to_exp: kernel_function -> predicate -> exp +val untyped_predicate_to_exp: predicate -> exp +(** Convert an untyped ACSL predicate into a corresponding C expression. This + expression is valid only in certain contexts and shouldn't be used. *) (* Local Variables: diff --git a/src/plugins/e-acsl/src/main.ml b/src/plugins/e-acsl/src/main.ml index 703ef6b8c0d..8de1804974e 100644 --- a/src/plugins/e-acsl/src/main.ml +++ b/src/plugins/e-acsl/src/main.ml @@ -106,15 +106,6 @@ let generate_code = (Datatype.func Datatype.string Project.ty) generate_code -let predicate_to_exp = - Dynamic.register - ~plugin:"E_ACSL" - ~journalize:false - "predicate_to_exp" - (Datatype.func2 - Kernel_function.ty Cil_datatype.Predicate.ty Cil_datatype.Exp.ty) - Translate.predicate_to_exp - (* The Frama-C standard library contains specific built-in variables prefixed by "__fc_" and declared as extern: they prevent the generated code to be linked. This modification of the default printer replaces them by their -- GitLab From 47f5a1eaf293bc54c202469ed6c2fd0ce3b7351e Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:30:54 +0200 Subject: [PATCH 212/255] [eacsl:codegen] Add a `Contract` module to translate function and statement contracts --- src/plugins/e-acsl/Makefile.in | 8 +- src/plugins/e-acsl/headers/header_spec.txt | 3 + .../e-acsl/src/code_generator/contract.ml | 753 ++++++++++++++++++ .../e-acsl/src/code_generator/contract.mli | 47 ++ .../src/code_generator/contract_types.mli | 51 ++ src/plugins/e-acsl/src/code_generator/env.ml | 21 + src/plugins/e-acsl/src/code_generator/env.mli | 14 + 7 files changed, 896 insertions(+), 1 deletion(-) create mode 100644 src/plugins/e-acsl/src/code_generator/contract.ml create mode 100644 src/plugins/e-acsl/src/code_generator/contract.mli create mode 100644 src/plugins/e-acsl/src/code_generator/contract_types.mli diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index aed90a086c6..f7b3af2154a 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -68,6 +68,10 @@ SRC_ANALYSES:= \ SRC_ANALYSES:=$(addprefix src/analyses/, $(SRC_ANALYSES)) # code generator +CODE_GENERATOR_CMI:= \ + contract_types +CODE_GENERATOR_CMI:=$(addprefix src/code_generator/, $(CODE_GENERATOR_CMI)) + SRC_CODE_GENERATOR:= \ smart_exp \ smart_stmt \ @@ -82,6 +86,7 @@ SRC_CODE_GENERATOR:= \ logic_functions \ logic_array \ translate \ + contract \ temporal \ memory_observer \ literal_observer \ @@ -112,7 +117,8 @@ PLUGIN_CMO:= src/local_config \ $(SRC_ANALYSES) \ $(SRC_CODE_GENERATOR) \ src/main - +PLUGIN_CMI:= \ + $(CODE_GENERATOR_CMI) PLUGIN_HAS_MLI:=yes PLUGIN_DISTRIBUTED:=yes PLUGIN_DEPENDENCIES:= RteGen diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index de8c767ec75..ac18901b534 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -82,6 +82,9 @@ src/analyses/typing.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/analyses/typing.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/at_with_lscope.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/at_with_lscope.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/contract.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/contract.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/contract_types.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/env.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/env.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/global_observer.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL diff --git a/src/plugins/e-acsl/src/code_generator/contract.ml b/src/plugins/e-acsl/src/code_generator/contract.ml new file mode 100644 index 00000000000..7a8291e0b66 --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/contract.ml @@ -0,0 +1,753 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types +open Contract_types + +(**************************************************************************) +(********************** Forward references ********************************) +(**************************************************************************) + +let must_translate_ppt_ref : (Property.t -> bool) ref = + Extlib.mk_fun "must_translate_ppt_ref" + +let must_translate_ppt_opt_ref : (Property.t option -> bool) ref = + Extlib.mk_fun "must_translate_ppt_opt_ref" + +(**************************************************************************) +(********************** Contract ********************************) +(**************************************************************************) + +type t = contract + +(** Module to ease the access to the C API for contracts *) +module Rtl_call: sig + val init: + loc:location -> result_name:string -> Env.t -> kernel_function -> int -> + varinfo * exp * Env.t + (** Call the C function [__e_acsl_contract_init] *) + + val cleanup: + loc:location -> Env.t -> kernel_function -> exp -> Env.t + (** Call the C function [__e_acsl_contract_cleanup] *) + + val set_assumes: + loc:location -> Env.t -> kernel_function -> exp -> int -> predicate -> + Env.t + (** Call the C function [__e_acsl_contract_set_behavior_assumes] *) + + val get_assumes: + loc:location -> result:varinfo -> Env.t -> kernel_function -> exp -> int -> + Env.t + (** Call the C function [__e_acsl_contract_get_behavior_assumes] *) + + val partial_count_behaviors: + loc:location -> result:varinfo -> Env.t -> kernel_function -> exp -> + int list -> Env.t + (** Call the C function [__e_acsl_contract_partial_count_behaviors] *) + + val partial_count_all_behaviors: + loc:location -> result:varinfo -> Env.t -> kernel_function -> exp -> Env.t + (** Call the C function [__e_acsl_contract_partial_count_all_behaviors] *) + +end = struct + let init_function_name = "contract_init" + + let init_kf_lazy = + lazy + (Globals.Functions.find_by_name + (Functions.RTL.mk_api_name init_function_name)) + + let ctyp_lazy = + lazy + (Globals.Types.find_type + Logic_typing.Typedef (Functions.RTL.mk_api_name "contract_t")) + + let init ~loc ~result_name env kf count = + (* Tell Eva to use init as a builtin *) + let init_kf = Lazy.force init_kf_lazy in + Dep_eva.use_builtin init_kf "Frama_C_malloc"; + (* Add a call to init in the environment *) + let ty = TPtr(Lazy.force ctyp_lazy, []) in + Env.new_var + ~loc + ~name:result_name + ~scope:Varname.Function + env + kf + None + ty + (fun vi _e -> + let result = Cil.var vi in + let count_e = Cil.integer ~loc count in + [ Smart_stmt.rtl_call + ~loc + ~result + init_function_name + [count_e] ]) + + let cleanup ~loc env kf contract = + Env.add_stmt + env + kf + (Smart_stmt.rtl_call + ~loc + "contract_clean" + [contract]) + + let set_assumes ~loc env kf contract idx assumes = + let idx_e = Cil.integer ~loc idx in + let assumes_e, env = + Translate.generalized_untyped_predicate_to_exp kf env assumes + in + Env.add_stmt + env + kf + (Smart_stmt.rtl_call + ~loc + "contract_set_behavior_assumes" + [contract; idx_e; assumes_e]) + + let get_assumes ~loc ~result env kf contract idx = + let idx_e = Cil.integer ~loc idx in + let result = Cil.var result in + Env.add_stmt + env + kf + (Smart_stmt.rtl_call + ~loc + ~result + "contract_get_behavior_assumes" + [contract; idx_e]) + + let partial_count_behaviors ~loc ~result env kf contract idxes = + let idxes, count = + List.fold_right + (fun idx (idxes, count) -> + Cil.integer ~loc idx :: idxes, count + 1) + idxes + ([], 0) + in + let result = Cil.var result in + Env.add_stmt + env + kf + (Smart_stmt.rtl_call + ~loc + ~result + "contract_partial_count_behaviors" + (contract :: Cil.integer ~loc count :: idxes)) + + let partial_count_all_behaviors ~loc ~result env kf contract = + let result = Cil.var result in + Env.add_stmt + env + kf + (Smart_stmt.rtl_call + ~loc + ~result + "contract_partial_count_all_behaviors" + [ contract ]) +end + +(** Convert the given assumes clauses list to a single [predicate] *) +let assumes_predicate assumes = + List.fold_left + (fun acc p -> + let pred = p.ip_content.tp_statement in + let loc = pred.pred_loc in + Logic_const.pand ~loc + (acc, + Logic_const.unamed ~loc pred.pred_content)) + Logic_const.ptrue + assumes + +(** Create a [predicate] from the requires [identified_predicate] *) +let requires_predicate requires = + let pred = requires.ip_content.tp_statement in + let loc = pred.pred_loc in + let p = Logic_const.unamed ~loc pred.pred_content + in + p + +(** Create a [predicate] from the ensures [identified_predicate] *) +let ensures_predicate ensures = + let pred = ensures.ip_content.tp_statement in + let loc = pred.pred_loc in + let p = Logic_const.unamed ~loc pred.pred_content + in + p + +let create ~loc spec = + (* Create a hashtable to associate a behavior name with an index *) + let name_to_idx_tbl = Hashtbl.create 7 in + let named_behaviors_count = + List.fold_left + (fun idx b -> + if Cil.is_default_behavior b then + idx + else begin + Hashtbl.add name_to_idx_tbl b.b_name idx; + idx + 1 + end + ) + 0 + spec.spec_behavior + in + let var = None in + (* Create the contract *) + { location = loc; + named_behaviors_count; + name_to_idx_tbl; + var; + all_assumes_translated = true; + spec } + +(** Initialize the C API for the given contract *) +let init kf env contract = + if contract.named_behaviors_count > 0 then + let loc = contract.location in + let contract_vi, contract_e, env = + Rtl_call.init + ~loc + ~result_name:"contract" + env + kf + contract.named_behaviors_count + in + contract.var <- Some (contract_vi, contract_e); + env + else env + +(** Cleanup the C API for the given contract *) +let cleanup kf env contract = + match contract.var with + | None -> env + | Some (_, e) -> + let loc = contract.location in + Rtl_call.cleanup ~loc env kf e + +(** Retrieve the behavior index from its name for the given contract *) +let get_bhvr_idx contract bhvr_name = + (* by construction, the behavior name is in the hashtable *) + try Hashtbl.find contract.name_to_idx_tbl bhvr_name + with _ -> assert false + +(** Retrieve the C variable with the contract structure for the given contract. + Assumes that there is such a variable. *) +let get_contract_var contract = + match contract.var with + | Some (contract_vi, contract_e) -> contract_vi, contract_e + | None -> + Options.fatal + "Unexpected call to get_contract_var with a contract without named \ + behaviors" + +(** Setup the assumes values for the C API *) +let setup_assumes kf env contract = + match contract.var with + | None -> env + | Some (_, contract_e) -> + let do_fold env b = + let do_it env = + try + if Cil.is_default_behavior b then + env + else + let assumes = assumes_predicate b.b_assumes in + let loc = assumes.pred_loc in + Cil.CurrentLoc.set loc; + let idx = get_bhvr_idx contract b.b_name in + Rtl_call.set_assumes ~loc env kf contract_e idx assumes + with exn -> + (* Unable to translate the assumes clause. Save that fact and re-raise + the exception *) + contract.all_assumes_translated <- false; + raise exn + in + Env.handle_error do_it env + in + List.fold_left do_fold env contract.spec.spec_behavior + +(** Returns a closure that will (1) creates a local C variable when first + called and (2) returns said variable on subsequent calls. *) +let mk_get_or_create_var kf typ var_name = + let var_ref = ref None in + let f ~loc env = + match !var_ref with + | None -> + let vi, e, env = + Env.new_var + ~loc + ~scope:Varname.Block + ~name:var_name + env + kf + None + typ + (fun _ _ -> []) + in + var_ref := Some (vi, e); + vi, e, env + | Some (vi, e) -> vi, e, env + in + f + +(** Drop-in replacement for [List.fold_left] with the folding function wrapped + in a [handle_error] call *) +let fold_left_handle_error f env l = + (* Reverse input args of f *) + let f2 x env = f env x in + (* Call fold_left on the list with handle_error at each element *) + List.fold_left + (fun env x -> + Env.handle_error (f2 x) env) + env + l + +(** Drop-in replacement for [List.fold_left] when the accumulator is more than + the [env], with the folding function wrapped in a [handle_error] call. + + The accumulator for the fold should be set up with a pair where the first + element is the environment and the second element the rest of the + accumulator. *) +let fold_left_handle_error_with_args f (env, acc) l = + let f2 x (env, args) = f (env, args) x in + List.fold_left + (fun (env, args) x -> + Env.handle_error_with_args (f2 x) (env, args)) + (env, acc) + l + +(** Insert requires check for the given contract in the environment *) +let check_requires kf kinstr env contract = + let get_or_create_assumes_var = + mk_get_or_create_var kf Cil.intType "assumes_value" + in + let do_behavior env b = + if Cil.is_default_behavior b then + fold_left_handle_error + (fun env requires -> + if !must_translate_ppt_ref + (Property.ip_of_requires kf kinstr b requires) then + (* If translating the default behavior, directly translate the + predicate *) + let requires = requires_predicate requires in + let loc = requires.pred_loc in + Cil.CurrentLoc.set loc; + Translate.translate_predicate kf env requires + else + env) + env + b.b_requires + else + (* Compute the assumes predicate for pretty-printing *) + let assumes = assumes_predicate b.b_assumes in + (* Push a new env and check the requires of the behavior *) + let env = Env.push env in + let env, stmts = + fold_left_handle_error_with_args + (fun (env, stmts) requires -> + if !must_translate_ppt_ref + (Property.ip_of_requires kf kinstr b requires) then + let requires = requires_predicate requires in + let loc = requires.pred_loc in + Cil.CurrentLoc.set loc; + (* Prepend the name of the behavior *) + let requires = + { requires with pred_name = b.b_name :: requires.pred_name } + in + (* Create runtime check *) + let requires_e, env = + Translate.generalized_untyped_predicate_to_exp kf env requires + in + let stmt = + Smart_stmt.runtime_check + Smart_stmt.Precondition + kf + requires_e + requires + in + env, stmt :: stmts + else + env, stmts) + (env, []) + b.b_requires + in + let requires = Smart_stmt.block_from_stmts stmts in + (* Pop the env to build the requires check *) + let requires_blk, env = + Env.pop_and_get + env + requires + ~global_clear:false + Env.Middle + in + match stmts with + | [] -> + (* If no requires check have been generated, then return immediately *) + env + | _ :: _ -> + (* Generate a predicate that will retrieve and test the + already computed assumes value for the behavior *) + let loc = assumes.pred_loc in + Cil.CurrentLoc.set loc; + let assumes_vi, assumes_e, env = + get_or_create_assumes_var ~loc env + in + let _, contract_e = get_contract_var contract in + let idx = get_bhvr_idx contract b.b_name in + let env = + Rtl_call.get_assumes + ~loc + ~result:assumes_vi + env + kf + contract_e + idx + in + let stmt = Smart_stmt.if_stmt ~loc ~cond:assumes_e requires_blk in + Env.add_stmt env kf stmt + in + List.fold_left + do_behavior + env + contract.spec.spec_behavior + +type translate_ppt = + | Complete + | Disjoint + | Both + +(** For each set of behavior names in [clauses], [check_active_behaviors] counts + the number of active behaviors and creates assertions for the + [ppt_to_translate]. *) +let check_active_behaviors ~ppt_to_translate ~get_or_create_var kf kinstr env contract clauses = + let must_translate = !must_translate_ppt_ref in + let loc = contract.location in + Cil.CurrentLoc.set loc; + let do_clause env bhvrs = + let bhvrs_list = Datatype.String.Set.elements bhvrs in + let active = [] in (* TODO: 'for' behaviors, e-acsl#109 *) + let must_translate_complete = + match ppt_to_translate with + | Both | Complete -> + must_translate (Property.ip_of_complete kf kinstr ~active bhvrs_list) + | Disjoint -> false + in + let must_translate_disjoint = + match ppt_to_translate with + | Both | Disjoint -> + must_translate (Property.ip_of_disjoint kf kinstr ~active bhvrs_list) + | Complete -> false + in + + if must_translate_complete || must_translate_disjoint then + (* Retrieve the number of active behaviors *) + let active_bhvrs_e, complete_msg, disjoint_msg, env = + let _, contract_e = get_contract_var contract in + let vi, e, env = get_or_create_var ~loc env in + let clause_card = Datatype.String.Set.cardinal bhvrs in + let env, complete_msg, disjoint_msg = + if Datatype.Int.equal clause_card contract.named_behaviors_count then + let env = + Rtl_call.partial_count_all_behaviors + ~loc + ~result:vi + env + kf + contract_e + in + let complete_msg = "all behaviors complete" in + let disjoint_msg = "all behaviors disjoint" in + env, complete_msg, disjoint_msg + else + let args, bhvrs_names = + Datatype.String.Set.fold + (fun bhvr_name (args, bhvrs_names) -> + let args = get_bhvr_idx contract bhvr_name :: args in + let bhvrs_names = bhvr_name :: bhvrs_names in + args, bhvrs_names) + bhvrs + ([], []) + in + let env = + Rtl_call.partial_count_behaviors + ~loc + ~result:vi + env + kf + contract_e + args + in + let bhvrs_names = String.concat ", " bhvrs_names in + let complete_msg = + Format.sprintf "complete behaviors %s" bhvrs_names + in + let disjoint_msg = + Format.sprintf "disjoint behaviors %s" bhvrs_names + in + env, complete_msg, disjoint_msg + in + e, complete_msg, disjoint_msg, env + in + + (* Create assertions for complete and disjoint behaviors checks *) + let create_assert_stmt bop msg = + Smart_stmt.runtime_check_with_msg + ~loc + msg + (Env.annotation_kind env) + kf + (Cil.mkBinOp ~loc bop active_bhvrs_e (Cil.one ~loc)) + in + let assert_complete_stmt = create_assert_stmt Ge complete_msg in + let assert_disjoint_stmt = create_assert_stmt Le disjoint_msg in + + if must_translate_complete && must_translate_disjoint then + (* Build an enclosing [if] if both complete and disjoint must be checked + for the given clause *) + Env.add_stmt + env + kf + (Smart_stmt.if_stmt + ~loc + ~cond:(Cil.mkBinOp ~loc Ne active_bhvrs_e (Cil.one ~loc)) + (Cil.mkBlock [ assert_complete_stmt; assert_disjoint_stmt ])) + (* Otherwise just get the corresponding assertion *) + else if must_translate_complete then + Env.add_stmt env kf assert_complete_stmt + else if must_translate_disjoint then + Env.add_stmt env kf assert_disjoint_stmt + else + (* By construction, at least either [must_translate_complete] or + [must_translate_disjoint] is true *) + assert false + else + (* Nothing to translate *) + env + in + fold_left_handle_error do_clause env clauses + +(** Insert complete and disjoint behaviors check for the given contract in the + environement *) +let check_complete_and_disjoint kf kinstr env contract = + (* Only translate the complete and disjoint clauses if all the assumes clauses + could be translated *) + if contract.all_assumes_translated then + (* Partition the complete and disjoint clauses of the contract into 3 lists: + - The complete and disjoint list + - The complete list + - The disjoint list + + The behaviors of a clause are stored in a Set so that they are + automatically sorted, the duplicates are removed, and they can be compared + for equality. + *) + let completes = + List.map + Datatype.String.Set.of_list + contract.spec.spec_complete_behaviors + in + let completes_and_disjoints, completes, disjoints = + List.fold_left + (fun (completes_and_disjoints, completes, disjoints) clause -> + let clause = Datatype.String.Set.of_list clause in + if List.mem clause completes then + let completes_and_disjoints = clause :: completes_and_disjoints in + let completes = + List.filter + (fun c -> not (Datatype.String.Set.equal clause c)) + completes + in + completes_and_disjoints, completes, disjoints + else + let disjoints = clause :: disjoints in + completes_and_disjoints, completes, disjoints + ) + ([], completes, []) + contract.spec.spec_disjoint_behaviors + in + (* Create a common variable to hold the number of active behavior for the + current check *) + let get_or_create_var = mk_get_or_create_var kf Cil.intType "active_bhvrs" in + (* Check the complete and disjoint clauses *) + let check_bhvrs env ppt_to_translate bhvrs = + check_active_behaviors + ~ppt_to_translate + ~get_or_create_var + kf + kinstr + env + contract + bhvrs + in + let env = check_bhvrs env Both completes_and_disjoints in + let env = check_bhvrs env Complete completes in + let env = check_bhvrs env Disjoint disjoints in + env + else begin + Cil.CurrentLoc.set contract.location; + Options.warning + ~current:true + "@[Some assumes clauses couldn't be translated.@ Ignoring complete and \ + disjoint behaviors annotations.@]"; + env + end + +(** Insert ensures check for the given contract in the environement *) +let check_post_conds kf kinstr env contract = + let get_or_create_assumes_var = + mk_get_or_create_var kf Cil.intType "assumes_value" + in + let do_behavior env b = + let env = + Env.handle_error + (fun env -> + let active = [] in (* TODO: 'for' behaviors, e-acsl#109 *) + let ppt = Property.ip_assigns_of_behavior kf kinstr ~active b in + if b.b_assigns <> WritesAny && !must_translate_ppt_opt_ref ppt + then Env.not_yet env "assigns clause in behavior"; + (* ignore b.b_extended since we never translate them *) + env) + env + in + if Cil.is_default_behavior b then + fold_left_handle_error + (fun env ((termination, post_cond) as tp) -> + if !must_translate_ppt_ref + (Property.ip_of_ensures kf kinstr b tp) then + let post_cond = ensures_predicate post_cond in + let loc = post_cond.pred_loc in + Cil.CurrentLoc.set loc; + match termination with + | Normal -> + (* If translating the default behavior, directly translate the + predicate *) + Translate.translate_predicate kf env post_cond + | Exits | Breaks | Continues | Returns -> + Error.process_error + (Error.not_yet "abnormal termination case in behavior"); + env + else + env) + env + b.b_post_cond + else + (* Compute the assumes predicate for pretty printing *) + let assumes = assumes_predicate b.b_assumes in + (* Push a new env and check the ensures of the behavior *) + let env = Env.push env in + let env, stmts = + fold_left_handle_error_with_args + (fun (env, stmts) ((termination, post_cond) as tp) -> + if !must_translate_ppt_ref + (Property.ip_of_ensures kf kinstr b tp) then + let post_cond = ensures_predicate post_cond in + let loc = post_cond.pred_loc in + Cil.CurrentLoc.set loc; + match termination with + | Normal -> + (* Prepend the name of the behavior *) + let post_cond = + { post_cond with pred_name = b.b_name :: post_cond.pred_name } + in + (* Create runtime check *) + let post_cond_e, env = + Translate.generalized_untyped_predicate_to_exp kf env post_cond + in + let stmt = + Smart_stmt.runtime_check + Smart_stmt.Postcondition + kf + post_cond_e + post_cond + in + env, stmt :: stmts + | Exits | Breaks | Continues | Returns -> + Error.process_error (Error.not_yet "abnormal termination case in behavior"); + env, stmts + else + env, stmts) + (env, []) + b.b_post_cond + in + let post_cond = Smart_stmt.block_from_stmts stmts in + (* Pop the env to build the post_cond check *) + let post_cond_blk, env = + Env.pop_and_get + env + post_cond + ~global_clear:false + Env.Middle + in + match stmts with + | [] -> + (* If no post_cond check have been generated, then return immediately *) + env + | _ :: _ -> + (* Generate a predicate that retrieves and tests the already + computed assumes value for the behavior *) + let loc = assumes.pred_loc in + let assumes_vi, assumes_e, env = + get_or_create_assumes_var ~loc env + in + let _, contract_e = get_contract_var contract in + let idx = get_bhvr_idx contract b.b_name in + let env = + Rtl_call.get_assumes + ~loc + ~result:assumes_vi + env + kf + contract_e + idx + in + let stmt = Smart_stmt.if_stmt ~loc ~cond:assumes_e post_cond_blk in + Env.add_stmt env kf stmt + in + List.fold_left + do_behavior + env + contract.spec.spec_behavior + +let translate_preconditions kf kinstr env contract = + let env = Env.set_annotation_kind env Smart_stmt.Precondition in + let env = Env.push_contract env contract in + let env = init kf env contract in + let env = setup_assumes kf env contract in + let do_it env = + let env = check_requires kf kinstr env contract in + let env = check_complete_and_disjoint kf kinstr env contract in + env + in + Env.handle_error do_it env + +let translate_postconditions kf kinstr env = + let env = Env.set_annotation_kind env Smart_stmt.Postcondition in + let contract, env = Env.pop_and_get_contract env in + let do_it env = + let env = check_post_conds kf kinstr env contract in + env + in + let env = Env.handle_error do_it env in + cleanup kf env contract diff --git a/src/plugins/e-acsl/src/code_generator/contract.mli b/src/plugins/e-acsl/src/code_generator/contract.mli new file mode 100644 index 00000000000..0b773260233 --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/contract.mli @@ -0,0 +1,47 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types +open Contract_types + +(** Translate a given ACSL contract (function or statement) into the + corresponding C statement for runtime assertion checking. *) + +type t = contract + +val create: loc:location -> spec -> t +(** Create a contract from a [spec] object (either function spec or statement + spec) *) + +val translate_preconditions: kernel_function -> kinstr -> Env.t -> t -> Env.t +(** Translate the preconditions of the given contract into the environement *) + +val translate_postconditions: kernel_function -> kinstr -> Env.t -> Env.t +(** Translate the postconditions of the given contract into the environment *) + +(**************************************************************************) +(********************** Forward references ********************************) +(**************************************************************************) + +val must_translate_ppt_ref: (Property.t -> bool) ref + +val must_translate_ppt_opt_ref: (Property.t option -> bool) ref diff --git a/src/plugins/e-acsl/src/code_generator/contract_types.mli b/src/plugins/e-acsl/src/code_generator/contract_types.mli new file mode 100644 index 00000000000..adef414cc84 --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/contract_types.mli @@ -0,0 +1,51 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types + +(** Represent a function or statement contract. *) +type contract = { + location: location; + (** Location of the function or statement attached to the contract. *) + + named_behaviors_count: int; + (** Number of named behaviors in the contract + (excluding the default behavior) *) + + name_to_idx_tbl: (string, int) Hashtbl.t; + (** Hashtable associating the name of a behavior with its index in the C API + structure used to store behaviors information at runtime. *) + + mutable var: (varinfo * exp) option; + (** Elements to access the C API structure used to store contracts + information at runtime. *) + + mutable all_assumes_translated: bool; + (** True if all the assumes clauses of the contract could be translated, false + otherwise. + + If even one assume clause can't be translated, then the complete and + disjoint clauses can't be computed. *) + + spec: spec + (** Specification for the contract *) +} diff --git a/src/plugins/e-acsl/src/code_generator/env.ml b/src/plugins/e-acsl/src/code_generator/env.ml index 5466f4cc98c..595dc566e1e 100644 --- a/src/plugins/e-acsl/src/code_generator/env.ml +++ b/src/plugins/e-acsl/src/code_generator/env.ml @@ -23,6 +23,7 @@ module E_acsl_label = Label open Cil_types open Cil_datatype +open Contract_types type localized_scope = | LGlobal @@ -62,6 +63,8 @@ type t = { should be added. *) global_mp_tbl: mp_tbl; env_stack: local_env list; + contract_stack: contract list; + (* Stack of contracts for active functions and statements *) var_mapping: Varinfo.t Stack.t Logic_var.Map.t; (* records of C bindings for logic vars *) loop_invariants: predicate list list; @@ -92,6 +95,7 @@ let empty = new_global_vars = []; global_mp_tbl = empty_mp_tbl; env_stack = []; + contract_stack = []; var_mapping = Logic_var.Map.empty; loop_invariants = []; cpt = 0 } @@ -508,6 +512,23 @@ let untypable env s = Context.save env; Error.untypable s +let push_contract env contract = + { env with contract_stack = contract :: env.contract_stack } + +let top_contract env = + match env.contract_stack with + | [] -> Options.fatal "Contract list is empty in env. That is unexpected" + | hd :: tl -> hd, tl + +let pop_and_get_contract env = + let hd, tl = top_contract env in + hd, { env with contract_stack = tl } + +let pop_contract env = + let _, env = pop_and_get_contract env in + env + + (* debugging purpose *) let pretty fmt env = let local_env, _ = top env in diff --git a/src/plugins/e-acsl/src/code_generator/env.mli b/src/plugins/e-acsl/src/code_generator/env.mli index 065d3babd2b..3a5aebf2f5d 100644 --- a/src/plugins/e-acsl/src/code_generator/env.mli +++ b/src/plugins/e-acsl/src/code_generator/env.mli @@ -21,6 +21,7 @@ (**************************************************************************) open Cil_types +open Contract_types (** Environments. @@ -192,6 +193,19 @@ val not_yet: t -> string -> 'a val untypable: t -> string -> 'a (** Save the current context and raise [Error.Typing_error] exception. *) +(* ************************************************************************** *) +(** {2 Contracts} *) +(* ************************************************************************** *) + +val push_contract: t -> contract -> t +(** Push a contract to the environment's stack *) +val top_contract: t -> contract * contract list +(** Return the top contract of the environment's stack *) +val pop_and_get_contract: t -> contract * t +(** Pop and return the top contract of the environment's stack *) +val pop_contract: t -> t +(** Pop the top contract of the environment's stack *) + val pretty: Format.formatter -> t -> unit (* -- GitLab From 5f2db26878ad47f97710634ee4b9ca775fe0af67 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:32:31 +0200 Subject: [PATCH 213/255] [eacsl:codegen] Update translation to use the `Contract` --- src/plugins/e-acsl/Makefile.in | 1 + src/plugins/e-acsl/headers/header_spec.txt | 2 + .../e-acsl/src/code_generator/injector.ml | 8 +- .../e-acsl/src/code_generator/translate.ml | 210 ------------------ .../src/code_generator/translate_annots.ml | 145 ++++++++++++ .../src/code_generator/translate_annots.mli | 77 +++++++ 6 files changed, 229 insertions(+), 214 deletions(-) create mode 100644 src/plugins/e-acsl/src/code_generator/translate_annots.ml create mode 100644 src/plugins/e-acsl/src/code_generator/translate_annots.mli diff --git a/src/plugins/e-acsl/Makefile.in b/src/plugins/e-acsl/Makefile.in index f7b3af2154a..65408186eef 100644 --- a/src/plugins/e-acsl/Makefile.in +++ b/src/plugins/e-acsl/Makefile.in @@ -87,6 +87,7 @@ SRC_CODE_GENERATOR:= \ logic_array \ translate \ contract \ + translate_annots \ temporal \ memory_observer \ literal_observer \ diff --git a/src/plugins/e-acsl/headers/header_spec.txt b/src/plugins/e-acsl/headers/header_spec.txt index ac18901b534..cf2b2a13c0e 100644 --- a/src/plugins/e-acsl/headers/header_spec.txt +++ b/src/plugins/e-acsl/headers/header_spec.txt @@ -119,6 +119,8 @@ src/code_generator/temporal.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/temporal.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/translate.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/code_generator/translate.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/translate_annots.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL +src/code_generator/translate_annots.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/dependencies/dep_eva.mli: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/dependencies/dep_eva.enabled.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL src/dependencies/dep_eva.disabled.ml: CEA_LGPL_OR_PROPRIETARY.E_ACSL diff --git a/src/plugins/e-acsl/src/code_generator/injector.ml b/src/plugins/e-acsl/src/code_generator/injector.ml index cac63d6330a..75ec65a7b49 100644 --- a/src/plugins/e-acsl/src/code_generator/injector.ml +++ b/src/plugins/e-acsl/src/code_generator/injector.ml @@ -232,7 +232,7 @@ let add_new_block_in_stmt env kf stmt = in let mk_post_env env stmt = Annotations.fold_code_annot - (fun _ a env -> Translate.translate_post_code_annotation kf stmt env a) + (fun _ a env -> Translate_annots.post_code_annotation kf stmt env a) stmt env in @@ -252,7 +252,7 @@ let add_new_block_in_stmt env kf stmt = let env = mk_post_env env stmt in (* also handle the postcondition of the function and clear the env *) - Translate.translate_post_spec kf Kglobal env (Annotations.funspec kf) + Translate_annots.post_funspec kf Kglobal env else env in @@ -450,7 +450,7 @@ and inject_in_stmt env kf stmt = (* translate the precondition of the function *) if Functions.check kf then let funspec = Annotations.funspec kf in - Translate.translate_pre_spec kf Kglobal env funspec + Translate_annots.pre_funspec kf Kglobal env funspec else env else env @@ -459,7 +459,7 @@ and inject_in_stmt env kf stmt = let env = if Functions.check kf then Annotations.fold_code_annot - (fun _ a env -> Translate.translate_pre_code_annotation kf stmt env a) + (fun _ a env -> Translate_annots.pre_code_annotation kf stmt env a) stmt env else diff --git a/src/plugins/e-acsl/src/code_generator/translate.ml b/src/plugins/e-acsl/src/code_generator/translate.ml index 0d42015860e..81b165d36f9 100644 --- a/src/plugins/e-acsl/src/code_generator/translate.ml +++ b/src/plugins/e-acsl/src/code_generator/translate.ml @@ -1147,216 +1147,6 @@ let untyped_term_to_exp typ t = if not (Env.has_no_new_stmt env) then raise (No_simple_term_translation t); e -(* ************************************************************************** *) -(* [translate_*] translates a given ACSL annotation into the corresponding C - statement (if any) for runtime assertion checking. *) -(* ************************************************************************** *) - -let must_translate ppt = - Options.Valid.get () - || match Property_status.get ppt with - | Never_tried - | Inconsistent _ - | Best ((False_if_reachable | False_and_reachable | Dont_know), _) -> - true - | Best (True, _) -> - (* [TODO] generating code for "valid under hypotheses" properties could be - useful for some use cases (in particular, when E-ACSL does not stop on - the very first error). - ==> introduce a new option or modify the behavior of -e-acsl-valid, - see e-acsl#35 *) - false - -let must_translate_opt = function - | None -> false - | Some ppt -> must_translate ppt - -let assumes_predicate bhv = - List.fold_left - (fun acc p -> - let pred = p.ip_content.tp_statement in - let loc = pred.pred_loc in - Logic_const.pand ~loc - (acc, - Logic_const.unamed ~loc pred.pred_content)) - Logic_const.ptrue - bhv.b_assumes - -let translate_preconditions kf kinstr env behaviors = - let env = Env.set_annotation_kind env Smart_stmt.Precondition in - let do_behavior env b = - let assumes_pred = assumes_predicate b in - List.fold_left - (fun env p -> - let pred = p.ip_content.tp_statement in - let do_it env = - if must_translate (Property.ip_of_requires kf kinstr b p) then - let loc = pred.pred_loc in - let p = - Logic_const.pimplies - ~loc - (assumes_pred, - Logic_const.unamed ~loc pred.pred_content) - in - translate_named_predicate kf env p - else - env - in - handle_error do_it env) - env - b.b_requires - in - List.fold_left do_behavior env behaviors - -let translate_postconditions kf kinstr env behaviors = - let env = Env.set_annotation_kind env Smart_stmt.Postcondition in - (* generate one guard by postcondition of each behavior *) - let do_behavior env b = - let env = - handle_error - (fun env -> - let active = [] in (* TODO: 'for' behaviors, e-acsl#109 *) - let ppt = Property.ip_assigns_of_behavior kf kinstr ~active b in - if b.b_assigns <> WritesAny && must_translate_opt ppt - then not_yet env "assigns clause in behavior"; - (* ignore b.b_extended since we never translate them *) - env) - env - in - let assumes_pred = assumes_predicate b in - List.fold_left - (fun env ((t, p) as tp) -> - if must_translate (Property.ip_of_ensures kf kinstr b tp) then - let do_it env = - match t with - | Normal -> - let p = p.ip_content.tp_statement in - let loc = p.pred_loc in - let p = - Logic_const.pimplies - ~loc - (Logic_const.pold ~loc assumes_pred, - Logic_const.unamed ~loc p.pred_content) - in - translate_named_predicate kf env p - | Exits | Breaks | Continues | Returns -> - not_yet env "abnormal termination case in behavior" - in - handle_error do_it env - else env) - env - b.b_post_cond - in - (* fix ordering of behaviors' iterations *) - let bhvs = - List.sort (fun b1 b2 -> String.compare b1.b_name b2.b_name) behaviors - in - List.fold_left do_behavior env bhvs - -let translate_pre_spec kf kinstr env spec = - let unsupported f x = ignore (handle_error (fun env -> f x; env) env) in - let convert_unsupported_clauses env = - unsupported - (fun spec -> - let ppt = Property.ip_decreases_of_spec kf kinstr spec in - if must_translate_opt ppt then not_yet env "variant clause") - spec; - (* TODO: spec.spec_terminates is not part of the E-ACSL subset *) - unsupported - (fun spec -> - let ppt = Property.ip_terminates_of_spec kf kinstr spec in - if must_translate_opt ppt then not_yet env "terminates clause") - spec; - let active = [] in (* TODO: 'for' behaviors, e-acsl#109 *) - let ppts = Property.ip_complete_of_spec kf kinstr ~active spec in - unsupported - (fun ppts -> - List.iter - (fun ppt -> - if must_translate ppt then not_yet env "complete behaviors") - ppts) - ppts; - let ppts = Property.ip_disjoint_of_spec kf kinstr ~active spec in - unsupported - (fun ppts -> - List.iter - (fun ppt -> - if must_translate ppt then not_yet env "disjoint behaviors") - ppts) - ppts; - env - in - let env = convert_unsupported_clauses env in - handle_error - (fun env -> translate_preconditions kf kinstr env spec.spec_behavior) - env - -let translate_post_spec kf kinstr env spec = - handle_error - (fun env -> translate_postconditions kf kinstr env spec.spec_behavior) - env - -let translate_pre_code_annotation kf stmt env annot = - let convert env = match annot.annot_content with - | AAssert(l, p) -> - if must_translate (Property.ip_of_code_annot_single kf stmt annot) then - let env = Env.set_annotation_kind env Smart_stmt.Assertion in - if l <> [] then - not_yet env "@[assertion applied only on some behaviors@]"; - translate_named_predicate kf env p.tp_statement - else - env - | AStmtSpec(l, spec) -> - if l <> [] then - not_yet env "@[statement contract applied only on some behaviors@]"; - translate_pre_spec kf (Kstmt stmt) env spec ; - | AInvariant(l, loop_invariant, p) -> - if must_translate (Property.ip_of_code_annot_single kf stmt annot) then - let env = Env.set_annotation_kind env Smart_stmt.Invariant in - if l <> [] then - not_yet env "@[invariant applied only on some behaviors@]"; - let env = translate_named_predicate kf env p.tp_statement in - if loop_invariant then - Env.add_loop_invariant env p.tp_statement - else env - else - env - | AVariant _ -> - if must_translate (Property.ip_of_code_annot_single kf stmt annot) - then not_yet env "variant" - else env - | AAssigns _ -> - (* TODO: it is not a precondition --> should not be handled here, - to be fixed when implementing e-acsl#29 *) - let ppts = Property.ip_of_code_annot kf stmt annot in - List.iter - (fun ppt -> if must_translate ppt then not_yet env "assigns") - ppts; - env - | AAllocation _ -> - let ppts = Property.ip_of_code_annot kf stmt annot in - List.iter - (fun ppt -> if must_translate ppt then not_yet env "allocation") - ppts; - env - | APragma _ -> not_yet env "pragma" - | AExtended _ -> env (* never translate extensions. *) - in - handle_error convert env - -let translate_post_code_annotation kf stmt env annot = - let convert env = match annot.annot_content with - | AStmtSpec(_, spec) -> translate_post_spec kf (Kstmt stmt) env spec - | AAssert _ - | AInvariant _ - | AVariant _ - | AAssigns _ - | AAllocation _ - | APragma _ - | AExtended _ -> env - in - handle_error convert env - (* Local Variables: compile-command: "make -C ../../../../.." diff --git a/src/plugins/e-acsl/src/code_generator/translate_annots.ml b/src/plugins/e-acsl/src/code_generator/translate_annots.ml new file mode 100644 index 00000000000..a65ac3567b9 --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/translate_annots.ml @@ -0,0 +1,145 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types +open Cil_datatype + +(* ************************************************************************** *) +(* Functions that translate a given ACSL annotation into the corresponding C + statements (if any) for runtime assertion checking. *) +(* ************************************************************************** *) + +let must_translate ppt = + Options.Valid.get () + || match Property_status.get ppt with + | Never_tried + | Inconsistent _ + | Best ((False_if_reachable | False_and_reachable | Dont_know), _) -> + true + | Best (True, _) -> + (* [TODO] generating code for "valid under hypotheses" properties could be + useful for some use cases (in particular, when E-ACSL does not stop on + the very first error). + ==> introduce a new option or modify the behavior of -e-acsl-valid, + see e-acsl#35 *) + false + +let must_translate_opt = function + | None -> false + | Some ppt -> must_translate ppt + +let () = + Contract.must_translate_ppt_ref := must_translate; + Contract.must_translate_ppt_opt_ref := must_translate_opt + +let pre_funspec kf kinstr env funspec = + let unsupported f x = ignore (Env.handle_error (fun env -> f x; env) env) in + let convert_unsupported_clauses env = + unsupported + (fun spec -> + let ppt = Property.ip_decreases_of_spec kf kinstr spec in + if must_translate_opt ppt then Env.not_yet env "variant clause") + funspec; + (* TODO: spec.spec_terminates is not part of the E-ACSL subset *) + unsupported + (fun spec -> + let ppt = Property.ip_terminates_of_spec kf kinstr spec in + if must_translate_opt ppt then Env.not_yet env "terminates clause") + funspec; + env + in + let env = convert_unsupported_clauses env in + let loc = Kernel_function.get_location kf in + let contract = Contract.create ~loc funspec in + Contract.translate_preconditions kf kinstr env contract + +let post_funspec kf kinstr env = + Contract.translate_postconditions kf kinstr env + +let pre_code_annotation kf stmt env annot = + let convert env = match annot.annot_content with + | AAssert(l, p) -> + if must_translate (Property.ip_of_code_annot_single kf stmt annot) then + let env = Env.set_annotation_kind env Smart_stmt.Assertion in + if l <> [] then + Env.not_yet env "@[assertion applied only on some behaviors@]"; + Translate.translate_predicate kf env p.tp_statement + else + env + | AStmtSpec(l, spec) -> + if l <> [] then + Env.not_yet env "@[statement contract applied only on some behaviors@]"; + let loc = Stmt.loc stmt in + let contract = Contract.create ~loc spec in + Contract.translate_preconditions kf (Kstmt stmt) env contract + | AInvariant(l, loop_invariant, p) -> + if must_translate (Property.ip_of_code_annot_single kf stmt annot) then + let env = Env.set_annotation_kind env Smart_stmt.Invariant in + if l <> [] then + Env.not_yet env "@[invariant applied only on some behaviors@]"; + let env = Translate.translate_predicate kf env p.tp_statement in + if loop_invariant then + Env.add_loop_invariant env p.tp_statement + else env + else + env + | AVariant _ -> + if must_translate (Property.ip_of_code_annot_single kf stmt annot) + then Env.not_yet env "variant" + else env + | AAssigns _ -> + (* TODO: it is not a precondition --> should not be handled here, + to be fixed when implementing e-acsl#29 *) + let ppts = Property.ip_of_code_annot kf stmt annot in + List.iter + (fun ppt -> if must_translate ppt then Env.not_yet env "assigns") + ppts; + env + | AAllocation _ -> + let ppts = Property.ip_of_code_annot kf stmt annot in + List.iter + (fun ppt -> if must_translate ppt then Env.not_yet env "allocation") + ppts; + env + | APragma _ -> Env.not_yet env "pragma" + | AExtended _ -> env (* never translate extensions. *) + in + Env.handle_error convert env + +let post_code_annotation kf stmt env annot = + let convert env = match annot.annot_content with + | AStmtSpec(_, _) -> Contract.translate_postconditions kf (Kstmt stmt) env + | AAssert _ + | AInvariant _ + | AVariant _ + | AAssigns _ + | AAllocation _ + | APragma _ + | AExtended _ -> env + in + Env.handle_error convert env + +(* +Local Variables: +compile-command: "make -C ../../../../.." +End: +*) diff --git a/src/plugins/e-acsl/src/code_generator/translate_annots.mli b/src/plugins/e-acsl/src/code_generator/translate_annots.mli new file mode 100644 index 00000000000..8e4504b2ddf --- /dev/null +++ b/src/plugins/e-acsl/src/code_generator/translate_annots.mli @@ -0,0 +1,77 @@ +(**************************************************************************) +(* *) +(* This file is part of the Frama-C's E-ACSL plug-in. *) +(* *) +(* Copyright (C) 2012-2020 *) +(* CEA (Commissariat à l'énergie atomique et aux énergies *) +(* alternatives) *) +(* *) +(* you can redistribute it and/or modify it under the terms of the GNU *) +(* Lesser General Public License as published by the Free Software *) +(* Foundation, version 2.1. *) +(* *) +(* It is distributed in the hope that it will be useful, *) +(* but WITHOUT ANY WARRANTY; without even the implied warranty of *) +(* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *) +(* GNU Lesser General Public License for more details. *) +(* *) +(* See the GNU Lesser General Public License version 2.1 *) +(* for more details (enclosed in the file licenses/LGPLv2.1). *) +(* *) +(**************************************************************************) + +open Cil_types + +(** Functions that translate a given ACSL annotation into the corresponding C + statements (if any) for runtime assertion checking. These C statements are + part of the resulting environment. *) + +val must_translate: Property.t -> bool +(** Return true if the given property must be translated (ie. if the valid + properties must be translated or if its status is not [True]), false + otherwise. *) + +val must_translate_opt: Property.t option -> bool +(** Same than [must_translate] but for [Property.t option]. Return false if the + option is [None]. *) + +val pre_funspec: kernel_function -> kinstr -> Env.t -> funspec -> Env.t +(** Translate the preconditions of the given function contract in the + environment. The contract is attached to the kernel_function. + + The function contract is pushed in the environment, some care should be + taken to call {!post_funspec} at the right time to pop the right + contract. *) + +val post_funspec: kernel_function -> kinstr -> Env.t -> Env.t +(** Translate the postconditions of the current function contract in the + environment. + + The function contract previously built by {!pre_funspec} is popped + from the environment. Some care should be taken to call this function at + the right time to pop the right contract. *) + +val pre_code_annotation: + kernel_function -> stmt -> Env.t -> code_annotation -> Env.t +(** Translate the preconditions of the given code annotation in the + environment. + + If available, the statement contract is pushed in the environment, some care + should be taken to call {!post_code_annotation} at the right time + to pop the right contract. *) + +val post_code_annotation: + kernel_function -> stmt -> Env.t -> code_annotation -> Env.t +(** Translate the postconditions of the current code annotation in the + environment. + + If necessarry, the statement contract previously built by + {!pre_code_annotation} is popped from the environment. Some care + should be taken to call this function at the right time to pop the right + contract. *) + +(* +Local Variables: +compile-command: "make -C ../.." +End: +*) -- GitLab From 1e3d643b5d925460f8e4d29ea4dd2dbcaf2ef378 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:33:59 +0200 Subject: [PATCH 214/255] [eacsl:examples] Add examples for function and statement contracts --- .../examples/contracts/function_contract.c | 42 +++++++++++++++++++ .../examples/contracts/statement_contract.c | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/plugins/e-acsl/examples/contracts/function_contract.c create mode 100644 src/plugins/e-acsl/examples/contracts/statement_contract.c diff --git a/src/plugins/e-acsl/examples/contracts/function_contract.c b/src/plugins/e-acsl/examples/contracts/function_contract.c new file mode 100644 index 00000000000..24d6902df9b --- /dev/null +++ b/src/plugins/e-acsl/examples/contracts/function_contract.c @@ -0,0 +1,42 @@ +#include <limits.h> + +/*@ + requires value > INT_MIN; + ensures \result == value; + + behavior neg: + assumes value < 0; + requires value < 1; + ensures \result == value; + + behavior pos: + assumes value >= 0; + requires value > -1; + ensures \result == value; + + behavior odd: + assumes value % 2 == 1; + requires (value % 2) - 1 == 0; + ensures \result == value; + + behavior even: + assumes value % 2 == 0; + requires (value % 2) + 1 == 1; + ensures \result == value; + + complete behaviors neg, pos; + complete behaviors odd, even; + complete behaviors; + + disjoint behaviors neg, pos; + disjoint behaviors odd, even; +*/ +int f(int value) { + return value; +} + +int main() { + f(3); + return 0; +} + diff --git a/src/plugins/e-acsl/examples/contracts/statement_contract.c b/src/plugins/e-acsl/examples/contracts/statement_contract.c new file mode 100644 index 00000000000..12d2ecefd01 --- /dev/null +++ b/src/plugins/e-acsl/examples/contracts/statement_contract.c @@ -0,0 +1,42 @@ +#include <limits.h> +#include <stdlib.h> +#include <stdio.h> +#include <time.h> + +int main() { + int value, sign, result; + + srand(time(NULL)); + value = rand(); + sign = rand(); + if (sign % 2) { + value = -value; + } + + /*@ + requires value > INT_MIN; + assigns result; + ensures result >= 0; + + behavior pos: + assumes value >= 0; + ensures result == value; + + behavior neg: + assumes value < 0; + ensures result == -value; + + complete behaviors; + disjoint behaviors; + */ + if (value < 0) { + result = -value; + } else { + result = value; + } + + printf("Value: %d, Result: %d\n", value, result); + + return 0; +} + -- GitLab From c59b9829917483c0efe4fca3f2f05f73395487df Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:35:06 +0200 Subject: [PATCH 215/255] [eacsl:tests] Add complete and disjoint behaviors test cases --- .../tests/constructs/function_contract.i | 39 ++++++++++++++++++- .../e-acsl/tests/constructs/stmt_contract.i | 33 +++++++++++++--- 2 files changed, 65 insertions(+), 7 deletions(-) diff --git a/src/plugins/e-acsl/tests/constructs/function_contract.i b/src/plugins/e-acsl/tests/constructs/function_contract.i index 90eca5e7829..512c41f6474 100644 --- a/src/plugins/e-acsl/tests/constructs/function_contract.i +++ b/src/plugins/e-acsl/tests/constructs/function_contract.i @@ -45,9 +45,9 @@ void k(void) { X += Y; } // mix ensures + contract on return /*@ ensures X == 5; */ -int l() { +int l() { /*@ assert Y == 2; */ - return X; + return X; } // mix ensures and assumes @@ -72,6 +72,40 @@ void m(void) { X += Y; } @ ensures X == 98; */ void n(void) { X ++; } +// several complete and disjoint clauses +/*@ + requires X > -1000; + ensures X == \old(Y); + + behavior neg: + assumes Y < 0; + requires Y < 1; + ensures X == \old(Y); + + behavior pos: + assumes Y >= 0; + requires Y > -1; + ensures X == \old(Y); + + behavior odd: + assumes Y % 2 == 1; + requires (Y % 2) - 1 == 0; + ensures X == \old(Y); + + behavior even: + assumes Y % 2 == 0; + requires (Y % 2) + 1 == 1; + ensures X == \old(Y); + + complete behaviors neg, pos; + complete behaviors odd, even; + complete behaviors; + + disjoint behaviors neg, pos; + disjoint behaviors odd, even; +*/ +void o(void) { X = Y; } + int main(void) { f(); g(); @@ -82,5 +116,6 @@ int main(void) { l(); m(); n(); + o(); return 0; } diff --git a/src/plugins/e-acsl/tests/constructs/stmt_contract.i b/src/plugins/e-acsl/tests/constructs/stmt_contract.i index 3d105913ded..a8d4595526c 100644 --- a/src/plugins/e-acsl/tests/constructs/stmt_contract.i +++ b/src/plugins/e-acsl/tests/constructs/stmt_contract.i @@ -3,7 +3,7 @@ */ int main(void) { - int x = 0, y = 2; + int x = 0, y = 2, z; // one ensures /*@ ensures x == 1; */ x = 1; @@ -21,9 +21,9 @@ int main(void) { @ requires y == 2; */ x = x + y; // several behaviors - /*@ behavior b1: + /*@ behavior b1: @ requires x == 5; - @ ensures x == 3; + @ ensures x == 3; @ behavior b2: @ requires x == 3+y; @ requires y == 2; @@ -32,7 +32,7 @@ int main(void) { // mix requires and assumes /*@ behavior b1: @ assumes x == 1; - @ requires x == 0; + @ requires x == 0; @ behavior b2: @ assumes x == 3; @ assumes y == 2; @@ -44,7 +44,30 @@ int main(void) { /*@ requires y == 2; */ x = x + y; - /*@ requires x == 7; + // complete and disjoint behaviors + /*@ + requires x > -1000; + assigns x; + ensures z >= 0; + + behavior pos: + assumes x >= 0; + ensures z == x; + + behavior neg: + assumes x < 0; + ensures z == -x; + + complete behaviors; + disjoint behaviors; + */ + if (x < 0) { + z = -x; + } else { + z = x; + } + + /*@ requires x == 7; @ ensures x == 7; */ return 0; } -- GitLab From dfdaaf67ee38d2912327f523376c4b4caddd9a3b Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:35:32 +0200 Subject: [PATCH 216/255] [eacsl:tests] Update tests oracles --- .../tests/bts/oracle_ci/bts1307.res.oracle | 4 - .../tests/bts/oracle_ci/bts1324.res.oracle | 2 - .../tests/bts/oracle_ci/bts1390.res.oracle | 8 - .../tests/bts/oracle_ci/bts2192.res.oracle | 2 +- .../tests/bts/oracle_ci/bts2252.res.oracle | 21 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1307.c | 299 +++++---- .../e-acsl/tests/bts/oracle_ci/gen_bts1324.c | 22 +- .../e-acsl/tests/bts/oracle_ci/gen_bts1390.c | 124 ++-- .../e-acsl/tests/bts/oracle_ci/gen_bts2252.c | 3 + .../oracle_ci/gen_function_contract.c | 367 ++++++++--- .../constructs/oracle_ci/gen_stmt_contract.c | 174 +++-- .../oracle_ci/stmt_contract.res.oracle | 3 + .../examples/oracle_ci/gen_linear_search.c | 128 ++-- .../oracle_ci/linear_search.res.oracle | 20 - .../tests/format/oracle_ci/fprintf.res.oracle | 79 +-- .../tests/format/oracle_ci/gen_fprintf.c | 47 +- .../tests/format/oracle_ci/gen_printf.c | 372 +++-------- .../tests/format/oracle_ci/printf.res.oracle | 602 +----------------- .../memory/oracle_ci/ctype_macros.res.oracle | 15 +- .../tests/memory/oracle_ci/gen_ctype_macros.c | 88 +-- .../tests/memory/oracle_ci/gen_memalign.c | 29 +- .../memory/oracle_ci/gen_valid_in_contract.c | 44 +- .../memory/oracle_ci/memalign.res.oracle | 31 +- .../special/oracle_ci/e-acsl-valid.res.oracle | 11 +- .../special/oracle_ci/gen_e-acsl-valid.c | 84 ++- .../temporal/oracle_ci/t_getenv.res.oracle | 2 +- .../temporal/oracle_ci/t_memcpy.res.oracle | 2 +- 27 files changed, 1074 insertions(+), 1509 deletions(-) diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1307.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1307.res.oracle index 0491679011c..ef84cf94d26 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1307.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1307.res.oracle @@ -3,7 +3,3 @@ (warn-once: no further messages from category 'parser:decimal-float' will be emitted) [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[eva:alarm] tests/bts/bts1307.i:11: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/bts/bts1307.i:11: Warning: - function __gen_e_acsl_foo, behavior OverEstimate_Motoring: postcondition got status invalid. diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1324.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1324.res.oracle index 8a979d24b47..efd02631129 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1324.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1324.res.oracle @@ -1,4 +1,2 @@ [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". -[eva:alarm] tests/bts/bts1324.i:6: Warning: - function __e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1390.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1390.res.oracle index 929213a9cd2..3731cb4dd09 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts1390.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts1390.res.oracle @@ -2,11 +2,3 @@ [e-acsl] translation done in project "e-acsl". [eva:builtins:missing-spec] tests/bts/bts1390.c:13: Warning: The builtin for function memchr will not be used, as its frama-c libc specification is not available. -[eva:alarm] tests/bts/bts1390.c:11: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/bts/bts1390.c:8: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/bts/bts1390.c:12: Warning: - function __gen_e_acsl_memchr, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] tests/bts/bts1390.c:17: Warning: - out of bounds read. assert \valid_read(s); diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts2192.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts2192.res.oracle index f96be2395e6..5e19b9d7d6e 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts2192.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts2192.res.oracle @@ -2,7 +2,7 @@ [e-acsl] Warning: annotating undefined function `atoi': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] FRAMAC_SHARE/libc/stdlib.h:78: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:77: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle b/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle index c0d14a505d0..994e5e176d8 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/bts2252.res.oracle @@ -4,19 +4,30 @@ if there are memory-related annotations. [e-acsl] FRAMAC_SHARE/libc/string.h:362: Warning: E-ACSL construct `\separated' is not yet supported. Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/string.h:372: Warning: + E-ACSL construct `logic functions performing read accesses' + is not yet supported. + Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/string.h:375: Warning: + E-ACSL construct `logic functions performing read accesses' + is not yet supported. + Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:363: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:366: Warning: E-ACSL construct `\separated' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:372: Warning: +[e-acsl] FRAMAC_SHARE/libc/string.h:362: Warning: + Some assumes clauses couldn't be translated. + Ignoring complete and disjoint behaviors annotations. +[e-acsl] FRAMAC_SHARE/libc/string.h:362: Warning: + E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/string.h:373: Warning: E-ACSL construct `logic functions performing read accesses' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:372: Warning: - E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:375: Warning: +[e-acsl] FRAMAC_SHARE/libc/string.h:376: Warning: E-ACSL construct `logic functions performing read accesses' is not yet supported. Ignoring annotation. diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c index 33236edf86c..803635b65a0 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1307.c @@ -96,6 +96,7 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) float *__gen_e_acsl_at_3; float *__gen_e_acsl_at_2; float *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; { int __gen_e_acsl_valid; int __gen_e_acsl_valid_2; @@ -103,6 +104,8 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __e_acsl_store_block((void *)(& Mtmin_out),(size_t)8); __e_acsl_store_block((void *)(& Mwmin),(size_t)8); __e_acsl_store_block((void *)(& Mtmin_in),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1); __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmin_in,sizeof(float), (void *)Mtmin_in, (void *)(& Mtmin_in)); @@ -126,87 +129,93 @@ void __gen_e_acsl_bar(float *Mtmin_in, float *Mwmin, float *Mtmin_out) __gen_e_acsl_at = Mtmin_out; bar(Mtmin_in,Mwmin,Mtmin_out); { - int __gen_e_acsl_valid_read; - int __gen_e_acsl_valid_read_2; - int __gen_e_acsl_and; - int __gen_e_acsl_if; - __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_2, - sizeof(float), - (void *)__gen_e_acsl_at_2, - (void *)(& __gen_e_acsl_at_2)); - __e_acsl_assert(__gen_e_acsl_valid_read,"RTE","bar", - "mem_access: \\valid_read(__gen_e_acsl_at_2)", - "tests/bts/bts1307.i",26); - __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at, + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_valid_read; + int __gen_e_acsl_valid_read_2; + int __gen_e_acsl_and; + int __gen_e_acsl_if; + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__gen_e_acsl_at_2, sizeof(float), - (void *)__gen_e_acsl_at, - (void *)(& __gen_e_acsl_at)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","bar", - "mem_access: \\valid_read(__gen_e_acsl_at)", - "tests/bts/bts1307.i",26); - if (*__gen_e_acsl_at == *__gen_e_acsl_at_2) { - __e_acsl_mpq_t __gen_e_acsl_; - __e_acsl_mpq_t __gen_e_acsl__2; - __e_acsl_mpq_t __gen_e_acsl_mul; - __e_acsl_mpq_t __gen_e_acsl__3; - int __gen_e_acsl_lt; - __gmpq_init(__gen_e_acsl_); - __gmpq_set_str(__gen_e_acsl_,"085/100",10); - __gmpq_init(__gen_e_acsl__2); - __gmpq_set_d(__gen_e_acsl__2,(double)*__gen_e_acsl_at_4); - __gmpq_init(__gen_e_acsl_mul); - __gmpq_mul(__gen_e_acsl_mul, - (__e_acsl_mpq_struct const *)(__gen_e_acsl_), - (__e_acsl_mpq_struct const *)(__gen_e_acsl__2)); - __gmpq_init(__gen_e_acsl__3); - __gmpq_set_d(__gen_e_acsl__3,(double)*__gen_e_acsl_at_3); - __gen_e_acsl_lt = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__3), - (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul)); - __gen_e_acsl_and = __gen_e_acsl_lt < 0; - __gmpq_clear(__gen_e_acsl_); - __gmpq_clear(__gen_e_acsl__2); - __gmpq_clear(__gen_e_acsl_mul); - __gmpq_clear(__gen_e_acsl__3); - } - else __gen_e_acsl_and = 0; - if (__gen_e_acsl_and) { - int __gen_e_acsl_valid_read_3; - __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at_5, + (void *)__gen_e_acsl_at_2, + (void *)(& __gen_e_acsl_at_2)); + __e_acsl_assert(__gen_e_acsl_valid_read,"RTE","bar", + "mem_access: \\valid_read(__gen_e_acsl_at_2)", + "tests/bts/bts1307.i",26); + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at, sizeof(float), - (void *)__gen_e_acsl_at_5, - (void *)(& __gen_e_acsl_at_5)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","bar", - "mem_access: \\valid_read(__gen_e_acsl_at_5)", + (void *)__gen_e_acsl_at, + (void *)(& __gen_e_acsl_at)); + __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","bar", + "mem_access: \\valid_read(__gen_e_acsl_at)", + "tests/bts/bts1307.i",26); + if (*__gen_e_acsl_at == *__gen_e_acsl_at_2) { + __e_acsl_mpq_t __gen_e_acsl_; + __e_acsl_mpq_t __gen_e_acsl__2; + __e_acsl_mpq_t __gen_e_acsl_mul; + __e_acsl_mpq_t __gen_e_acsl__3; + int __gen_e_acsl_lt; + __gmpq_init(__gen_e_acsl_); + __gmpq_set_str(__gen_e_acsl_,"085/100",10); + __gmpq_init(__gen_e_acsl__2); + __gmpq_set_d(__gen_e_acsl__2,(double)*__gen_e_acsl_at_4); + __gmpq_init(__gen_e_acsl_mul); + __gmpq_mul(__gen_e_acsl_mul, + (__e_acsl_mpq_struct const *)(__gen_e_acsl_), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__2)); + __gmpq_init(__gen_e_acsl__3); + __gmpq_set_d(__gen_e_acsl__3,(double)*__gen_e_acsl_at_3); + __gen_e_acsl_lt = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__3), + (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul)); + __gen_e_acsl_and = __gen_e_acsl_lt < 0; + __gmpq_clear(__gen_e_acsl_); + __gmpq_clear(__gen_e_acsl__2); + __gmpq_clear(__gen_e_acsl_mul); + __gmpq_clear(__gen_e_acsl__3); + } + else __gen_e_acsl_and = 0; + if (__gen_e_acsl_and) { + int __gen_e_acsl_valid_read_3; + __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at_5, + sizeof(float), + (void *)__gen_e_acsl_at_5, + (void *)(& __gen_e_acsl_at_5)); + __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","bar", + "mem_access: \\valid_read(__gen_e_acsl_at_5)", + "tests/bts/bts1307.i",26); + __gen_e_acsl_if = (double)*__gen_e_acsl_at_5 != 0.; + } + else { + __e_acsl_mpq_t __gen_e_acsl__4; + __e_acsl_mpq_t __gen_e_acsl__5; + __e_acsl_mpq_t __gen_e_acsl_mul_2; + __e_acsl_mpq_t __gen_e_acsl__6; + int __gen_e_acsl_ne; + __gmpq_init(__gen_e_acsl__4); + __gmpq_set_str(__gen_e_acsl__4,"085/100",10); + __gmpq_init(__gen_e_acsl__5); + __gmpq_set_d(__gen_e_acsl__5,(double)*__gen_e_acsl_at_6); + __gmpq_init(__gen_e_acsl_mul_2); + __gmpq_mul(__gen_e_acsl_mul_2, + (__e_acsl_mpq_struct const *)(__gen_e_acsl__4), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__5)); + __gmpq_init(__gen_e_acsl__6); + __gmpq_set_d(__gen_e_acsl__6,0.); + __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_mul_2), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__6)); + __gen_e_acsl_if = __gen_e_acsl_ne != 0; + __gmpq_clear(__gen_e_acsl__4); + __gmpq_clear(__gen_e_acsl__5); + __gmpq_clear(__gen_e_acsl_mul_2); + __gmpq_clear(__gen_e_acsl__6); + } + __e_acsl_assert(__gen_e_acsl_if,"Postcondition","bar", + "UnderEstimate_Motoring:\n *\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85 * *\\old(Mwmin) != 0.", "tests/bts/bts1307.i",26); - __gen_e_acsl_if = (double)*__gen_e_acsl_at_5 != 0.; - } - else { - __e_acsl_mpq_t __gen_e_acsl__4; - __e_acsl_mpq_t __gen_e_acsl__5; - __e_acsl_mpq_t __gen_e_acsl_mul_2; - __e_acsl_mpq_t __gen_e_acsl__6; - int __gen_e_acsl_ne; - __gmpq_init(__gen_e_acsl__4); - __gmpq_set_str(__gen_e_acsl__4,"085/100",10); - __gmpq_init(__gen_e_acsl__5); - __gmpq_set_d(__gen_e_acsl__5,(double)*__gen_e_acsl_at_6); - __gmpq_init(__gen_e_acsl_mul_2); - __gmpq_mul(__gen_e_acsl_mul_2, - (__e_acsl_mpq_struct const *)(__gen_e_acsl__4), - (__e_acsl_mpq_struct const *)(__gen_e_acsl__5)); - __gmpq_init(__gen_e_acsl__6); - __gmpq_set_d(__gen_e_acsl__6,0.); - __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl_mul_2), - (__e_acsl_mpq_struct const *)(__gen_e_acsl__6)); - __gen_e_acsl_if = __gen_e_acsl_ne != 0; - __gmpq_clear(__gen_e_acsl__4); - __gmpq_clear(__gen_e_acsl__5); - __gmpq_clear(__gen_e_acsl_mul_2); - __gmpq_clear(__gen_e_acsl__6); } - __e_acsl_assert(__gen_e_acsl_if,"Postcondition","bar", - "*\\old(Mtmin_out) == *\\old(Mtmin_in) < 0.85 * *\\old(Mwmin)?\n *\\old(Mtmin_in) != 0.:\n 0.85 * *\\old(Mwmin) != 0.", - "tests/bts/bts1307.i",26); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& Mtmin_out)); __e_acsl_delete_block((void *)(& Mwmin)); __e_acsl_delete_block((void *)(& Mtmin_in)); @@ -229,6 +238,7 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) float *__gen_e_acsl_at_3; float *__gen_e_acsl_at_2; float *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; { int __gen_e_acsl_valid; int __gen_e_acsl_valid_2; @@ -236,6 +246,8 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) __e_acsl_store_block((void *)(& Mtmax_out),(size_t)8); __e_acsl_store_block((void *)(& Mwmax),(size_t)8); __e_acsl_store_block((void *)(& Mtmax_in),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1); __gen_e_acsl_valid = __e_acsl_valid((void *)Mtmax_in,sizeof(float), (void *)Mtmax_in, (void *)(& Mtmax_in)); @@ -256,72 +268,79 @@ void __gen_e_acsl_foo(float *Mtmax_in, float *Mwmax, float *Mtmax_out) __gen_e_acsl_at = Mtmax_out; foo(Mtmax_in,Mwmax,Mtmax_out); { - __e_acsl_mpq_t __gen_e_acsl_; - __e_acsl_mpq_t __gen_e_acsl__2; - __e_acsl_mpq_t __gen_e_acsl__3; - __e_acsl_mpq_t __gen_e_acsl_div; - __e_acsl_mpq_t __gen_e_acsl__4; - __e_acsl_mpq_t __gen_e_acsl_mul; - __e_acsl_mpq_t __gen_e_acsl__5; - __e_acsl_mpq_t __gen_e_acsl_mul_2; - __e_acsl_mpq_t __gen_e_acsl_sub; - __e_acsl_mpq_t __gen_e_acsl__6; - __e_acsl_mpq_t __gen_e_acsl_add; - __e_acsl_mpq_t __gen_e_acsl__7; - int __gen_e_acsl_ne; - __gmpq_init(__gen_e_acsl_); - __gmpq_set_str(__gen_e_acsl_,"5",10); - __gmpq_init(__gen_e_acsl__2); - __gmpq_set_si(__gen_e_acsl__2,5L,1UL); - __gmpq_init(__gen_e_acsl__3); - __gmpq_set_si(__gen_e_acsl__3,80L,1UL); - __gmpq_init(__gen_e_acsl_div); - __gmpq_div(__gen_e_acsl_div, - (__e_acsl_mpq_struct const *)(__gen_e_acsl__2), - (__e_acsl_mpq_struct const *)(__gen_e_acsl__3)); - __gmpq_init(__gen_e_acsl__4); - __gmpq_set_d(__gen_e_acsl__4,(double)*__gen_e_acsl_at_3); - __gmpq_init(__gen_e_acsl_mul); - __gmpq_mul(__gen_e_acsl_mul, - (__e_acsl_mpq_struct const *)(__gen_e_acsl_div), - (__e_acsl_mpq_struct const *)(__gen_e_acsl__4)); - __gmpq_init(__gen_e_acsl__5); - __gmpq_set_str(__gen_e_acsl__5,"04/10",10); - __gmpq_init(__gen_e_acsl_mul_2); - __gmpq_mul(__gen_e_acsl_mul_2, - (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul), - (__e_acsl_mpq_struct const *)(__gen_e_acsl__5)); - __gmpq_init(__gen_e_acsl_sub); - __gmpq_sub(__gen_e_acsl_sub,(__e_acsl_mpq_struct const *)(__gen_e_acsl_), - (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul_2)); - __gmpq_init(__gen_e_acsl__6); - __gmpq_set_d(__gen_e_acsl__6,(double)*__gen_e_acsl_at_2); - __gmpq_init(__gen_e_acsl_add); - __gmpq_add(__gen_e_acsl_add, - (__e_acsl_mpq_struct const *)(__gen_e_acsl__6), - (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub)); - __gmpq_init(__gen_e_acsl__7); - __gmpq_set_d(__gen_e_acsl__7,(double)*__gen_e_acsl_at); - __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__7), - (__e_acsl_mpq_struct const *)(__gen_e_acsl_add)); - __e_acsl_assert(__gen_e_acsl_ne != 0,"Postcondition","foo", - "*\\old(Mtmax_out) != *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)", - "tests/bts/bts1307.i",11); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) { + __e_acsl_mpq_t __gen_e_acsl_; + __e_acsl_mpq_t __gen_e_acsl__2; + __e_acsl_mpq_t __gen_e_acsl__3; + __e_acsl_mpq_t __gen_e_acsl_div; + __e_acsl_mpq_t __gen_e_acsl__4; + __e_acsl_mpq_t __gen_e_acsl_mul; + __e_acsl_mpq_t __gen_e_acsl__5; + __e_acsl_mpq_t __gen_e_acsl_mul_2; + __e_acsl_mpq_t __gen_e_acsl_sub; + __e_acsl_mpq_t __gen_e_acsl__6; + __e_acsl_mpq_t __gen_e_acsl_add; + __e_acsl_mpq_t __gen_e_acsl__7; + int __gen_e_acsl_ne; + __gmpq_init(__gen_e_acsl_); + __gmpq_set_str(__gen_e_acsl_,"5",10); + __gmpq_init(__gen_e_acsl__2); + __gmpq_set_si(__gen_e_acsl__2,5L,1UL); + __gmpq_init(__gen_e_acsl__3); + __gmpq_set_si(__gen_e_acsl__3,80L,1UL); + __gmpq_init(__gen_e_acsl_div); + __gmpq_div(__gen_e_acsl_div, + (__e_acsl_mpq_struct const *)(__gen_e_acsl__2), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__3)); + __gmpq_init(__gen_e_acsl__4); + __gmpq_set_d(__gen_e_acsl__4,(double)*__gen_e_acsl_at_3); + __gmpq_init(__gen_e_acsl_mul); + __gmpq_mul(__gen_e_acsl_mul, + (__e_acsl_mpq_struct const *)(__gen_e_acsl_div), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__4)); + __gmpq_init(__gen_e_acsl__5); + __gmpq_set_str(__gen_e_acsl__5,"04/10",10); + __gmpq_init(__gen_e_acsl_mul_2); + __gmpq_mul(__gen_e_acsl_mul_2, + (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul), + (__e_acsl_mpq_struct const *)(__gen_e_acsl__5)); + __gmpq_init(__gen_e_acsl_sub); + __gmpq_sub(__gen_e_acsl_sub, + (__e_acsl_mpq_struct const *)(__gen_e_acsl_), + (__e_acsl_mpq_struct const *)(__gen_e_acsl_mul_2)); + __gmpq_init(__gen_e_acsl__6); + __gmpq_set_d(__gen_e_acsl__6,(double)*__gen_e_acsl_at_2); + __gmpq_init(__gen_e_acsl_add); + __gmpq_add(__gen_e_acsl_add, + (__e_acsl_mpq_struct const *)(__gen_e_acsl__6), + (__e_acsl_mpq_struct const *)(__gen_e_acsl_sub)); + __gmpq_init(__gen_e_acsl__7); + __gmpq_set_d(__gen_e_acsl__7,(double)*__gen_e_acsl_at); + __gen_e_acsl_ne = __gmpq_cmp((__e_acsl_mpq_struct const *)(__gen_e_acsl__7), + (__e_acsl_mpq_struct const *)(__gen_e_acsl_add)); + __e_acsl_assert(__gen_e_acsl_ne != 0,"Postcondition","foo", + "OverEstimate_Motoring:\n *\\old(Mtmax_out) != *\\old(Mtmax_in) + (5 - ((5 / 80) * *\\old(Mwmax)) * 0.4)", + "tests/bts/bts1307.i",11); + __gmpq_clear(__gen_e_acsl_); + __gmpq_clear(__gen_e_acsl__2); + __gmpq_clear(__gen_e_acsl__3); + __gmpq_clear(__gen_e_acsl_div); + __gmpq_clear(__gen_e_acsl__4); + __gmpq_clear(__gen_e_acsl_mul); + __gmpq_clear(__gen_e_acsl__5); + __gmpq_clear(__gen_e_acsl_mul_2); + __gmpq_clear(__gen_e_acsl_sub); + __gmpq_clear(__gen_e_acsl__6); + __gmpq_clear(__gen_e_acsl_add); + __gmpq_clear(__gen_e_acsl__7); + } + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& Mtmax_out)); __e_acsl_delete_block((void *)(& Mwmax)); __e_acsl_delete_block((void *)(& Mtmax_in)); - __gmpq_clear(__gen_e_acsl_); - __gmpq_clear(__gen_e_acsl__2); - __gmpq_clear(__gen_e_acsl__3); - __gmpq_clear(__gen_e_acsl_div); - __gmpq_clear(__gen_e_acsl__4); - __gmpq_clear(__gen_e_acsl_mul); - __gmpq_clear(__gen_e_acsl__5); - __gmpq_clear(__gen_e_acsl_mul_2); - __gmpq_clear(__gen_e_acsl_sub); - __gmpq_clear(__gen_e_acsl__6); - __gmpq_clear(__gen_e_acsl_add); - __gmpq_clear(__gen_e_acsl__7); return; } } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c index a0a428c6ea0..5e4a49720f5 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1324.c @@ -52,12 +52,13 @@ int main(void) */ int __gen_e_acsl_sorted(int *t, int n) { - int __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; int __retres; - __e_acsl_store_block((void *)(& t),(size_t)8); { int __gen_e_acsl_forall; int __gen_e_acsl_i; + __e_acsl_store_block((void *)(& t),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)1); __gen_e_acsl_forall = 1; __gen_e_acsl_i = 0 + 1; while (1) { @@ -88,16 +89,19 @@ int __gen_e_acsl_sorted(int *t, int n) __gen_e_acsl_i ++; } e_acsl_end_loop1: ; - __gen_e_acsl_at = __gen_e_acsl_forall; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + __gen_e_acsl_forall); } __retres = sorted(t,n); { - int __gen_e_acsl_implies; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = __retres == 1; - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","sorted", - "\\old(\\forall int i; 0 < i < n ==> *(t + (i - 1)) <= *(t + i)) ==>\n\\result == 1", - "tests/bts/bts1324.i",7); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 1, + "Postcondition","sorted", + "yes: \\result == 1", + "tests/bts/bts1324.i",7); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& t)); return __retres; } diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c index 058f7b605d8..c771114ecdc 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts1390.c @@ -30,7 +30,6 @@ void *memchr(void const *buf, int c, size_t n) __e_acsl_full_init((void *)(& s)); i = 0; while ((size_t)i < n) { - /*@ assert Eva: mem_access: \valid_read(s); */ if ((int)*s == c) { __e_acsl_full_init((void *)(& __retres)); __retres = (void *)s; @@ -64,46 +63,18 @@ void *memchr(void const *buf, int c, size_t n) */ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) { - int __gen_e_acsl_at_4; - int __gen_e_acsl_at_3; - void const *__gen_e_acsl_at_2; - int __gen_e_acsl_at; + int __gen_e_acsl_at_2; + void const *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; void *__retres; __e_acsl_store_block((void *)(& __retres),(size_t)8); - __e_acsl_store_block((void *)(& buf),(size_t)8); - { - int __gen_e_acsl_forall_2; - unsigned int __gen_e_acsl_k; - __gen_e_acsl_forall_2 = 1; - __gen_e_acsl_k = 0U; - while (1) { - if (__gen_e_acsl_k < (unsigned int)((int)((unsigned int)n))) ; - else break; - { - int __gen_e_acsl_valid_read_3; - __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)((char *)buf + __gen_e_acsl_k), - sizeof(char), - (void *)buf, - (void *)(& buf)); - __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","memchr", - "mem_access: \\valid_read((char *)buf + __gen_e_acsl_k)", - "tests/bts/bts1390.c",11); - if ((int)*((char *)buf + __gen_e_acsl_k) != c) ; - else { - __gen_e_acsl_forall_2 = 0; - goto e_acsl_end_loop3; - } - } - __gen_e_acsl_k ++; - } - e_acsl_end_loop3: ; - __gen_e_acsl_at_4 = __gen_e_acsl_forall_2; - } - __gen_e_acsl_at_3 = c; - __gen_e_acsl_at_2 = buf; { int __gen_e_acsl_exists; unsigned int __gen_e_acsl_i; + int __gen_e_acsl_forall; + unsigned int __gen_e_acsl_k; + __e_acsl_store_block((void *)(& buf),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); __gen_e_acsl_exists = 0; __gen_e_acsl_i = 0U; while (1) { @@ -127,17 +98,45 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) __gen_e_acsl_i ++; } e_acsl_end_loop1: ; - __gen_e_acsl_at = __gen_e_acsl_exists; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + __gen_e_acsl_exists); + __gen_e_acsl_forall = 1; + __gen_e_acsl_k = 0U; + while (1) { + if (__gen_e_acsl_k < (unsigned int)((int)((unsigned int)n))) ; + else break; + { + int __gen_e_acsl_valid_read_2; + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)buf + __gen_e_acsl_k), + sizeof(char), + (void *)buf, + (void *)(& buf)); + __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","memchr", + "mem_access: \\valid_read((char *)buf + __gen_e_acsl_k)", + "tests/bts/bts1390.c",11); + if ((int)*((char *)buf + __gen_e_acsl_k) != c) ; + else { + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop2; + } + } + __gen_e_acsl_k ++; + } + e_acsl_end_loop2: ; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + __gen_e_acsl_forall); } + __gen_e_acsl_at_2 = c; + __gen_e_acsl_at = buf; __retres = memchr(buf,c,n); { - int __gen_e_acsl_implies; - int __gen_e_acsl_implies_2; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else { - int __gen_e_acsl_forall; + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_forall_2; unsigned int __gen_e_acsl_j; - __gen_e_acsl_forall = 1; + __gen_e_acsl_forall_2 = 1; __gen_e_acsl_j = 0; while (1) { { @@ -148,34 +147,35 @@ void *__gen_e_acsl_memchr(void const *buf, int c, size_t n) else break; } { - int __gen_e_acsl_valid_read_2; - __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)((char *)__gen_e_acsl_at_2 + __gen_e_acsl_j), + int __gen_e_acsl_valid_read_3; + __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)((char *)__gen_e_acsl_at + __gen_e_acsl_j), sizeof(char), - (void *)__gen_e_acsl_at_2, - (void *)(& __gen_e_acsl_at_2)); - __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","memchr", - "mem_access: \\valid_read((char *)__gen_e_acsl_at_2 + __gen_e_acsl_j)", + (void *)__gen_e_acsl_at, + (void *)(& __gen_e_acsl_at)); + __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","memchr", + "mem_access: \\valid_read((char *)__gen_e_acsl_at + __gen_e_acsl_j)", "tests/bts/bts1390.c",9); - if ((int)*((char *)__gen_e_acsl_at_2 + __gen_e_acsl_j) != __gen_e_acsl_at_3) + if ((int)*((char *)__gen_e_acsl_at + __gen_e_acsl_j) != __gen_e_acsl_at_2) ; else { - __gen_e_acsl_forall = 0; - goto e_acsl_end_loop2; + __gen_e_acsl_forall_2 = 0; + goto e_acsl_end_loop3; } } __gen_e_acsl_j ++; } - e_acsl_end_loop2: ; - __gen_e_acsl_implies = __gen_e_acsl_forall; + e_acsl_end_loop3: ; + __e_acsl_assert(__gen_e_acsl_forall_2,"Postcondition","memchr", + "exists:\n \\forall int j;\n 0 <= j < (int)\\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf) + j) != \\old(c)", + "tests/bts/bts1390.c",9); } - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","memchr", - "\\old(\\exists integer i; 0 <= i < (int)n && (int)*((char *)buf + i) == c) ==>\n(\\forall int j;\n 0 <= j < (int)\\offset((char *)\\result) ==>\n (int)*((char *)\\old(buf) + j) != \\old(c))", - "tests/bts/bts1390.c",9); - if (! __gen_e_acsl_at_4) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = __retres == (void *)0; - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","memchr", - "\\old(\\forall integer k; 0 <= k < (int)n ==> (int)*((char *)buf + k) != c) ==>\n\\result == (void *)0", - "tests/bts/bts1390.c",12); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (void *)0, + "Postcondition","memchr", + "not_exists: \\result == (void *)0", + "tests/bts/bts1390.c",12); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& buf)); __e_acsl_delete_block((void *)(& __retres)); return __retres; diff --git a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c index bbf7b668bde..58c0df1de84 100644 --- a/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c +++ b/src/plugins/e-acsl/tests/bts/oracle_ci/gen_bts2252.c @@ -53,6 +53,7 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, __e_acsl_mpz_t __gen_e_acsl_at_3; char *__gen_e_acsl_at_2; char *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; char *__retres; { __e_acsl_mpz_t __gen_e_acsl_n; @@ -64,6 +65,7 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, unsigned long __gen_e_acsl__3; int __gen_e_acsl_valid; __e_acsl_store_block((void *)(& dest),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); __gmpz_init_set_ui(__gen_e_acsl_n,n); __gmpz_init_set_si(__gen_e_acsl_,1L); __gmpz_init(__gen_e_acsl_sub); @@ -135,6 +137,7 @@ char *__gen_e_acsl_strncpy(char * __restrict dest, __e_acsl_assert(__gen_e_acsl_initialized,"Postcondition","strncpy", "\\initialized(\\old(dest) + (0 .. \\old(n) - 1))", "FRAMAC_SHARE/libc/string.h",370); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& dest)); __gmpz_clear(__gen_e_acsl__4); __gmpz_clear(__gen_e_acsl_sub_3); diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c index c1d683e5f6d..6a00983f310 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_function_contract.c @@ -126,6 +126,43 @@ void n(void) return; } +/*@ requires X > -1000; + ensures X ≡ \old(Y); + + behavior neg: + assumes Y < 0; + requires Y < 1; + ensures X ≡ \old(Y); + + behavior pos: + assumes Y ≥ 0; + requires Y > -1; + ensures X ≡ \old(Y); + + behavior odd: + assumes Y % 2 ≡ 1; + requires Y % 2 - 1 ≡ 0; + ensures X ≡ \old(Y); + + behavior even: + assumes Y % 2 ≡ 0; + requires Y % 2 + 1 ≡ 1; + ensures X ≡ \old(Y); + + complete behaviors even, odd, pos, neg; + complete behaviors odd, even; + complete behaviors neg, pos; + disjoint behaviors odd, even; + disjoint behaviors neg, pos; + */ +void __gen_e_acsl_o(void); + +void o(void) +{ + X = Y; + return; +} + int main(void) { int __retres; @@ -138,10 +175,157 @@ int main(void) __gen_e_acsl_l(); __gen_e_acsl_m(); __gen_e_acsl_n(); + __gen_e_acsl_o(); __retres = 0; return __retres; } +/*@ requires X > -1000; + ensures X ≡ \old(Y); + + behavior neg: + assumes Y < 0; + requires Y < 1; + ensures X ≡ \old(Y); + + behavior pos: + assumes Y ≥ 0; + requires Y > -1; + ensures X ≡ \old(Y); + + behavior odd: + assumes Y % 2 ≡ 1; + requires Y % 2 - 1 ≡ 0; + ensures X ≡ \old(Y); + + behavior even: + assumes Y % 2 ≡ 0; + requires Y % 2 + 1 ≡ 1; + ensures X ≡ \old(Y); + + complete behaviors even, odd, pos, neg; + complete behaviors odd, even; + complete behaviors neg, pos; + disjoint behaviors odd, even; + disjoint behaviors neg, pos; + */ +void __gen_e_acsl_o(void) +{ + int __gen_e_acsl_at_5; + int __gen_e_acsl_at_4; + int __gen_e_acsl_at_3; + int __gen_e_acsl_at_2; + int __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; + { + int __gen_e_acsl_assumes_value; + int __gen_e_acsl_active_bhvrs; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)4); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + Y < 0); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + Y >= 0); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)2, + Y % 2 == 1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)3, + Y % 2 == 0); + __e_acsl_assert(X > -1000,"Precondition","o","X > -1000", + "tests/constructs/function_contract.i",77); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y < 1,"Precondition","o", + "neg: Y < 1", + "tests/constructs/function_contract.i", + 82); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y > -1,"Precondition", + "o","pos: Y > -1", + "tests/constructs/function_contract.i", + 87); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y % 2 - 1 == 0, + "Precondition","o", + "odd: Y % 2 - 1 == 0", + "tests/constructs/function_contract.i", + 92); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)3); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(Y % 2 + 1 == 1, + "Precondition","o", + "even: Y % 2 + 1 == 1", + "tests/constructs/function_contract.i", + 97); + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2,1,0); + if (__gen_e_acsl_active_bhvrs != 1) { + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,"Precondition","o", + "complete behaviors pos, neg", + "tests/constructs/function_contract.i",107); + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,"Precondition","o", + "disjoint behaviors pos, neg", + "tests/constructs/function_contract.i",107); + } + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2,2,3); + if (__gen_e_acsl_active_bhvrs != 1) { + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,"Precondition","o", + "complete behaviors odd, even", + "tests/constructs/function_contract.i",107); + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,"Precondition","o", + "disjoint behaviors odd, even", + "tests/constructs/function_contract.i",107); + } + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract); + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,"Precondition","o", + "all behaviors complete", + "tests/constructs/function_contract.i",107); + } + __gen_e_acsl_at_5 = Y; + __gen_e_acsl_at_4 = Y; + __gen_e_acsl_at_3 = Y; + __gen_e_acsl_at_2 = Y; + __gen_e_acsl_at = Y; + o(); + { + int __gen_e_acsl_assumes_value_2; + __e_acsl_assert(X == __gen_e_acsl_at,"Postcondition","o","X == \\old(Y)", + "tests/constructs/function_contract.i",78); + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_2, + "Postcondition","o", + "neg: X == \\old(Y)", + "tests/constructs/function_contract.i", + 83); + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_3, + "Postcondition","o", + "pos: X == \\old(Y)", + "tests/constructs/function_contract.i", + 88); + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_4, + "Postcondition","o", + "odd: X == \\old(Y)", + "tests/constructs/function_contract.i", + 93); + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)3); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == __gen_e_acsl_at_5, + "Postcondition","o", + "even: X == \\old(Y)", + "tests/constructs/function_contract.i", + 98); + __e_acsl_contract_clean(__gen_e_acsl_contract); + return; + } +} + /*@ requires X > 0; requires X < 10; @@ -155,28 +339,32 @@ int main(void) */ void __gen_e_acsl_n(void) { - int __gen_e_acsl_at_2; - int __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + X == 7); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + X == 5); __e_acsl_assert(X > 0,"Precondition","n","X > 0", "tests/constructs/function_contract.i",65); __e_acsl_assert(X < 10,"Precondition","n","X < 10", "tests/constructs/function_contract.i",66); - __gen_e_acsl_at_2 = X == 5; - __gen_e_acsl_at = X == 7; n(); { - int __gen_e_acsl_implies; - int __gen_e_acsl_implies_2; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = X == 8; - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","n", - "\\old(X == 7) ==> X == 8", - "tests/constructs/function_contract.i",69); - if (! __gen_e_acsl_at_2) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = X == 98; - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","n", - "\\old(X == 5) ==> X == 98", - "tests/constructs/function_contract.i",72); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 8,"Postcondition", + "n","b1: X == 8", + "tests/constructs/function_contract.i", + 69); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 98,"Postcondition", + "n","b2: X == 98", + "tests/constructs/function_contract.i", + 72); + __e_acsl_contract_clean(__gen_e_acsl_contract); return; } } @@ -193,42 +381,37 @@ void __gen_e_acsl_n(void) */ void __gen_e_acsl_m(void) { - long __gen_e_acsl_at_4; - int __gen_e_acsl_at_3; - int __gen_e_acsl_at_2; - int __gen_e_acsl_at; - __gen_e_acsl_at_4 = (long)X; - { - int __gen_e_acsl_and_2; - if (X == 5) __gen_e_acsl_and_2 = Y == 2; else __gen_e_acsl_and_2 = 0; - __gen_e_acsl_at_3 = __gen_e_acsl_and_2; - } + long __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; { int __gen_e_acsl_and; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + X == 7); if (X == 5) __gen_e_acsl_and = Y == 2; else __gen_e_acsl_and = 0; - __gen_e_acsl_at_2 = __gen_e_acsl_and; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + __gen_e_acsl_and); } - __gen_e_acsl_at = X == 7; + __gen_e_acsl_at = (long)X; m(); { - int __gen_e_acsl_implies; - int __gen_e_acsl_implies_2; - int __gen_e_acsl_implies_3; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = X == 95; - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","m", - "\\old(X == 7) ==> X == 95", - "tests/constructs/function_contract.i",56); - if (! __gen_e_acsl_at_2) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = X == 7; - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","m", - "\\old(X == 5 && Y == 2) ==> X == 7", - "tests/constructs/function_contract.i",60); - if (! __gen_e_acsl_at_3) __gen_e_acsl_implies_3 = 1; - else __gen_e_acsl_implies_3 = (long)X == __gen_e_acsl_at_4 + Y; - __e_acsl_assert(__gen_e_acsl_implies_3,"Postcondition","m", - "\\old(X == 5 && Y == 2) ==> X == \\old(X) + Y", - "tests/constructs/function_contract.i",61); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 95,"Postcondition", + "m","b1: X == 95", + "tests/constructs/function_contract.i", + 56); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert((long)X == __gen_e_acsl_at + Y,"Postcondition","m", + "b2: X == \\old(X) + Y", + "tests/constructs/function_contract.i",61); + __e_acsl_assert(X == 7,"Postcondition","m","b2: X == 7", + "tests/constructs/function_contract.i",60); + } + __e_acsl_contract_clean(__gen_e_acsl_contract); return; } } @@ -255,31 +438,33 @@ int __gen_e_acsl_l(void) */ void __gen_e_acsl_k(void) { + __e_acsl_contract_t *__gen_e_acsl_contract; { - int __gen_e_acsl_implies; int __gen_e_acsl_and; - int __gen_e_acsl_implies_2; - int __gen_e_acsl_and_2; - int __gen_e_acsl_implies_3; - if (! (X == 1)) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = X == 0; - __e_acsl_assert(__gen_e_acsl_implies,"Precondition","k", - "X == 1 ==> X == 0", - "tests/constructs/function_contract.i",38); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + X == 1); if (X == 3) __gen_e_acsl_and = Y == 2; else __gen_e_acsl_and = 0; - if (! __gen_e_acsl_and) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = X == 3; - __e_acsl_assert(__gen_e_acsl_implies_2,"Precondition","k", - "X == 3 && Y == 2 ==> X == 3", - "tests/constructs/function_contract.i",42); - if (X == 3) __gen_e_acsl_and_2 = Y == 2; else __gen_e_acsl_and_2 = 0; - if (! __gen_e_acsl_and_2) __gen_e_acsl_implies_3 = 1; - else __gen_e_acsl_implies_3 = X + (long)Y == 5L; - __e_acsl_assert(__gen_e_acsl_implies_3,"Precondition","k", - "X == 3 && Y == 2 ==> X + Y == 5", - "tests/constructs/function_contract.i",43); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + __gen_e_acsl_and); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 0,"Precondition", + "k","b1: X == 0", + "tests/constructs/function_contract.i", + 38); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert(X + (long)Y == 5L,"Precondition","k","b2: X + Y == 5", + "tests/constructs/function_contract.i",43); + __e_acsl_assert(X == 3,"Precondition","k","b2: X == 3", + "tests/constructs/function_contract.i",42); + } } k(); + __e_acsl_contract_clean(__gen_e_acsl_contract); return; } @@ -294,18 +479,46 @@ void __gen_e_acsl_k(void) */ void __gen_e_acsl_j(void) { - __e_acsl_assert(X == 5,"Precondition","j","X == 5", - "tests/constructs/function_contract.i",27); - __e_acsl_assert((long)X == 3L + Y,"Precondition","j","X == 3 + Y", - "tests/constructs/function_contract.i",30); - __e_acsl_assert(Y == 2,"Precondition","j","Y == 2", - "tests/constructs/function_contract.i",31); + __e_acsl_contract_t *__gen_e_acsl_contract; + { + int __gen_e_acsl_assumes_value; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0,1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1,1); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(X == 5,"Precondition", + "j","b1: X == 5", + "tests/constructs/function_contract.i", + 27); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert(Y == 2,"Precondition","j","b2: Y == 2", + "tests/constructs/function_contract.i",31); + __e_acsl_assert((long)X == 3L + Y,"Precondition","j","b2: X == 3 + Y", + "tests/constructs/function_contract.i",30); + } + } j(); - __e_acsl_assert(X == 3,"Postcondition","j","X == 3", - "tests/constructs/function_contract.i",28); - __e_acsl_assert((long)X == Y + 1L,"Postcondition","j","X == Y + 1", - "tests/constructs/function_contract.i",32); - return; + { + int __gen_e_acsl_assumes_value_2; + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(X == 3,"Postcondition", + "j","b1: X == 3", + "tests/constructs/function_contract.i", + 28); + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert((long)X == Y + 1L, + "Postcondition","j", + "b2: X == Y + 1", + "tests/constructs/function_contract.i", + 32); + __e_acsl_contract_clean(__gen_e_acsl_contract); + return; + } } /*@ requires X ≡ 3; diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c index e088e9e145e..af5ff59ccca 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/gen_stmt_contract.c @@ -3,7 +3,11 @@ #include "stdio.h" int main(void) { + __e_acsl_contract_t *__gen_e_acsl_contract_3; + __e_acsl_contract_t *__gen_e_acsl_contract_2; + __e_acsl_contract_t *__gen_e_acsl_contract; int __retres; + int z; int x = 0; int y = 2; /*@ ensures x ≡ 1; */ @@ -35,49 +39,79 @@ int main(void) /*@ requires x ≡ 3; requires y ≡ 2; */ x += y; - __e_acsl_assert(x == 5,"Precondition","main","x == 5", - "tests/constructs/stmt_contract.i",25); - __e_acsl_assert((long)x == 3L + y,"Precondition","main","x == 3 + y", - "tests/constructs/stmt_contract.i",28); - __e_acsl_assert(y == 2,"Precondition","main","y == 2", - "tests/constructs/stmt_contract.i",29); - /*@ behavior b1: - requires x ≡ 5; - ensures x ≡ 3; - - behavior b2: - requires x ≡ 3 + y; - requires y ≡ 2; - ensures x ≡ y + 1; - */ - x = 3; - __e_acsl_assert(x == 3,"Postcondition","main","x == 3", - "tests/constructs/stmt_contract.i",26); - __e_acsl_assert((long)x == y + 1L,"Postcondition","main","x == y + 1", - "tests/constructs/stmt_contract.i",30); { - int __gen_e_acsl_implies; + int __gen_e_acsl_assumes_value_2; + { + int __gen_e_acsl_assumes_value; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + 1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + 1); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(x == 5,"Precondition", + "main","b1: x == 5", + "tests/constructs/stmt_contract.i", + 25); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { + __e_acsl_assert(y == 2,"Precondition","main","b2: y == 2", + "tests/constructs/stmt_contract.i",29); + __e_acsl_assert((long)x == 3L + y,"Precondition","main", + "b2: x == 3 + y","tests/constructs/stmt_contract.i", + 28); + } + } + /*@ behavior b1: + requires x ≡ 5; + ensures x ≡ 3; + + behavior b2: + requires x ≡ 3 + y; + requires y ≡ 2; + ensures x ≡ y + 1; + */ + x = 3; + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert(x == 3,"Postcondition", + "main","b1: x == 3", + "tests/constructs/stmt_contract.i", + 26); + __gen_e_acsl_assumes_value_2 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value_2) __e_acsl_assert((long)x == y + 1L, + "Postcondition","main", + "b2: x == y + 1", + "tests/constructs/stmt_contract.i", + 30); + __e_acsl_contract_clean(__gen_e_acsl_contract); + } + { int __gen_e_acsl_and_2; - int __gen_e_acsl_implies_2; - int __gen_e_acsl_and_3; - int __gen_e_acsl_implies_3; - if (! (x == 1)) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = x == 0; - __e_acsl_assert(__gen_e_acsl_implies,"Precondition","main", - "x == 1 ==> x == 0","tests/constructs/stmt_contract.i", - 35); + int __gen_e_acsl_assumes_value_3; + __gen_e_acsl_contract_2 = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_2,(size_t)0, + x == 1); if (x == 3) __gen_e_acsl_and_2 = y == 2; else __gen_e_acsl_and_2 = 0; - if (! __gen_e_acsl_and_2) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = x == 3; - __e_acsl_assert(__gen_e_acsl_implies_2,"Precondition","main", - "x == 3 && y == 2 ==> x == 3", - "tests/constructs/stmt_contract.i",39); - if (x == 3) __gen_e_acsl_and_3 = y == 2; else __gen_e_acsl_and_3 = 0; - if (! __gen_e_acsl_and_3) __gen_e_acsl_implies_3 = 1; - else __gen_e_acsl_implies_3 = x + (long)y == 5L; - __e_acsl_assert(__gen_e_acsl_implies_3,"Precondition","main", - "x == 3 && y == 2 ==> x + y == 5", - "tests/constructs/stmt_contract.i",40); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_2,(size_t)1, + __gen_e_acsl_and_2); + __gen_e_acsl_assumes_value_3 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract_2,(size_t)0); + if (__gen_e_acsl_assumes_value_3) __e_acsl_assert(x == 0,"Precondition", + "main","b1: x == 0", + "tests/constructs/stmt_contract.i", + 35); + __gen_e_acsl_assumes_value_3 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract_2,(size_t)1); + if (__gen_e_acsl_assumes_value_3) { + __e_acsl_assert(x + (long)y == 5L,"Precondition","main", + "b2: x + y == 5","tests/constructs/stmt_contract.i",40); + __e_acsl_assert(x == 3,"Precondition","main","b2: x == 3", + "tests/constructs/stmt_contract.i",39); + } } /*@ behavior b1: assumes x ≡ 1; @@ -90,6 +124,7 @@ int main(void) requires x + y ≡ 5; */ x += y; + __e_acsl_contract_clean(__gen_e_acsl_contract_2); __e_acsl_assert(x == 5,"Precondition","main","x == 5", "tests/constructs/stmt_contract.i",43); /*@ requires x ≡ 5; */ @@ -99,8 +134,63 @@ int main(void) /*@ requires y ≡ 2; */ x += y; } + { + int __gen_e_acsl_assumes_value_4; + { + int __gen_e_acsl_active_bhvrs; + __gen_e_acsl_contract_3 = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_3, + (size_t)0,x >= 0); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract_3, + (size_t)1,x < 0); + __e_acsl_assert(x > -1000,"Precondition","main","x > -1000", + "tests/constructs/stmt_contract.i",49); + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3); + if (__gen_e_acsl_active_bhvrs != 1) { + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,"Precondition","main", + "all behaviors complete", + "tests/constructs/stmt_contract.i",64); + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,"Precondition","main", + "all behaviors disjoint", + "tests/constructs/stmt_contract.i",64); + } + } + /*@ requires x > -1000; + ensures z ≥ 0; + assigns x; + + behavior pos: + assumes x ≥ 0; + ensures z ≡ x; + + behavior neg: + assumes x < 0; + ensures z ≡ -x; + + complete behaviors neg, pos; + disjoint behaviors neg, pos; + */ + if (x < 0) z = - x; else z = x; + __e_acsl_assert(z >= 0,"Postcondition","main","z >= 0", + "tests/constructs/stmt_contract.i",51); + __gen_e_acsl_assumes_value_4 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3,(size_t)0); + if (__gen_e_acsl_assumes_value_4) __e_acsl_assert(z == x,"Postcondition", + "main","pos: z == x", + "tests/constructs/stmt_contract.i", + 55); + __gen_e_acsl_assumes_value_4 = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract_3,(size_t)1); + if (__gen_e_acsl_assumes_value_4) __e_acsl_assert((long)z == - ((long)x), + "Postcondition","main", + "neg: z == -x", + "tests/constructs/stmt_contract.i", + 59); + __e_acsl_contract_clean(__gen_e_acsl_contract_3); + } __e_acsl_assert(x == 7,"Precondition","main","x == 7", - "tests/constructs/stmt_contract.i",47); + "tests/constructs/stmt_contract.i",70); /*@ requires x ≡ 7; ensures x ≡ 7; */ { @@ -108,7 +198,7 @@ int main(void) goto return_label; } __e_acsl_assert(x == 7,"Postcondition","main","x == 7", - "tests/constructs/stmt_contract.i",48); + "tests/constructs/stmt_contract.i",71); return_label: return __retres; } diff --git a/src/plugins/e-acsl/tests/constructs/oracle_ci/stmt_contract.res.oracle b/src/plugins/e-acsl/tests/constructs/oracle_ci/stmt_contract.res.oracle index efd02631129..b1c4f6eb722 100644 --- a/src/plugins/e-acsl/tests/constructs/oracle_ci/stmt_contract.res.oracle +++ b/src/plugins/e-acsl/tests/constructs/oracle_ci/stmt_contract.res.oracle @@ -1,2 +1,5 @@ [e-acsl] beginning translation. +[e-acsl] tests/constructs/stmt_contract.i:64: Warning: + E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. [e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c b/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c index 7e89333ec36..421fdfe0f58 100644 --- a/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c +++ b/src/plugins/e-acsl/tests/examples/oracle_ci/gen_linear_search.c @@ -133,44 +133,37 @@ int main(void) */ int __gen_e_acsl_search(int elt) { - int __gen_e_acsl_at_2; - int __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; int __retres; { + int __gen_e_acsl_exists; + int __gen_e_acsl_j; int __gen_e_acsl_forall; + int __gen_e_acsl_j_2; + int __gen_e_acsl_forall_2; int __gen_e_acsl_i; - __gen_e_acsl_forall = 1; - __gen_e_acsl_i = 0; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __gen_e_acsl_exists = 0; + __gen_e_acsl_j = 0; while (1) { - if (__gen_e_acsl_i < 9) ; else break; - __e_acsl_assert((int)(__gen_e_acsl_i + 1L) < 10,"RTE","search", - "index_bound: (int)(__gen_e_acsl_i + 1) < 10", - "tests/examples/linear_search.i",7); - __e_acsl_assert(0 <= (int)(__gen_e_acsl_i + 1L),"RTE","search", - "index_bound: 0 <= (int)(__gen_e_acsl_i + 1)", - "tests/examples/linear_search.i",7); - __e_acsl_assert(__gen_e_acsl_i < 10,"RTE","search", - "index_bound: __gen_e_acsl_i < 10", - "tests/examples/linear_search.i",7); - __e_acsl_assert(0 <= __gen_e_acsl_i,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_i", - "tests/examples/linear_search.i",7); - if (A[__gen_e_acsl_i] <= A[__gen_e_acsl_i + 1]) ; + if (__gen_e_acsl_j < 10) ; else break; + __e_acsl_assert(__gen_e_acsl_j < 10,"RTE","search", + "index_bound: __gen_e_acsl_j < 10", + "tests/examples/linear_search.i",9); + __e_acsl_assert(0 <= __gen_e_acsl_j,"RTE","search", + "index_bound: 0 <= __gen_e_acsl_j", + "tests/examples/linear_search.i",9); + if (! (A[__gen_e_acsl_j] == elt)) ; else { - __gen_e_acsl_forall = 0; + __gen_e_acsl_exists = 1; goto e_acsl_end_loop3; } - __gen_e_acsl_i ++; + __gen_e_acsl_j ++; } e_acsl_end_loop3: ; - __e_acsl_assert(__gen_e_acsl_forall,"Precondition","search", - "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]", - "tests/examples/linear_search.i",7); - } - { - int __gen_e_acsl_forall_2; - int __gen_e_acsl_j_2; - __gen_e_acsl_forall_2 = 1; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + __gen_e_acsl_exists); + __gen_e_acsl_forall = 1; __gen_e_acsl_j_2 = 0; while (1) { if (__gen_e_acsl_j_2 < 10) ; else break; @@ -182,51 +175,60 @@ int __gen_e_acsl_search(int elt) "tests/examples/linear_search.i",12); if (A[__gen_e_acsl_j_2] != elt) ; else { - __gen_e_acsl_forall_2 = 0; - goto e_acsl_end_loop5; + __gen_e_acsl_forall = 0; + goto e_acsl_end_loop4; } __gen_e_acsl_j_2 ++; } - e_acsl_end_loop5: ; - __gen_e_acsl_at_2 = __gen_e_acsl_forall_2; - } - { - int __gen_e_acsl_exists; - int __gen_e_acsl_j; - __gen_e_acsl_exists = 0; - __gen_e_acsl_j = 0; + e_acsl_end_loop4: ; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + __gen_e_acsl_forall); + __gen_e_acsl_forall_2 = 1; + __gen_e_acsl_i = 0; while (1) { - if (__gen_e_acsl_j < 10) ; else break; - __e_acsl_assert(__gen_e_acsl_j < 10,"RTE","search", - "index_bound: __gen_e_acsl_j < 10", - "tests/examples/linear_search.i",9); - __e_acsl_assert(0 <= __gen_e_acsl_j,"RTE","search", - "index_bound: 0 <= __gen_e_acsl_j", - "tests/examples/linear_search.i",9); - if (! (A[__gen_e_acsl_j] == elt)) ; + if (__gen_e_acsl_i < 9) ; else break; + __e_acsl_assert((int)(__gen_e_acsl_i + 1L) < 10,"RTE","search", + "index_bound: (int)(__gen_e_acsl_i + 1) < 10", + "tests/examples/linear_search.i",7); + __e_acsl_assert(0 <= (int)(__gen_e_acsl_i + 1L),"RTE","search", + "index_bound: 0 <= (int)(__gen_e_acsl_i + 1)", + "tests/examples/linear_search.i",7); + __e_acsl_assert(__gen_e_acsl_i < 10,"RTE","search", + "index_bound: __gen_e_acsl_i < 10", + "tests/examples/linear_search.i",7); + __e_acsl_assert(0 <= __gen_e_acsl_i,"RTE","search", + "index_bound: 0 <= __gen_e_acsl_i", + "tests/examples/linear_search.i",7); + if (A[__gen_e_acsl_i] <= A[__gen_e_acsl_i + 1]) ; else { - __gen_e_acsl_exists = 1; - goto e_acsl_end_loop4; + __gen_e_acsl_forall_2 = 0; + goto e_acsl_end_loop5; } - __gen_e_acsl_j ++; + __gen_e_acsl_i ++; } - e_acsl_end_loop4: ; - __gen_e_acsl_at = __gen_e_acsl_exists; + e_acsl_end_loop5: ; + __e_acsl_assert(__gen_e_acsl_forall_2,"Precondition","search", + "\\forall integer i; 0 <= i < 9 ==> A[i] <= A[i + 1]", + "tests/examples/linear_search.i",7); } __retres = search(elt); { - int __gen_e_acsl_implies; - int __gen_e_acsl_implies_2; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = __retres == 1; - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","search", - "\\old(\\exists integer j; 0 <= j < 10 && A[j] == elt) ==> \\result == 1", - "tests/examples/linear_search.i",10); - if (! __gen_e_acsl_at_2) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = __retres == 0; - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","search", - "\\old(\\forall integer j; 0 <= j < 10 ==> A[j] != elt) ==> \\result == 0", - "tests/examples/linear_search.i",13); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 1, + "Postcondition","search", + "exists: \\result == 1", + "tests/examples/linear_search.i", + 10); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0, + "Postcondition","search", + "not_exists: \\result == 0", + "tests/examples/linear_search.i", + 13); + __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } } diff --git a/src/plugins/e-acsl/tests/examples/oracle_ci/linear_search.res.oracle b/src/plugins/e-acsl/tests/examples/oracle_ci/linear_search.res.oracle index 99a62eef221..7440543ece0 100644 --- a/src/plugins/e-acsl/tests/examples/oracle_ci/linear_search.res.oracle +++ b/src/plugins/e-acsl/tests/examples/oracle_ci/linear_search.res.oracle @@ -2,23 +2,3 @@ [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/examples/linear_search.i:30: Warning: function __gen_e_acsl_search: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:7: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:18: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:18: Warning: - loop invariant got status unknown. -[eva:alarm] tests/examples/linear_search.i:10: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:13: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:10: Warning: - function __gen_e_acsl_search, behavior exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] tests/examples/linear_search.i:13: Warning: - function __gen_e_acsl_search, behavior not_exists: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] tests/examples/linear_search.i:31: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:33: Warning: - function __gen_e_acsl_search: precondition got status unknown. -[eva:alarm] tests/examples/linear_search.i:34: Warning: - function __e_acsl_assert: precondition got status unknown. diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle b/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle index ff43a1afe08..161e12fd16a 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle_ci/fprintf.res.oracle @@ -14,29 +14,29 @@ [e-acsl] Warning: annotating undefined function `fork': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] tests/format/fprintf.c:10: Warning: +[e-acsl] FRAMAC_SHARE/libc/unistd.h:854: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:92: Warning: +[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:79: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdio.h:120: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdio.h:118: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdio.h:122: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdio.h:94: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdio.h:97: Warning: E-ACSL construct `predicate with no definition nor reads clause' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdio.h:97: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:470: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdio.h:97: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:472: Warning: E-ACSL construct `abnormal termination case in behavior' is not yet supported. Ignoring annotation. @@ -47,70 +47,3 @@ function __gen_e_acsl_fork: postcondition 'result_ok_child_or_error' got status unknown. [kernel:annot:missing-spec] tests/format/fprintf.c:15: Warning: Neither code nor specification for function __e_acsl_builtin_fprintf, generating default assigns from the prototype -[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: - function __gen_e_acsl_waitpid: postcondition 'initialization,stat_loc_init_on_success' got status unknown. -[eva:alarm] tests/format/fprintf.c:15: Warning: - accessing uninitialized left-value. assert \initialized(&process_status); -[eva:invalid-assigns] tests/format/fprintf.c:16: - Completely invalid destination for assigns clause *stream. Ignoring. -[eva:alarm] tests/format/fprintf.c:16: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_0); -[eva:alarm] tests/format/fprintf.c:19: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_1); -[eva:alarm] FRAMAC_SHARE/libc/stdio.h:120: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] tests/format/fprintf.c:21: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_2); -[eva:invalid-assigns] tests/format/fprintf.c:22: - Completely invalid destination for assigns clause *stream. Ignoring. -[eva:alarm] tests/format/fprintf.c:22: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_3); -[kernel:annot:missing-spec] tests/format/fprintf.c:27: Warning: - Neither code nor specification for function __e_acsl_builtin_dprintf, generating default assigns from the prototype -[eva:alarm] tests/format/fprintf.c:27: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_4); -[eva:alarm] tests/format/fprintf.c:28: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_5); -[kernel:annot:missing-spec] tests/format/fprintf.c:34: Warning: - Neither code nor specification for function __e_acsl_builtin_sprintf, generating default assigns from the prototype -[eva:alarm] tests/format/fprintf.c:34: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_6); -[eva:alarm] tests/format/fprintf.c:35: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_7); -[eva:alarm] tests/format/fprintf.c:36: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_8); -[eva:invalid-assigns] tests/format/fprintf.c:37: - Completely invalid destination for assigns clause *(buffer + (0 ..)). - Ignoring. -[eva:alarm] tests/format/fprintf.c:37: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_9); -[eva:invalid-assigns] tests/format/fprintf.c:38: - Completely invalid destination for assigns clause *(buffer + (0 ..)). - Ignoring. -[eva:alarm] tests/format/fprintf.c:38: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_10); -[kernel:annot:missing-spec] tests/format/fprintf.c:41: Warning: - Neither code nor specification for function __e_acsl_builtin_snprintf, generating default assigns from the prototype -[eva:alarm] tests/format/fprintf.c:41: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_11); -[eva:alarm] tests/format/fprintf.c:42: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_12); -[eva:invalid-assigns] tests/format/fprintf.c:43: - Completely invalid destination for assigns clause *(buffer + (0 ..)). - Ignoring. -[eva:alarm] tests/format/fprintf.c:43: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_13); -[eva:alarm] tests/format/fprintf.c:44: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_14); -[eva:invalid-assigns] tests/format/fprintf.c:45: - Completely invalid destination for assigns clause *(buffer + (0 ..)). - Ignoring. -[eva:alarm] tests/format/fprintf.c:45: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_15); -[eva:invalid-assigns] tests/format/fprintf.c:46: - Completely invalid destination for assigns clause *(buffer + (0 ..)). - Ignoring. -[eva:alarm] tests/format/fprintf.c:46: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_16); diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c b/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c index 4a64f9d92fb..4df6d3c070c 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c +++ b/src/plugins/e-acsl/tests/format/oracle_ci/gen_fprintf.c @@ -137,21 +137,27 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; pid_t __retres; { - int __gen_e_acsl_implies; + int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),(size_t)8); - if (! (stat_loc != (int *)0)) __gen_e_acsl_implies = 1; - else { + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + stat_loc == (int *)0); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + stat_loc != (int *)0); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __gen_e_acsl_implies = __gen_e_acsl_valid; + __e_acsl_assert(__gen_e_acsl_valid,"Precondition","waitpid", + "stat_loc_non_null: \\valid(stat_loc)", + "FRAMAC_SHARE/libc/sys/wait.h",92); } - __e_acsl_assert(__gen_e_acsl_implies,"Precondition","waitpid", - "stat_loc != \\null ==> \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); } __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_at = stat_loc; @@ -159,7 +165,7 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { int __gen_e_acsl_or; int __gen_e_acsl_and; - int __gen_e_acsl_implies_2; + int __gen_e_acsl_implies; if (__retres == -1) __gen_e_acsl_or = 1; else __gen_e_acsl_or = __retres >= 0; __e_acsl_assert(__gen_e_acsl_or,"Postcondition","waitpid", @@ -167,16 +173,17 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) "FRAMAC_SHARE/libc/sys/wait.h",84); if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; else __gen_e_acsl_and = 0; - if (! __gen_e_acsl_and) __gen_e_acsl_implies_2 = 1; + if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); - __gen_e_acsl_implies_2 = __gen_e_acsl_initialized; + __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","waitpid", + __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","waitpid", "\\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", "FRAMAC_SHARE/libc/sys/wait.h",86); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } @@ -419,7 +426,6 @@ int main(int argc, char const **argv) int process_status; __e_acsl_store_block((void *)(& process_status),(size_t)4); __gen_e_acsl_waitpid(pid,& process_status,0); - /*@ assert Eva: initialization: \initialized(&process_status); */ signal_eval(process_status,0,__gen_e_acsl_literal_string_8); __e_acsl_delete_block((void *)(& process_status)); } @@ -434,7 +440,6 @@ int main(int argc, char const **argv) int process_status_0; __e_acsl_store_block((void *)(& process_status_0),(size_t)4); __gen_e_acsl_waitpid(pid_0,& process_status_0,0); - /*@ assert Eva: initialization: \initialized(&process_status_0); */ signal_eval(process_status_0,1,__gen_e_acsl_literal_string_9); __e_acsl_delete_block((void *)(& process_status_0)); } @@ -454,7 +459,6 @@ int main(int argc, char const **argv) int process_status_1; __e_acsl_store_block((void *)(& process_status_1),(size_t)4); __gen_e_acsl_waitpid(pid_1,& process_status_1,0); - /*@ assert Eva: initialization: \initialized(&process_status_1); */ signal_eval(process_status_1,0,__gen_e_acsl_literal_string_12); __e_acsl_delete_block((void *)(& process_status_1)); } @@ -471,7 +475,6 @@ int main(int argc, char const **argv) int process_status_2; __e_acsl_store_block((void *)(& process_status_2),(size_t)4); __gen_e_acsl_waitpid(pid_2,& process_status_2,0); - /*@ assert Eva: initialization: \initialized(&process_status_2); */ signal_eval(process_status_2,1,__gen_e_acsl_literal_string_13); __e_acsl_delete_block((void *)(& process_status_2)); } @@ -488,7 +491,6 @@ int main(int argc, char const **argv) int process_status_3; __e_acsl_store_block((void *)(& process_status_3),(size_t)4); __gen_e_acsl_waitpid(pid_3,& process_status_3,0); - /*@ assert Eva: initialization: \initialized(&process_status_3); */ signal_eval(process_status_3,1,__gen_e_acsl_literal_string_14); __e_acsl_delete_block((void *)(& process_status_3)); } @@ -504,7 +506,6 @@ int main(int argc, char const **argv) int process_status_4; __e_acsl_store_block((void *)(& process_status_4),(size_t)4); __gen_e_acsl_waitpid(pid_4,& process_status_4,0); - /*@ assert Eva: initialization: \initialized(&process_status_4); */ signal_eval(process_status_4,0,__gen_e_acsl_literal_string_15); __e_acsl_delete_block((void *)(& process_status_4)); } @@ -519,7 +520,6 @@ int main(int argc, char const **argv) int process_status_5; __e_acsl_store_block((void *)(& process_status_5),(size_t)4); __gen_e_acsl_waitpid(pid_5,& process_status_5,0); - /*@ assert Eva: initialization: \initialized(&process_status_5); */ signal_eval(process_status_5,1,__gen_e_acsl_literal_string_16); __e_acsl_delete_block((void *)(& process_status_5)); } @@ -535,7 +535,6 @@ int main(int argc, char const **argv) int process_status_6; __e_acsl_store_block((void *)(& process_status_6),(size_t)4); __gen_e_acsl_waitpid(pid_6,& process_status_6,0); - /*@ assert Eva: initialization: \initialized(&process_status_6); */ signal_eval(process_status_6,0,__gen_e_acsl_literal_string_19); __e_acsl_delete_block((void *)(& process_status_6)); } @@ -551,7 +550,6 @@ int main(int argc, char const **argv) int process_status_7; __e_acsl_store_block((void *)(& process_status_7),(size_t)4); __gen_e_acsl_waitpid(pid_7,& process_status_7,0); - /*@ assert Eva: initialization: \initialized(&process_status_7); */ signal_eval(process_status_7,0,__gen_e_acsl_literal_string_21); __e_acsl_delete_block((void *)(& process_status_7)); } @@ -567,7 +565,6 @@ int main(int argc, char const **argv) int process_status_8; __e_acsl_store_block((void *)(& process_status_8),(size_t)4); __gen_e_acsl_waitpid(pid_8,& process_status_8,0); - /*@ assert Eva: initialization: \initialized(&process_status_8); */ signal_eval(process_status_8,1,__gen_e_acsl_literal_string_23); __e_acsl_delete_block((void *)(& process_status_8)); } @@ -583,7 +580,6 @@ int main(int argc, char const **argv) int process_status_9; __e_acsl_store_block((void *)(& process_status_9),(size_t)4); __gen_e_acsl_waitpid(pid_9,& process_status_9,0); - /*@ assert Eva: initialization: \initialized(&process_status_9); */ signal_eval(process_status_9,1,__gen_e_acsl_literal_string_24); __e_acsl_delete_block((void *)(& process_status_9)); } @@ -599,7 +595,6 @@ int main(int argc, char const **argv) int process_status_10; __e_acsl_store_block((void *)(& process_status_10),(size_t)4); __gen_e_acsl_waitpid(pid_10,& process_status_10,0); - /*@ assert Eva: initialization: \initialized(&process_status_10); */ signal_eval(process_status_10,1,__gen_e_acsl_literal_string_25); __e_acsl_delete_block((void *)(& process_status_10)); } @@ -616,7 +611,6 @@ int main(int argc, char const **argv) int process_status_11; __e_acsl_store_block((void *)(& process_status_11),(size_t)4); __gen_e_acsl_waitpid(pid_11,& process_status_11,0); - /*@ assert Eva: initialization: \initialized(&process_status_11); */ signal_eval(process_status_11,0,__gen_e_acsl_literal_string_26); __e_acsl_delete_block((void *)(& process_status_11)); } @@ -633,7 +627,6 @@ int main(int argc, char const **argv) int process_status_12; __e_acsl_store_block((void *)(& process_status_12),(size_t)4); __gen_e_acsl_waitpid(pid_12,& process_status_12,0); - /*@ assert Eva: initialization: \initialized(&process_status_12); */ signal_eval(process_status_12,0,__gen_e_acsl_literal_string_27); __e_acsl_delete_block((void *)(& process_status_12)); } @@ -650,7 +643,6 @@ int main(int argc, char const **argv) int process_status_13; __e_acsl_store_block((void *)(& process_status_13),(size_t)4); __gen_e_acsl_waitpid(pid_13,& process_status_13,0); - /*@ assert Eva: initialization: \initialized(&process_status_13); */ signal_eval(process_status_13,1,__gen_e_acsl_literal_string_28); __e_acsl_delete_block((void *)(& process_status_13)); } @@ -667,7 +659,6 @@ int main(int argc, char const **argv) int process_status_14; __e_acsl_store_block((void *)(& process_status_14),(size_t)4); __gen_e_acsl_waitpid(pid_14,& process_status_14,0); - /*@ assert Eva: initialization: \initialized(&process_status_14); */ signal_eval(process_status_14,1,__gen_e_acsl_literal_string_29); __e_acsl_delete_block((void *)(& process_status_14)); } @@ -684,7 +675,6 @@ int main(int argc, char const **argv) int process_status_15; __e_acsl_store_block((void *)(& process_status_15),(size_t)4); __gen_e_acsl_waitpid(pid_15,& process_status_15,0); - /*@ assert Eva: initialization: \initialized(&process_status_15); */ signal_eval(process_status_15,1,__gen_e_acsl_literal_string_30); __e_acsl_delete_block((void *)(& process_status_15)); } @@ -701,7 +691,6 @@ int main(int argc, char const **argv) int process_status_16; __e_acsl_store_block((void *)(& process_status_16),(size_t)4); __gen_e_acsl_waitpid(pid_16,& process_status_16,0); - /*@ assert Eva: initialization: \initialized(&process_status_16); */ signal_eval(process_status_16,0,__gen_e_acsl_literal_string_31); __e_acsl_delete_block((void *)(& process_status_16)); } diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c index 74db87f2f2c..86a8665ee99 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c +++ b/src/plugins/e-acsl/tests/format/oracle_ci/gen_printf.c @@ -552,9 +552,6 @@ void test_specifier_application(char const *allowed, char const *fmt, int process_status; __e_acsl_store_block((void *)(& process_status),(size_t)4); __gen_e_acsl_waitpid(pid,& process_status,0); - /*@ assert - Eva: initialization: \initialized(&process_status); - */ signal_eval(process_status,0,(char const *)at); __e_acsl_delete_block((void *)(& process_status)); } @@ -572,9 +569,6 @@ void test_specifier_application(char const *allowed, char const *fmt, int process_status_0; __e_acsl_store_block((void *)(& process_status_0),(size_t)4); __gen_e_acsl_waitpid(pid_0,& process_status_0,0); - /*@ assert - Eva: initialization: \initialized(&process_status_0); - */ signal_eval(process_status_0,1,(char const *)at); __e_acsl_delete_block((void *)(& process_status_0)); } @@ -614,21 +608,27 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { int *__gen_e_acsl_at_2; int *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; pid_t __retres; { - int __gen_e_acsl_implies; + int __gen_e_acsl_assumes_value; __e_acsl_store_block((void *)(& stat_loc),(size_t)8); - if (! (stat_loc != (int *)0)) __gen_e_acsl_implies = 1; - else { + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + stat_loc == (int *)0); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + stat_loc != (int *)0); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { int __gen_e_acsl_valid; __gen_e_acsl_valid = __e_acsl_valid((void *)stat_loc,sizeof(int), (void *)stat_loc, (void *)(& stat_loc)); - __gen_e_acsl_implies = __gen_e_acsl_valid; + __e_acsl_assert(__gen_e_acsl_valid,"Precondition","waitpid", + "stat_loc_non_null: \\valid(stat_loc)", + "FRAMAC_SHARE/libc/sys/wait.h",92); } - __e_acsl_assert(__gen_e_acsl_implies,"Precondition","waitpid", - "stat_loc != \\null ==> \\valid(stat_loc)", - "FRAMAC_SHARE/libc/sys/wait.h",92); } __gen_e_acsl_at_2 = stat_loc; __gen_e_acsl_at = stat_loc; @@ -636,7 +636,7 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) { int __gen_e_acsl_or; int __gen_e_acsl_and; - int __gen_e_acsl_implies_2; + int __gen_e_acsl_implies; if (__retres == -1) __gen_e_acsl_or = 1; else __gen_e_acsl_or = __retres >= 0; __e_acsl_assert(__gen_e_acsl_or,"Postcondition","waitpid", @@ -644,16 +644,17 @@ pid_t __gen_e_acsl_waitpid(pid_t pid, int *stat_loc, int options) "FRAMAC_SHARE/libc/sys/wait.h",84); if (__retres >= 0) __gen_e_acsl_and = __gen_e_acsl_at != (int *)0; else __gen_e_acsl_and = 0; - if (! __gen_e_acsl_and) __gen_e_acsl_implies_2 = 1; + if (! __gen_e_acsl_and) __gen_e_acsl_implies = 1; else { int __gen_e_acsl_initialized; __gen_e_acsl_initialized = __e_acsl_initialized((void *)__gen_e_acsl_at_2, sizeof(int)); - __gen_e_acsl_implies_2 = __gen_e_acsl_initialized; + __gen_e_acsl_implies = __gen_e_acsl_initialized; } - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","waitpid", + __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","waitpid", "\\result >= 0 && \\old(stat_loc) != \\null ==> \\initialized(\\old(stat_loc))", "FRAMAC_SHARE/libc/sys/wait.h",86); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& stat_loc)); return __retres; } @@ -735,25 +736,77 @@ char *__gen_e_acsl_strcpy(char * __restrict dest, char const * __restrict src) */ char *__gen_e_acsl_strchr(char const *s, int c) { - char const *__gen_e_acsl_at; + char const *__gen_e_acsl_at_3; + char const *__gen_e_acsl_at_2; + int __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; char *__retres; __e_acsl_store_block((void *)(& __retres),(size_t)8); __e_acsl_store_block((void *)(& s),(size_t)8); - __gen_e_acsl_at = s; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)3); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)2,1); + __gen_e_acsl_at_3 = s; + __gen_e_acsl_at_2 = s; + __gen_e_acsl_at = c; __retres = strchr(s,c); { - int __gen_e_acsl_or; - if (__retres == (char *)0) __gen_e_acsl_or = 1; - else { + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_initialized; + int __gen_e_acsl_and; void *__gen_e_acsl_base_addr; void *__gen_e_acsl_base_addr_2; + __gen_e_acsl_initialized = __e_acsl_initialized((void *)(& __retres), + sizeof(char *)); + if (__gen_e_acsl_initialized) { + int __gen_e_acsl_valid_read; + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)__retres, + sizeof(char), + (void *)__retres, + (void *)(& __retres)); + __gen_e_acsl_and = __gen_e_acsl_valid_read; + } + else __gen_e_acsl_and = 0; + __e_acsl_assert(__gen_e_acsl_and,"RTE","strchr", + "mem_access: \\valid_read(__retres)", + "FRAMAC_SHARE/libc/string.h",161); __gen_e_acsl_base_addr = __e_acsl_base_addr((void *)__retres); - __gen_e_acsl_base_addr_2 = __e_acsl_base_addr((void *)__gen_e_acsl_at); - __gen_e_acsl_or = __gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2; + __gen_e_acsl_base_addr_2 = __e_acsl_base_addr((void *)__gen_e_acsl_at_2); + __e_acsl_assert(__gen_e_acsl_base_addr == __gen_e_acsl_base_addr_2, + "Postcondition","strchr", + "found: \\base_addr(\\result) == \\base_addr(\\old(s))", + "FRAMAC_SHARE/libc/string.h",162); + __e_acsl_assert((int)*__retres == (int)((char)__gen_e_acsl_at), + "Postcondition","strchr", + "found: *\\result == (char)\\old(c)", + "FRAMAC_SHARE/libc/string.h",161); + } + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == (char *)0, + "Postcondition","strchr", + "not_found: \\result == \\null", + "FRAMAC_SHARE/libc/string.h", + 168); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)2); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_or; + if (__retres == (char *)0) __gen_e_acsl_or = 1; + else { + void *__gen_e_acsl_base_addr_3; + void *__gen_e_acsl_base_addr_4; + __gen_e_acsl_base_addr_3 = __e_acsl_base_addr((void *)__retres); + __gen_e_acsl_base_addr_4 = __e_acsl_base_addr((void *)__gen_e_acsl_at_3); + __gen_e_acsl_or = __gen_e_acsl_base_addr_3 == __gen_e_acsl_base_addr_4; + } + __e_acsl_assert(__gen_e_acsl_or,"Postcondition","strchr", + "default: \\result == \\null || \\base_addr(\\result) == \\base_addr(\\old(s))", + "FRAMAC_SHARE/libc/string.h",171); } - __e_acsl_assert(__gen_e_acsl_or,"Postcondition","strchr", - "\\result == \\null || \\base_addr(\\result) == \\base_addr(\\old(s))", - "FRAMAC_SHARE/libc/string.h",171); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& s)); __e_acsl_delete_block((void *)(& __retres)); return __retres; @@ -2545,7 +2598,6 @@ int main(int argc, char const **argv) int process_status; __e_acsl_store_block((void *)(& process_status),(size_t)4); __gen_e_acsl_waitpid(pid,& process_status,0); - /*@ assert Eva: initialization: \initialized(&process_status); */ signal_eval(process_status,0,__gen_e_acsl_literal_string_12); __e_acsl_delete_block((void *)(& process_status)); } @@ -2561,7 +2613,6 @@ int main(int argc, char const **argv) int process_status_0; __e_acsl_store_block((void *)(& process_status_0),(size_t)4); __gen_e_acsl_waitpid(pid_0,& process_status_0,0); - /*@ assert Eva: initialization: \initialized(&process_status_0); */ signal_eval(process_status_0,0,__gen_e_acsl_literal_string_14); __e_acsl_delete_block((void *)(& process_status_0)); } @@ -2577,7 +2628,6 @@ int main(int argc, char const **argv) int process_status_1; __e_acsl_store_block((void *)(& process_status_1),(size_t)4); __gen_e_acsl_waitpid(pid_1,& process_status_1,0); - /*@ assert Eva: initialization: \initialized(&process_status_1); */ signal_eval(process_status_1,1,__gen_e_acsl_literal_string_16); __e_acsl_delete_block((void *)(& process_status_1)); } @@ -2593,7 +2643,6 @@ int main(int argc, char const **argv) int process_status_2; __e_acsl_store_block((void *)(& process_status_2),(size_t)4); __gen_e_acsl_waitpid(pid_2,& process_status_2,0); - /*@ assert Eva: initialization: \initialized(&process_status_2); */ signal_eval(process_status_2,0,__gen_e_acsl_literal_string_18); __e_acsl_delete_block((void *)(& process_status_2)); } @@ -2617,7 +2666,6 @@ int main(int argc, char const **argv) int process_status_3; __e_acsl_store_block((void *)(& process_status_3),(size_t)4); __gen_e_acsl_waitpid(pid_3,& process_status_3,0); - /*@ assert Eva: initialization: \initialized(&process_status_3); */ signal_eval(process_status_3,1,__gen_e_acsl_literal_string_19); __e_acsl_delete_block((void *)(& process_status_3)); } @@ -2632,7 +2680,6 @@ int main(int argc, char const **argv) int process_status_4; __e_acsl_store_block((void *)(& process_status_4),(size_t)4); __gen_e_acsl_waitpid(pid_4,& process_status_4,0); - /*@ assert Eva: initialization: \initialized(&process_status_4); */ signal_eval(process_status_4,0,__gen_e_acsl_literal_string_21); __e_acsl_delete_block((void *)(& process_status_4)); } @@ -2647,7 +2694,6 @@ int main(int argc, char const **argv) int process_status_5; __e_acsl_store_block((void *)(& process_status_5),(size_t)4); __gen_e_acsl_waitpid(pid_5,& process_status_5,0); - /*@ assert Eva: initialization: \initialized(&process_status_5); */ signal_eval(process_status_5,1,__gen_e_acsl_literal_string_23); __e_acsl_delete_block((void *)(& process_status_5)); } @@ -2662,7 +2708,6 @@ int main(int argc, char const **argv) int process_status_6; __e_acsl_store_block((void *)(& process_status_6),(size_t)4); __gen_e_acsl_waitpid(pid_6,& process_status_6,0); - /*@ assert Eva: initialization: \initialized(&process_status_6); */ signal_eval(process_status_6,1,__gen_e_acsl_literal_string_25); __e_acsl_delete_block((void *)(& process_status_6)); } @@ -2677,7 +2722,6 @@ int main(int argc, char const **argv) int process_status_7; __e_acsl_store_block((void *)(& process_status_7),(size_t)4); __gen_e_acsl_waitpid(pid_7,& process_status_7,0); - /*@ assert Eva: initialization: \initialized(&process_status_7); */ signal_eval(process_status_7,1,__gen_e_acsl_literal_string_27); __e_acsl_delete_block((void *)(& process_status_7)); } @@ -2692,7 +2736,6 @@ int main(int argc, char const **argv) int process_status_8; __e_acsl_store_block((void *)(& process_status_8),(size_t)4); __gen_e_acsl_waitpid(pid_8,& process_status_8,0); - /*@ assert Eva: initialization: \initialized(&process_status_8); */ signal_eval(process_status_8,0,__gen_e_acsl_literal_string_29); __e_acsl_delete_block((void *)(& process_status_8)); } @@ -2716,7 +2759,6 @@ int main(int argc, char const **argv) int process_status_9; __e_acsl_store_block((void *)(& process_status_9),(size_t)4); __gen_e_acsl_waitpid(pid_9,& process_status_9,0); - /*@ assert Eva: initialization: \initialized(&process_status_9); */ signal_eval(process_status_9,0,__gen_e_acsl_literal_string_40); __e_acsl_delete_block((void *)(& process_status_9)); } @@ -2731,7 +2773,6 @@ int main(int argc, char const **argv) int process_status_10; __e_acsl_store_block((void *)(& process_status_10),(size_t)4); __gen_e_acsl_waitpid(pid_10,& process_status_10,0); - /*@ assert Eva: initialization: \initialized(&process_status_10); */ signal_eval(process_status_10,0,__gen_e_acsl_literal_string_42); __e_acsl_delete_block((void *)(& process_status_10)); } @@ -2746,7 +2787,6 @@ int main(int argc, char const **argv) int process_status_11; __e_acsl_store_block((void *)(& process_status_11),(size_t)4); __gen_e_acsl_waitpid(pid_11,& process_status_11,0); - /*@ assert Eva: initialization: \initialized(&process_status_11); */ signal_eval(process_status_11,1,__gen_e_acsl_literal_string_44); __e_acsl_delete_block((void *)(& process_status_11)); } @@ -2764,7 +2804,6 @@ int main(int argc, char const **argv) int process_status_12; __e_acsl_store_block((void *)(& process_status_12),(size_t)4); __gen_e_acsl_waitpid(pid_12,& process_status_12,0); - /*@ assert Eva: initialization: \initialized(&process_status_12); */ signal_eval(process_status_12,0,__gen_e_acsl_literal_string_49); __e_acsl_delete_block((void *)(& process_status_12)); } @@ -2779,7 +2818,6 @@ int main(int argc, char const **argv) int process_status_13; __e_acsl_store_block((void *)(& process_status_13),(size_t)4); __gen_e_acsl_waitpid(pid_13,& process_status_13,0); - /*@ assert Eva: initialization: \initialized(&process_status_13); */ signal_eval(process_status_13,0,__gen_e_acsl_literal_string_49); __e_acsl_delete_block((void *)(& process_status_13)); } @@ -2794,7 +2832,6 @@ int main(int argc, char const **argv) int process_status_14; __e_acsl_store_block((void *)(& process_status_14),(size_t)4); __gen_e_acsl_waitpid(pid_14,& process_status_14,0); - /*@ assert Eva: initialization: \initialized(&process_status_14); */ signal_eval(process_status_14,0,__gen_e_acsl_literal_string_52); __e_acsl_delete_block((void *)(& process_status_14)); } @@ -2809,7 +2846,6 @@ int main(int argc, char const **argv) int process_status_15; __e_acsl_store_block((void *)(& process_status_15),(size_t)4); __gen_e_acsl_waitpid(pid_15,& process_status_15,0); - /*@ assert Eva: initialization: \initialized(&process_status_15); */ signal_eval(process_status_15,0,__gen_e_acsl_literal_string_52); __e_acsl_delete_block((void *)(& process_status_15)); } @@ -2824,7 +2860,6 @@ int main(int argc, char const **argv) int process_status_16; __e_acsl_store_block((void *)(& process_status_16),(size_t)4); __gen_e_acsl_waitpid(pid_16,& process_status_16,0); - /*@ assert Eva: initialization: \initialized(&process_status_16); */ signal_eval(process_status_16,0,__gen_e_acsl_literal_string_55); __e_acsl_delete_block((void *)(& process_status_16)); } @@ -2839,7 +2874,6 @@ int main(int argc, char const **argv) int process_status_17; __e_acsl_store_block((void *)(& process_status_17),(size_t)4); __gen_e_acsl_waitpid(pid_17,& process_status_17,0); - /*@ assert Eva: initialization: \initialized(&process_status_17); */ signal_eval(process_status_17,0,__gen_e_acsl_literal_string_55); __e_acsl_delete_block((void *)(& process_status_17)); } @@ -2854,7 +2888,6 @@ int main(int argc, char const **argv) int process_status_18; __e_acsl_store_block((void *)(& process_status_18),(size_t)4); __gen_e_acsl_waitpid(pid_18,& process_status_18,0); - /*@ assert Eva: initialization: \initialized(&process_status_18); */ signal_eval(process_status_18,0,__gen_e_acsl_literal_string_55); __e_acsl_delete_block((void *)(& process_status_18)); } @@ -2872,7 +2905,6 @@ int main(int argc, char const **argv) int process_status_19; __e_acsl_store_block((void *)(& process_status_19),(size_t)4); __gen_e_acsl_waitpid(pid_19,& process_status_19,0); - /*@ assert Eva: initialization: \initialized(&process_status_19); */ signal_eval(process_status_19,0,__gen_e_acsl_literal_string_60); __e_acsl_delete_block((void *)(& process_status_19)); } @@ -2887,7 +2919,6 @@ int main(int argc, char const **argv) int process_status_20; __e_acsl_store_block((void *)(& process_status_20),(size_t)4); __gen_e_acsl_waitpid(pid_20,& process_status_20,0); - /*@ assert Eva: initialization: \initialized(&process_status_20); */ signal_eval(process_status_20,0,__gen_e_acsl_literal_string_60); __e_acsl_delete_block((void *)(& process_status_20)); } @@ -2902,7 +2933,6 @@ int main(int argc, char const **argv) int process_status_21; __e_acsl_store_block((void *)(& process_status_21),(size_t)4); __gen_e_acsl_waitpid(pid_21,& process_status_21,0); - /*@ assert Eva: initialization: \initialized(&process_status_21); */ signal_eval(process_status_21,0,__gen_e_acsl_literal_string_63); __e_acsl_delete_block((void *)(& process_status_21)); } @@ -2917,7 +2947,6 @@ int main(int argc, char const **argv) int process_status_22; __e_acsl_store_block((void *)(& process_status_22),(size_t)4); __gen_e_acsl_waitpid(pid_22,& process_status_22,0); - /*@ assert Eva: initialization: \initialized(&process_status_22); */ signal_eval(process_status_22,0,__gen_e_acsl_literal_string_63); __e_acsl_delete_block((void *)(& process_status_22)); } @@ -2932,7 +2961,6 @@ int main(int argc, char const **argv) int process_status_23; __e_acsl_store_block((void *)(& process_status_23),(size_t)4); __gen_e_acsl_waitpid(pid_23,& process_status_23,0); - /*@ assert Eva: initialization: \initialized(&process_status_23); */ signal_eval(process_status_23,0,__gen_e_acsl_literal_string_66); __e_acsl_delete_block((void *)(& process_status_23)); } @@ -2947,7 +2975,6 @@ int main(int argc, char const **argv) int process_status_24; __e_acsl_store_block((void *)(& process_status_24),(size_t)4); __gen_e_acsl_waitpid(pid_24,& process_status_24,0); - /*@ assert Eva: initialization: \initialized(&process_status_24); */ signal_eval(process_status_24,0,__gen_e_acsl_literal_string_66); __e_acsl_delete_block((void *)(& process_status_24)); } @@ -2962,7 +2989,6 @@ int main(int argc, char const **argv) int process_status_25; __e_acsl_store_block((void *)(& process_status_25),(size_t)4); __gen_e_acsl_waitpid(pid_25,& process_status_25,0); - /*@ assert Eva: initialization: \initialized(&process_status_25); */ signal_eval(process_status_25,0,__gen_e_acsl_literal_string_66); __e_acsl_delete_block((void *)(& process_status_25)); } @@ -2980,7 +3006,6 @@ int main(int argc, char const **argv) int process_status_26; __e_acsl_store_block((void *)(& process_status_26),(size_t)4); __gen_e_acsl_waitpid(pid_26,& process_status_26,0); - /*@ assert Eva: initialization: \initialized(&process_status_26); */ signal_eval(process_status_26,0,__gen_e_acsl_literal_string_72); __e_acsl_delete_block((void *)(& process_status_26)); } @@ -2995,7 +3020,6 @@ int main(int argc, char const **argv) int process_status_27; __e_acsl_store_block((void *)(& process_status_27),(size_t)4); __gen_e_acsl_waitpid(pid_27,& process_status_27,0); - /*@ assert Eva: initialization: \initialized(&process_status_27); */ signal_eval(process_status_27,0,__gen_e_acsl_literal_string_72); __e_acsl_delete_block((void *)(& process_status_27)); } @@ -3010,7 +3034,6 @@ int main(int argc, char const **argv) int process_status_28; __e_acsl_store_block((void *)(& process_status_28),(size_t)4); __gen_e_acsl_waitpid(pid_28,& process_status_28,0); - /*@ assert Eva: initialization: \initialized(&process_status_28); */ signal_eval(process_status_28,0,__gen_e_acsl_literal_string_75); __e_acsl_delete_block((void *)(& process_status_28)); } @@ -3025,7 +3048,6 @@ int main(int argc, char const **argv) int process_status_29; __e_acsl_store_block((void *)(& process_status_29),(size_t)4); __gen_e_acsl_waitpid(pid_29,& process_status_29,0); - /*@ assert Eva: initialization: \initialized(&process_status_29); */ signal_eval(process_status_29,0,__gen_e_acsl_literal_string_75); __e_acsl_delete_block((void *)(& process_status_29)); } @@ -3040,7 +3062,6 @@ int main(int argc, char const **argv) int process_status_30; __e_acsl_store_block((void *)(& process_status_30),(size_t)4); __gen_e_acsl_waitpid(pid_30,& process_status_30,0); - /*@ assert Eva: initialization: \initialized(&process_status_30); */ signal_eval(process_status_30,0,__gen_e_acsl_literal_string_78); __e_acsl_delete_block((void *)(& process_status_30)); } @@ -3055,7 +3076,6 @@ int main(int argc, char const **argv) int process_status_31; __e_acsl_store_block((void *)(& process_status_31),(size_t)4); __gen_e_acsl_waitpid(pid_31,& process_status_31,0); - /*@ assert Eva: initialization: \initialized(&process_status_31); */ signal_eval(process_status_31,0,__gen_e_acsl_literal_string_78); __e_acsl_delete_block((void *)(& process_status_31)); } @@ -3070,7 +3090,6 @@ int main(int argc, char const **argv) int process_status_32; __e_acsl_store_block((void *)(& process_status_32),(size_t)4); __gen_e_acsl_waitpid(pid_32,& process_status_32,0); - /*@ assert Eva: initialization: \initialized(&process_status_32); */ signal_eval(process_status_32,0,__gen_e_acsl_literal_string_80); __e_acsl_delete_block((void *)(& process_status_32)); } @@ -3085,7 +3104,6 @@ int main(int argc, char const **argv) int process_status_33; __e_acsl_store_block((void *)(& process_status_33),(size_t)4); __gen_e_acsl_waitpid(pid_33,& process_status_33,0); - /*@ assert Eva: initialization: \initialized(&process_status_33); */ signal_eval(process_status_33,0,__gen_e_acsl_literal_string_80); __e_acsl_delete_block((void *)(& process_status_33)); } @@ -3100,7 +3118,6 @@ int main(int argc, char const **argv) int process_status_34; __e_acsl_store_block((void *)(& process_status_34),(size_t)4); __gen_e_acsl_waitpid(pid_34,& process_status_34,0); - /*@ assert Eva: initialization: \initialized(&process_status_34); */ signal_eval(process_status_34,0,__gen_e_acsl_literal_string_83); __e_acsl_delete_block((void *)(& process_status_34)); } @@ -3115,7 +3132,6 @@ int main(int argc, char const **argv) int process_status_35; __e_acsl_store_block((void *)(& process_status_35),(size_t)4); __gen_e_acsl_waitpid(pid_35,& process_status_35,0); - /*@ assert Eva: initialization: \initialized(&process_status_35); */ signal_eval(process_status_35,0,__gen_e_acsl_literal_string_83); __e_acsl_delete_block((void *)(& process_status_35)); } @@ -3130,7 +3146,6 @@ int main(int argc, char const **argv) int process_status_36; __e_acsl_store_block((void *)(& process_status_36),(size_t)4); __gen_e_acsl_waitpid(pid_36,& process_status_36,0); - /*@ assert Eva: initialization: \initialized(&process_status_36); */ signal_eval(process_status_36,0,__gen_e_acsl_literal_string_86); __e_acsl_delete_block((void *)(& process_status_36)); } @@ -3145,7 +3160,6 @@ int main(int argc, char const **argv) int process_status_37; __e_acsl_store_block((void *)(& process_status_37),(size_t)4); __gen_e_acsl_waitpid(pid_37,& process_status_37,0); - /*@ assert Eva: initialization: \initialized(&process_status_37); */ signal_eval(process_status_37,0,__gen_e_acsl_literal_string_86); __e_acsl_delete_block((void *)(& process_status_37)); } @@ -3160,7 +3174,6 @@ int main(int argc, char const **argv) int process_status_38; __e_acsl_store_block((void *)(& process_status_38),(size_t)4); __gen_e_acsl_waitpid(pid_38,& process_status_38,0); - /*@ assert Eva: initialization: \initialized(&process_status_38); */ signal_eval(process_status_38,0,__gen_e_acsl_literal_string_89); __e_acsl_delete_block((void *)(& process_status_38)); } @@ -3175,7 +3188,6 @@ int main(int argc, char const **argv) int process_status_39; __e_acsl_store_block((void *)(& process_status_39),(size_t)4); __gen_e_acsl_waitpid(pid_39,& process_status_39,0); - /*@ assert Eva: initialization: \initialized(&process_status_39); */ signal_eval(process_status_39,0,__gen_e_acsl_literal_string_89); __e_acsl_delete_block((void *)(& process_status_39)); } @@ -3190,7 +3202,6 @@ int main(int argc, char const **argv) int process_status_40; __e_acsl_store_block((void *)(& process_status_40),(size_t)4); __gen_e_acsl_waitpid(pid_40,& process_status_40,0); - /*@ assert Eva: initialization: \initialized(&process_status_40); */ signal_eval(process_status_40,0,__gen_e_acsl_literal_string_92); __e_acsl_delete_block((void *)(& process_status_40)); } @@ -3205,7 +3216,6 @@ int main(int argc, char const **argv) int process_status_41; __e_acsl_store_block((void *)(& process_status_41),(size_t)4); __gen_e_acsl_waitpid(pid_41,& process_status_41,0); - /*@ assert Eva: initialization: \initialized(&process_status_41); */ signal_eval(process_status_41,0,__gen_e_acsl_literal_string_94); __e_acsl_delete_block((void *)(& process_status_41)); } @@ -3220,7 +3230,6 @@ int main(int argc, char const **argv) int process_status_42; __e_acsl_store_block((void *)(& process_status_42),(size_t)4); __gen_e_acsl_waitpid(pid_42,& process_status_42,0); - /*@ assert Eva: initialization: \initialized(&process_status_42); */ signal_eval(process_status_42,0,__gen_e_acsl_literal_string_96); __e_acsl_delete_block((void *)(& process_status_42)); } @@ -3235,7 +3244,6 @@ int main(int argc, char const **argv) int process_status_43; __e_acsl_store_block((void *)(& process_status_43),(size_t)4); __gen_e_acsl_waitpid(pid_43,& process_status_43,0); - /*@ assert Eva: initialization: \initialized(&process_status_43); */ signal_eval(process_status_43,0,__gen_e_acsl_literal_string_96); __e_acsl_delete_block((void *)(& process_status_43)); } @@ -3250,7 +3258,6 @@ int main(int argc, char const **argv) int process_status_44; __e_acsl_store_block((void *)(& process_status_44),(size_t)4); __gen_e_acsl_waitpid(pid_44,& process_status_44,0); - /*@ assert Eva: initialization: \initialized(&process_status_44); */ signal_eval(process_status_44,0,__gen_e_acsl_literal_string_99); __e_acsl_delete_block((void *)(& process_status_44)); } @@ -3265,7 +3272,6 @@ int main(int argc, char const **argv) int process_status_45; __e_acsl_store_block((void *)(& process_status_45),(size_t)4); __gen_e_acsl_waitpid(pid_45,& process_status_45,0); - /*@ assert Eva: initialization: \initialized(&process_status_45); */ signal_eval(process_status_45,0,__gen_e_acsl_literal_string_99); __e_acsl_delete_block((void *)(& process_status_45)); } @@ -3280,7 +3286,6 @@ int main(int argc, char const **argv) int process_status_46; __e_acsl_store_block((void *)(& process_status_46),(size_t)4); __gen_e_acsl_waitpid(pid_46,& process_status_46,0); - /*@ assert Eva: initialization: \initialized(&process_status_46); */ signal_eval(process_status_46,0,__gen_e_acsl_literal_string_102); __e_acsl_delete_block((void *)(& process_status_46)); } @@ -3295,7 +3300,6 @@ int main(int argc, char const **argv) int process_status_47; __e_acsl_store_block((void *)(& process_status_47),(size_t)4); __gen_e_acsl_waitpid(pid_47,& process_status_47,0); - /*@ assert Eva: initialization: \initialized(&process_status_47); */ signal_eval(process_status_47,0,__gen_e_acsl_literal_string_102); __e_acsl_delete_block((void *)(& process_status_47)); } @@ -3310,7 +3314,6 @@ int main(int argc, char const **argv) int process_status_48; __e_acsl_store_block((void *)(& process_status_48),(size_t)4); __gen_e_acsl_waitpid(pid_48,& process_status_48,0); - /*@ assert Eva: initialization: \initialized(&process_status_48); */ signal_eval(process_status_48,0,__gen_e_acsl_literal_string_102); __e_acsl_delete_block((void *)(& process_status_48)); } @@ -3328,7 +3331,6 @@ int main(int argc, char const **argv) int process_status_49; __e_acsl_store_block((void *)(& process_status_49),(size_t)4); __gen_e_acsl_waitpid(pid_49,& process_status_49,0); - /*@ assert Eva: initialization: \initialized(&process_status_49); */ signal_eval(process_status_49,0,__gen_e_acsl_literal_string_108); __e_acsl_delete_block((void *)(& process_status_49)); } @@ -3343,7 +3345,6 @@ int main(int argc, char const **argv) int process_status_50; __e_acsl_store_block((void *)(& process_status_50),(size_t)4); __gen_e_acsl_waitpid(pid_50,& process_status_50,0); - /*@ assert Eva: initialization: \initialized(&process_status_50); */ signal_eval(process_status_50,0,__gen_e_acsl_literal_string_108); __e_acsl_delete_block((void *)(& process_status_50)); } @@ -3358,7 +3359,6 @@ int main(int argc, char const **argv) int process_status_51; __e_acsl_store_block((void *)(& process_status_51),(size_t)4); __gen_e_acsl_waitpid(pid_51,& process_status_51,0); - /*@ assert Eva: initialization: \initialized(&process_status_51); */ signal_eval(process_status_51,0,__gen_e_acsl_literal_string_111); __e_acsl_delete_block((void *)(& process_status_51)); } @@ -3373,7 +3373,6 @@ int main(int argc, char const **argv) int process_status_52; __e_acsl_store_block((void *)(& process_status_52),(size_t)4); __gen_e_acsl_waitpid(pid_52,& process_status_52,0); - /*@ assert Eva: initialization: \initialized(&process_status_52); */ signal_eval(process_status_52,0,__gen_e_acsl_literal_string_111); __e_acsl_delete_block((void *)(& process_status_52)); } @@ -3388,7 +3387,6 @@ int main(int argc, char const **argv) int process_status_53; __e_acsl_store_block((void *)(& process_status_53),(size_t)4); __gen_e_acsl_waitpid(pid_53,& process_status_53,0); - /*@ assert Eva: initialization: \initialized(&process_status_53); */ signal_eval(process_status_53,0,__gen_e_acsl_literal_string_114); __e_acsl_delete_block((void *)(& process_status_53)); } @@ -3403,7 +3401,6 @@ int main(int argc, char const **argv) int process_status_54; __e_acsl_store_block((void *)(& process_status_54),(size_t)4); __gen_e_acsl_waitpid(pid_54,& process_status_54,0); - /*@ assert Eva: initialization: \initialized(&process_status_54); */ signal_eval(process_status_54,0,__gen_e_acsl_literal_string_114); __e_acsl_delete_block((void *)(& process_status_54)); } @@ -3418,7 +3415,6 @@ int main(int argc, char const **argv) int process_status_55; __e_acsl_store_block((void *)(& process_status_55),(size_t)4); __gen_e_acsl_waitpid(pid_55,& process_status_55,0); - /*@ assert Eva: initialization: \initialized(&process_status_55); */ signal_eval(process_status_55,0,__gen_e_acsl_literal_string_114); __e_acsl_delete_block((void *)(& process_status_55)); } @@ -3436,7 +3432,6 @@ int main(int argc, char const **argv) int process_status_56; __e_acsl_store_block((void *)(& process_status_56),(size_t)4); __gen_e_acsl_waitpid(pid_56,& process_status_56,0); - /*@ assert Eva: initialization: \initialized(&process_status_56); */ signal_eval(process_status_56,0,__gen_e_acsl_literal_string_119); __e_acsl_delete_block((void *)(& process_status_56)); } @@ -3451,7 +3446,6 @@ int main(int argc, char const **argv) int process_status_57; __e_acsl_store_block((void *)(& process_status_57),(size_t)4); __gen_e_acsl_waitpid(pid_57,& process_status_57,0); - /*@ assert Eva: initialization: \initialized(&process_status_57); */ signal_eval(process_status_57,0,__gen_e_acsl_literal_string_119); __e_acsl_delete_block((void *)(& process_status_57)); } @@ -3466,7 +3460,6 @@ int main(int argc, char const **argv) int process_status_58; __e_acsl_store_block((void *)(& process_status_58),(size_t)4); __gen_e_acsl_waitpid(pid_58,& process_status_58,0); - /*@ assert Eva: initialization: \initialized(&process_status_58); */ signal_eval(process_status_58,0,__gen_e_acsl_literal_string_122); __e_acsl_delete_block((void *)(& process_status_58)); } @@ -3481,7 +3474,6 @@ int main(int argc, char const **argv) int process_status_59; __e_acsl_store_block((void *)(& process_status_59),(size_t)4); __gen_e_acsl_waitpid(pid_59,& process_status_59,0); - /*@ assert Eva: initialization: \initialized(&process_status_59); */ signal_eval(process_status_59,0,__gen_e_acsl_literal_string_122); __e_acsl_delete_block((void *)(& process_status_59)); } @@ -3496,7 +3488,6 @@ int main(int argc, char const **argv) int process_status_60; __e_acsl_store_block((void *)(& process_status_60),(size_t)4); __gen_e_acsl_waitpid(pid_60,& process_status_60,0); - /*@ assert Eva: initialization: \initialized(&process_status_60); */ signal_eval(process_status_60,0,__gen_e_acsl_literal_string_125); __e_acsl_delete_block((void *)(& process_status_60)); } @@ -3511,7 +3502,6 @@ int main(int argc, char const **argv) int process_status_61; __e_acsl_store_block((void *)(& process_status_61),(size_t)4); __gen_e_acsl_waitpid(pid_61,& process_status_61,0); - /*@ assert Eva: initialization: \initialized(&process_status_61); */ signal_eval(process_status_61,0,__gen_e_acsl_literal_string_125); __e_acsl_delete_block((void *)(& process_status_61)); } @@ -3526,7 +3516,6 @@ int main(int argc, char const **argv) int process_status_62; __e_acsl_store_block((void *)(& process_status_62),(size_t)4); __gen_e_acsl_waitpid(pid_62,& process_status_62,0); - /*@ assert Eva: initialization: \initialized(&process_status_62); */ signal_eval(process_status_62,0,__gen_e_acsl_literal_string_125); __e_acsl_delete_block((void *)(& process_status_62)); } @@ -3544,7 +3533,6 @@ int main(int argc, char const **argv) int process_status_63; __e_acsl_store_block((void *)(& process_status_63),(size_t)4); __gen_e_acsl_waitpid(pid_63,& process_status_63,0); - /*@ assert Eva: initialization: \initialized(&process_status_63); */ signal_eval(process_status_63,0,__gen_e_acsl_literal_string_130); __e_acsl_delete_block((void *)(& process_status_63)); } @@ -3559,7 +3547,6 @@ int main(int argc, char const **argv) int process_status_64; __e_acsl_store_block((void *)(& process_status_64),(size_t)4); __gen_e_acsl_waitpid(pid_64,& process_status_64,0); - /*@ assert Eva: initialization: \initialized(&process_status_64); */ signal_eval(process_status_64,0,__gen_e_acsl_literal_string_130); __e_acsl_delete_block((void *)(& process_status_64)); } @@ -3574,7 +3561,6 @@ int main(int argc, char const **argv) int process_status_65; __e_acsl_store_block((void *)(& process_status_65),(size_t)4); __gen_e_acsl_waitpid(pid_65,& process_status_65,0); - /*@ assert Eva: initialization: \initialized(&process_status_65); */ signal_eval(process_status_65,0,__gen_e_acsl_literal_string_133); __e_acsl_delete_block((void *)(& process_status_65)); } @@ -3589,7 +3575,6 @@ int main(int argc, char const **argv) int process_status_66; __e_acsl_store_block((void *)(& process_status_66),(size_t)4); __gen_e_acsl_waitpid(pid_66,& process_status_66,0); - /*@ assert Eva: initialization: \initialized(&process_status_66); */ signal_eval(process_status_66,0,__gen_e_acsl_literal_string_133); __e_acsl_delete_block((void *)(& process_status_66)); } @@ -3604,7 +3589,6 @@ int main(int argc, char const **argv) int process_status_67; __e_acsl_store_block((void *)(& process_status_67),(size_t)4); __gen_e_acsl_waitpid(pid_67,& process_status_67,0); - /*@ assert Eva: initialization: \initialized(&process_status_67); */ signal_eval(process_status_67,0,__gen_e_acsl_literal_string_135); __e_acsl_delete_block((void *)(& process_status_67)); } @@ -3619,7 +3603,6 @@ int main(int argc, char const **argv) int process_status_68; __e_acsl_store_block((void *)(& process_status_68),(size_t)4); __gen_e_acsl_waitpid(pid_68,& process_status_68,0); - /*@ assert Eva: initialization: \initialized(&process_status_68); */ signal_eval(process_status_68,0,__gen_e_acsl_literal_string_135); __e_acsl_delete_block((void *)(& process_status_68)); } @@ -3634,7 +3617,6 @@ int main(int argc, char const **argv) int process_status_69; __e_acsl_store_block((void *)(& process_status_69),(size_t)4); __gen_e_acsl_waitpid(pid_69,& process_status_69,0); - /*@ assert Eva: initialization: \initialized(&process_status_69); */ signal_eval(process_status_69,0,__gen_e_acsl_literal_string_138); __e_acsl_delete_block((void *)(& process_status_69)); } @@ -3652,7 +3634,6 @@ int main(int argc, char const **argv) int process_status_70; __e_acsl_store_block((void *)(& process_status_70),(size_t)4); __gen_e_acsl_waitpid(pid_70,& process_status_70,0); - /*@ assert Eva: initialization: \initialized(&process_status_70); */ signal_eval(process_status_70,0,__gen_e_acsl_literal_string_143); __e_acsl_delete_block((void *)(& process_status_70)); } @@ -3667,7 +3648,6 @@ int main(int argc, char const **argv) int process_status_71; __e_acsl_store_block((void *)(& process_status_71),(size_t)4); __gen_e_acsl_waitpid(pid_71,& process_status_71,0); - /*@ assert Eva: initialization: \initialized(&process_status_71); */ signal_eval(process_status_71,0,__gen_e_acsl_literal_string_143); __e_acsl_delete_block((void *)(& process_status_71)); } @@ -3682,7 +3662,6 @@ int main(int argc, char const **argv) int process_status_72; __e_acsl_store_block((void *)(& process_status_72),(size_t)4); __gen_e_acsl_waitpid(pid_72,& process_status_72,0); - /*@ assert Eva: initialization: \initialized(&process_status_72); */ signal_eval(process_status_72,0,__gen_e_acsl_literal_string_146); __e_acsl_delete_block((void *)(& process_status_72)); } @@ -3697,7 +3676,6 @@ int main(int argc, char const **argv) int process_status_73; __e_acsl_store_block((void *)(& process_status_73),(size_t)4); __gen_e_acsl_waitpid(pid_73,& process_status_73,0); - /*@ assert Eva: initialization: \initialized(&process_status_73); */ signal_eval(process_status_73,0,__gen_e_acsl_literal_string_146); __e_acsl_delete_block((void *)(& process_status_73)); } @@ -3712,7 +3690,6 @@ int main(int argc, char const **argv) int process_status_74; __e_acsl_store_block((void *)(& process_status_74),(size_t)4); __gen_e_acsl_waitpid(pid_74,& process_status_74,0); - /*@ assert Eva: initialization: \initialized(&process_status_74); */ signal_eval(process_status_74,0,__gen_e_acsl_literal_string_149); __e_acsl_delete_block((void *)(& process_status_74)); } @@ -3727,7 +3704,6 @@ int main(int argc, char const **argv) int process_status_75; __e_acsl_store_block((void *)(& process_status_75),(size_t)4); __gen_e_acsl_waitpid(pid_75,& process_status_75,0); - /*@ assert Eva: initialization: \initialized(&process_status_75); */ signal_eval(process_status_75,0,__gen_e_acsl_literal_string_149); __e_acsl_delete_block((void *)(& process_status_75)); } @@ -3742,7 +3718,6 @@ int main(int argc, char const **argv) int process_status_76; __e_acsl_store_block((void *)(& process_status_76),(size_t)4); __gen_e_acsl_waitpid(pid_76,& process_status_76,0); - /*@ assert Eva: initialization: \initialized(&process_status_76); */ signal_eval(process_status_76,0,__gen_e_acsl_literal_string_152); __e_acsl_delete_block((void *)(& process_status_76)); } @@ -3757,7 +3732,6 @@ int main(int argc, char const **argv) int process_status_77; __e_acsl_store_block((void *)(& process_status_77),(size_t)4); __gen_e_acsl_waitpid(pid_77,& process_status_77,0); - /*@ assert Eva: initialization: \initialized(&process_status_77); */ signal_eval(process_status_77,0,__gen_e_acsl_literal_string_152); __e_acsl_delete_block((void *)(& process_status_77)); } @@ -3772,7 +3746,6 @@ int main(int argc, char const **argv) int process_status_78; __e_acsl_store_block((void *)(& process_status_78),(size_t)4); __gen_e_acsl_waitpid(pid_78,& process_status_78,0); - /*@ assert Eva: initialization: \initialized(&process_status_78); */ signal_eval(process_status_78,1,__gen_e_acsl_literal_string_155); __e_acsl_delete_block((void *)(& process_status_78)); } @@ -3787,7 +3760,6 @@ int main(int argc, char const **argv) int process_status_79; __e_acsl_store_block((void *)(& process_status_79),(size_t)4); __gen_e_acsl_waitpid(pid_79,& process_status_79,0); - /*@ assert Eva: initialization: \initialized(&process_status_79); */ signal_eval(process_status_79,1,__gen_e_acsl_literal_string_157); __e_acsl_delete_block((void *)(& process_status_79)); } @@ -3802,7 +3774,6 @@ int main(int argc, char const **argv) int process_status_80; __e_acsl_store_block((void *)(& process_status_80),(size_t)4); __gen_e_acsl_waitpid(pid_80,& process_status_80,0); - /*@ assert Eva: initialization: \initialized(&process_status_80); */ signal_eval(process_status_80,1,__gen_e_acsl_literal_string_159); __e_acsl_delete_block((void *)(& process_status_80)); } @@ -3817,7 +3788,6 @@ int main(int argc, char const **argv) int process_status_81; __e_acsl_store_block((void *)(& process_status_81),(size_t)4); __gen_e_acsl_waitpid(pid_81,& process_status_81,0); - /*@ assert Eva: initialization: \initialized(&process_status_81); */ signal_eval(process_status_81,0,__gen_e_acsl_literal_string_161); __e_acsl_delete_block((void *)(& process_status_81)); } @@ -3832,7 +3802,6 @@ int main(int argc, char const **argv) int process_status_82; __e_acsl_store_block((void *)(& process_status_82),(size_t)4); __gen_e_acsl_waitpid(pid_82,& process_status_82,0); - /*@ assert Eva: initialization: \initialized(&process_status_82); */ signal_eval(process_status_82,0,__gen_e_acsl_literal_string_161); __e_acsl_delete_block((void *)(& process_status_82)); } @@ -3847,7 +3816,6 @@ int main(int argc, char const **argv) int process_status_83; __e_acsl_store_block((void *)(& process_status_83),(size_t)4); __gen_e_acsl_waitpid(pid_83,& process_status_83,0); - /*@ assert Eva: initialization: \initialized(&process_status_83); */ signal_eval(process_status_83,0,__gen_e_acsl_literal_string_163); __e_acsl_delete_block((void *)(& process_status_83)); } @@ -3862,7 +3830,6 @@ int main(int argc, char const **argv) int process_status_84; __e_acsl_store_block((void *)(& process_status_84),(size_t)4); __gen_e_acsl_waitpid(pid_84,& process_status_84,0); - /*@ assert Eva: initialization: \initialized(&process_status_84); */ signal_eval(process_status_84,0,__gen_e_acsl_literal_string_163); __e_acsl_delete_block((void *)(& process_status_84)); } @@ -3877,7 +3844,6 @@ int main(int argc, char const **argv) int process_status_85; __e_acsl_store_block((void *)(& process_status_85),(size_t)4); __gen_e_acsl_waitpid(pid_85,& process_status_85,0); - /*@ assert Eva: initialization: \initialized(&process_status_85); */ signal_eval(process_status_85,0,__gen_e_acsl_literal_string_164); __e_acsl_delete_block((void *)(& process_status_85)); } @@ -3892,7 +3858,6 @@ int main(int argc, char const **argv) int process_status_86; __e_acsl_store_block((void *)(& process_status_86),(size_t)4); __gen_e_acsl_waitpid(pid_86,& process_status_86,0); - /*@ assert Eva: initialization: \initialized(&process_status_86); */ signal_eval(process_status_86,0,__gen_e_acsl_literal_string_164); __e_acsl_delete_block((void *)(& process_status_86)); } @@ -3907,7 +3872,6 @@ int main(int argc, char const **argv) int process_status_87; __e_acsl_store_block((void *)(& process_status_87),(size_t)4); __gen_e_acsl_waitpid(pid_87,& process_status_87,0); - /*@ assert Eva: initialization: \initialized(&process_status_87); */ signal_eval(process_status_87,1,__gen_e_acsl_literal_string_165); __e_acsl_delete_block((void *)(& process_status_87)); } @@ -3922,7 +3886,6 @@ int main(int argc, char const **argv) int process_status_88; __e_acsl_store_block((void *)(& process_status_88),(size_t)4); __gen_e_acsl_waitpid(pid_88,& process_status_88,0); - /*@ assert Eva: initialization: \initialized(&process_status_88); */ signal_eval(process_status_88,1,__gen_e_acsl_literal_string_165); __e_acsl_delete_block((void *)(& process_status_88)); } @@ -3937,7 +3900,6 @@ int main(int argc, char const **argv) int process_status_89; __e_acsl_store_block((void *)(& process_status_89),(size_t)4); __gen_e_acsl_waitpid(pid_89,& process_status_89,0); - /*@ assert Eva: initialization: \initialized(&process_status_89); */ signal_eval(process_status_89,1,__gen_e_acsl_literal_string_166); __e_acsl_delete_block((void *)(& process_status_89)); } @@ -3952,7 +3914,6 @@ int main(int argc, char const **argv) int process_status_90; __e_acsl_store_block((void *)(& process_status_90),(size_t)4); __gen_e_acsl_waitpid(pid_90,& process_status_90,0); - /*@ assert Eva: initialization: \initialized(&process_status_90); */ signal_eval(process_status_90,1,__gen_e_acsl_literal_string_166); __e_acsl_delete_block((void *)(& process_status_90)); } @@ -3967,7 +3928,6 @@ int main(int argc, char const **argv) int process_status_91; __e_acsl_store_block((void *)(& process_status_91),(size_t)4); __gen_e_acsl_waitpid(pid_91,& process_status_91,0); - /*@ assert Eva: initialization: \initialized(&process_status_91); */ signal_eval(process_status_91,1,__gen_e_acsl_literal_string_167); __e_acsl_delete_block((void *)(& process_status_91)); } @@ -3982,7 +3942,6 @@ int main(int argc, char const **argv) int process_status_92; __e_acsl_store_block((void *)(& process_status_92),(size_t)4); __gen_e_acsl_waitpid(pid_92,& process_status_92,0); - /*@ assert Eva: initialization: \initialized(&process_status_92); */ signal_eval(process_status_92,1,__gen_e_acsl_literal_string_167); __e_acsl_delete_block((void *)(& process_status_92)); } @@ -3998,7 +3957,6 @@ int main(int argc, char const **argv) int process_status_93; __e_acsl_store_block((void *)(& process_status_93),(size_t)4); __gen_e_acsl_waitpid(pid_93,& process_status_93,0); - /*@ assert Eva: initialization: \initialized(&process_status_93); */ signal_eval(process_status_93,1,__gen_e_acsl_literal_string_168); __e_acsl_delete_block((void *)(& process_status_93)); } @@ -4014,7 +3972,6 @@ int main(int argc, char const **argv) int process_status_94; __e_acsl_store_block((void *)(& process_status_94),(size_t)4); __gen_e_acsl_waitpid(pid_94,& process_status_94,0); - /*@ assert Eva: initialization: \initialized(&process_status_94); */ signal_eval(process_status_94,1,__gen_e_acsl_literal_string_168); __e_acsl_delete_block((void *)(& process_status_94)); } @@ -4029,7 +3986,6 @@ int main(int argc, char const **argv) int process_status_95; __e_acsl_store_block((void *)(& process_status_95),(size_t)4); __gen_e_acsl_waitpid(pid_95,& process_status_95,0); - /*@ assert Eva: initialization: \initialized(&process_status_95); */ signal_eval(process_status_95,0,__gen_e_acsl_literal_string_170); __e_acsl_delete_block((void *)(& process_status_95)); } @@ -4044,7 +4000,6 @@ int main(int argc, char const **argv) int process_status_96; __e_acsl_store_block((void *)(& process_status_96),(size_t)4); __gen_e_acsl_waitpid(pid_96,& process_status_96,0); - /*@ assert Eva: initialization: \initialized(&process_status_96); */ signal_eval(process_status_96,0,__gen_e_acsl_literal_string_170); __e_acsl_delete_block((void *)(& process_status_96)); } @@ -4059,7 +4014,6 @@ int main(int argc, char const **argv) int process_status_97; __e_acsl_store_block((void *)(& process_status_97),(size_t)4); __gen_e_acsl_waitpid(pid_97,& process_status_97,0); - /*@ assert Eva: initialization: \initialized(&process_status_97); */ signal_eval(process_status_97,0,__gen_e_acsl_literal_string_172); __e_acsl_delete_block((void *)(& process_status_97)); } @@ -4074,7 +4028,6 @@ int main(int argc, char const **argv) int process_status_98; __e_acsl_store_block((void *)(& process_status_98),(size_t)4); __gen_e_acsl_waitpid(pid_98,& process_status_98,0); - /*@ assert Eva: initialization: \initialized(&process_status_98); */ signal_eval(process_status_98,0,__gen_e_acsl_literal_string_172); __e_acsl_delete_block((void *)(& process_status_98)); } @@ -4089,7 +4042,6 @@ int main(int argc, char const **argv) int process_status_99; __e_acsl_store_block((void *)(& process_status_99),(size_t)4); __gen_e_acsl_waitpid(pid_99,& process_status_99,0); - /*@ assert Eva: initialization: \initialized(&process_status_99); */ signal_eval(process_status_99,0,__gen_e_acsl_literal_string_174); __e_acsl_delete_block((void *)(& process_status_99)); } @@ -4104,7 +4056,6 @@ int main(int argc, char const **argv) int process_status_100; __e_acsl_store_block((void *)(& process_status_100),(size_t)4); __gen_e_acsl_waitpid(pid_100,& process_status_100,0); - /*@ assert Eva: initialization: \initialized(&process_status_100); */ signal_eval(process_status_100,0,__gen_e_acsl_literal_string_174); __e_acsl_delete_block((void *)(& process_status_100)); } @@ -4119,7 +4070,6 @@ int main(int argc, char const **argv) int process_status_101; __e_acsl_store_block((void *)(& process_status_101),(size_t)4); __gen_e_acsl_waitpid(pid_101,& process_status_101,0); - /*@ assert Eva: initialization: \initialized(&process_status_101); */ signal_eval(process_status_101,0,__gen_e_acsl_literal_string_177); __e_acsl_delete_block((void *)(& process_status_101)); } @@ -4134,7 +4084,6 @@ int main(int argc, char const **argv) int process_status_102; __e_acsl_store_block((void *)(& process_status_102),(size_t)4); __gen_e_acsl_waitpid(pid_102,& process_status_102,0); - /*@ assert Eva: initialization: \initialized(&process_status_102); */ signal_eval(process_status_102,0,__gen_e_acsl_literal_string_177); __e_acsl_delete_block((void *)(& process_status_102)); } @@ -4149,7 +4098,6 @@ int main(int argc, char const **argv) int process_status_103; __e_acsl_store_block((void *)(& process_status_103),(size_t)4); __gen_e_acsl_waitpid(pid_103,& process_status_103,0); - /*@ assert Eva: initialization: \initialized(&process_status_103); */ signal_eval(process_status_103,0,__gen_e_acsl_literal_string_180); __e_acsl_delete_block((void *)(& process_status_103)); } @@ -4164,7 +4112,6 @@ int main(int argc, char const **argv) int process_status_104; __e_acsl_store_block((void *)(& process_status_104),(size_t)4); __gen_e_acsl_waitpid(pid_104,& process_status_104,0); - /*@ assert Eva: initialization: \initialized(&process_status_104); */ signal_eval(process_status_104,0,__gen_e_acsl_literal_string_180); __e_acsl_delete_block((void *)(& process_status_104)); } @@ -4179,7 +4126,6 @@ int main(int argc, char const **argv) int process_status_105; __e_acsl_store_block((void *)(& process_status_105),(size_t)4); __gen_e_acsl_waitpid(pid_105,& process_status_105,0); - /*@ assert Eva: initialization: \initialized(&process_status_105); */ signal_eval(process_status_105,0,__gen_e_acsl_literal_string_183); __e_acsl_delete_block((void *)(& process_status_105)); } @@ -4194,7 +4140,6 @@ int main(int argc, char const **argv) int process_status_106; __e_acsl_store_block((void *)(& process_status_106),(size_t)4); __gen_e_acsl_waitpid(pid_106,& process_status_106,0); - /*@ assert Eva: initialization: \initialized(&process_status_106); */ signal_eval(process_status_106,0,__gen_e_acsl_literal_string_183); __e_acsl_delete_block((void *)(& process_status_106)); } @@ -4209,7 +4154,6 @@ int main(int argc, char const **argv) int process_status_107; __e_acsl_store_block((void *)(& process_status_107),(size_t)4); __gen_e_acsl_waitpid(pid_107,& process_status_107,0); - /*@ assert Eva: initialization: \initialized(&process_status_107); */ signal_eval(process_status_107,0,__gen_e_acsl_literal_string_186); __e_acsl_delete_block((void *)(& process_status_107)); } @@ -4224,7 +4168,6 @@ int main(int argc, char const **argv) int process_status_108; __e_acsl_store_block((void *)(& process_status_108),(size_t)4); __gen_e_acsl_waitpid(pid_108,& process_status_108,0); - /*@ assert Eva: initialization: \initialized(&process_status_108); */ signal_eval(process_status_108,0,__gen_e_acsl_literal_string_186); __e_acsl_delete_block((void *)(& process_status_108)); } @@ -4239,7 +4182,6 @@ int main(int argc, char const **argv) int process_status_109; __e_acsl_store_block((void *)(& process_status_109),(size_t)4); __gen_e_acsl_waitpid(pid_109,& process_status_109,0); - /*@ assert Eva: initialization: \initialized(&process_status_109); */ signal_eval(process_status_109,0,__gen_e_acsl_literal_string_186); __e_acsl_delete_block((void *)(& process_status_109)); } @@ -4254,7 +4196,6 @@ int main(int argc, char const **argv) int process_status_110; __e_acsl_store_block((void *)(& process_status_110),(size_t)4); __gen_e_acsl_waitpid(pid_110,& process_status_110,0); - /*@ assert Eva: initialization: \initialized(&process_status_110); */ signal_eval(process_status_110,0,__gen_e_acsl_literal_string_186); __e_acsl_delete_block((void *)(& process_status_110)); } @@ -4269,7 +4210,6 @@ int main(int argc, char const **argv) int process_status_111; __e_acsl_store_block((void *)(& process_status_111),(size_t)4); __gen_e_acsl_waitpid(pid_111,& process_status_111,0); - /*@ assert Eva: initialization: \initialized(&process_status_111); */ signal_eval(process_status_111,1,__gen_e_acsl_literal_string_190); __e_acsl_delete_block((void *)(& process_status_111)); } @@ -4284,7 +4224,6 @@ int main(int argc, char const **argv) int process_status_112; __e_acsl_store_block((void *)(& process_status_112),(size_t)4); __gen_e_acsl_waitpid(pid_112,& process_status_112,0); - /*@ assert Eva: initialization: \initialized(&process_status_112); */ signal_eval(process_status_112,1,__gen_e_acsl_literal_string_190); __e_acsl_delete_block((void *)(& process_status_112)); } @@ -4299,7 +4238,6 @@ int main(int argc, char const **argv) int process_status_113; __e_acsl_store_block((void *)(& process_status_113),(size_t)4); __gen_e_acsl_waitpid(pid_113,& process_status_113,0); - /*@ assert Eva: initialization: \initialized(&process_status_113); */ signal_eval(process_status_113,1,__gen_e_acsl_literal_string_190); __e_acsl_delete_block((void *)(& process_status_113)); } @@ -4314,7 +4252,6 @@ int main(int argc, char const **argv) int process_status_114; __e_acsl_store_block((void *)(& process_status_114),(size_t)4); __gen_e_acsl_waitpid(pid_114,& process_status_114,0); - /*@ assert Eva: initialization: \initialized(&process_status_114); */ signal_eval(process_status_114,1,__gen_e_acsl_literal_string_190); __e_acsl_delete_block((void *)(& process_status_114)); } @@ -4329,7 +4266,6 @@ int main(int argc, char const **argv) int process_status_115; __e_acsl_store_block((void *)(& process_status_115),(size_t)4); __gen_e_acsl_waitpid(pid_115,& process_status_115,0); - /*@ assert Eva: initialization: \initialized(&process_status_115); */ signal_eval(process_status_115,1,__gen_e_acsl_literal_string_191); __e_acsl_delete_block((void *)(& process_status_115)); } @@ -4344,7 +4280,6 @@ int main(int argc, char const **argv) int process_status_116; __e_acsl_store_block((void *)(& process_status_116),(size_t)4); __gen_e_acsl_waitpid(pid_116,& process_status_116,0); - /*@ assert Eva: initialization: \initialized(&process_status_116); */ signal_eval(process_status_116,1,__gen_e_acsl_literal_string_191); __e_acsl_delete_block((void *)(& process_status_116)); } @@ -4359,7 +4294,6 @@ int main(int argc, char const **argv) int process_status_117; __e_acsl_store_block((void *)(& process_status_117),(size_t)4); __gen_e_acsl_waitpid(pid_117,& process_status_117,0); - /*@ assert Eva: initialization: \initialized(&process_status_117); */ signal_eval(process_status_117,1,__gen_e_acsl_literal_string_191); __e_acsl_delete_block((void *)(& process_status_117)); } @@ -4374,7 +4308,6 @@ int main(int argc, char const **argv) int process_status_118; __e_acsl_store_block((void *)(& process_status_118),(size_t)4); __gen_e_acsl_waitpid(pid_118,& process_status_118,0); - /*@ assert Eva: initialization: \initialized(&process_status_118); */ signal_eval(process_status_118,1,__gen_e_acsl_literal_string_191); __e_acsl_delete_block((void *)(& process_status_118)); } @@ -4390,7 +4323,6 @@ int main(int argc, char const **argv) int process_status_119; __e_acsl_store_block((void *)(& process_status_119),(size_t)4); __gen_e_acsl_waitpid(pid_119,& process_status_119,0); - /*@ assert Eva: initialization: \initialized(&process_status_119); */ signal_eval(process_status_119,1,__gen_e_acsl_literal_string_192); __e_acsl_delete_block((void *)(& process_status_119)); } @@ -4406,7 +4338,6 @@ int main(int argc, char const **argv) int process_status_120; __e_acsl_store_block((void *)(& process_status_120),(size_t)4); __gen_e_acsl_waitpid(pid_120,& process_status_120,0); - /*@ assert Eva: initialization: \initialized(&process_status_120); */ signal_eval(process_status_120,1,__gen_e_acsl_literal_string_192); __e_acsl_delete_block((void *)(& process_status_120)); } @@ -4422,7 +4353,6 @@ int main(int argc, char const **argv) int process_status_121; __e_acsl_store_block((void *)(& process_status_121),(size_t)4); __gen_e_acsl_waitpid(pid_121,& process_status_121,0); - /*@ assert Eva: initialization: \initialized(&process_status_121); */ signal_eval(process_status_121,1,__gen_e_acsl_literal_string_192); __e_acsl_delete_block((void *)(& process_status_121)); } @@ -4438,7 +4368,6 @@ int main(int argc, char const **argv) int process_status_122; __e_acsl_store_block((void *)(& process_status_122),(size_t)4); __gen_e_acsl_waitpid(pid_122,& process_status_122,0); - /*@ assert Eva: initialization: \initialized(&process_status_122); */ signal_eval(process_status_122,1,__gen_e_acsl_literal_string_192); __e_acsl_delete_block((void *)(& process_status_122)); } @@ -4453,7 +4382,6 @@ int main(int argc, char const **argv) int process_status_123; __e_acsl_store_block((void *)(& process_status_123),(size_t)4); __gen_e_acsl_waitpid(pid_123,& process_status_123,0); - /*@ assert Eva: initialization: \initialized(&process_status_123); */ signal_eval(process_status_123,1,__gen_e_acsl_literal_string_193); __e_acsl_delete_block((void *)(& process_status_123)); } @@ -4468,7 +4396,6 @@ int main(int argc, char const **argv) int process_status_124; __e_acsl_store_block((void *)(& process_status_124),(size_t)4); __gen_e_acsl_waitpid(pid_124,& process_status_124,0); - /*@ assert Eva: initialization: \initialized(&process_status_124); */ signal_eval(process_status_124,1,__gen_e_acsl_literal_string_193); __e_acsl_delete_block((void *)(& process_status_124)); } @@ -4483,7 +4410,6 @@ int main(int argc, char const **argv) int process_status_125; __e_acsl_store_block((void *)(& process_status_125),(size_t)4); __gen_e_acsl_waitpid(pid_125,& process_status_125,0); - /*@ assert Eva: initialization: \initialized(&process_status_125); */ signal_eval(process_status_125,1,__gen_e_acsl_literal_string_193); __e_acsl_delete_block((void *)(& process_status_125)); } @@ -4498,7 +4424,6 @@ int main(int argc, char const **argv) int process_status_126; __e_acsl_store_block((void *)(& process_status_126),(size_t)4); __gen_e_acsl_waitpid(pid_126,& process_status_126,0); - /*@ assert Eva: initialization: \initialized(&process_status_126); */ signal_eval(process_status_126,1,__gen_e_acsl_literal_string_193); __e_acsl_delete_block((void *)(& process_status_126)); } @@ -4513,7 +4438,6 @@ int main(int argc, char const **argv) int process_status_127; __e_acsl_store_block((void *)(& process_status_127),(size_t)4); __gen_e_acsl_waitpid(pid_127,& process_status_127,0); - /*@ assert Eva: initialization: \initialized(&process_status_127); */ signal_eval(process_status_127,1,__gen_e_acsl_literal_string_194); __e_acsl_delete_block((void *)(& process_status_127)); } @@ -4528,7 +4452,6 @@ int main(int argc, char const **argv) int process_status_128; __e_acsl_store_block((void *)(& process_status_128),(size_t)4); __gen_e_acsl_waitpid(pid_128,& process_status_128,0); - /*@ assert Eva: initialization: \initialized(&process_status_128); */ signal_eval(process_status_128,1,__gen_e_acsl_literal_string_194); __e_acsl_delete_block((void *)(& process_status_128)); } @@ -4543,7 +4466,6 @@ int main(int argc, char const **argv) int process_status_129; __e_acsl_store_block((void *)(& process_status_129),(size_t)4); __gen_e_acsl_waitpid(pid_129,& process_status_129,0); - /*@ assert Eva: initialization: \initialized(&process_status_129); */ signal_eval(process_status_129,1,__gen_e_acsl_literal_string_194); __e_acsl_delete_block((void *)(& process_status_129)); } @@ -4558,7 +4480,6 @@ int main(int argc, char const **argv) int process_status_130; __e_acsl_store_block((void *)(& process_status_130),(size_t)4); __gen_e_acsl_waitpid(pid_130,& process_status_130,0); - /*@ assert Eva: initialization: \initialized(&process_status_130); */ signal_eval(process_status_130,1,__gen_e_acsl_literal_string_194); __e_acsl_delete_block((void *)(& process_status_130)); } @@ -4573,7 +4494,6 @@ int main(int argc, char const **argv) int process_status_131; __e_acsl_store_block((void *)(& process_status_131),(size_t)4); __gen_e_acsl_waitpid(pid_131,& process_status_131,0); - /*@ assert Eva: initialization: \initialized(&process_status_131); */ signal_eval(process_status_131,0,__gen_e_acsl_literal_string_196); __e_acsl_delete_block((void *)(& process_status_131)); } @@ -4588,7 +4508,6 @@ int main(int argc, char const **argv) int process_status_132; __e_acsl_store_block((void *)(& process_status_132),(size_t)4); __gen_e_acsl_waitpid(pid_132,& process_status_132,0); - /*@ assert Eva: initialization: \initialized(&process_status_132); */ signal_eval(process_status_132,0,__gen_e_acsl_literal_string_196); __e_acsl_delete_block((void *)(& process_status_132)); } @@ -4603,7 +4522,6 @@ int main(int argc, char const **argv) int process_status_133; __e_acsl_store_block((void *)(& process_status_133),(size_t)4); __gen_e_acsl_waitpid(pid_133,& process_status_133,0); - /*@ assert Eva: initialization: \initialized(&process_status_133); */ signal_eval(process_status_133,0,__gen_e_acsl_literal_string_196); __e_acsl_delete_block((void *)(& process_status_133)); } @@ -4618,7 +4536,6 @@ int main(int argc, char const **argv) int process_status_134; __e_acsl_store_block((void *)(& process_status_134),(size_t)4); __gen_e_acsl_waitpid(pid_134,& process_status_134,0); - /*@ assert Eva: initialization: \initialized(&process_status_134); */ signal_eval(process_status_134,0,__gen_e_acsl_literal_string_196); __e_acsl_delete_block((void *)(& process_status_134)); } @@ -4633,7 +4550,6 @@ int main(int argc, char const **argv) int process_status_135; __e_acsl_store_block((void *)(& process_status_135),(size_t)4); __gen_e_acsl_waitpid(pid_135,& process_status_135,0); - /*@ assert Eva: initialization: \initialized(&process_status_135); */ signal_eval(process_status_135,0,__gen_e_acsl_literal_string_201); __e_acsl_delete_block((void *)(& process_status_135)); } @@ -4648,7 +4564,6 @@ int main(int argc, char const **argv) int process_status_136; __e_acsl_store_block((void *)(& process_status_136),(size_t)4); __gen_e_acsl_waitpid(pid_136,& process_status_136,0); - /*@ assert Eva: initialization: \initialized(&process_status_136); */ signal_eval(process_status_136,0,__gen_e_acsl_literal_string_201); __e_acsl_delete_block((void *)(& process_status_136)); } @@ -4663,7 +4578,6 @@ int main(int argc, char const **argv) int process_status_137; __e_acsl_store_block((void *)(& process_status_137),(size_t)4); __gen_e_acsl_waitpid(pid_137,& process_status_137,0); - /*@ assert Eva: initialization: \initialized(&process_status_137); */ signal_eval(process_status_137,0,__gen_e_acsl_literal_string_201); __e_acsl_delete_block((void *)(& process_status_137)); } @@ -4678,7 +4592,6 @@ int main(int argc, char const **argv) int process_status_138; __e_acsl_store_block((void *)(& process_status_138),(size_t)4); __gen_e_acsl_waitpid(pid_138,& process_status_138,0); - /*@ assert Eva: initialization: \initialized(&process_status_138); */ signal_eval(process_status_138,0,__gen_e_acsl_literal_string_201); __e_acsl_delete_block((void *)(& process_status_138)); } @@ -4693,7 +4606,6 @@ int main(int argc, char const **argv) int process_status_139; __e_acsl_store_block((void *)(& process_status_139),(size_t)4); __gen_e_acsl_waitpid(pid_139,& process_status_139,0); - /*@ assert Eva: initialization: \initialized(&process_status_139); */ signal_eval(process_status_139,0,__gen_e_acsl_literal_string_206); __e_acsl_delete_block((void *)(& process_status_139)); } @@ -4708,7 +4620,6 @@ int main(int argc, char const **argv) int process_status_140; __e_acsl_store_block((void *)(& process_status_140),(size_t)4); __gen_e_acsl_waitpid(pid_140,& process_status_140,0); - /*@ assert Eva: initialization: \initialized(&process_status_140); */ signal_eval(process_status_140,0,__gen_e_acsl_literal_string_206); __e_acsl_delete_block((void *)(& process_status_140)); } @@ -4723,7 +4634,6 @@ int main(int argc, char const **argv) int process_status_141; __e_acsl_store_block((void *)(& process_status_141),(size_t)4); __gen_e_acsl_waitpid(pid_141,& process_status_141,0); - /*@ assert Eva: initialization: \initialized(&process_status_141); */ signal_eval(process_status_141,0,__gen_e_acsl_literal_string_206); __e_acsl_delete_block((void *)(& process_status_141)); } @@ -4738,7 +4648,6 @@ int main(int argc, char const **argv) int process_status_142; __e_acsl_store_block((void *)(& process_status_142),(size_t)4); __gen_e_acsl_waitpid(pid_142,& process_status_142,0); - /*@ assert Eva: initialization: \initialized(&process_status_142); */ signal_eval(process_status_142,0,__gen_e_acsl_literal_string_206); __e_acsl_delete_block((void *)(& process_status_142)); } @@ -4753,7 +4662,6 @@ int main(int argc, char const **argv) int process_status_143; __e_acsl_store_block((void *)(& process_status_143),(size_t)4); __gen_e_acsl_waitpid(pid_143,& process_status_143,0); - /*@ assert Eva: initialization: \initialized(&process_status_143); */ signal_eval(process_status_143,0,__gen_e_acsl_literal_string_211); __e_acsl_delete_block((void *)(& process_status_143)); } @@ -4768,7 +4676,6 @@ int main(int argc, char const **argv) int process_status_144; __e_acsl_store_block((void *)(& process_status_144),(size_t)4); __gen_e_acsl_waitpid(pid_144,& process_status_144,0); - /*@ assert Eva: initialization: \initialized(&process_status_144); */ signal_eval(process_status_144,0,__gen_e_acsl_literal_string_211); __e_acsl_delete_block((void *)(& process_status_144)); } @@ -4783,7 +4690,6 @@ int main(int argc, char const **argv) int process_status_145; __e_acsl_store_block((void *)(& process_status_145),(size_t)4); __gen_e_acsl_waitpid(pid_145,& process_status_145,0); - /*@ assert Eva: initialization: \initialized(&process_status_145); */ signal_eval(process_status_145,0,__gen_e_acsl_literal_string_211); __e_acsl_delete_block((void *)(& process_status_145)); } @@ -4798,7 +4704,6 @@ int main(int argc, char const **argv) int process_status_146; __e_acsl_store_block((void *)(& process_status_146),(size_t)4); __gen_e_acsl_waitpid(pid_146,& process_status_146,0); - /*@ assert Eva: initialization: \initialized(&process_status_146); */ signal_eval(process_status_146,0,__gen_e_acsl_literal_string_211); __e_acsl_delete_block((void *)(& process_status_146)); } @@ -4813,7 +4718,6 @@ int main(int argc, char const **argv) int process_status_147; __e_acsl_store_block((void *)(& process_status_147),(size_t)4); __gen_e_acsl_waitpid(pid_147,& process_status_147,0); - /*@ assert Eva: initialization: \initialized(&process_status_147); */ signal_eval(process_status_147,0,__gen_e_acsl_literal_string_216); __e_acsl_delete_block((void *)(& process_status_147)); } @@ -4828,7 +4732,6 @@ int main(int argc, char const **argv) int process_status_148; __e_acsl_store_block((void *)(& process_status_148),(size_t)4); __gen_e_acsl_waitpid(pid_148,& process_status_148,0); - /*@ assert Eva: initialization: \initialized(&process_status_148); */ signal_eval(process_status_148,0,__gen_e_acsl_literal_string_216); __e_acsl_delete_block((void *)(& process_status_148)); } @@ -4843,7 +4746,6 @@ int main(int argc, char const **argv) int process_status_149; __e_acsl_store_block((void *)(& process_status_149),(size_t)4); __gen_e_acsl_waitpid(pid_149,& process_status_149,0); - /*@ assert Eva: initialization: \initialized(&process_status_149); */ signal_eval(process_status_149,0,__gen_e_acsl_literal_string_216); __e_acsl_delete_block((void *)(& process_status_149)); } @@ -4858,7 +4760,6 @@ int main(int argc, char const **argv) int process_status_150; __e_acsl_store_block((void *)(& process_status_150),(size_t)4); __gen_e_acsl_waitpid(pid_150,& process_status_150,0); - /*@ assert Eva: initialization: \initialized(&process_status_150); */ signal_eval(process_status_150,0,__gen_e_acsl_literal_string_216); __e_acsl_delete_block((void *)(& process_status_150)); } @@ -4873,7 +4774,6 @@ int main(int argc, char const **argv) int process_status_151; __e_acsl_store_block((void *)(& process_status_151),(size_t)4); __gen_e_acsl_waitpid(pid_151,& process_status_151,0); - /*@ assert Eva: initialization: \initialized(&process_status_151); */ signal_eval(process_status_151,0,__gen_e_acsl_literal_string_221); __e_acsl_delete_block((void *)(& process_status_151)); } @@ -4888,7 +4788,6 @@ int main(int argc, char const **argv) int process_status_152; __e_acsl_store_block((void *)(& process_status_152),(size_t)4); __gen_e_acsl_waitpid(pid_152,& process_status_152,0); - /*@ assert Eva: initialization: \initialized(&process_status_152); */ signal_eval(process_status_152,0,__gen_e_acsl_literal_string_221); __e_acsl_delete_block((void *)(& process_status_152)); } @@ -4903,7 +4802,6 @@ int main(int argc, char const **argv) int process_status_153; __e_acsl_store_block((void *)(& process_status_153),(size_t)4); __gen_e_acsl_waitpid(pid_153,& process_status_153,0); - /*@ assert Eva: initialization: \initialized(&process_status_153); */ signal_eval(process_status_153,0,__gen_e_acsl_literal_string_221); __e_acsl_delete_block((void *)(& process_status_153)); } @@ -4918,7 +4816,6 @@ int main(int argc, char const **argv) int process_status_154; __e_acsl_store_block((void *)(& process_status_154),(size_t)4); __gen_e_acsl_waitpid(pid_154,& process_status_154,0); - /*@ assert Eva: initialization: \initialized(&process_status_154); */ signal_eval(process_status_154,0,__gen_e_acsl_literal_string_221); __e_acsl_delete_block((void *)(& process_status_154)); } @@ -4933,7 +4830,6 @@ int main(int argc, char const **argv) int process_status_155; __e_acsl_store_block((void *)(& process_status_155),(size_t)4); __gen_e_acsl_waitpid(pid_155,& process_status_155,0); - /*@ assert Eva: initialization: \initialized(&process_status_155); */ signal_eval(process_status_155,0,__gen_e_acsl_literal_string_226); __e_acsl_delete_block((void *)(& process_status_155)); } @@ -4948,7 +4844,6 @@ int main(int argc, char const **argv) int process_status_156; __e_acsl_store_block((void *)(& process_status_156),(size_t)4); __gen_e_acsl_waitpid(pid_156,& process_status_156,0); - /*@ assert Eva: initialization: \initialized(&process_status_156); */ signal_eval(process_status_156,0,__gen_e_acsl_literal_string_226); __e_acsl_delete_block((void *)(& process_status_156)); } @@ -4963,7 +4858,6 @@ int main(int argc, char const **argv) int process_status_157; __e_acsl_store_block((void *)(& process_status_157),(size_t)4); __gen_e_acsl_waitpid(pid_157,& process_status_157,0); - /*@ assert Eva: initialization: \initialized(&process_status_157); */ signal_eval(process_status_157,0,__gen_e_acsl_literal_string_226); __e_acsl_delete_block((void *)(& process_status_157)); } @@ -4978,7 +4872,6 @@ int main(int argc, char const **argv) int process_status_158; __e_acsl_store_block((void *)(& process_status_158),(size_t)4); __gen_e_acsl_waitpid(pid_158,& process_status_158,0); - /*@ assert Eva: initialization: \initialized(&process_status_158); */ signal_eval(process_status_158,0,__gen_e_acsl_literal_string_226); __e_acsl_delete_block((void *)(& process_status_158)); } @@ -4993,7 +4886,6 @@ int main(int argc, char const **argv) int process_status_159; __e_acsl_store_block((void *)(& process_status_159),(size_t)4); __gen_e_acsl_waitpid(pid_159,& process_status_159,0); - /*@ assert Eva: initialization: \initialized(&process_status_159); */ signal_eval(process_status_159,0,__gen_e_acsl_literal_string_231); __e_acsl_delete_block((void *)(& process_status_159)); } @@ -5008,7 +4900,6 @@ int main(int argc, char const **argv) int process_status_160; __e_acsl_store_block((void *)(& process_status_160),(size_t)4); __gen_e_acsl_waitpid(pid_160,& process_status_160,0); - /*@ assert Eva: initialization: \initialized(&process_status_160); */ signal_eval(process_status_160,0,__gen_e_acsl_literal_string_231); __e_acsl_delete_block((void *)(& process_status_160)); } @@ -5023,7 +4914,6 @@ int main(int argc, char const **argv) int process_status_161; __e_acsl_store_block((void *)(& process_status_161),(size_t)4); __gen_e_acsl_waitpid(pid_161,& process_status_161,0); - /*@ assert Eva: initialization: \initialized(&process_status_161); */ signal_eval(process_status_161,1,__gen_e_acsl_literal_string_233); __e_acsl_delete_block((void *)(& process_status_161)); } @@ -5038,7 +4928,6 @@ int main(int argc, char const **argv) int process_status_162; __e_acsl_store_block((void *)(& process_status_162),(size_t)4); __gen_e_acsl_waitpid(pid_162,& process_status_162,0); - /*@ assert Eva: initialization: \initialized(&process_status_162); */ signal_eval(process_status_162,1,__gen_e_acsl_literal_string_233); __e_acsl_delete_block((void *)(& process_status_162)); } @@ -5053,7 +4942,6 @@ int main(int argc, char const **argv) int process_status_163; __e_acsl_store_block((void *)(& process_status_163),(size_t)4); __gen_e_acsl_waitpid(pid_163,& process_status_163,0); - /*@ assert Eva: initialization: \initialized(&process_status_163); */ signal_eval(process_status_163,1,__gen_e_acsl_literal_string_234); __e_acsl_delete_block((void *)(& process_status_163)); } @@ -5068,7 +4956,6 @@ int main(int argc, char const **argv) int process_status_164; __e_acsl_store_block((void *)(& process_status_164),(size_t)4); __gen_e_acsl_waitpid(pid_164,& process_status_164,0); - /*@ assert Eva: initialization: \initialized(&process_status_164); */ signal_eval(process_status_164,1,__gen_e_acsl_literal_string_234); __e_acsl_delete_block((void *)(& process_status_164)); } @@ -5083,7 +4970,6 @@ int main(int argc, char const **argv) int process_status_165; __e_acsl_store_block((void *)(& process_status_165),(size_t)4); __gen_e_acsl_waitpid(pid_165,& process_status_165,0); - /*@ assert Eva: initialization: \initialized(&process_status_165); */ signal_eval(process_status_165,1,__gen_e_acsl_literal_string_235); __e_acsl_delete_block((void *)(& process_status_165)); } @@ -5098,7 +4984,6 @@ int main(int argc, char const **argv) int process_status_166; __e_acsl_store_block((void *)(& process_status_166),(size_t)4); __gen_e_acsl_waitpid(pid_166,& process_status_166,0); - /*@ assert Eva: initialization: \initialized(&process_status_166); */ signal_eval(process_status_166,1,__gen_e_acsl_literal_string_235); __e_acsl_delete_block((void *)(& process_status_166)); } @@ -5113,7 +4998,6 @@ int main(int argc, char const **argv) int process_status_167; __e_acsl_store_block((void *)(& process_status_167),(size_t)4); __gen_e_acsl_waitpid(pid_167,& process_status_167,0); - /*@ assert Eva: initialization: \initialized(&process_status_167); */ signal_eval(process_status_167,0,__gen_e_acsl_literal_string_237); __e_acsl_delete_block((void *)(& process_status_167)); } @@ -5128,7 +5012,6 @@ int main(int argc, char const **argv) int process_status_168; __e_acsl_store_block((void *)(& process_status_168),(size_t)4); __gen_e_acsl_waitpid(pid_168,& process_status_168,0); - /*@ assert Eva: initialization: \initialized(&process_status_168); */ signal_eval(process_status_168,0,__gen_e_acsl_literal_string_237); __e_acsl_delete_block((void *)(& process_status_168)); } @@ -5143,7 +5026,6 @@ int main(int argc, char const **argv) int process_status_169; __e_acsl_store_block((void *)(& process_status_169),(size_t)4); __gen_e_acsl_waitpid(pid_169,& process_status_169,0); - /*@ assert Eva: initialization: \initialized(&process_status_169); */ signal_eval(process_status_169,1,__gen_e_acsl_literal_string_239); __e_acsl_delete_block((void *)(& process_status_169)); } @@ -5158,7 +5040,6 @@ int main(int argc, char const **argv) int process_status_170; __e_acsl_store_block((void *)(& process_status_170),(size_t)4); __gen_e_acsl_waitpid(pid_170,& process_status_170,0); - /*@ assert Eva: initialization: \initialized(&process_status_170); */ signal_eval(process_status_170,1,__gen_e_acsl_literal_string_239); __e_acsl_delete_block((void *)(& process_status_170)); } @@ -5173,7 +5054,6 @@ int main(int argc, char const **argv) int process_status_171; __e_acsl_store_block((void *)(& process_status_171),(size_t)4); __gen_e_acsl_waitpid(pid_171,& process_status_171,0); - /*@ assert Eva: initialization: \initialized(&process_status_171); */ signal_eval(process_status_171,1,__gen_e_acsl_literal_string_240); __e_acsl_delete_block((void *)(& process_status_171)); } @@ -5188,7 +5068,6 @@ int main(int argc, char const **argv) int process_status_172; __e_acsl_store_block((void *)(& process_status_172),(size_t)4); __gen_e_acsl_waitpid(pid_172,& process_status_172,0); - /*@ assert Eva: initialization: \initialized(&process_status_172); */ signal_eval(process_status_172,1,__gen_e_acsl_literal_string_240); __e_acsl_delete_block((void *)(& process_status_172)); } @@ -5203,7 +5082,6 @@ int main(int argc, char const **argv) int process_status_173; __e_acsl_store_block((void *)(& process_status_173),(size_t)4); __gen_e_acsl_waitpid(pid_173,& process_status_173,0); - /*@ assert Eva: initialization: \initialized(&process_status_173); */ signal_eval(process_status_173,1,__gen_e_acsl_literal_string_241); __e_acsl_delete_block((void *)(& process_status_173)); } @@ -5218,7 +5096,6 @@ int main(int argc, char const **argv) int process_status_174; __e_acsl_store_block((void *)(& process_status_174),(size_t)4); __gen_e_acsl_waitpid(pid_174,& process_status_174,0); - /*@ assert Eva: initialization: \initialized(&process_status_174); */ signal_eval(process_status_174,1,__gen_e_acsl_literal_string_241); __e_acsl_delete_block((void *)(& process_status_174)); } @@ -5233,7 +5110,6 @@ int main(int argc, char const **argv) int process_status_175; __e_acsl_store_block((void *)(& process_status_175),(size_t)4); __gen_e_acsl_waitpid(pid_175,& process_status_175,0); - /*@ assert Eva: initialization: \initialized(&process_status_175); */ signal_eval(process_status_175,0,__gen_e_acsl_literal_string_243); __e_acsl_delete_block((void *)(& process_status_175)); } @@ -5248,7 +5124,6 @@ int main(int argc, char const **argv) int process_status_176; __e_acsl_store_block((void *)(& process_status_176),(size_t)4); __gen_e_acsl_waitpid(pid_176,& process_status_176,0); - /*@ assert Eva: initialization: \initialized(&process_status_176); */ signal_eval(process_status_176,0,__gen_e_acsl_literal_string_243); __e_acsl_delete_block((void *)(& process_status_176)); } @@ -5263,7 +5138,6 @@ int main(int argc, char const **argv) int process_status_177; __e_acsl_store_block((void *)(& process_status_177),(size_t)4); __gen_e_acsl_waitpid(pid_177,& process_status_177,0); - /*@ assert Eva: initialization: \initialized(&process_status_177); */ signal_eval(process_status_177,1,__gen_e_acsl_literal_string_245); __e_acsl_delete_block((void *)(& process_status_177)); } @@ -5278,7 +5152,6 @@ int main(int argc, char const **argv) int process_status_178; __e_acsl_store_block((void *)(& process_status_178),(size_t)4); __gen_e_acsl_waitpid(pid_178,& process_status_178,0); - /*@ assert Eva: initialization: \initialized(&process_status_178); */ signal_eval(process_status_178,1,__gen_e_acsl_literal_string_245); __e_acsl_delete_block((void *)(& process_status_178)); } @@ -5293,7 +5166,6 @@ int main(int argc, char const **argv) int process_status_179; __e_acsl_store_block((void *)(& process_status_179),(size_t)4); __gen_e_acsl_waitpid(pid_179,& process_status_179,0); - /*@ assert Eva: initialization: \initialized(&process_status_179); */ signal_eval(process_status_179,1,__gen_e_acsl_literal_string_246); __e_acsl_delete_block((void *)(& process_status_179)); } @@ -5308,7 +5180,6 @@ int main(int argc, char const **argv) int process_status_180; __e_acsl_store_block((void *)(& process_status_180),(size_t)4); __gen_e_acsl_waitpid(pid_180,& process_status_180,0); - /*@ assert Eva: initialization: \initialized(&process_status_180); */ signal_eval(process_status_180,1,__gen_e_acsl_literal_string_246); __e_acsl_delete_block((void *)(& process_status_180)); } @@ -5323,7 +5194,6 @@ int main(int argc, char const **argv) int process_status_181; __e_acsl_store_block((void *)(& process_status_181),(size_t)4); __gen_e_acsl_waitpid(pid_181,& process_status_181,0); - /*@ assert Eva: initialization: \initialized(&process_status_181); */ signal_eval(process_status_181,1,__gen_e_acsl_literal_string_247); __e_acsl_delete_block((void *)(& process_status_181)); } @@ -5338,7 +5208,6 @@ int main(int argc, char const **argv) int process_status_182; __e_acsl_store_block((void *)(& process_status_182),(size_t)4); __gen_e_acsl_waitpid(pid_182,& process_status_182,0); - /*@ assert Eva: initialization: \initialized(&process_status_182); */ signal_eval(process_status_182,1,__gen_e_acsl_literal_string_247); __e_acsl_delete_block((void *)(& process_status_182)); } @@ -5353,7 +5222,6 @@ int main(int argc, char const **argv) int process_status_183; __e_acsl_store_block((void *)(& process_status_183),(size_t)4); __gen_e_acsl_waitpid(pid_183,& process_status_183,0); - /*@ assert Eva: initialization: \initialized(&process_status_183); */ signal_eval(process_status_183,0,__gen_e_acsl_literal_string_249); __e_acsl_delete_block((void *)(& process_status_183)); } @@ -5368,7 +5236,6 @@ int main(int argc, char const **argv) int process_status_184; __e_acsl_store_block((void *)(& process_status_184),(size_t)4); __gen_e_acsl_waitpid(pid_184,& process_status_184,0); - /*@ assert Eva: initialization: \initialized(&process_status_184); */ signal_eval(process_status_184,0,__gen_e_acsl_literal_string_249); __e_acsl_delete_block((void *)(& process_status_184)); } @@ -5383,7 +5250,6 @@ int main(int argc, char const **argv) int process_status_185; __e_acsl_store_block((void *)(& process_status_185),(size_t)4); __gen_e_acsl_waitpid(pid_185,& process_status_185,0); - /*@ assert Eva: initialization: \initialized(&process_status_185); */ signal_eval(process_status_185,1,__gen_e_acsl_literal_string_251); __e_acsl_delete_block((void *)(& process_status_185)); } @@ -5398,7 +5264,6 @@ int main(int argc, char const **argv) int process_status_186; __e_acsl_store_block((void *)(& process_status_186),(size_t)4); __gen_e_acsl_waitpid(pid_186,& process_status_186,0); - /*@ assert Eva: initialization: \initialized(&process_status_186); */ signal_eval(process_status_186,1,__gen_e_acsl_literal_string_251); __e_acsl_delete_block((void *)(& process_status_186)); } @@ -5413,7 +5278,6 @@ int main(int argc, char const **argv) int process_status_187; __e_acsl_store_block((void *)(& process_status_187),(size_t)4); __gen_e_acsl_waitpid(pid_187,& process_status_187,0); - /*@ assert Eva: initialization: \initialized(&process_status_187); */ signal_eval(process_status_187,1,__gen_e_acsl_literal_string_252); __e_acsl_delete_block((void *)(& process_status_187)); } @@ -5428,7 +5292,6 @@ int main(int argc, char const **argv) int process_status_188; __e_acsl_store_block((void *)(& process_status_188),(size_t)4); __gen_e_acsl_waitpid(pid_188,& process_status_188,0); - /*@ assert Eva: initialization: \initialized(&process_status_188); */ signal_eval(process_status_188,1,__gen_e_acsl_literal_string_252); __e_acsl_delete_block((void *)(& process_status_188)); } @@ -5443,7 +5306,6 @@ int main(int argc, char const **argv) int process_status_189; __e_acsl_store_block((void *)(& process_status_189),(size_t)4); __gen_e_acsl_waitpid(pid_189,& process_status_189,0); - /*@ assert Eva: initialization: \initialized(&process_status_189); */ signal_eval(process_status_189,1,__gen_e_acsl_literal_string_253); __e_acsl_delete_block((void *)(& process_status_189)); } @@ -5458,7 +5320,6 @@ int main(int argc, char const **argv) int process_status_190; __e_acsl_store_block((void *)(& process_status_190),(size_t)4); __gen_e_acsl_waitpid(pid_190,& process_status_190,0); - /*@ assert Eva: initialization: \initialized(&process_status_190); */ signal_eval(process_status_190,1,__gen_e_acsl_literal_string_253); __e_acsl_delete_block((void *)(& process_status_190)); } @@ -5473,7 +5334,6 @@ int main(int argc, char const **argv) int process_status_191; __e_acsl_store_block((void *)(& process_status_191),(size_t)4); __gen_e_acsl_waitpid(pid_191,& process_status_191,0); - /*@ assert Eva: initialization: \initialized(&process_status_191); */ signal_eval(process_status_191,1,__gen_e_acsl_literal_string_255); __e_acsl_delete_block((void *)(& process_status_191)); } @@ -5488,7 +5348,6 @@ int main(int argc, char const **argv) int process_status_192; __e_acsl_store_block((void *)(& process_status_192),(size_t)4); __gen_e_acsl_waitpid(pid_192,& process_status_192,0); - /*@ assert Eva: initialization: \initialized(&process_status_192); */ signal_eval(process_status_192,1,__gen_e_acsl_literal_string_255); __e_acsl_delete_block((void *)(& process_status_192)); } @@ -5503,7 +5362,6 @@ int main(int argc, char const **argv) int process_status_193; __e_acsl_store_block((void *)(& process_status_193),(size_t)4); __gen_e_acsl_waitpid(pid_193,& process_status_193,0); - /*@ assert Eva: initialization: \initialized(&process_status_193); */ signal_eval(process_status_193,0,__gen_e_acsl_literal_string_257); __e_acsl_delete_block((void *)(& process_status_193)); } @@ -5518,7 +5376,6 @@ int main(int argc, char const **argv) int process_status_194; __e_acsl_store_block((void *)(& process_status_194),(size_t)4); __gen_e_acsl_waitpid(pid_194,& process_status_194,0); - /*@ assert Eva: initialization: \initialized(&process_status_194); */ signal_eval(process_status_194,0,__gen_e_acsl_literal_string_257); __e_acsl_delete_block((void *)(& process_status_194)); } @@ -5533,7 +5390,6 @@ int main(int argc, char const **argv) int process_status_195; __e_acsl_store_block((void *)(& process_status_195),(size_t)4); __gen_e_acsl_waitpid(pid_195,& process_status_195,0); - /*@ assert Eva: initialization: \initialized(&process_status_195); */ signal_eval(process_status_195,1,__gen_e_acsl_literal_string_258); __e_acsl_delete_block((void *)(& process_status_195)); } @@ -5548,7 +5404,6 @@ int main(int argc, char const **argv) int process_status_196; __e_acsl_store_block((void *)(& process_status_196),(size_t)4); __gen_e_acsl_waitpid(pid_196,& process_status_196,0); - /*@ assert Eva: initialization: \initialized(&process_status_196); */ signal_eval(process_status_196,1,__gen_e_acsl_literal_string_258); __e_acsl_delete_block((void *)(& process_status_196)); } @@ -5563,7 +5418,6 @@ int main(int argc, char const **argv) int process_status_197; __e_acsl_store_block((void *)(& process_status_197),(size_t)4); __gen_e_acsl_waitpid(pid_197,& process_status_197,0); - /*@ assert Eva: initialization: \initialized(&process_status_197); */ signal_eval(process_status_197,1,__gen_e_acsl_literal_string_259); __e_acsl_delete_block((void *)(& process_status_197)); } @@ -5578,7 +5432,6 @@ int main(int argc, char const **argv) int process_status_198; __e_acsl_store_block((void *)(& process_status_198),(size_t)4); __gen_e_acsl_waitpid(pid_198,& process_status_198,0); - /*@ assert Eva: initialization: \initialized(&process_status_198); */ signal_eval(process_status_198,1,__gen_e_acsl_literal_string_259); __e_acsl_delete_block((void *)(& process_status_198)); } @@ -5593,7 +5446,6 @@ int main(int argc, char const **argv) int process_status_199; __e_acsl_store_block((void *)(& process_status_199),(size_t)4); __gen_e_acsl_waitpid(pid_199,& process_status_199,0); - /*@ assert Eva: initialization: \initialized(&process_status_199); */ signal_eval(process_status_199,1,__gen_e_acsl_literal_string_261); __e_acsl_delete_block((void *)(& process_status_199)); } @@ -5608,7 +5460,6 @@ int main(int argc, char const **argv) int process_status_200; __e_acsl_store_block((void *)(& process_status_200),(size_t)4); __gen_e_acsl_waitpid(pid_200,& process_status_200,0); - /*@ assert Eva: initialization: \initialized(&process_status_200); */ signal_eval(process_status_200,1,__gen_e_acsl_literal_string_261); __e_acsl_delete_block((void *)(& process_status_200)); } @@ -5623,7 +5474,6 @@ int main(int argc, char const **argv) int process_status_201; __e_acsl_store_block((void *)(& process_status_201),(size_t)4); __gen_e_acsl_waitpid(pid_201,& process_status_201,0); - /*@ assert Eva: initialization: \initialized(&process_status_201); */ signal_eval(process_status_201,0,__gen_e_acsl_literal_string_263); __e_acsl_delete_block((void *)(& process_status_201)); } @@ -5638,7 +5488,6 @@ int main(int argc, char const **argv) int process_status_202; __e_acsl_store_block((void *)(& process_status_202),(size_t)4); __gen_e_acsl_waitpid(pid_202,& process_status_202,0); - /*@ assert Eva: initialization: \initialized(&process_status_202); */ signal_eval(process_status_202,0,__gen_e_acsl_literal_string_263); __e_acsl_delete_block((void *)(& process_status_202)); } @@ -5653,7 +5502,6 @@ int main(int argc, char const **argv) int process_status_203; __e_acsl_store_block((void *)(& process_status_203),(size_t)4); __gen_e_acsl_waitpid(pid_203,& process_status_203,0); - /*@ assert Eva: initialization: \initialized(&process_status_203); */ signal_eval(process_status_203,1,__gen_e_acsl_literal_string_264); __e_acsl_delete_block((void *)(& process_status_203)); } @@ -5668,7 +5516,6 @@ int main(int argc, char const **argv) int process_status_204; __e_acsl_store_block((void *)(& process_status_204),(size_t)4); __gen_e_acsl_waitpid(pid_204,& process_status_204,0); - /*@ assert Eva: initialization: \initialized(&process_status_204); */ signal_eval(process_status_204,1,__gen_e_acsl_literal_string_264); __e_acsl_delete_block((void *)(& process_status_204)); } @@ -5683,7 +5530,6 @@ int main(int argc, char const **argv) int process_status_205; __e_acsl_store_block((void *)(& process_status_205),(size_t)4); __gen_e_acsl_waitpid(pid_205,& process_status_205,0); - /*@ assert Eva: initialization: \initialized(&process_status_205); */ signal_eval(process_status_205,1,__gen_e_acsl_literal_string_265); __e_acsl_delete_block((void *)(& process_status_205)); } @@ -5698,7 +5544,6 @@ int main(int argc, char const **argv) int process_status_206; __e_acsl_store_block((void *)(& process_status_206),(size_t)4); __gen_e_acsl_waitpid(pid_206,& process_status_206,0); - /*@ assert Eva: initialization: \initialized(&process_status_206); */ signal_eval(process_status_206,1,__gen_e_acsl_literal_string_265); __e_acsl_delete_block((void *)(& process_status_206)); } @@ -5713,7 +5558,6 @@ int main(int argc, char const **argv) int process_status_207; __e_acsl_store_block((void *)(& process_status_207),(size_t)4); __gen_e_acsl_waitpid(pid_207,& process_status_207,0); - /*@ assert Eva: initialization: \initialized(&process_status_207); */ signal_eval(process_status_207,1,__gen_e_acsl_literal_string_267); __e_acsl_delete_block((void *)(& process_status_207)); } @@ -5728,7 +5572,6 @@ int main(int argc, char const **argv) int process_status_208; __e_acsl_store_block((void *)(& process_status_208),(size_t)4); __gen_e_acsl_waitpid(pid_208,& process_status_208,0); - /*@ assert Eva: initialization: \initialized(&process_status_208); */ signal_eval(process_status_208,1,__gen_e_acsl_literal_string_267); __e_acsl_delete_block((void *)(& process_status_208)); } @@ -5743,7 +5586,6 @@ int main(int argc, char const **argv) int process_status_209; __e_acsl_store_block((void *)(& process_status_209),(size_t)4); __gen_e_acsl_waitpid(pid_209,& process_status_209,0); - /*@ assert Eva: initialization: \initialized(&process_status_209); */ signal_eval(process_status_209,0,__gen_e_acsl_literal_string_269); __e_acsl_delete_block((void *)(& process_status_209)); } @@ -5758,7 +5600,6 @@ int main(int argc, char const **argv) int process_status_210; __e_acsl_store_block((void *)(& process_status_210),(size_t)4); __gen_e_acsl_waitpid(pid_210,& process_status_210,0); - /*@ assert Eva: initialization: \initialized(&process_status_210); */ signal_eval(process_status_210,0,__gen_e_acsl_literal_string_269); __e_acsl_delete_block((void *)(& process_status_210)); } @@ -5773,7 +5614,6 @@ int main(int argc, char const **argv) int process_status_211; __e_acsl_store_block((void *)(& process_status_211),(size_t)4); __gen_e_acsl_waitpid(pid_211,& process_status_211,0); - /*@ assert Eva: initialization: \initialized(&process_status_211); */ signal_eval(process_status_211,1,__gen_e_acsl_literal_string_270); __e_acsl_delete_block((void *)(& process_status_211)); } @@ -5788,7 +5628,6 @@ int main(int argc, char const **argv) int process_status_212; __e_acsl_store_block((void *)(& process_status_212),(size_t)4); __gen_e_acsl_waitpid(pid_212,& process_status_212,0); - /*@ assert Eva: initialization: \initialized(&process_status_212); */ signal_eval(process_status_212,1,__gen_e_acsl_literal_string_270); __e_acsl_delete_block((void *)(& process_status_212)); } @@ -5803,7 +5642,6 @@ int main(int argc, char const **argv) int process_status_213; __e_acsl_store_block((void *)(& process_status_213),(size_t)4); __gen_e_acsl_waitpid(pid_213,& process_status_213,0); - /*@ assert Eva: initialization: \initialized(&process_status_213); */ signal_eval(process_status_213,1,__gen_e_acsl_literal_string_271); __e_acsl_delete_block((void *)(& process_status_213)); } @@ -5818,7 +5656,6 @@ int main(int argc, char const **argv) int process_status_214; __e_acsl_store_block((void *)(& process_status_214),(size_t)4); __gen_e_acsl_waitpid(pid_214,& process_status_214,0); - /*@ assert Eva: initialization: \initialized(&process_status_214); */ signal_eval(process_status_214,1,__gen_e_acsl_literal_string_271); __e_acsl_delete_block((void *)(& process_status_214)); } @@ -5833,7 +5670,6 @@ int main(int argc, char const **argv) int process_status_215; __e_acsl_store_block((void *)(& process_status_215),(size_t)4); __gen_e_acsl_waitpid(pid_215,& process_status_215,0); - /*@ assert Eva: initialization: \initialized(&process_status_215); */ signal_eval(process_status_215,1,__gen_e_acsl_literal_string_273); __e_acsl_delete_block((void *)(& process_status_215)); } @@ -5848,7 +5684,6 @@ int main(int argc, char const **argv) int process_status_216; __e_acsl_store_block((void *)(& process_status_216),(size_t)4); __gen_e_acsl_waitpid(pid_216,& process_status_216,0); - /*@ assert Eva: initialization: \initialized(&process_status_216); */ signal_eval(process_status_216,1,__gen_e_acsl_literal_string_273); __e_acsl_delete_block((void *)(& process_status_216)); } @@ -5863,7 +5698,6 @@ int main(int argc, char const **argv) int process_status_217; __e_acsl_store_block((void *)(& process_status_217),(size_t)4); __gen_e_acsl_waitpid(pid_217,& process_status_217,0); - /*@ assert Eva: initialization: \initialized(&process_status_217); */ signal_eval(process_status_217,0,__gen_e_acsl_literal_string_275); __e_acsl_delete_block((void *)(& process_status_217)); } @@ -5878,7 +5712,6 @@ int main(int argc, char const **argv) int process_status_218; __e_acsl_store_block((void *)(& process_status_218),(size_t)4); __gen_e_acsl_waitpid(pid_218,& process_status_218,0); - /*@ assert Eva: initialization: \initialized(&process_status_218); */ signal_eval(process_status_218,0,__gen_e_acsl_literal_string_275); __e_acsl_delete_block((void *)(& process_status_218)); } @@ -5893,7 +5726,6 @@ int main(int argc, char const **argv) int process_status_219; __e_acsl_store_block((void *)(& process_status_219),(size_t)4); __gen_e_acsl_waitpid(pid_219,& process_status_219,0); - /*@ assert Eva: initialization: \initialized(&process_status_219); */ signal_eval(process_status_219,1,__gen_e_acsl_literal_string_276); __e_acsl_delete_block((void *)(& process_status_219)); } @@ -5908,7 +5740,6 @@ int main(int argc, char const **argv) int process_status_220; __e_acsl_store_block((void *)(& process_status_220),(size_t)4); __gen_e_acsl_waitpid(pid_220,& process_status_220,0); - /*@ assert Eva: initialization: \initialized(&process_status_220); */ signal_eval(process_status_220,1,__gen_e_acsl_literal_string_276); __e_acsl_delete_block((void *)(& process_status_220)); } @@ -5923,7 +5754,6 @@ int main(int argc, char const **argv) int process_status_221; __e_acsl_store_block((void *)(& process_status_221),(size_t)4); __gen_e_acsl_waitpid(pid_221,& process_status_221,0); - /*@ assert Eva: initialization: \initialized(&process_status_221); */ signal_eval(process_status_221,1,__gen_e_acsl_literal_string_277); __e_acsl_delete_block((void *)(& process_status_221)); } @@ -5938,7 +5768,6 @@ int main(int argc, char const **argv) int process_status_222; __e_acsl_store_block((void *)(& process_status_222),(size_t)4); __gen_e_acsl_waitpid(pid_222,& process_status_222,0); - /*@ assert Eva: initialization: \initialized(&process_status_222); */ signal_eval(process_status_222,1,__gen_e_acsl_literal_string_277); __e_acsl_delete_block((void *)(& process_status_222)); } @@ -5953,7 +5782,6 @@ int main(int argc, char const **argv) int process_status_223; __e_acsl_store_block((void *)(& process_status_223),(size_t)4); __gen_e_acsl_waitpid(pid_223,& process_status_223,0); - /*@ assert Eva: initialization: \initialized(&process_status_223); */ signal_eval(process_status_223,0,__gen_e_acsl_literal_string_279); __e_acsl_delete_block((void *)(& process_status_223)); } @@ -5968,7 +5796,6 @@ int main(int argc, char const **argv) int process_status_224; __e_acsl_store_block((void *)(& process_status_224),(size_t)4); __gen_e_acsl_waitpid(pid_224,& process_status_224,0); - /*@ assert Eva: initialization: \initialized(&process_status_224); */ signal_eval(process_status_224,0,__gen_e_acsl_literal_string_280); __e_acsl_delete_block((void *)(& process_status_224)); } @@ -5983,7 +5810,6 @@ int main(int argc, char const **argv) int process_status_225; __e_acsl_store_block((void *)(& process_status_225),(size_t)4); __gen_e_acsl_waitpid(pid_225,& process_status_225,0); - /*@ assert Eva: initialization: \initialized(&process_status_225); */ signal_eval(process_status_225,0,__gen_e_acsl_literal_string_281); __e_acsl_delete_block((void *)(& process_status_225)); } @@ -5998,7 +5824,6 @@ int main(int argc, char const **argv) int process_status_226; __e_acsl_store_block((void *)(& process_status_226),(size_t)4); __gen_e_acsl_waitpid(pid_226,& process_status_226,0); - /*@ assert Eva: initialization: \initialized(&process_status_226); */ signal_eval(process_status_226,1,__gen_e_acsl_literal_string_282); __e_acsl_delete_block((void *)(& process_status_226)); } @@ -6013,7 +5838,6 @@ int main(int argc, char const **argv) int process_status_227; __e_acsl_store_block((void *)(& process_status_227),(size_t)4); __gen_e_acsl_waitpid(pid_227,& process_status_227,0); - /*@ assert Eva: initialization: \initialized(&process_status_227); */ signal_eval(process_status_227,1,__gen_e_acsl_literal_string_283); __e_acsl_delete_block((void *)(& process_status_227)); } @@ -6029,7 +5853,6 @@ int main(int argc, char const **argv) int process_status_228; __e_acsl_store_block((void *)(& process_status_228),(size_t)4); __gen_e_acsl_waitpid(pid_228,& process_status_228,0); - /*@ assert Eva: initialization: \initialized(&process_status_228); */ signal_eval(process_status_228,1,__gen_e_acsl_literal_string_284); __e_acsl_delete_block((void *)(& process_status_228)); } @@ -6044,7 +5867,6 @@ int main(int argc, char const **argv) int process_status_229; __e_acsl_store_block((void *)(& process_status_229),(size_t)4); __gen_e_acsl_waitpid(pid_229,& process_status_229,0); - /*@ assert Eva: initialization: \initialized(&process_status_229); */ signal_eval(process_status_229,1,__gen_e_acsl_literal_string_285); __e_acsl_delete_block((void *)(& process_status_229)); } @@ -6059,7 +5881,6 @@ int main(int argc, char const **argv) int process_status_230; __e_acsl_store_block((void *)(& process_status_230),(size_t)4); __gen_e_acsl_waitpid(pid_230,& process_status_230,0); - /*@ assert Eva: initialization: \initialized(&process_status_230); */ signal_eval(process_status_230,0,__gen_e_acsl_literal_string_287); __e_acsl_delete_block((void *)(& process_status_230)); } @@ -6074,7 +5895,6 @@ int main(int argc, char const **argv) int process_status_231; __e_acsl_store_block((void *)(& process_status_231),(size_t)4); __gen_e_acsl_waitpid(pid_231,& process_status_231,0); - /*@ assert Eva: initialization: \initialized(&process_status_231); */ signal_eval(process_status_231,1,__gen_e_acsl_literal_string_288); __e_acsl_delete_block((void *)(& process_status_231)); } @@ -6089,7 +5909,6 @@ int main(int argc, char const **argv) int process_status_232; __e_acsl_store_block((void *)(& process_status_232),(size_t)4); __gen_e_acsl_waitpid(pid_232,& process_status_232,0); - /*@ assert Eva: initialization: \initialized(&process_status_232); */ signal_eval(process_status_232,0,__gen_e_acsl_literal_string_290); __e_acsl_delete_block((void *)(& process_status_232)); } @@ -6104,7 +5923,6 @@ int main(int argc, char const **argv) int process_status_233; __e_acsl_store_block((void *)(& process_status_233),(size_t)4); __gen_e_acsl_waitpid(pid_233,& process_status_233,0); - /*@ assert Eva: initialization: \initialized(&process_status_233); */ signal_eval(process_status_233,0,__gen_e_acsl_literal_string_291); __e_acsl_delete_block((void *)(& process_status_233)); } @@ -6119,7 +5937,6 @@ int main(int argc, char const **argv) int process_status_234; __e_acsl_store_block((void *)(& process_status_234),(size_t)4); __gen_e_acsl_waitpid(pid_234,& process_status_234,0); - /*@ assert Eva: initialization: \initialized(&process_status_234); */ signal_eval(process_status_234,1,__gen_e_acsl_literal_string_292); __e_acsl_delete_block((void *)(& process_status_234)); } @@ -6134,7 +5951,6 @@ int main(int argc, char const **argv) int process_status_235; __e_acsl_store_block((void *)(& process_status_235),(size_t)4); __gen_e_acsl_waitpid(pid_235,& process_status_235,0); - /*@ assert Eva: initialization: \initialized(&process_status_235); */ signal_eval(process_status_235,1,__gen_e_acsl_literal_string_293); __e_acsl_delete_block((void *)(& process_status_235)); } @@ -6150,7 +5966,6 @@ int main(int argc, char const **argv) int process_status_236; __e_acsl_store_block((void *)(& process_status_236),(size_t)4); __gen_e_acsl_waitpid(pid_236,& process_status_236,0); - /*@ assert Eva: initialization: \initialized(&process_status_236); */ signal_eval(process_status_236,1,__gen_e_acsl_literal_string_294); __e_acsl_delete_block((void *)(& process_status_236)); } @@ -6158,7 +5973,6 @@ int main(int argc, char const **argv) { pid_t pid_237 = __gen_e_acsl_fork(); if (! pid_237) { - /*@ assert Eva: initialization: \initialized(&s2); */ __e_acsl_builtin_printf("s",__gen_e_acsl_literal_string_289,s2); __gen_e_acsl_exit(0); } @@ -6166,7 +5980,6 @@ int main(int argc, char const **argv) int process_status_237; __e_acsl_store_block((void *)(& process_status_237),(size_t)4); __gen_e_acsl_waitpid(pid_237,& process_status_237,0); - /*@ assert Eva: initialization: \initialized(&process_status_237); */ signal_eval(process_status_237,1,__gen_e_acsl_literal_string_295); __e_acsl_delete_block((void *)(& process_status_237)); } @@ -6182,7 +5995,6 @@ int main(int argc, char const **argv) int process_status_238; __e_acsl_store_block((void *)(& process_status_238),(size_t)4); __gen_e_acsl_waitpid(pid_238,& process_status_238,0); - /*@ assert Eva: initialization: \initialized(&process_status_238); */ signal_eval(process_status_238,0,__gen_e_acsl_literal_string_296); __e_acsl_delete_block((void *)(& process_status_238)); } @@ -6198,7 +6010,6 @@ int main(int argc, char const **argv) int process_status_239; __e_acsl_store_block((void *)(& process_status_239),(size_t)4); __gen_e_acsl_waitpid(pid_239,& process_status_239,0); - /*@ assert Eva: initialization: \initialized(&process_status_239); */ signal_eval(process_status_239,1,__gen_e_acsl_literal_string_297); __e_acsl_delete_block((void *)(& process_status_239)); } @@ -6213,7 +6024,6 @@ int main(int argc, char const **argv) int process_status_240; __e_acsl_store_block((void *)(& process_status_240),(size_t)4); __gen_e_acsl_waitpid(pid_240,& process_status_240,0); - /*@ assert Eva: initialization: \initialized(&process_status_240); */ signal_eval(process_status_240,0,__gen_e_acsl_literal_string_299); __e_acsl_delete_block((void *)(& process_status_240)); } @@ -6228,7 +6038,6 @@ int main(int argc, char const **argv) int process_status_241; __e_acsl_store_block((void *)(& process_status_241),(size_t)4); __gen_e_acsl_waitpid(pid_241,& process_status_241,0); - /*@ assert Eva: initialization: \initialized(&process_status_241); */ signal_eval(process_status_241,0,__gen_e_acsl_literal_string_301); __e_acsl_delete_block((void *)(& process_status_241)); } @@ -6243,7 +6052,6 @@ int main(int argc, char const **argv) int process_status_242; __e_acsl_store_block((void *)(& process_status_242),(size_t)4); __gen_e_acsl_waitpid(pid_242,& process_status_242,0); - /*@ assert Eva: initialization: \initialized(&process_status_242); */ signal_eval(process_status_242,0,__gen_e_acsl_literal_string_303); __e_acsl_delete_block((void *)(& process_status_242)); } @@ -6258,7 +6066,6 @@ int main(int argc, char const **argv) int process_status_243; __e_acsl_store_block((void *)(& process_status_243),(size_t)4); __gen_e_acsl_waitpid(pid_243,& process_status_243,0); - /*@ assert Eva: initialization: \initialized(&process_status_243); */ signal_eval(process_status_243,0,__gen_e_acsl_literal_string_305); __e_acsl_delete_block((void *)(& process_status_243)); } @@ -6273,7 +6080,6 @@ int main(int argc, char const **argv) int process_status_244; __e_acsl_store_block((void *)(& process_status_244),(size_t)4); __gen_e_acsl_waitpid(pid_244,& process_status_244,0); - /*@ assert Eva: initialization: \initialized(&process_status_244); */ signal_eval(process_status_244,1,__gen_e_acsl_literal_string_307); __e_acsl_delete_block((void *)(& process_status_244)); } @@ -6288,7 +6094,6 @@ int main(int argc, char const **argv) int process_status_245; __e_acsl_store_block((void *)(& process_status_245),(size_t)4); __gen_e_acsl_waitpid(pid_245,& process_status_245,0); - /*@ assert Eva: initialization: \initialized(&process_status_245); */ signal_eval(process_status_245,0,__gen_e_acsl_literal_string_309); __e_acsl_delete_block((void *)(& process_status_245)); } @@ -6303,7 +6108,6 @@ int main(int argc, char const **argv) int process_status_246; __e_acsl_store_block((void *)(& process_status_246),(size_t)4); __gen_e_acsl_waitpid(pid_246,& process_status_246,0); - /*@ assert Eva: initialization: \initialized(&process_status_246); */ signal_eval(process_status_246,1,__gen_e_acsl_literal_string_310); __e_acsl_delete_block((void *)(& process_status_246)); } @@ -6318,7 +6122,6 @@ int main(int argc, char const **argv) int process_status_247; __e_acsl_store_block((void *)(& process_status_247),(size_t)4); __gen_e_acsl_waitpid(pid_247,& process_status_247,0); - /*@ assert Eva: initialization: \initialized(&process_status_247); */ signal_eval(process_status_247,1,__gen_e_acsl_literal_string_311); __e_acsl_delete_block((void *)(& process_status_247)); } @@ -6333,7 +6136,6 @@ int main(int argc, char const **argv) int process_status_248; __e_acsl_store_block((void *)(& process_status_248),(size_t)4); __gen_e_acsl_waitpid(pid_248,& process_status_248,0); - /*@ assert Eva: initialization: \initialized(&process_status_248); */ signal_eval(process_status_248,0,__gen_e_acsl_literal_string_313); __e_acsl_delete_block((void *)(& process_status_248)); } @@ -6348,7 +6150,6 @@ int main(int argc, char const **argv) int process_status_249; __e_acsl_store_block((void *)(& process_status_249),(size_t)4); __gen_e_acsl_waitpid(pid_249,& process_status_249,0); - /*@ assert Eva: initialization: \initialized(&process_status_249); */ signal_eval(process_status_249,1,__gen_e_acsl_literal_string_314); __e_acsl_delete_block((void *)(& process_status_249)); } @@ -6363,7 +6164,6 @@ int main(int argc, char const **argv) int process_status_250; __e_acsl_store_block((void *)(& process_status_250),(size_t)4); __gen_e_acsl_waitpid(pid_250,& process_status_250,0); - /*@ assert Eva: initialization: \initialized(&process_status_250); */ signal_eval(process_status_250,1,__gen_e_acsl_literal_string_315); __e_acsl_delete_block((void *)(& process_status_250)); } @@ -6379,7 +6179,6 @@ int main(int argc, char const **argv) int process_status_251; __e_acsl_store_block((void *)(& process_status_251),(size_t)4); __gen_e_acsl_waitpid(pid_251,& process_status_251,0); - /*@ assert Eva: initialization: \initialized(&process_status_251); */ signal_eval(process_status_251,1,__gen_e_acsl_literal_string_316); __e_acsl_delete_block((void *)(& process_status_251)); } @@ -6394,7 +6193,6 @@ int main(int argc, char const **argv) int process_status_252; __e_acsl_store_block((void *)(& process_status_252),(size_t)4); __gen_e_acsl_waitpid(pid_252,& process_status_252,0); - /*@ assert Eva: initialization: \initialized(&process_status_252); */ signal_eval(process_status_252,1,__gen_e_acsl_literal_string_318); __e_acsl_delete_block((void *)(& process_status_252)); } @@ -6409,7 +6207,6 @@ int main(int argc, char const **argv) int process_status_253; __e_acsl_store_block((void *)(& process_status_253),(size_t)4); __gen_e_acsl_waitpid(pid_253,& process_status_253,0); - /*@ assert Eva: initialization: \initialized(&process_status_253); */ signal_eval(process_status_253,1,__gen_e_acsl_literal_string_320); __e_acsl_delete_block((void *)(& process_status_253)); } @@ -6424,7 +6221,6 @@ int main(int argc, char const **argv) int process_status_254; __e_acsl_store_block((void *)(& process_status_254),(size_t)4); __gen_e_acsl_waitpid(pid_254,& process_status_254,0); - /*@ assert Eva: initialization: \initialized(&process_status_254); */ signal_eval(process_status_254,1,__gen_e_acsl_literal_string_322); __e_acsl_delete_block((void *)(& process_status_254)); } @@ -6439,7 +6235,6 @@ int main(int argc, char const **argv) int process_status_255; __e_acsl_store_block((void *)(& process_status_255),(size_t)4); __gen_e_acsl_waitpid(pid_255,& process_status_255,0); - /*@ assert Eva: initialization: \initialized(&process_status_255); */ signal_eval(process_status_255,1,__gen_e_acsl_literal_string_324); __e_acsl_delete_block((void *)(& process_status_255)); } @@ -6454,7 +6249,6 @@ int main(int argc, char const **argv) int process_status_256; __e_acsl_store_block((void *)(& process_status_256),(size_t)4); __gen_e_acsl_waitpid(pid_256,& process_status_256,0); - /*@ assert Eva: initialization: \initialized(&process_status_256); */ signal_eval(process_status_256,1,__gen_e_acsl_literal_string_326); __e_acsl_delete_block((void *)(& process_status_256)); } @@ -6469,7 +6263,6 @@ int main(int argc, char const **argv) int process_status_257; __e_acsl_store_block((void *)(& process_status_257),(size_t)4); __gen_e_acsl_waitpid(pid_257,& process_status_257,0); - /*@ assert Eva: initialization: \initialized(&process_status_257); */ signal_eval(process_status_257,1,__gen_e_acsl_literal_string_328); __e_acsl_delete_block((void *)(& process_status_257)); } @@ -6484,7 +6277,6 @@ int main(int argc, char const **argv) int process_status_258; __e_acsl_store_block((void *)(& process_status_258),(size_t)4); __gen_e_acsl_waitpid(pid_258,& process_status_258,0); - /*@ assert Eva: initialization: \initialized(&process_status_258); */ signal_eval(process_status_258,1,__gen_e_acsl_literal_string_330); __e_acsl_delete_block((void *)(& process_status_258)); } @@ -6499,7 +6291,6 @@ int main(int argc, char const **argv) int process_status_259; __e_acsl_store_block((void *)(& process_status_259),(size_t)4); __gen_e_acsl_waitpid(pid_259,& process_status_259,0); - /*@ assert Eva: initialization: \initialized(&process_status_259); */ signal_eval(process_status_259,1,__gen_e_acsl_literal_string_332); __e_acsl_delete_block((void *)(& process_status_259)); } @@ -6514,7 +6305,6 @@ int main(int argc, char const **argv) int process_status_260; __e_acsl_store_block((void *)(& process_status_260),(size_t)4); __gen_e_acsl_waitpid(pid_260,& process_status_260,0); - /*@ assert Eva: initialization: \initialized(&process_status_260); */ signal_eval(process_status_260,1,__gen_e_acsl_literal_string_333); __e_acsl_delete_block((void *)(& process_status_260)); } @@ -6529,7 +6319,6 @@ int main(int argc, char const **argv) int process_status_261; __e_acsl_store_block((void *)(& process_status_261),(size_t)4); __gen_e_acsl_waitpid(pid_261,& process_status_261,0); - /*@ assert Eva: initialization: \initialized(&process_status_261); */ signal_eval(process_status_261,1,__gen_e_acsl_literal_string_335); __e_acsl_delete_block((void *)(& process_status_261)); } @@ -6544,7 +6333,6 @@ int main(int argc, char const **argv) int process_status_262; __e_acsl_store_block((void *)(& process_status_262),(size_t)4); __gen_e_acsl_waitpid(pid_262,& process_status_262,0); - /*@ assert Eva: initialization: \initialized(&process_status_262); */ signal_eval(process_status_262,1,__gen_e_acsl_literal_string_337); __e_acsl_delete_block((void *)(& process_status_262)); } diff --git a/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle b/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle index 61b4cbef62c..7e9dbd5e9e4 100644 --- a/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle +++ b/src/plugins/e-acsl/tests/format/oracle_ci/printf.res.oracle @@ -25,12 +25,15 @@ if there are memory-related annotations. [e-acsl] FRAMAC_SHARE/libc/string.h:351: Warning: E-ACSL construct `\separated' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:92: Warning: +[e-acsl] FRAMAC_SHARE/libc/sys/wait.h:79: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/unistd.h:854: Warning: + E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:351: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. @@ -40,24 +43,39 @@ Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:354: Warning: E-ACSL construct `\separated' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:354: Warning: +[e-acsl] FRAMAC_SHARE/libc/string.h:351: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:357: Warning: E-ACSL construct `logic functions performing read accesses' is not yet supported. Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/string.h:160: Warning: + E-ACSL construct `user-defined logic type' is not yet supported. + Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/string.h:167: Warning: + E-ACSL construct `user-defined logic type' is not yet supported. + Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:157: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:171: Warning: +[e-acsl] FRAMAC_SHARE/libc/string.h:157: Warning: + Some assumes clauses couldn't be translated. + Ignoring complete and disjoint behaviors annotations. +[e-acsl] FRAMAC_SHARE/libc/string.h:157: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:160: Warning: - E-ACSL construct `user-defined logic type' is not yet supported. +[e-acsl] FRAMAC_SHARE/libc/string.h:163: Warning: + E-ACSL construct `logic functions performing read accesses' + is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:167: Warning: - E-ACSL construct `user-defined logic type' is not yet supported. +[e-acsl] FRAMAC_SHARE/libc/string.h:164: Warning: + E-ACSL construct `logic functions with labels' is not yet supported. + Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/string.h:165: Warning: + invalid E-ACSL construct + `non integer variable p in quantification + found: ∀ char *p; \old(s) ≤ p < \result ⇒ *p ≢ (char)\old(c)'. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:125: Warning: E-ACSL construct `logic functions with labels' is not yet supported. @@ -69,17 +87,17 @@ E-ACSL construct `logic functions performing read accesses' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:127: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:470: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:127: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:472: Warning: E-ACSL construct `abnormal termination case in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdlib.h:473: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:457: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdlib.h:473: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:459: Warning: E-ACSL construct `abnormal termination case in behavior' is not yet supported. Ignoring annotation. @@ -90,565 +108,3 @@ function __gen_e_acsl_fork: postcondition 'result_ok_child_or_error' got status unknown. [kernel:annot:missing-spec] tests/format/printf.c:180: Warning: Neither code nor specification for function __e_acsl_builtin_printf, generating default assigns from the prototype -[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/sys/wait.h:86: Warning: - function __gen_e_acsl_waitpid: postcondition 'initialization,stat_loc_init_on_success' got status unknown. -[eva:alarm] tests/format/printf.c:180: Warning: - accessing uninitialized left-value. assert \initialized(&process_status); -[kernel:annot:missing-spec] tests/format/signalled.h:17: Warning: - Neither code nor specification for function __e_acsl_builtin_fprintf, generating default assigns from the prototype -[eva:alarm] tests/format/printf.c:183: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_0); -[eva:alarm] tests/format/printf.c:186: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_1); -[eva:alarm] tests/format/printf.c:189: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_2); -[eva:alarm] tests/format/printf.c:194: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_3); -[eva:alarm] tests/format/printf.c:197: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_4); -[eva:alarm] tests/format/printf.c:199: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_5); -[eva:alarm] tests/format/printf.c:201: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_6); -[eva:alarm] tests/format/printf.c:204: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_7); -[eva:alarm] tests/format/printf.c:206: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_8); -[eva:alarm] tests/format/printf.c:51: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/string.h:357: Warning: - function __gen_e_acsl_strcpy: postcondition 'equal_contents' got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/string.h:165: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_first_occur' got status unknown. -[eva:alarm] tests/format/printf.c:59: Warning: - accessing uninitialized left-value. assert \initialized(&process_status); -[eva:alarm] FRAMAC_SHARE/libc/string.h:161: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_char' got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/string.h:161: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_char' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] FRAMAC_SHARE/libc/string.h:162: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_same_base' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] FRAMAC_SHARE/libc/string.h:163: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_in_length' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] FRAMAC_SHARE/libc/string.h:164: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_valid_string' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] FRAMAC_SHARE/libc/string.h:165: Warning: - function __gen_e_acsl_strchr, behavior found: postcondition 'result_first_occur' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] FRAMAC_SHARE/libc/string.h:168: Warning: - function __gen_e_acsl_strchr, behavior not_found: postcondition 'result_null' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] tests/format/printf.c:62: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_0); -[eva:alarm] tests/format/signalled.h:17: Warning: - signed overflow. assert testno + 1 ≤ 2147483647; -[eva:alarm] tests/format/printf.c:224: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_9); -[eva:alarm] tests/format/printf.c:225: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_10); -[eva:alarm] tests/format/printf.c:226: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_11); -[eva:alarm] tests/format/printf.c:233: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_12); -[eva:alarm] tests/format/printf.c:233: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_13); -[eva:alarm] tests/format/printf.c:234: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_14); -[eva:alarm] tests/format/printf.c:234: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_15); -[eva:alarm] tests/format/printf.c:235: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_16); -[eva:alarm] tests/format/printf.c:235: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_17); -[eva:alarm] tests/format/printf.c:235: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_18); -[eva:alarm] tests/format/printf.c:239: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_19); -[eva:alarm] tests/format/printf.c:239: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_20); -[eva:alarm] tests/format/printf.c:240: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_21); -[eva:alarm] tests/format/printf.c:240: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_22); -[eva:alarm] tests/format/printf.c:241: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_23); -[eva:alarm] tests/format/printf.c:241: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_24); -[eva:alarm] tests/format/printf.c:241: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_25); -[eva:alarm] tests/format/printf.c:245: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_26); -[eva:alarm] tests/format/printf.c:245: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_27); -[eva:alarm] tests/format/printf.c:246: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_28); -[eva:alarm] tests/format/printf.c:246: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_29); -[eva:alarm] tests/format/printf.c:247: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_30); -[eva:alarm] tests/format/printf.c:247: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_31); -[eva:alarm] tests/format/printf.c:249: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_32); -[eva:alarm] tests/format/printf.c:249: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_33); -[eva:alarm] tests/format/printf.c:250: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_34); -[eva:alarm] tests/format/printf.c:250: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_35); -[eva:alarm] tests/format/printf.c:251: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_36); -[eva:alarm] tests/format/printf.c:251: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_37); -[eva:alarm] tests/format/printf.c:252: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_38); -[eva:alarm] tests/format/printf.c:252: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_39); -[eva:alarm] tests/format/printf.c:254: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_40); -[eva:alarm] tests/format/printf.c:257: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_41); -[eva:alarm] tests/format/printf.c:261: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_42); -[eva:alarm] tests/format/printf.c:261: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_43); -[eva:alarm] tests/format/printf.c:262: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_44); -[eva:alarm] tests/format/printf.c:262: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_45); -[eva:alarm] tests/format/printf.c:263: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_46); -[eva:alarm] tests/format/printf.c:263: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_47); -[eva:alarm] tests/format/printf.c:263: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_48); -[eva:alarm] tests/format/printf.c:267: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_49); -[eva:alarm] tests/format/printf.c:267: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_50); -[eva:alarm] tests/format/printf.c:268: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_51); -[eva:alarm] tests/format/printf.c:268: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_52); -[eva:alarm] tests/format/printf.c:269: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_53); -[eva:alarm] tests/format/printf.c:269: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_54); -[eva:alarm] tests/format/printf.c:269: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_55); -[eva:alarm] tests/format/printf.c:277: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_56); -[eva:alarm] tests/format/printf.c:277: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_57); -[eva:alarm] tests/format/printf.c:281: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_58); -[eva:alarm] tests/format/printf.c:281: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_59); -[eva:alarm] tests/format/printf.c:282: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_60); -[eva:alarm] tests/format/printf.c:282: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_61); -[eva:alarm] tests/format/printf.c:282: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_62); -[eva:alarm] tests/format/printf.c:289: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_63); -[eva:alarm] tests/format/printf.c:289: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_64); -[eva:alarm] tests/format/printf.c:290: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_65); -[eva:alarm] tests/format/printf.c:290: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_66); -[eva:alarm] tests/format/printf.c:295: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_67); -[eva:alarm] tests/format/printf.c:295: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_68); -[eva:alarm] tests/format/printf.c:296: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_69); -[eva:alarm] tests/format/printf.c:300: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_70); -[eva:alarm] tests/format/printf.c:300: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_71); -[eva:alarm] tests/format/printf.c:301: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_72); -[eva:alarm] tests/format/printf.c:301: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_73); -[eva:alarm] tests/format/printf.c:302: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_74); -[eva:alarm] tests/format/printf.c:302: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_75); -[eva:alarm] tests/format/printf.c:303: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_76); -[eva:alarm] tests/format/printf.c:303: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_77); -[eva:alarm] tests/format/printf.c:307: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_78); -[eva:alarm] tests/format/printf.c:308: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_79); -[eva:alarm] tests/format/printf.c:309: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_80); -[eva:alarm] tests/format/printf.c:312: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_81); -[eva:alarm] tests/format/printf.c:312: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_82); -[eva:alarm] tests/format/printf.c:313: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_83); -[eva:alarm] tests/format/printf.c:313: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_84); -[eva:alarm] tests/format/printf.c:314: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_85); -[eva:alarm] tests/format/printf.c:314: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_86); -[eva:alarm] tests/format/printf.c:315: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_87); -[eva:alarm] tests/format/printf.c:315: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_88); -[eva:alarm] tests/format/printf.c:316: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_89); -[eva:alarm] tests/format/printf.c:316: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_90); -[eva:alarm] tests/format/printf.c:317: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_91); -[eva:alarm] tests/format/printf.c:317: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_92); -[eva:alarm] tests/format/printf.c:318: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_93); -[eva:alarm] tests/format/printf.c:318: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_94); -[eva:alarm] tests/format/printf.c:321: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_95); -[eva:alarm] tests/format/printf.c:321: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_96); -[eva:alarm] tests/format/printf.c:322: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_97); -[eva:alarm] tests/format/printf.c:322: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_98); -[eva:alarm] tests/format/printf.c:323: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_99); -[eva:alarm] tests/format/printf.c:323: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_100); -[eva:alarm] tests/format/printf.c:324: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_101); -[eva:alarm] tests/format/printf.c:324: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_102); -[eva:alarm] tests/format/printf.c:326: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_103); -[eva:alarm] tests/format/printf.c:326: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_104); -[eva:alarm] tests/format/printf.c:330: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_105); -[eva:alarm] tests/format/printf.c:330: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_106); -[eva:alarm] tests/format/printf.c:333: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_107); -[eva:alarm] tests/format/printf.c:333: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_108); -[eva:alarm] tests/format/printf.c:333: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_109); -[eva:alarm] tests/format/printf.c:333: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_110); -[eva:alarm] tests/format/printf.c:334: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_111); -[eva:alarm] tests/format/printf.c:334: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_112); -[eva:alarm] tests/format/printf.c:334: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_113); -[eva:alarm] tests/format/printf.c:334: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_114); -[eva:alarm] tests/format/printf.c:335: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_115); -[eva:alarm] tests/format/printf.c:335: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_116); -[eva:alarm] tests/format/printf.c:335: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_117); -[eva:alarm] tests/format/printf.c:335: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_118); -[eva:alarm] tests/format/printf.c:336: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_119); -[eva:alarm] tests/format/printf.c:336: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_120); -[eva:alarm] tests/format/printf.c:336: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_121); -[eva:alarm] tests/format/printf.c:336: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_122); -[eva:alarm] tests/format/printf.c:337: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_123); -[eva:alarm] tests/format/printf.c:337: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_124); -[eva:alarm] tests/format/printf.c:337: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_125); -[eva:alarm] tests/format/printf.c:337: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_126); -[eva:alarm] tests/format/printf.c:338: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_127); -[eva:alarm] tests/format/printf.c:338: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_128); -[eva:alarm] tests/format/printf.c:338: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_129); -[eva:alarm] tests/format/printf.c:338: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_130); -[eva:alarm] tests/format/printf.c:341: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_131); -[eva:alarm] tests/format/printf.c:341: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_132); -[eva:alarm] tests/format/printf.c:341: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_133); -[eva:alarm] tests/format/printf.c:341: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_134); -[eva:alarm] tests/format/printf.c:342: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_135); -[eva:alarm] tests/format/printf.c:342: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_136); -[eva:alarm] tests/format/printf.c:342: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_137); -[eva:alarm] tests/format/printf.c:342: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_138); -[eva:alarm] tests/format/printf.c:344: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_139); -[eva:alarm] tests/format/printf.c:344: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_140); -[eva:alarm] tests/format/printf.c:344: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_141); -[eva:alarm] tests/format/printf.c:344: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_142); -[eva:alarm] tests/format/printf.c:346: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_143); -[eva:alarm] tests/format/printf.c:346: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_144); -[eva:alarm] tests/format/printf.c:346: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_145); -[eva:alarm] tests/format/printf.c:346: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_146); -[eva:alarm] tests/format/printf.c:347: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_147); -[eva:alarm] tests/format/printf.c:347: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_148); -[eva:alarm] tests/format/printf.c:347: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_149); -[eva:alarm] tests/format/printf.c:347: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_150); -[eva:alarm] tests/format/printf.c:348: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_151); -[eva:alarm] tests/format/printf.c:348: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_152); -[eva:alarm] tests/format/printf.c:348: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_153); -[eva:alarm] tests/format/printf.c:348: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_154); -[eva:alarm] tests/format/printf.c:350: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_155); -[eva:alarm] tests/format/printf.c:350: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_156); -[eva:alarm] tests/format/printf.c:350: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_157); -[eva:alarm] tests/format/printf.c:350: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_158); -[eva:alarm] tests/format/printf.c:354: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_159); -[eva:alarm] tests/format/printf.c:354: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_160); -[eva:alarm] tests/format/printf.c:355: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_161); -[eva:alarm] tests/format/printf.c:355: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_162); -[eva:alarm] tests/format/printf.c:356: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_163); -[eva:alarm] tests/format/printf.c:356: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_164); -[eva:alarm] tests/format/printf.c:357: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_165); -[eva:alarm] tests/format/printf.c:357: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_166); -[eva:alarm] tests/format/printf.c:358: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_167); -[eva:alarm] tests/format/printf.c:358: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_168); -[eva:alarm] tests/format/printf.c:359: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_169); -[eva:alarm] tests/format/printf.c:359: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_170); -[eva:alarm] tests/format/printf.c:360: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_171); -[eva:alarm] tests/format/printf.c:360: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_172); -[eva:alarm] tests/format/printf.c:361: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_173); -[eva:alarm] tests/format/printf.c:361: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_174); -[eva:alarm] tests/format/printf.c:362: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_175); -[eva:alarm] tests/format/printf.c:362: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_176); -[eva:alarm] tests/format/printf.c:363: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_177); -[eva:alarm] tests/format/printf.c:363: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_178); -[eva:alarm] tests/format/printf.c:364: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_179); -[eva:alarm] tests/format/printf.c:364: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_180); -[eva:alarm] tests/format/printf.c:365: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_181); -[eva:alarm] tests/format/printf.c:365: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_182); -[eva:alarm] tests/format/printf.c:366: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_183); -[eva:alarm] tests/format/printf.c:366: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_184); -[eva:alarm] tests/format/printf.c:367: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_185); -[eva:alarm] tests/format/printf.c:367: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_186); -[eva:alarm] tests/format/printf.c:368: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_187); -[eva:alarm] tests/format/printf.c:368: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_188); -[eva:alarm] tests/format/printf.c:369: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_189); -[eva:alarm] tests/format/printf.c:369: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_190); -[eva:alarm] tests/format/printf.c:372: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_191); -[eva:alarm] tests/format/printf.c:372: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_192); -[eva:alarm] tests/format/printf.c:373: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_193); -[eva:alarm] tests/format/printf.c:373: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_194); -[eva:alarm] tests/format/printf.c:374: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_195); -[eva:alarm] tests/format/printf.c:374: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_196); -[eva:alarm] tests/format/printf.c:375: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_197); -[eva:alarm] tests/format/printf.c:375: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_198); -[eva:alarm] tests/format/printf.c:376: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_199); -[eva:alarm] tests/format/printf.c:376: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_200); -[eva:alarm] tests/format/printf.c:377: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_201); -[eva:alarm] tests/format/printf.c:377: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_202); -[eva:alarm] tests/format/printf.c:378: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_203); -[eva:alarm] tests/format/printf.c:378: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_204); -[eva:alarm] tests/format/printf.c:379: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_205); -[eva:alarm] tests/format/printf.c:379: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_206); -[eva:alarm] tests/format/printf.c:380: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_207); -[eva:alarm] tests/format/printf.c:380: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_208); -[eva:alarm] tests/format/printf.c:381: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_209); -[eva:alarm] tests/format/printf.c:381: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_210); -[eva:alarm] tests/format/printf.c:382: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_211); -[eva:alarm] tests/format/printf.c:382: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_212); -[eva:alarm] tests/format/printf.c:383: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_213); -[eva:alarm] tests/format/printf.c:383: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_214); -[eva:alarm] tests/format/printf.c:384: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_215); -[eva:alarm] tests/format/printf.c:384: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_216); -[eva:alarm] tests/format/printf.c:385: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_217); -[eva:alarm] tests/format/printf.c:385: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_218); -[eva:alarm] tests/format/printf.c:386: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_219); -[eva:alarm] tests/format/printf.c:386: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_220); -[eva:alarm] tests/format/printf.c:387: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_221); -[eva:alarm] tests/format/printf.c:387: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_222); -[eva:alarm] tests/format/printf.c:390: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_223); -[eva:alarm] tests/format/printf.c:391: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_224); -[eva:alarm] tests/format/printf.c:392: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_225); -[eva:alarm] tests/format/printf.c:393: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_226); -[eva:alarm] tests/format/printf.c:394: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_227); -[eva:alarm] tests/format/printf.c:395: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_228); -[eva:alarm] tests/format/printf.c:396: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_229); -[eva:alarm] tests/format/printf.c:399: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_230); -[eva:alarm] tests/format/printf.c:400: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_231); -[eva:alarm] tests/format/printf.c:407: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_232); -[eva:alarm] tests/format/printf.c:408: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_233); -[eva:alarm] tests/format/printf.c:409: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_234); -[eva:alarm] tests/format/printf.c:410: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_235); -[eva:alarm] tests/format/printf.c:415: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_236); -[eva:alarm] tests/format/printf.c:416: Warning: - accessing uninitialized left-value. assert \initialized(&s2); -[eva:alarm] tests/format/printf.c:416: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_237); -[eva:alarm] tests/format/printf.c:419: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_238); -[eva:alarm] tests/format/printf.c:421: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_239); -[eva:alarm] tests/format/printf.c:424: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_240); -[eva:alarm] tests/format/printf.c:425: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_241); -[eva:alarm] tests/format/printf.c:426: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_242); -[eva:alarm] tests/format/printf.c:427: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_243); -[eva:alarm] tests/format/printf.c:428: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_244); -[eva:alarm] tests/format/printf.c:453: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_245); -[eva:alarm] tests/format/printf.c:454: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_246); -[eva:alarm] tests/format/printf.c:455: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_247); -[eva:alarm] tests/format/printf.c:458: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_248); -[eva:alarm] tests/format/printf.c:459: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_249); -[eva:alarm] tests/format/printf.c:460: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_250); -[eva:alarm] tests/format/printf.c:461: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_251); -[eva:alarm] tests/format/printf.c:464: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_252); -[eva:alarm] tests/format/printf.c:465: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_253); -[eva:alarm] tests/format/printf.c:466: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_254); -[eva:alarm] tests/format/printf.c:467: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_255); -[eva:alarm] tests/format/printf.c:468: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_256); -[eva:alarm] tests/format/printf.c:469: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_257); -[eva:alarm] tests/format/printf.c:470: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_258); -[eva:alarm] tests/format/printf.c:471: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_259); -[eva:alarm] tests/format/printf.c:472: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_260); -[eva:alarm] tests/format/printf.c:473: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_261); -[eva:alarm] tests/format/printf.c:476: Warning: - accessing uninitialized left-value. assert \initialized(&process_status_262); diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/ctype_macros.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/ctype_macros.res.oracle index 270dcdb0d84..bdd131d8e73 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/ctype_macros.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/ctype_macros.res.oracle @@ -2,22 +2,9 @@ [e-acsl] Warning: annotating undefined function `isupper': the generated program may miss memory instrumentation if there are memory-related annotations. -[e-acsl] tests/memory/ctype_macros.c:39: Warning: - E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/ctype.h:174: Warning: +[e-acsl] FRAMAC_SHARE/libc/ctype.h:173: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". [eva:alarm] tests/memory/ctype_macros.c:37: Warning: function __gen_e_acsl_isupper: precondition 'c_uchar_or_eof' got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/ctype.h:174: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/ctype.h:178: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/ctype.h:181: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva:alarm] FRAMAC_SHARE/libc/ctype.h:178: Warning: - function __gen_e_acsl_isupper, behavior definitely_match: postcondition 'nonzero_result' got status unknown. (Behavior may be inactive, no reduction performed.) -[eva:alarm] FRAMAC_SHARE/libc/ctype.h:181: Warning: - function __gen_e_acsl_isupper, behavior definitely_not_match: postcondition 'zero_result' got status unknown. (Behavior may be inactive, no reduction performed.) diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c index 2a3a6d2b157..cbf17bff568 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_ctype_macros.c @@ -73,60 +73,66 @@ int main(int argc, char const **argv) */ int __gen_e_acsl_isupper(int c) { - int __gen_e_acsl_at_2; - int __gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; int __retres; { int __gen_e_acsl_and; int __gen_e_acsl_or; - if (0 <= c) __gen_e_acsl_and = c <= 255; else __gen_e_acsl_and = 0; - if (__gen_e_acsl_and) __gen_e_acsl_or = 1; - else __gen_e_acsl_or = c == -1; - __e_acsl_assert(__gen_e_acsl_or,"Precondition","isupper", - "(0 <= c <= 255) || c == -1","FRAMAC_SHARE/libc/ctype.h", - 174); - } - { + int __gen_e_acsl_or_2; + int __gen_e_acsl_and_4; int __gen_e_acsl_or_3; - int __gen_e_acsl_or_4; - if (c == -1) __gen_e_acsl_or_3 = 1; + int __gen_e_acsl_active_bhvrs; + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + if (65 <= c) __gen_e_acsl_and = c <= 90; else __gen_e_acsl_and = 0; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + __gen_e_acsl_and); + if (c == -1) __gen_e_acsl_or = 1; else { - int __gen_e_acsl_and_3; - if (0 <= c) __gen_e_acsl_and_3 = c < 65; else __gen_e_acsl_and_3 = 0; - __gen_e_acsl_or_3 = __gen_e_acsl_and_3; + int __gen_e_acsl_and_2; + if (0 <= c) __gen_e_acsl_and_2 = c < 65; else __gen_e_acsl_and_2 = 0; + __gen_e_acsl_or = __gen_e_acsl_and_2; } - if (__gen_e_acsl_or_3) __gen_e_acsl_or_4 = 1; + if (__gen_e_acsl_or) __gen_e_acsl_or_2 = 1; else { - int __gen_e_acsl_and_4; - if (90 < c) __gen_e_acsl_and_4 = c <= 127; else __gen_e_acsl_and_4 = 0; - __gen_e_acsl_or_4 = __gen_e_acsl_and_4; + int __gen_e_acsl_and_3; + if (90 < c) __gen_e_acsl_and_3 = c <= 127; else __gen_e_acsl_and_3 = 0; + __gen_e_acsl_or_2 = __gen_e_acsl_and_3; } - __gen_e_acsl_at_2 = __gen_e_acsl_or_4; - } - { - int __gen_e_acsl_and_2; - if (65 <= c) __gen_e_acsl_and_2 = c <= 90; else __gen_e_acsl_and_2 = 0; - __gen_e_acsl_at = __gen_e_acsl_and_2; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + __gen_e_acsl_or_2); + if (0 <= c) __gen_e_acsl_and_4 = c <= 255; else __gen_e_acsl_and_4 = 0; + if (__gen_e_acsl_and_4) __gen_e_acsl_or_3 = 1; + else __gen_e_acsl_or_3 = c == -1; + __e_acsl_assert(__gen_e_acsl_or_3,"Precondition","isupper", + "(0 <= c <= 255) || c == -1","FRAMAC_SHARE/libc/ctype.h", + 174); + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract); + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,"Precondition","isupper", + "all behaviors disjoint","FRAMAC_SHARE/libc/ctype.h",173); } __retres = isupper(c); { - int __gen_e_acsl_implies; - int __gen_e_acsl_implies_2; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else { - int __gen_e_acsl_or_2; - if (__retres < 0) __gen_e_acsl_or_2 = 1; - else __gen_e_acsl_or_2 = __retres > 0; - __gen_e_acsl_implies = __gen_e_acsl_or_2; + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_or_4; + if (__retres < 0) __gen_e_acsl_or_4 = 1; + else __gen_e_acsl_or_4 = __retres > 0; + __e_acsl_assert(__gen_e_acsl_or_4,"Postcondition","isupper", + "definitely_match: \\result < 0 || \\result > 0", + "FRAMAC_SHARE/libc/ctype.h",178); } - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","isupper", - "\\old(\'A\' <= c <= \'Z\') ==> \\result < 0 || \\result > 0", - "FRAMAC_SHARE/libc/ctype.h",178); - if (! __gen_e_acsl_at_2) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = __retres == 0; - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","isupper", - "\\old(c == -1 || (0 <= c < \'A\') || (\'Z\' < c <= 127)) ==> \\result == 0", - "FRAMAC_SHARE/libc/ctype.h",181); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0, + "Postcondition", + "isupper", + "definitely_not_match: \\result == 0", + "FRAMAC_SHARE/libc/ctype.h", + 181); + __e_acsl_contract_clean(__gen_e_acsl_contract); return __retres; } } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c index 53c57ee9179..594eb809025 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_memalign.c @@ -54,7 +54,6 @@ int main(int argc, char const **argv) int res2 = __gen_e_acsl_posix_memalign((void **)memptr,(unsigned long)256, (unsigned long)15); - /*@ assert Eva: initialization: \initialized(memptr); */ char *p = *memptr; __e_acsl_store_block((void *)(& p),(size_t)8); __e_acsl_full_init((void *)(& p)); @@ -216,11 +215,13 @@ int main(int argc, char const **argv) */ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size) { + __e_acsl_contract_t *__gen_e_acsl_contract; int __retres; { int __gen_e_acsl_valid; int __gen_e_acsl_and; __e_acsl_store_block((void *)(& memptr),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); __gen_e_acsl_valid = __e_acsl_valid((void *)memptr,sizeof(void *), (void *)memptr,(void *)(& memptr)); __e_acsl_assert(__gen_e_acsl_valid,"Precondition","posix_memalign", @@ -254,8 +255,30 @@ int __gen_e_acsl_posix_memalign(void **memptr, size_t alignment, size_t size) "FRAMAC_SHARE/libc/stdlib.h",668); } __retres = posix_memalign(memptr,alignment,size); - __e_acsl_delete_block((void *)(& memptr)); - return __retres; + { + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == 0, + "Postcondition", + "posix_memalign", + "allocation: \\result == 0", + "FRAMAC_SHARE/libc/stdlib.h", + 680); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_or; + if (__retres < 0) __gen_e_acsl_or = 1; + else __gen_e_acsl_or = __retres > 0; + __e_acsl_assert(__gen_e_acsl_or,"Postcondition","posix_memalign", + "no_allocation: \\result < 0 || \\result > 0", + "FRAMAC_SHARE/libc/stdlib.h",685); + } + __e_acsl_contract_clean(__gen_e_acsl_contract); + __e_acsl_delete_block((void *)(& memptr)); + return __retres; + } } diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c index 384a5a75de5..a41cd36b70d 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/gen_valid_in_contract.c @@ -63,17 +63,18 @@ int main(void) */ struct list *__gen_e_acsl_f(struct list *l) { - struct list *__gen_e_acsl_at_4; - int __gen_e_acsl_at_3; struct list *__gen_e_acsl_at_2; - int __gen_e_acsl_at; + struct list *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; struct list *__retres; __e_acsl_store_block((void *)(& __retres),(size_t)8); - __e_acsl_store_block((void *)(& l),(size_t)8); - __gen_e_acsl_at_4 = l; { int __gen_e_acsl_valid; int __gen_e_acsl_or; + __e_acsl_store_block((void *)(& l),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + l == (struct list *)0); __gen_e_acsl_valid = __e_acsl_valid((void *)l,sizeof(struct list), (void *)l,(void *)(& l)); if (! __gen_e_acsl_valid) __gen_e_acsl_or = 1; @@ -101,24 +102,29 @@ struct list *__gen_e_acsl_f(struct list *l) else __gen_e_acsl_and = 0; __gen_e_acsl_or = ! __gen_e_acsl_and; } - __gen_e_acsl_at_3 = __gen_e_acsl_or; + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + __gen_e_acsl_or); } __gen_e_acsl_at_2 = l; - __gen_e_acsl_at = l == (struct list *)0; + __gen_e_acsl_at = l; __retres = f(l); { - int __gen_e_acsl_implies; - int __gen_e_acsl_implies_2; - if (! __gen_e_acsl_at) __gen_e_acsl_implies = 1; - else __gen_e_acsl_implies = __retres == __gen_e_acsl_at_2; - __e_acsl_assert(__gen_e_acsl_implies,"Postcondition","f", - "\\old(l == \\null) ==> \\result == \\old(l)", - "tests/memory/valid_in_contract.c",15); - if (! __gen_e_acsl_at_3) __gen_e_acsl_implies_2 = 1; - else __gen_e_acsl_implies_2 = __retres == __gen_e_acsl_at_4; - __e_acsl_assert(__gen_e_acsl_implies_2,"Postcondition","f", - "\\old(!\\valid{Here}(l) || !\\valid{Here}(l->next)) ==> \\result == \\old(l)", - "tests/memory/valid_in_contract.c",18); + int __gen_e_acsl_assumes_value; + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == __gen_e_acsl_at, + "Postcondition","f", + "B1: \\result == \\old(l)", + "tests/memory/valid_in_contract.c", + 15); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) __e_acsl_assert(__retres == __gen_e_acsl_at_2, + "Postcondition","f", + "B2: \\result == \\old(l)", + "tests/memory/valid_in_contract.c", + 18); + __e_acsl_contract_clean(__gen_e_acsl_contract); __e_acsl_delete_block((void *)(& l)); __e_acsl_delete_block((void *)(& __retres)); return __retres; diff --git a/src/plugins/e-acsl/tests/memory/oracle_ci/memalign.res.oracle b/src/plugins/e-acsl/tests/memory/oracle_ci/memalign.res.oracle index bcfe10a812c..a08399a71e0 100644 --- a/src/plugins/e-acsl/tests/memory/oracle_ci/memalign.res.oracle +++ b/src/plugins/e-acsl/tests/memory/oracle_ci/memalign.res.oracle @@ -4,30 +4,21 @@ if there are memory-related annotations. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:665: Warning: E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. -[e-acsl] tests/memory/memalign.c:38: Warning: - E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -[e-acsl] tests/memory/memalign.c:38: Warning: - E-ACSL construct `disjoint behaviors' is not yet supported. - Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdlib.h:669: Warning: - E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:675: Warning: E-ACSL construct `predicate performing read accesses' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdlib.h:675: Warning: - E-ACSL construct `assigns clause in behavior' is not yet supported. - Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/stdlib.h:682: Warning: E-ACSL construct `predicate performing read accesses' is not yet supported. Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:665: Warning: + Some assumes clauses couldn't be translated. + Ignoring complete and disjoint behaviors annotations. +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:665: Warning: + E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:679: Warning: + E-ACSL construct `\fresh' is not yet supported. Ignoring annotation. +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:680: Warning: + E-ACSL construct `assigns clause in behavior' is not yet supported. + Ignoring annotation. [e-acsl] translation done in project "e-acsl". -[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:668: Warning: - function __e_acsl_assert: precondition got status unknown. -[eva] FRAMAC_SHARE/libc/stdlib.h:665: Warning: - ignoring unsupported \allocates clause -[eva:alarm] FRAMAC_SHARE/libc/stdlib.h:679: Warning: - function __gen_e_acsl_posix_memalign, behavior allocation: postcondition 'allocation' got status unknown. -[eva:alarm] tests/memory/memalign.c:14: Warning: - accessing uninitialized left-value. assert \initialized(memptr); diff --git a/src/plugins/e-acsl/tests/special/oracle_ci/e-acsl-valid.res.oracle b/src/plugins/e-acsl/tests/special/oracle_ci/e-acsl-valid.res.oracle index 504ec1ce5e1..2a20efd543f 100644 --- a/src/plugins/e-acsl/tests/special/oracle_ci/e-acsl-valid.res.oracle +++ b/src/plugins/e-acsl/tests/special/oracle_ci/e-acsl-valid.res.oracle @@ -1,18 +1,15 @@ [eva:alarm] tests/special/e-acsl-valid.c:37: Warning: function f: precondition \valid(y) got status unknown. [e-acsl] beginning translation. -[e-acsl] tests/special/e-acsl-valid.c:25: Warning: +[e-acsl] tests/special/e-acsl-valid.c:28: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] tests/special/e-acsl-valid.c:26: Warning: E-ACSL construct `variant' is not yet supported. Ignoring annotation. -[e-acsl] tests/special/e-acsl-valid.c:26: Warning: - E-ACSL construct `complete behaviors' is not yet supported. - Ignoring annotation. -[e-acsl] tests/special/e-acsl-valid.c:26: Warning: - E-ACSL construct `disjoint behaviors' is not yet supported. +[e-acsl] tests/special/e-acsl-valid.c:24: Warning: + E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. -[e-acsl] tests/special/e-acsl-valid.c:10: Warning: +[e-acsl] tests/special/e-acsl-valid.c:12: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c index 1df7f9c8859..890e84bc928 100644 --- a/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c +++ b/src/plugins/e-acsl/tests/special/oracle_ci/gen_e-acsl-valid.c @@ -100,19 +100,97 @@ int main(void) */ void __gen_e_acsl_f(int *x, int *y) { + int *__gen_e_acsl_at_4; + int *__gen_e_acsl_at_3; + long __gen_e_acsl_at_2; + int *__gen_e_acsl_at; + __e_acsl_contract_t *__gen_e_acsl_contract; { int __gen_e_acsl_valid; + int __gen_e_acsl_active_bhvrs; __e_acsl_store_block((void *)(& y),(size_t)8); __e_acsl_store_block((void *)(& x),(size_t)8); + __gen_e_acsl_contract = __e_acsl_contract_init((size_t)2); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)0, + *x == 1); + __e_acsl_contract_set_behavior_assumes(__gen_e_acsl_contract,(size_t)1, + *x == 0); __gen_e_acsl_valid = __e_acsl_valid((void *)y,sizeof(int),(void *)y, (void *)(& y)); __e_acsl_assert(__gen_e_acsl_valid,"Precondition","f","\\valid(y)", "tests/special/e-acsl-valid.c",10); + __e_acsl_assert(*x >= 0,"Precondition","f","*x >= 0", + "tests/special/e-acsl-valid.c",11); + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract); + __e_acsl_assert(__gen_e_acsl_active_bhvrs >= 1,"Precondition","f", + "all behaviors complete","tests/special/e-acsl-valid.c", + 24); + __gen_e_acsl_active_bhvrs = __e_acsl_contract_partial_count_all_behaviors + ((__e_acsl_contract_t const *)__gen_e_acsl_contract); + __e_acsl_assert(__gen_e_acsl_active_bhvrs <= 1,"Precondition","f", + "all behaviors disjoint","tests/special/e-acsl-valid.c", + 24); + } + __gen_e_acsl_at_4 = x; + __gen_e_acsl_at_3 = x; + { + int __gen_e_acsl_valid_read; + __gen_e_acsl_valid_read = __e_acsl_valid_read((void *)x,sizeof(int), + (void *)x,(void *)(& x)); + __e_acsl_assert(__gen_e_acsl_valid_read,"RTE","f", + "mem_access: \\valid_read(x)", + "tests/special/e-acsl-valid.c",12); + __gen_e_acsl_at_2 = (long)*x; } + __gen_e_acsl_at = x; f(x,y); - __e_acsl_delete_block((void *)(& y)); - __e_acsl_delete_block((void *)(& x)); - return; + { + int __gen_e_acsl_valid_read_2; + int __gen_e_acsl_assumes_value; + __gen_e_acsl_valid_read_2 = __e_acsl_valid_read((void *)__gen_e_acsl_at, + sizeof(int), + (void *)__gen_e_acsl_at, + (void *)(& __gen_e_acsl_at)); + __e_acsl_assert(__gen_e_acsl_valid_read_2,"RTE","f", + "mem_access: \\valid_read(__gen_e_acsl_at)", + "tests/special/e-acsl-valid.c",12); + __e_acsl_assert((long)*__gen_e_acsl_at == __gen_e_acsl_at_2 + 1L, + "Postcondition","f","*\\old(x) == \\old(*x) + 1", + "tests/special/e-acsl-valid.c",12); + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)0); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_valid_read_3; + __gen_e_acsl_valid_read_3 = __e_acsl_valid_read((void *)__gen_e_acsl_at_3, + sizeof(int), + (void *)__gen_e_acsl_at_3, + (void *)(& __gen_e_acsl_at_3)); + __e_acsl_assert(__gen_e_acsl_valid_read_3,"RTE","f", + "mem_access: \\valid_read(__gen_e_acsl_at_3)", + "tests/special/e-acsl-valid.c",17); + __e_acsl_assert(*__gen_e_acsl_at_3 < 0,"Postcondition","f", + "b1: *\\old(x) < 0","tests/special/e-acsl-valid.c",17); + } + __gen_e_acsl_assumes_value = __e_acsl_contract_get_behavior_assumes + ((__e_acsl_contract_t const *)__gen_e_acsl_contract,(size_t)1); + if (__gen_e_acsl_assumes_value) { + int __gen_e_acsl_valid_read_4; + __gen_e_acsl_valid_read_4 = __e_acsl_valid_read((void *)__gen_e_acsl_at_4, + sizeof(int), + (void *)__gen_e_acsl_at_4, + (void *)(& __gen_e_acsl_at_4)); + __e_acsl_assert(__gen_e_acsl_valid_read_4,"RTE","f", + "mem_access: \\valid_read(__gen_e_acsl_at_4)", + "tests/special/e-acsl-valid.c",20); + __e_acsl_assert(*__gen_e_acsl_at_4 == 1,"Postcondition","f", + "b2: *\\old(x) == 1","tests/special/e-acsl-valid.c",20); + } + __e_acsl_contract_clean(__gen_e_acsl_contract); + __e_acsl_delete_block((void *)(& y)); + __e_acsl_delete_block((void *)(& x)); + return; + } } diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/t_getenv.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle_ci/t_getenv.res.oracle index b55cb5a92ea..466e50c6150 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/t_getenv.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/t_getenv.res.oracle @@ -5,7 +5,7 @@ [e-acsl] FRAMAC_SHARE/libc/stdlib.h:486: Warning: E-ACSL construct `logic functions with labels' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/stdlib.h:486: Warning: +[e-acsl] FRAMAC_SHARE/libc/stdlib.h:485: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] translation done in project "e-acsl". diff --git a/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle b/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle index c88bb93bb61..101a07c7fb6 100644 --- a/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle +++ b/src/plugins/e-acsl/tests/temporal/oracle_ci/t_memcpy.res.oracle @@ -24,7 +24,7 @@ Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: E-ACSL construct `\separated' is not yet supported. Ignoring annotation. -[e-acsl] FRAMAC_SHARE/libc/string.h:95: Warning: +[e-acsl] FRAMAC_SHARE/libc/string.h:92: Warning: E-ACSL construct `assigns clause in behavior' is not yet supported. Ignoring annotation. [e-acsl] FRAMAC_SHARE/libc/string.h:98: Warning: -- GitLab From 8c497fbfe604218e1e866c2f24558a4b9d704e3d Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:36:12 +0200 Subject: [PATCH 217/255] [eacsl:doc] Update reference manual to add support of complete and disjoint behavior --- src/plugins/e-acsl/doc/refman/changes_modern.tex | 2 ++ src/plugins/e-acsl/doc/refman/fn_behavior.tex | 6 +++--- src/plugins/e-acsl/doc/refman/intro_modern.tex | 3 +-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/plugins/e-acsl/doc/refman/changes_modern.tex b/src/plugins/e-acsl/doc/refman/changes_modern.tex index 4f0069fb4e7..9e419b0fc1d 100644 --- a/src/plugins/e-acsl/doc/refman/changes_modern.tex +++ b/src/plugins/e-acsl/doc/refman/changes_modern.tex @@ -137,6 +137,8 @@ in \lstinline|\\at|} \item \changeinsection{reals}{support of rational numbers and operations} \item \changeinsection{fn-behavior}{remove abrupt clauses from the list of exceptions} +\item \changeinsection{fn-behavior}{support of \lstinline|complete behaviors| + and \lstinline|disjoint behaviors|} \item \changeinsection{statement_contract}{remove abrupt clauses from the list of exceptions} \item \changeinsection{abrupt}{add grammar for abrupt termination} diff --git a/src/plugins/e-acsl/doc/refman/fn_behavior.tex b/src/plugins/e-acsl/doc/refman/fn_behavior.tex index cf6a3ebb981..6db1b9dfa97 100644 --- a/src/plugins/e-acsl/doc/refman/fn_behavior.tex +++ b/src/plugins/e-acsl/doc/refman/fn_behavior.tex @@ -1,7 +1,7 @@ \begin{syntax} [ function-contract ] ::= requires-clause* { decreases-clause? } simple-clause* - named-behavior* { completeness-clause* } + named-behavior* completeness-clause* \ requires-clause ::= "requires" pred ";" \ @@ -24,6 +24,6 @@ \ assumes-clause ::= "assumes" pred ";" \ - { completeness-clause } ::= { "complete" "behaviors" (id (","id)*)? ";" } ; - | { "disjoint" "behaviors" (id (","id)*)? ";" } + completeness-clause ::= "complete" "behaviors" (id (","id)*)? ";" + | "disjoint" "behaviors" (id (","id)*)? ";" \end{syntax} diff --git a/src/plugins/e-acsl/doc/refman/intro_modern.tex b/src/plugins/e-acsl/doc/refman/intro_modern.tex index 869c0d0e427..ef546063d84 100644 --- a/src/plugins/e-acsl/doc/refman/intro_modern.tex +++ b/src/plugins/e-acsl/doc/refman/intro_modern.tex @@ -70,8 +70,7 @@ currently implemented into the \framac's \eacsl plug-in. & assigns \\ & allocates \\ & decreases \\ - & abrupt termination \\ - & complete and disjoint behaviors + & abrupt termination \\ \hline \end{tabular} -- GitLab From 217dc987f3c98832ea09636c96e8c061415d5932 Mon Sep 17 00:00:00 2001 From: Basile Desloges <basile.desloges@cea.fr> Date: Tue, 22 Sep 2020 10:42:17 +0200 Subject: [PATCH 218/255] [eacsl:doc] Update changelog --- src/plugins/e-acsl/doc/Changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/e-acsl/doc/Changelog b/src/plugins/e-acsl/doc/Changelog index e6b20fea46e..7f0e79e4a4a 100644 --- a/src/plugins/e-acsl/doc/Changelog +++ b/src/plugins/e-acsl/doc/Changelog @@ -25,6 +25,8 @@ Plugin E-ACSL <next-release> ############################ +- E-ACSL [2020-09-22] Support of complete and disjoint behavior + (frama-c/e-acsl#92 and frama-c/e-acsl#27). -* runtime [2020-09-15] Fix wrong value returned for the stack size in the segment memory model (frama-c/e-acsl#126). - E-ACSL [2020-09-15] Deprecate -e-acsl-full-mmodel in favor of -- GitLab From d898ed1fe9e262e8c8f79a8abe743f6e315b00f1 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 23 Sep 2020 17:05:06 +0200 Subject: [PATCH 219/255] [Ptests] add -check flag immediately after binary name --- ptests/ptests.ml | 84 ++++++++++++++++++++++++++++++------------------ 1 file changed, 52 insertions(+), 32 deletions(-) diff --git a/ptests/ptests.ml b/ptests/ptests.ml index 4b3f72cada3..8e6da4e9482 100644 --- a/ptests/ptests.ml +++ b/ptests/ptests.ml @@ -80,6 +80,19 @@ let str_string_match regex s n = let res = Str.string_match regex s n in Mutex.unlock str_mutex; res +(* If regex1 matches inside s, adds suffix to the first occurrence of regex2. + If matched, returns (replaced string, true), otherwise returns (s, false). +*) +let str_string_match_and_replace regex1 regex2 ~suffix s = + Mutex.lock str_mutex; + let replaced_str, matched = + if Str.string_match regex1 s 0 then + Str.replace_first regex2 ("\\1" ^ suffix) s, true + else s, false + in + Mutex.unlock str_mutex; + (replaced_str, matched) + let str_split regex s = Mutex.lock str_mutex; let res = Str.split regex s in @@ -1004,40 +1017,47 @@ let get_macros cmd = in Macros.add_list macros cmd.macros +let contains_frama_c_binary_name = + Str.regexp "[^( ]*\\(toplevel\\|viewer\\|frama-c-gui\\|frama-c[^-]\\).*" + +let frama_c_binary_name = + Str.regexp "\\([^ ]*\\(toplevel\\|viewer\\|frama-c-gui\\|frama-c\\)\\(\\.opt\\|\\.byte\\|\\.exe\\)?\\)" + let basic_command_string = - let contains_toplevel_or_frama_c = - Str.regexp "[^( ]*\\(\\(toplevel\\)\\|\\(viewer\\)\\|\\(frama-c-gui\\)\\|\\(frama-c[^-]\\)\\).*" - in fun command -> - let macros = get_macros command in - let logfiles = List.map (Macros.expand macros) command.log_files in - command.log_files <- logfiles; - let has_ptest_file_t, toplevel = - Macros.does_expand macros command.toplevel - in - let has_ptest_file_o, options = Macros.does_expand macros command.options in - let toplevel = if !use_byte then opt_to_byte toplevel else toplevel in - let options = - if str_string_match contains_toplevel_or_frama_c command.toplevel 0 - then begin - let opt_modules = Macros.expand macros - (Macros.get "PTEST_LOAD_MODULES" macros) in - let opt_pre = Macros.expand macros !additional_options_pre in - let opt_post = Macros.expand macros !additional_options in - "-check " ^ opt_modules ^ " " ^ opt_pre ^ " " ^ options ^ " " ^ opt_post - end else options - in - let options = if !use_byte then opt_to_byte_options options else options in - let raw_command = - if has_ptest_file_t || has_ptest_file_o || command.execnow then - toplevel ^ " " ^ options - else begin - let file = Filename.sanitize @@ get_ptest_file command in - toplevel ^ " " ^ file ^ " " ^ options - end - in - if command.timeout = "" then raw_command - else "ulimit -t " ^ command.timeout ^ " && " ^ raw_command + let macros = get_macros command in + let logfiles = List.map (Macros.expand macros) command.log_files in + command.log_files <- logfiles; + let has_ptest_file_t, toplevel = + Macros.does_expand macros command.toplevel + in + let has_ptest_file_o, options = Macros.does_expand macros command.options in + let toplevel = if !use_byte then opt_to_byte toplevel else toplevel in + let toplevel, contains_frama_c_binary = + str_string_match_and_replace contains_frama_c_binary_name + frama_c_binary_name ~suffix:" -check" toplevel + in + let options = + if contains_frama_c_binary + then begin + let opt_modules = Macros.expand macros + (Macros.get "PTEST_LOAD_MODULES" macros) in + let opt_pre = Macros.expand macros !additional_options_pre in + let opt_post = Macros.expand macros !additional_options in + opt_modules ^ " " ^ opt_pre ^ " " ^ options ^ " " ^ opt_post + end else options + in + let options = if !use_byte then opt_to_byte_options options else options in + let raw_command = + if has_ptest_file_t || has_ptest_file_o || command.execnow then + toplevel ^ " " ^ options + else begin + let file = Filename.sanitize @@ get_ptest_file command in + toplevel ^ " " ^ file ^ " " ^ options + end + in + if command.timeout = "" then raw_command + else "ulimit -t " ^ command.timeout ^ " && " ^ raw_command (* Searches for executable [s] in the directories contained in the PATH environment variable. Returns [None] if not found, or -- GitLab From 0b21dd1ca1a97567e5bb60053d8a55d260714b2c Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Sat, 1 Aug 2020 12:29:55 +0200 Subject: [PATCH 220/255] [Eva] add tests for slevel annotations --- .../oracle/partitioning-annots.0.res.oracle | 1 + .../oracle/partitioning-annots.1.res.oracle | 1 + .../oracle/partitioning-annots.2.res.oracle | 1 + .../oracle/partitioning-annots.3.res.oracle | 1 + .../oracle/partitioning-annots.4.res.oracle | 1 + .../oracle/partitioning-annots.5.res.oracle | 1 + .../oracle/partitioning-annots.6.res.oracle | 29 +++++++++++++++ tests/value/partitioning-annots.c | 37 ++++++++++++++++++- 8 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 tests/value/oracle/partitioning-annots.6.res.oracle diff --git a/tests/value/oracle/partitioning-annots.0.res.oracle b/tests/value/oracle/partitioning-annots.0.res.oracle index 49addb21756..a9fae743efd 100644 --- a/tests/value/oracle/partitioning-annots.0.res.oracle +++ b/tests/value/oracle/partitioning-annots.0.res.oracle @@ -4,6 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization k ∈ {0} + nondet ∈ [--..--] [eva:loop-unroll] tests/value/partitioning-annots.c:26: loop not completely unrolled [eva] tests/value/partitioning-annots.c:26: starting to merge loop iterations diff --git a/tests/value/oracle/partitioning-annots.1.res.oracle b/tests/value/oracle/partitioning-annots.1.res.oracle index 85ae6a30dc6..206434355ca 100644 --- a/tests/value/oracle/partitioning-annots.1.res.oracle +++ b/tests/value/oracle/partitioning-annots.1.res.oracle @@ -4,6 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization k ∈ {0} + nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. Called from tests/value/partitioning-annots.c:69. [eva] using specification for function Frama_C_interval diff --git a/tests/value/oracle/partitioning-annots.2.res.oracle b/tests/value/oracle/partitioning-annots.2.res.oracle index 343ee7f5639..e12cf3849fc 100644 --- a/tests/value/oracle/partitioning-annots.2.res.oracle +++ b/tests/value/oracle/partitioning-annots.2.res.oracle @@ -4,6 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization k ∈ {0} + nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. Called from tests/value/partitioning-annots.c:69. [eva] using specification for function Frama_C_interval diff --git a/tests/value/oracle/partitioning-annots.3.res.oracle b/tests/value/oracle/partitioning-annots.3.res.oracle index f0e69a170fe..6032746a9c9 100644 --- a/tests/value/oracle/partitioning-annots.3.res.oracle +++ b/tests/value/oracle/partitioning-annots.3.res.oracle @@ -4,6 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization k ∈ {0} + nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_loop_split. Called from tests/value/partitioning-annots.c:103. [eva] using specification for function Frama_C_interval diff --git a/tests/value/oracle/partitioning-annots.4.res.oracle b/tests/value/oracle/partitioning-annots.4.res.oracle index 81e33a3bd19..e950a97cac1 100644 --- a/tests/value/oracle/partitioning-annots.4.res.oracle +++ b/tests/value/oracle/partitioning-annots.4.res.oracle @@ -4,6 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization k ∈ {0} + nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. Called from tests/value/partitioning-annots.c:125. [eva] using specification for function Frama_C_interval diff --git a/tests/value/oracle/partitioning-annots.5.res.oracle b/tests/value/oracle/partitioning-annots.5.res.oracle index 801d0587fd9..c03065ca696 100644 --- a/tests/value/oracle/partitioning-annots.5.res.oracle +++ b/tests/value/oracle/partitioning-annots.5.res.oracle @@ -4,6 +4,7 @@ [eva] Initial state computed [eva:initial-state] Values of globals at initialization k ∈ {0} + nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. Called from tests/value/partitioning-annots.c:125. [eva] using specification for function Frama_C_interval diff --git a/tests/value/oracle/partitioning-annots.6.res.oracle b/tests/value/oracle/partitioning-annots.6.res.oracle new file mode 100644 index 00000000000..fa1a8365994 --- /dev/null +++ b/tests/value/oracle/partitioning-annots.6.res.oracle @@ -0,0 +1,29 @@ +[kernel] Parsing tests/value/partitioning-annots.c (with preprocessing) +[eva] Analyzing a complete application starting at test_slevel +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + k ∈ {0} + nondet ∈ [--..--] +[eva] tests/value/partitioning-annots.c:148: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:153: starting to merge loop iterations +[eva] Recording results for test_slevel +[eva] done for function test_slevel +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function test_slevel: + a[0..9] ∈ {42} + b[0..9] ∈ {42} or UNINITIALIZED + c[0..3] ∈ {33; 42} + [4..9] ∈ {33; 42} or UNINITIALIZED + d[0..9] ∈ {33; 42} +[from] Computing for function test_slevel +[from] Done for function test_slevel +[from] ====== DEPENDENCIES COMPUTED ====== + These dependencies hold at termination for the executions that terminate: +[from] Function test_slevel: + NO EFFECTS +[from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function test_slevel: + a[0..9]; b[0..9]; c[0..9]; d[0..9]; i; i_0; i_1; i_2 +[inout] Inputs for function test_slevel: + nondet diff --git a/tests/value/partitioning-annots.c b/tests/value/partitioning-annots.c index 10dd8680c38..6467e0b7192 100644 --- a/tests/value/partitioning-annots.c +++ b/tests/value/partitioning-annots.c @@ -6,13 +6,13 @@ STDOPT: #"-main test_loop_split -eva-partition-history 1" STDOPT: #"-main test_history -eva-partition-history 0" STDOPT: #"-main test_history -eva-partition-history 1" + STDOPT: #"-main test_slevel" */ #include "__fc_builtin.h" #define N 10 - void test_unroll() { int a[N], b[N], c[N], d[2*N], e[N]; @@ -134,8 +134,43 @@ void test_history() k = k / j; } +volatile nondet; + +void test_slevel() +{ + int a[N], b[N], c[N], d[N]; + //@slevel 10; + for (int i = 0; i < N; i++) { + a[i] = 42; + } + + //@slevel default; + for (int i = 0; i < N; i++) { + b[i] = 42; + } + + //@slevel 20; + for (int i = 0; i < N; i++) { + if (nondet) + c[i] = 42; + else + c[i] = 33; + } + + //@slevel 20; + for (int i = 0; i < N; i++) { + if (nondet) + d[i] = 42; + else + d[i] = 33; + //@slevel merge; + ; // Otherwise previous annotation is ignored + } +} + void main(void) { + test_slevel(); test_unroll(); test_split(); test_loop_split(); -- GitLab From 6d56fa271f9238382861dfb151ad21394186bbb6 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Sat, 1 Aug 2020 13:57:04 +0200 Subject: [PATCH 221/255] [Eva] Add "slevel full" annotation --- src/plugins/value/partitioning/per_stmt_slevel.ml | 7 ++++++- src/plugins/value/utils/eva_annotations.ml | 5 +++++ src/plugins/value/utils/eva_annotations.mli | 1 + src/plugins/value/value_parameters.ml | 13 +++++++++++++ src/plugins/value/value_parameters.mli | 2 +- .../value/oracle/partitioning-annots.6.res.oracle | 7 ++++++- tests/value/partitioning-annots.c | 14 ++++++++++++-- 7 files changed, 44 insertions(+), 5 deletions(-) diff --git a/src/plugins/value/partitioning/per_stmt_slevel.ml b/src/plugins/value/partitioning/per_stmt_slevel.ml index a049166ade1..4c7f2a7c107 100644 --- a/src/plugins/value/partitioning/per_stmt_slevel.ml +++ b/src/plugins/value/partitioning/per_stmt_slevel.ml @@ -90,6 +90,11 @@ let compute kf = if debug then Format.printf "Vising split %d, pushing %d@." s.sid i; Cil_datatype.Stmt.Hashtbl.add h_local s i; Stack.push i local_slevel; + | Some SlevelFull -> + let cap = Value_parameters.SlevelFullCap.get () in + if debug then Format.printf "Vising split %d, pushing %d@." s.sid cap; + Cil_datatype.Stmt.Hashtbl.add h_local s cap; + Stack.push cap local_slevel; | Some SlevelDefault -> let top = Stack.pop local_slevel in if debug then @@ -102,7 +107,7 @@ let compute kf = and post s = match get_slevel_annot s with | None | Some SlevelMerge -> () - | Some (SlevelLocal _) -> + | Some (SlevelLocal _) | Some SlevelFull -> if debug then Format.printf "Leaving split %d, poping@." s.sid; ignore (Stack.pop local_slevel); | Some SlevelDefault -> diff --git a/src/plugins/value/utils/eva_annotations.ml b/src/plugins/value/utils/eva_annotations.ml index 59d82523218..b3ea2a316b4 100644 --- a/src/plugins/value/utils/eva_annotations.ml +++ b/src/plugins/value/utils/eva_annotations.ml @@ -27,6 +27,7 @@ type slevel_annotation = | SlevelMerge | SlevelDefault | SlevelLocal of int + | SlevelFull type unroll_annotation = term option @@ -112,6 +113,7 @@ module Slevel = Register (struct let parse ~typing_context:_ = function | [{lexpr_node = PLvar "default"}] -> SlevelDefault | [{lexpr_node = PLvar "merge"}] -> SlevelMerge + | [{lexpr_node = PLvar "full"}] -> SlevelFull | [{lexpr_node = PLconstant (IntConstant i)}] -> let i = try int_of_string i @@ -125,12 +127,14 @@ module Slevel = Register (struct | SlevelDefault -> Ext_terms [Logic_const.tstring "default"] | SlevelMerge -> Ext_terms [Logic_const.tstring "merge"] | SlevelLocal i -> Ext_terms [Logic_const.tinteger i] + | SlevelFull -> Ext_terms [Logic_const.tstring "full"] let import = function | Ext_terms [{term_node}] -> begin match term_node with | TConst (LStr "default") -> SlevelDefault | TConst (LStr "merge") -> SlevelMerge + | TConst (LStr "full") -> SlevelFull | TConst (Integer (i, _)) -> SlevelLocal (Integer.to_int i) | _ -> SlevelDefault (* be kind. Someone is bound to write a visitor that will simplify our term into something @@ -142,6 +146,7 @@ module Slevel = Register (struct | SlevelDefault -> Format.pp_print_string fmt "default" | SlevelMerge -> Format.pp_print_string fmt "merge" | SlevelLocal i -> Format.pp_print_int fmt i + | SlevelFull -> Format.pp_print_string fmt "full" end) module SimpleTermAnnotation = diff --git a/src/plugins/value/utils/eva_annotations.mli b/src/plugins/value/utils/eva_annotations.mli index 6a7ba48f7be..d1435ab8a19 100644 --- a/src/plugins/value/utils/eva_annotations.mli +++ b/src/plugins/value/utils/eva_annotations.mli @@ -32,6 +32,7 @@ type slevel_annotation = | SlevelMerge | SlevelDefault | SlevelLocal of int + | SlevelFull type unroll_annotation = Cil_types.term option diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 1446dd8d796..9027143e2b7 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -717,6 +717,19 @@ module SlevelFunction = end) let () = add_precision_dep SlevelFunction.parameter +let () = Parameter_customize.set_group precision_tuning +module SlevelFullCap = + Int + (struct + let option_name = "-eva-slevel-full-cap" + let arg_name = "n" + let default = 10000 + let help = + "defines the cap for slevel full annotations." + end) +let () = add_precision_dep SlevelFullCap.parameter +let () = SlevelFullCap.set_range 0 max_int + let () = Parameter_customize.set_group precision_tuning module SlevelMergeAfterLoop = Kernel_function_set diff --git a/src/plugins/value/value_parameters.mli b/src/plugins/value/value_parameters.mli index 6e126920273..b9538e69ce9 100644 --- a/src/plugins/value/value_parameters.mli +++ b/src/plugins/value/value_parameters.mli @@ -76,7 +76,7 @@ module SemanticUnrollingLevel: Parameter_sig.Int module SlevelFunction: Parameter_sig.Map with type key = Cil_types.kernel_function and type value = int - +module SlevelFullCap: Parameter_sig.Int module SlevelMergeAfterLoop: Parameter_sig.Kernel_function_set module MinLoopUnroll : Parameter_sig.Int diff --git a/tests/value/oracle/partitioning-annots.6.res.oracle b/tests/value/oracle/partitioning-annots.6.res.oracle index fa1a8365994..e514eb8f817 100644 --- a/tests/value/oracle/partitioning-annots.6.res.oracle +++ b/tests/value/oracle/partitioning-annots.6.res.oracle @@ -7,6 +7,8 @@ nondet ∈ [--..--] [eva] tests/value/partitioning-annots.c:148: starting to merge loop iterations [eva] tests/value/partitioning-annots.c:153: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:173: + Trace partitioning superposing up to 100 states [eva] Recording results for test_slevel [eva] done for function test_slevel [eva] ====== VALUES COMPUTED ====== @@ -16,6 +18,9 @@ c[0..3] ∈ {33; 42} [4..9] ∈ {33; 42} or UNINITIALIZED d[0..9] ∈ {33; 42} + e[0..5] ∈ {33; 42} + [6..9] ∈ {33; 42} or UNINITIALIZED + [10..99] ∈ UNINITIALIZED [from] Computing for function test_slevel [from] Done for function test_slevel [from] ====== DEPENDENCIES COMPUTED ====== @@ -24,6 +29,6 @@ NO EFFECTS [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function test_slevel: - a[0..9]; b[0..9]; c[0..9]; d[0..9]; i; i_0; i_1; i_2 + a[0..9]; b[0..9]; c[0..9]; d[0..9]; e[0..9]; i; i_0; i_1; i_2; i_3 [inout] Inputs for function test_slevel: nondet diff --git a/tests/value/partitioning-annots.c b/tests/value/partitioning-annots.c index 6467e0b7192..019ae54c958 100644 --- a/tests/value/partitioning-annots.c +++ b/tests/value/partitioning-annots.c @@ -6,7 +6,7 @@ STDOPT: #"-main test_loop_split -eva-partition-history 1" STDOPT: #"-main test_history -eva-partition-history 0" STDOPT: #"-main test_history -eva-partition-history 1" - STDOPT: #"-main test_slevel" + STDOPT: #"-main test_slevel -eva-slevel-full-cap 100" */ #include "__fc_builtin.h" @@ -138,7 +138,7 @@ volatile nondet; void test_slevel() { - int a[N], b[N], c[N], d[N]; + int a[N], b[N], c[N], d[N], e[100]; //@slevel 10; for (int i = 0; i < N; i++) { a[i] = 42; @@ -166,6 +166,16 @@ void test_slevel() //@slevel merge; ; // Otherwise previous annotation is ignored } + + //@slevel 0; + ; + //@slevel full; + for (int i = 0; i < N; i++) { + if (nondet) + e[i] = 42; + else + e[i] = 33; + } } void main(void) -- GitLab From 8caeb4ef0be681c0aadd553635ca8205e46f1ba7 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Sat, 1 Aug 2020 14:30:24 +0200 Subject: [PATCH 222/255] [Eva] add "loop unroll full" annotation --- .../partitioning/partitioning_parameters.ml | 4 +- src/plugins/value/utils/eva_annotations.ml | 45 ++++++++++--------- src/plugins/value/utils/eva_annotations.mli | 4 +- .../oracle/partitioning-annots.0.res.oracle | 18 +++++++- .../oracle/partitioning-annots.1.res.oracle | 34 +++++++------- .../oracle/partitioning-annots.2.res.oracle | 42 ++++++++--------- .../oracle/partitioning-annots.3.res.oracle | 42 ++++++++--------- .../oracle/partitioning-annots.4.res.oracle | 8 ++-- .../oracle/partitioning-annots.5.res.oracle | 8 ++-- .../oracle/partitioning-annots.6.res.oracle | 6 +-- tests/value/partitioning-annots.c | 8 +++- 11 files changed, 122 insertions(+), 97 deletions(-) diff --git a/src/plugins/value/partitioning/partitioning_parameters.ml b/src/plugins/value/partitioning/partitioning_parameters.ml index f2f107b7d71..22658b485c9 100644 --- a/src/plugins/value/partitioning/partitioning_parameters.ml +++ b/src/plugins/value/partitioning/partitioning_parameters.ml @@ -83,8 +83,8 @@ struct in match get_unroll_annot stmt with | [] -> warn_no_loop_unroll stmt; default - | [None] -> Partition.IntLimit default_loop_unroll - | [(Some t)] -> begin + | [UnrollFull] -> Partition.IntLimit default_loop_unroll + | [UnrollAmount t] -> begin (* Inlines the value of const variables in [t]. *) let global_init vi = try (Globals.Vars.find vi).init with Not_found -> None diff --git a/src/plugins/value/utils/eva_annotations.ml b/src/plugins/value/utils/eva_annotations.ml index b3ea2a316b4..7ba7cc2f97a 100644 --- a/src/plugins/value/utils/eva_annotations.ml +++ b/src/plugins/value/utils/eva_annotations.ml @@ -29,7 +29,9 @@ type slevel_annotation = | SlevelLocal of int | SlevelFull -type unroll_annotation = term option +type unroll_annotation = + | UnrollAmount of Cil_types.term + | UnrollFull type flow_annotation = | FlowSplit of term @@ -169,31 +171,32 @@ struct let print = Printer.pp_term end -module OptionalTermAnnotation = -struct - type t = term option +module Unroll = Register (struct + type t = unroll_annotation - let parse ~typing_context = function - | [] -> None - | [t] -> - let open Logic_typing in - Some (typing_context.type_term typing_context typing_context.pre_state t) - | _ -> raise Parse_error + let name = "unroll" + let is_loop_annot = true - let export t = - Ext_terms (Extlib.list_of_opt t) + let parse ~typing_context = function + | [{lexpr_node = PLvar "full"}] -> UnrollFull + | [t] -> + let open Logic_typing in + UnrollAmount + (typing_context.type_term typing_context typing_context.pre_state t) + | _ -> raise Parse_error - let import = function - | Ext_terms l -> Extlib.opt_of_list l - | _ -> assert false + let export = function + | UnrollFull -> Ext_terms [Logic_const.tstring "full"] + | UnrollAmount t -> Ext_terms [t] - let print = Pretty_utils.pp_opt Printer.pp_term -end + let import = function + | Ext_terms [{term_node=TConst (LStr "full")}] -> UnrollFull + | Ext_terms [t] -> UnrollAmount t + | _ -> assert false -module Unroll = Register (struct - include OptionalTermAnnotation - let name = "unroll" - let is_loop_annot = true + let print fmt = function + | UnrollFull -> Format.pp_print_string fmt "full" + | UnrollAmount t -> Printer.pp_term fmt t end) module Split = Register (struct diff --git a/src/plugins/value/utils/eva_annotations.mli b/src/plugins/value/utils/eva_annotations.mli index d1435ab8a19..ab29469ee71 100644 --- a/src/plugins/value/utils/eva_annotations.mli +++ b/src/plugins/value/utils/eva_annotations.mli @@ -34,7 +34,9 @@ type slevel_annotation = | SlevelLocal of int | SlevelFull -type unroll_annotation = Cil_types.term option +type unroll_annotation = + | UnrollAmount of Cil_types.term + | UnrollFull type flow_annotation = | FlowSplit of Cil_types.term diff --git a/tests/value/oracle/partitioning-annots.0.res.oracle b/tests/value/oracle/partitioning-annots.0.res.oracle index a9fae743efd..6e5eb5de077 100644 --- a/tests/value/oracle/partitioning-annots.0.res.oracle +++ b/tests/value/oracle/partitioning-annots.0.res.oracle @@ -15,6 +15,9 @@ [eva:loop-unroll] tests/value/partitioning-annots.c:50: loop not completely unrolled [eva] tests/value/partitioning-annots.c:50: starting to merge loop iterations +[eva:loop-unroll] tests/value/partitioning-annots.c:66: + loop not completely unrolled +[eva] tests/value/partitioning-annots.c:66: starting to merge loop iterations [eva] Recording results for test_unroll [eva] done for function test_unroll [eva] ====== VALUES COMPUTED ====== @@ -33,6 +36,17 @@ [7] ∈ {36} [8] ∈ {9} [9] ∈ {1} + f[0] ∈ {0} + [1] ∈ {1} + [2] ∈ {0} + [3] ∈ {1} + [4] ∈ {0} + [5] ∈ {1} + [6] ∈ {0} + [7] ∈ {1} + [8] ∈ {0} + [9] ∈ {1} + [10..19] ∈ {0; 1} or UNINITIALIZED [from] Computing for function test_unroll [from] Done for function test_unroll [from] ====== DEPENDENCIES COMPUTED ====== @@ -41,7 +55,7 @@ NO EFFECTS [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function test_unroll: - a[0..9]; b[0..9]; c[0..9]; d[0..19]; e[0..9]; i; j; i_0; j_0; i_1; - i_2; i_3; j_1 + a[0..9]; b[0..9]; c[0..9]; d[0..19]; e[0..9]; f[0..19]; i; j; i_0; + j_0; i_1; i_2; i_3; j_1; i_4 [inout] Inputs for function test_unroll: \nothing diff --git a/tests/value/oracle/partitioning-annots.1.res.oracle b/tests/value/oracle/partitioning-annots.1.res.oracle index 206434355ca..a1f5d1c6916 100644 --- a/tests/value/oracle/partitioning-annots.1.res.oracle +++ b/tests/value/oracle/partitioning-annots.1.res.oracle @@ -6,41 +6,41 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:69. + Called from tests/value/partitioning-annots.c:75. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:69: +[eva] tests/value/partitioning-annots.c:75: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:70. -[eva] tests/value/partitioning-annots.c:70: + Called from tests/value/partitioning-annots.c:76. +[eva] tests/value/partitioning-annots.c:76: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:76: +[eva] tests/value/partitioning-annots.c:82: Frama_C_show_each_before_first_split: {0; 1}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:79: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_split: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:79: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {0}, {0}, {0} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {0; 1}, {2}, {0; 1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {0; 1}, {1}, {0; 1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {0; 1}, {0}, {0; 1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:91: Frama_C_show_each_end: {0; 1}, {0; 1; 2}, {0; 1} [eva] Recording results for test_split [eva] done for function test_split diff --git a/tests/value/oracle/partitioning-annots.2.res.oracle b/tests/value/oracle/partitioning-annots.2.res.oracle index e12cf3849fc..2f28a2b0b9e 100644 --- a/tests/value/oracle/partitioning-annots.2.res.oracle +++ b/tests/value/oracle/partitioning-annots.2.res.oracle @@ -6,49 +6,49 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:69. + Called from tests/value/partitioning-annots.c:75. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:69: +[eva] tests/value/partitioning-annots.c:75: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:70. -[eva] tests/value/partitioning-annots.c:70: + Called from tests/value/partitioning-annots.c:76. +[eva] tests/value/partitioning-annots.c:76: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:76: +[eva] tests/value/partitioning-annots.c:82: Frama_C_show_each_before_first_split: {0; 1}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:79: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_split: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:79: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_first_merge: {0}, {0}, {0} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_before_second_merge: {0}, {0}, {0} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:91: Frama_C_show_each_end: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:91: Frama_C_show_each_end: {0}, {0; 1; 2}, {0} [eva] Recording results for test_split [eva] done for function test_split diff --git a/tests/value/oracle/partitioning-annots.3.res.oracle b/tests/value/oracle/partitioning-annots.3.res.oracle index 6032746a9c9..c2989a6b2d5 100644 --- a/tests/value/oracle/partitioning-annots.3.res.oracle +++ b/tests/value/oracle/partitioning-annots.3.res.oracle @@ -6,41 +6,41 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:103. + Called from tests/value/partitioning-annots.c:109. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:103: +[eva] tests/value/partitioning-annots.c:109: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:103. + Called from tests/value/partitioning-annots.c:109. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:101: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:107: starting to merge loop iterations [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:103. + Called from tests/value/partitioning-annots.c:109. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:103. + Called from tests/value/partitioning-annots.c:109. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:103. + Called from tests/value/partitioning-annots.c:109. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:103. + Called from tests/value/partitioning-annots.c:109. [eva] Done for function Frama_C_interval -[eva:alarm] tests/value/partitioning-annots.c:110: Warning: +[eva:alarm] tests/value/partitioning-annots.c:116: Warning: accessing uninitialized left-value. assert \initialized(&A[i]); -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {9}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {8}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {7}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {6}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {5}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {4}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {3}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {2}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {1}, {42} -[eva] tests/value/partitioning-annots.c:115: Frama_C_show_each: {0}, {42} -[eva] tests/value/partitioning-annots.c:116: assertion got status valid. -[eva] tests/value/partitioning-annots.c:119: +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {9}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {8}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {7}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {6}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {5}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {4}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {3}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {2}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {1}, {42} +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {0}, {42} +[eva] tests/value/partitioning-annots.c:122: assertion got status valid. +[eva] tests/value/partitioning-annots.c:125: Frama_C_show_each: {{ "Value 42 not found" }} [eva] Recording results for test_loop_split [eva] done for function test_loop_split diff --git a/tests/value/oracle/partitioning-annots.4.res.oracle b/tests/value/oracle/partitioning-annots.4.res.oracle index e950a97cac1..a008cf60525 100644 --- a/tests/value/oracle/partitioning-annots.4.res.oracle +++ b/tests/value/oracle/partitioning-annots.4.res.oracle @@ -6,13 +6,13 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. - Called from tests/value/partitioning-annots.c:125. + Called from tests/value/partitioning-annots.c:131. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:125: +[eva] tests/value/partitioning-annots.c:131: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:131: Frama_C_show_each: {0; 1}, {0; 1} -[eva:alarm] tests/value/partitioning-annots.c:134: Warning: +[eva] tests/value/partitioning-annots.c:137: Frama_C_show_each: {0; 1}, {0; 1} +[eva:alarm] tests/value/partitioning-annots.c:140: Warning: division by zero. assert j ≢ 0; [eva] Recording results for test_history [eva] done for function test_history diff --git a/tests/value/oracle/partitioning-annots.5.res.oracle b/tests/value/oracle/partitioning-annots.5.res.oracle index c03065ca696..35f1b8e40b2 100644 --- a/tests/value/oracle/partitioning-annots.5.res.oracle +++ b/tests/value/oracle/partitioning-annots.5.res.oracle @@ -6,13 +6,13 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. - Called from tests/value/partitioning-annots.c:125. + Called from tests/value/partitioning-annots.c:131. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:125: +[eva] tests/value/partitioning-annots.c:131: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:131: Frama_C_show_each: {0}, {0} -[eva] tests/value/partitioning-annots.c:131: Frama_C_show_each: {1}, {1} +[eva] tests/value/partitioning-annots.c:137: Frama_C_show_each: {0}, {0} +[eva] tests/value/partitioning-annots.c:137: Frama_C_show_each: {1}, {1} [eva] Recording results for test_history [eva] done for function test_history [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/partitioning-annots.6.res.oracle b/tests/value/oracle/partitioning-annots.6.res.oracle index e514eb8f817..99f4e609217 100644 --- a/tests/value/oracle/partitioning-annots.6.res.oracle +++ b/tests/value/oracle/partitioning-annots.6.res.oracle @@ -5,9 +5,9 @@ [eva:initial-state] Values of globals at initialization k ∈ {0} nondet ∈ [--..--] -[eva] tests/value/partitioning-annots.c:148: starting to merge loop iterations -[eva] tests/value/partitioning-annots.c:153: starting to merge loop iterations -[eva] tests/value/partitioning-annots.c:173: +[eva] tests/value/partitioning-annots.c:154: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:159: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:179: Trace partitioning superposing up to 100 states [eva] Recording results for test_slevel [eva] done for function test_slevel diff --git a/tests/value/partitioning-annots.c b/tests/value/partitioning-annots.c index 019ae54c958..062adc54226 100644 --- a/tests/value/partitioning-annots.c +++ b/tests/value/partitioning-annots.c @@ -15,7 +15,7 @@ void test_unroll() { - int a[N], b[N], c[N], d[2*N], e[N]; + int a[N], b[N], c[N], d[2*N], e[N], f[2*N]; // The inner loop needs to be unrolled to allow strong updates // The outer loops doesn't need to be unrolled @@ -60,6 +60,12 @@ void test_unroll() e[j] += e[j-1]; } } + + // Full unroll is limited by option -eva-default-loop-unroll + //@ loop unroll full; + for (int i = 0 ; i < 2*N ; i++) { + f[i] = i % 2; + } } int k; -- GitLab From 35b0067f7383bcc9f74e7081ff3d2384f298f3e9 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Sat, 1 Aug 2020 14:34:44 +0200 Subject: [PATCH 223/255] [Eva] add Eva_annotations to Eva interface --- src/plugins/value/Eva.mli | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/plugins/value/Eva.mli b/src/plugins/value/Eva.mli index a11a0dca9aa..c603b3c16d5 100644 --- a/src/plugins/value/Eva.mli +++ b/src/plugins/value/Eva.mli @@ -66,3 +66,37 @@ module Unit_tests: sig (** Runs the unit tests of Eva. *) val run: unit -> unit end + + +module Eva_annotations: sig + type slevel_annotation = + | SlevelMerge + | SlevelDefault + | SlevelLocal of int + | SlevelFull + + type unroll_annotation = + | UnrollAmount of Cil_types.term + | UnrollFull + + type flow_annotation = + | FlowSplit of Cil_types.term + | FlowMerge of Cil_types.term + + type allocation_kind = By_stack | Fresh | Fresh_weak | Imprecise + + val get_slevel_annot : Cil_types.stmt -> slevel_annotation option + val get_unroll_annot : Cil_types.stmt -> unroll_annotation list + val get_flow_annot : Cil_types.stmt -> flow_annotation list + val get_subdivision_annot : Cil_types.stmt -> int list + val get_allocation: Cil_types.stmt -> allocation_kind + + val add_slevel_annot : emitter:Emitter.t -> loc:Cil_types.location -> + Cil_types.stmt -> slevel_annotation -> unit + val add_unroll_annot : emitter:Emitter.t -> loc:Cil_types.location -> + Cil_types.stmt -> unroll_annotation -> unit + val add_flow_annot : emitter:Emitter.t -> loc:Cil_types.location -> + Cil_types.stmt -> flow_annotation -> unit + val add_subdivision_annot : emitter:Emitter.t -> loc:Cil_types.location -> + Cil_types.stmt -> int -> unit +end -- GitLab From 7c86536de618a08d10bac689fcc2a5d21a1ef4ac Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Thu, 6 Aug 2020 13:55:22 +0200 Subject: [PATCH 224/255] [Eva] fix outdated test --- .../oracle/partitioning-annots.0.res.oracle | 35 ++++++++-------- .../oracle/partitioning-annots.1.res.oracle | 34 +++++++-------- .../oracle/partitioning-annots.2.res.oracle | 42 +++++++++---------- .../oracle/partitioning-annots.3.res.oracle | 42 +++++++++---------- .../oracle/partitioning-annots.4.res.oracle | 8 ++-- .../oracle/partitioning-annots.5.res.oracle | 8 ++-- .../oracle/partitioning-annots.6.res.oracle | 6 +-- tests/value/partitioning-annots.c | 18 ++++---- 8 files changed, 94 insertions(+), 99 deletions(-) diff --git a/tests/value/oracle/partitioning-annots.0.res.oracle b/tests/value/oracle/partitioning-annots.0.res.oracle index 6e5eb5de077..058c2bacf2a 100644 --- a/tests/value/oracle/partitioning-annots.0.res.oracle +++ b/tests/value/oracle/partitioning-annots.0.res.oracle @@ -12,19 +12,29 @@ loop not completely unrolled [eva] tests/value/partitioning-annots.c:34: starting to merge loop iterations [eva] tests/value/partitioning-annots.c:36: starting to merge loop iterations -[eva:loop-unroll] tests/value/partitioning-annots.c:50: +[eva:loop-unroll] tests/value/partitioning-annots.c:47: loop not completely unrolled -[eva] tests/value/partitioning-annots.c:50: starting to merge loop iterations -[eva:loop-unroll] tests/value/partitioning-annots.c:66: +[eva] tests/value/partitioning-annots.c:47: starting to merge loop iterations +[eva:loop-unroll] tests/value/partitioning-annots.c:52: loop not completely unrolled -[eva] tests/value/partitioning-annots.c:66: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:52: starting to merge loop iterations [eva] Recording results for test_unroll [eva] done for function test_unroll [eva] ====== VALUES COMPUTED ====== [eva:final-states] Values at end of function test_unroll: a[0..9] ∈ {42} b[0..9] ∈ {42} - c[0..9] ∈ {0} + c[0] ∈ {0} + [1] ∈ {1} + [2] ∈ {0} + [3] ∈ {1} + [4] ∈ {0} + [5] ∈ {1} + [6] ∈ {0} + [7] ∈ {1} + [8] ∈ {0} + [9] ∈ {1} + [10..19] ∈ {0; 1} or UNINITIALIZED d[0..9] ∈ {0} [10..19] ∈ {0} or UNINITIALIZED e[0] ∈ {1} @@ -36,17 +46,6 @@ [7] ∈ {36} [8] ∈ {9} [9] ∈ {1} - f[0] ∈ {0} - [1] ∈ {1} - [2] ∈ {0} - [3] ∈ {1} - [4] ∈ {0} - [5] ∈ {1} - [6] ∈ {0} - [7] ∈ {1} - [8] ∈ {0} - [9] ∈ {1} - [10..19] ∈ {0; 1} or UNINITIALIZED [from] Computing for function test_unroll [from] Done for function test_unroll [from] ====== DEPENDENCIES COMPUTED ====== @@ -55,7 +54,7 @@ NO EFFECTS [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function test_unroll: - a[0..9]; b[0..9]; c[0..9]; d[0..19]; e[0..9]; f[0..19]; i; j; i_0; - j_0; i_1; i_2; i_3; j_1; i_4 + a[0..9]; b[0..9]; c[0..19]; d[0..19]; e[0..9]; i; j; i_0; j_0; i_1; + i_2; i_3; j_1 [inout] Inputs for function test_unroll: \nothing diff --git a/tests/value/oracle/partitioning-annots.1.res.oracle b/tests/value/oracle/partitioning-annots.1.res.oracle index a1f5d1c6916..d50b35a5ec2 100644 --- a/tests/value/oracle/partitioning-annots.1.res.oracle +++ b/tests/value/oracle/partitioning-annots.1.res.oracle @@ -6,41 +6,41 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:75. + Called from tests/value/partitioning-annots.c:71. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:75: +[eva] tests/value/partitioning-annots.c:71: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:76. -[eva] tests/value/partitioning-annots.c:76: + Called from tests/value/partitioning-annots.c:72. +[eva] tests/value/partitioning-annots.c:72: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:82: +[eva] tests/value/partitioning-annots.c:78: Frama_C_show_each_before_first_split: {0; 1}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:81: Frama_C_show_each_before_second_split: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:81: Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {0}, {0}, {0} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {0; 1}, {2}, {0; 1} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {0; 1}, {1}, {0; 1} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {0; 1}, {0}, {0; 1} -[eva] tests/value/partitioning-annots.c:91: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_end: {0; 1}, {0; 1; 2}, {0; 1} [eva] Recording results for test_split [eva] done for function test_split diff --git a/tests/value/oracle/partitioning-annots.2.res.oracle b/tests/value/oracle/partitioning-annots.2.res.oracle index 2f28a2b0b9e..523baf86ab3 100644 --- a/tests/value/oracle/partitioning-annots.2.res.oracle +++ b/tests/value/oracle/partitioning-annots.2.res.oracle @@ -6,49 +6,49 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:75. + Called from tests/value/partitioning-annots.c:71. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:75: +[eva] tests/value/partitioning-annots.c:71: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:76. -[eva] tests/value/partitioning-annots.c:76: + Called from tests/value/partitioning-annots.c:72. +[eva] tests/value/partitioning-annots.c:72: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:82: +[eva] tests/value/partitioning-annots.c:78: Frama_C_show_each_before_first_split: {0; 1}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:81: Frama_C_show_each_before_second_split: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:81: Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_first_merge: {0}, {0}, {0} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:89: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_second_merge: {0}, {0}, {0} -[eva] tests/value/partitioning-annots.c:91: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_end: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:91: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_end: {0}, {0; 1; 2}, {0} [eva] Recording results for test_split [eva] done for function test_split diff --git a/tests/value/oracle/partitioning-annots.3.res.oracle b/tests/value/oracle/partitioning-annots.3.res.oracle index c2989a6b2d5..c2bbd71dfb8 100644 --- a/tests/value/oracle/partitioning-annots.3.res.oracle +++ b/tests/value/oracle/partitioning-annots.3.res.oracle @@ -6,41 +6,41 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:109. + Called from tests/value/partitioning-annots.c:105. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:109: +[eva] tests/value/partitioning-annots.c:105: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:109. + Called from tests/value/partitioning-annots.c:105. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:107: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:103: starting to merge loop iterations [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:109. + Called from tests/value/partitioning-annots.c:105. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:109. + Called from tests/value/partitioning-annots.c:105. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:109. + Called from tests/value/partitioning-annots.c:105. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:109. + Called from tests/value/partitioning-annots.c:105. [eva] Done for function Frama_C_interval -[eva:alarm] tests/value/partitioning-annots.c:116: Warning: +[eva:alarm] tests/value/partitioning-annots.c:112: Warning: accessing uninitialized left-value. assert \initialized(&A[i]); -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {9}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {8}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {7}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {6}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {5}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {4}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {3}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {2}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {1}, {42} -[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {0}, {42} -[eva] tests/value/partitioning-annots.c:122: assertion got status valid. -[eva] tests/value/partitioning-annots.c:125: +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {9}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {8}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {7}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {6}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {5}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {4}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {3}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {2}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {1}, {42} +[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {0}, {42} +[eva] tests/value/partitioning-annots.c:118: assertion got status valid. +[eva] tests/value/partitioning-annots.c:121: Frama_C_show_each: {{ "Value 42 not found" }} [eva] Recording results for test_loop_split [eva] done for function test_loop_split diff --git a/tests/value/oracle/partitioning-annots.4.res.oracle b/tests/value/oracle/partitioning-annots.4.res.oracle index a008cf60525..f319bc5df38 100644 --- a/tests/value/oracle/partitioning-annots.4.res.oracle +++ b/tests/value/oracle/partitioning-annots.4.res.oracle @@ -6,13 +6,13 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. - Called from tests/value/partitioning-annots.c:131. + Called from tests/value/partitioning-annots.c:127. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:131: +[eva] tests/value/partitioning-annots.c:127: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:137: Frama_C_show_each: {0; 1}, {0; 1} -[eva:alarm] tests/value/partitioning-annots.c:140: Warning: +[eva] tests/value/partitioning-annots.c:133: Frama_C_show_each: {0; 1}, {0; 1} +[eva:alarm] tests/value/partitioning-annots.c:136: Warning: division by zero. assert j ≢ 0; [eva] Recording results for test_history [eva] done for function test_history diff --git a/tests/value/oracle/partitioning-annots.5.res.oracle b/tests/value/oracle/partitioning-annots.5.res.oracle index 35f1b8e40b2..22626883a48 100644 --- a/tests/value/oracle/partitioning-annots.5.res.oracle +++ b/tests/value/oracle/partitioning-annots.5.res.oracle @@ -6,13 +6,13 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. - Called from tests/value/partitioning-annots.c:131. + Called from tests/value/partitioning-annots.c:127. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:131: +[eva] tests/value/partitioning-annots.c:127: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:137: Frama_C_show_each: {0}, {0} -[eva] tests/value/partitioning-annots.c:137: Frama_C_show_each: {1}, {1} +[eva] tests/value/partitioning-annots.c:133: Frama_C_show_each: {0}, {0} +[eva] tests/value/partitioning-annots.c:133: Frama_C_show_each: {1}, {1} [eva] Recording results for test_history [eva] done for function test_history [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/partitioning-annots.6.res.oracle b/tests/value/oracle/partitioning-annots.6.res.oracle index 99f4e609217..504718adca8 100644 --- a/tests/value/oracle/partitioning-annots.6.res.oracle +++ b/tests/value/oracle/partitioning-annots.6.res.oracle @@ -5,9 +5,9 @@ [eva:initial-state] Values of globals at initialization k ∈ {0} nondet ∈ [--..--] -[eva] tests/value/partitioning-annots.c:154: starting to merge loop iterations -[eva] tests/value/partitioning-annots.c:159: starting to merge loop iterations -[eva] tests/value/partitioning-annots.c:179: +[eva] tests/value/partitioning-annots.c:150: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:155: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:175: Trace partitioning superposing up to 100 states [eva] Recording results for test_slevel [eva] done for function test_slevel diff --git a/tests/value/partitioning-annots.c b/tests/value/partitioning-annots.c index 062adc54226..9bb04019ce3 100644 --- a/tests/value/partitioning-annots.c +++ b/tests/value/partitioning-annots.c @@ -15,7 +15,7 @@ void test_unroll() { - int a[N], b[N], c[N], d[2*N], e[N], f[2*N]; + int a[N], b[N], c[2*N], d[2*N], e[N]; // The inner loop needs to be unrolled to allow strong updates // The outer loops doesn't need to be unrolled @@ -40,10 +40,12 @@ void test_unroll() // At the end, we must have both arrays a and b to be fully initialized at 42 - // Small loops can be unrolled without giving an unroll parameter - //@ loop unroll N; - for (int i = 0 ; i < N ; i++) - c[i] = 0; + // Small loops can be unrolled with the annotation "unroll full". + // The actual limit of the number of iterations can be overriden with + // the option -eva-default-loop-unroll + //@ loop unroll full; + for (int i = 0 ; i < 2*N ; i++) + c[i] = i % 2; // Longer loops won't be completely unrolled when not giving a parameter //@ loop unroll N; @@ -60,12 +62,6 @@ void test_unroll() e[j] += e[j-1]; } } - - // Full unroll is limited by option -eva-default-loop-unroll - //@ loop unroll full; - for (int i = 0 ; i < 2*N ; i++) { - f[i] = i % 2; - } } int k; -- GitLab From af67d277a87af781dfd76d524f18a8c001cecd5d Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Tue, 15 Sep 2020 15:57:29 +0200 Subject: [PATCH 225/255] [Eva] revert syntax from 'loop unroll full' to 'loop unroll' --- src/plugins/value/utils/eva_annotations.ml | 8 ++++---- tests/value/partitioning-annots.c | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/plugins/value/utils/eva_annotations.ml b/src/plugins/value/utils/eva_annotations.ml index 7ba7cc2f97a..600a28b386b 100644 --- a/src/plugins/value/utils/eva_annotations.ml +++ b/src/plugins/value/utils/eva_annotations.ml @@ -178,7 +178,7 @@ module Unroll = Register (struct let is_loop_annot = true let parse ~typing_context = function - | [{lexpr_node = PLvar "full"}] -> UnrollFull + | [] -> UnrollFull | [t] -> let open Logic_typing in UnrollAmount @@ -186,16 +186,16 @@ module Unroll = Register (struct | _ -> raise Parse_error let export = function - | UnrollFull -> Ext_terms [Logic_const.tstring "full"] + | UnrollFull -> Ext_terms [] | UnrollAmount t -> Ext_terms [t] let import = function - | Ext_terms [{term_node=TConst (LStr "full")}] -> UnrollFull + | Ext_terms [] -> UnrollFull | Ext_terms [t] -> UnrollAmount t | _ -> assert false let print fmt = function - | UnrollFull -> Format.pp_print_string fmt "full" + | UnrollFull -> () | UnrollAmount t -> Printer.pp_term fmt t end) diff --git a/tests/value/partitioning-annots.c b/tests/value/partitioning-annots.c index 9bb04019ce3..45afe10c853 100644 --- a/tests/value/partitioning-annots.c +++ b/tests/value/partitioning-annots.c @@ -40,10 +40,12 @@ void test_unroll() // At the end, we must have both arrays a and b to be fully initialized at 42 - // Small loops can be unrolled with the annotation "unroll full". + // Small loops can be unrolled without giving an unroll amount. // The actual limit of the number of iterations can be overriden with // the option -eva-default-loop-unroll - //@ loop unroll full; + // Here -eva-default-loop-unroll is set to a value not high enough to + // completely unroll the loop thus a warning should be emitted. + //@ loop unroll; for (int i = 0 ; i < 2*N ; i++) c[i] = i % 2; -- GitLab From 310e1b0581440da5245d8766c40fe59410b17467 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Tue, 15 Sep 2020 16:03:05 +0200 Subject: [PATCH 226/255] [Eva] do not export Eva_annotations.get_* functions --- src/plugins/value/Eva.mli | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/plugins/value/Eva.mli b/src/plugins/value/Eva.mli index c603b3c16d5..5608c7dbe0a 100644 --- a/src/plugins/value/Eva.mli +++ b/src/plugins/value/Eva.mli @@ -83,14 +83,6 @@ module Eva_annotations: sig | FlowSplit of Cil_types.term | FlowMerge of Cil_types.term - type allocation_kind = By_stack | Fresh | Fresh_weak | Imprecise - - val get_slevel_annot : Cil_types.stmt -> slevel_annotation option - val get_unroll_annot : Cil_types.stmt -> unroll_annotation list - val get_flow_annot : Cil_types.stmt -> flow_annotation list - val get_subdivision_annot : Cil_types.stmt -> int list - val get_allocation: Cil_types.stmt -> allocation_kind - val add_slevel_annot : emitter:Emitter.t -> loc:Cil_types.location -> Cil_types.stmt -> slevel_annotation -> unit val add_unroll_annot : emitter:Emitter.t -> loc:Cil_types.location -> -- GitLab From 3c51dc65ecedd8be65711269d3da412eb555bc8f Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Tue, 15 Sep 2020 16:12:18 +0200 Subject: [PATCH 227/255] [Eva] remove SlevelFullCap parameter, max_int is used as a limit --- src/plugins/value/partitioning/per_stmt_slevel.ml | 2 +- src/plugins/value/value_parameters.ml | 13 ------------- src/plugins/value/value_parameters.mli | 1 - 3 files changed, 1 insertion(+), 15 deletions(-) diff --git a/src/plugins/value/partitioning/per_stmt_slevel.ml b/src/plugins/value/partitioning/per_stmt_slevel.ml index 4c7f2a7c107..df85cc9c240 100644 --- a/src/plugins/value/partitioning/per_stmt_slevel.ml +++ b/src/plugins/value/partitioning/per_stmt_slevel.ml @@ -91,7 +91,7 @@ let compute kf = Cil_datatype.Stmt.Hashtbl.add h_local s i; Stack.push i local_slevel; | Some SlevelFull -> - let cap = Value_parameters.SlevelFullCap.get () in + let cap = max_int in if debug then Format.printf "Vising split %d, pushing %d@." s.sid cap; Cil_datatype.Stmt.Hashtbl.add h_local s cap; Stack.push cap local_slevel; diff --git a/src/plugins/value/value_parameters.ml b/src/plugins/value/value_parameters.ml index 9027143e2b7..1446dd8d796 100644 --- a/src/plugins/value/value_parameters.ml +++ b/src/plugins/value/value_parameters.ml @@ -717,19 +717,6 @@ module SlevelFunction = end) let () = add_precision_dep SlevelFunction.parameter -let () = Parameter_customize.set_group precision_tuning -module SlevelFullCap = - Int - (struct - let option_name = "-eva-slevel-full-cap" - let arg_name = "n" - let default = 10000 - let help = - "defines the cap for slevel full annotations." - end) -let () = add_precision_dep SlevelFullCap.parameter -let () = SlevelFullCap.set_range 0 max_int - let () = Parameter_customize.set_group precision_tuning module SlevelMergeAfterLoop = Kernel_function_set diff --git a/src/plugins/value/value_parameters.mli b/src/plugins/value/value_parameters.mli index b9538e69ce9..573e922bde5 100644 --- a/src/plugins/value/value_parameters.mli +++ b/src/plugins/value/value_parameters.mli @@ -76,7 +76,6 @@ module SemanticUnrollingLevel: Parameter_sig.Int module SlevelFunction: Parameter_sig.Map with type key = Cil_types.kernel_function and type value = int -module SlevelFullCap: Parameter_sig.Int module SlevelMergeAfterLoop: Parameter_sig.Kernel_function_set module MinLoopUnroll : Parameter_sig.Int -- GitLab From e1f6d3630c0db647b0a1c9f17b66bd89d54e97e6 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Tue, 15 Sep 2020 16:13:17 +0200 Subject: [PATCH 228/255] [Eva] fix a typo in debug messages --- src/plugins/value/partitioning/per_stmt_slevel.ml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/plugins/value/partitioning/per_stmt_slevel.ml b/src/plugins/value/partitioning/per_stmt_slevel.ml index df85cc9c240..11f4c3b3f94 100644 --- a/src/plugins/value/partitioning/per_stmt_slevel.ml +++ b/src/plugins/value/partitioning/per_stmt_slevel.ml @@ -87,12 +87,12 @@ let compute kf = Cil_datatype.Stmt.Hashtbl.add h_local s (Stack.top local_slevel); if d <> None then Cil_datatype.Stmt.Hashtbl.add h_merge s (); | Some (SlevelLocal i) -> - if debug then Format.printf "Vising split %d, pushing %d@." s.sid i; + if debug then Format.printf "Visiting split %d, pushing %d@." s.sid i; Cil_datatype.Stmt.Hashtbl.add h_local s i; Stack.push i local_slevel; | Some SlevelFull -> let cap = max_int in - if debug then Format.printf "Vising split %d, pushing %d@." s.sid cap; + if debug then Format.printf "Visiting split %d, pushing %d@." s.sid cap; Cil_datatype.Stmt.Hashtbl.add h_local s cap; Stack.push cap local_slevel; | Some SlevelDefault -> -- GitLab From 06394aae414c428f6c922ca1ed046e4e92a959ae Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Tue, 15 Sep 2020 16:17:44 +0200 Subject: [PATCH 229/255] [Eva] update oracles --- .../oracle/partitioning-annots.0.res.oracle | 8 ++-- .../oracle/partitioning-annots.1.res.oracle | 34 +++++++-------- .../oracle/partitioning-annots.2.res.oracle | 42 +++++++++---------- .../oracle/partitioning-annots.3.res.oracle | 42 +++++++++---------- .../oracle/partitioning-annots.4.res.oracle | 8 ++-- .../oracle/partitioning-annots.5.res.oracle | 8 ++-- .../oracle/partitioning-annots.6.res.oracle | 12 ++---- tests/value/partitioning-annots.c | 6 +-- 8 files changed, 78 insertions(+), 82 deletions(-) diff --git a/tests/value/oracle/partitioning-annots.0.res.oracle b/tests/value/oracle/partitioning-annots.0.res.oracle index 058c2bacf2a..f6e785c3e31 100644 --- a/tests/value/oracle/partitioning-annots.0.res.oracle +++ b/tests/value/oracle/partitioning-annots.0.res.oracle @@ -12,12 +12,12 @@ loop not completely unrolled [eva] tests/value/partitioning-annots.c:34: starting to merge loop iterations [eva] tests/value/partitioning-annots.c:36: starting to merge loop iterations -[eva:loop-unroll] tests/value/partitioning-annots.c:47: +[eva:loop-unroll] tests/value/partitioning-annots.c:49: loop not completely unrolled -[eva] tests/value/partitioning-annots.c:47: starting to merge loop iterations -[eva:loop-unroll] tests/value/partitioning-annots.c:52: +[eva] tests/value/partitioning-annots.c:49: starting to merge loop iterations +[eva:loop-unroll] tests/value/partitioning-annots.c:54: loop not completely unrolled -[eva] tests/value/partitioning-annots.c:52: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:54: starting to merge loop iterations [eva] Recording results for test_unroll [eva] done for function test_unroll [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/partitioning-annots.1.res.oracle b/tests/value/oracle/partitioning-annots.1.res.oracle index d50b35a5ec2..3a489cae4e1 100644 --- a/tests/value/oracle/partitioning-annots.1.res.oracle +++ b/tests/value/oracle/partitioning-annots.1.res.oracle @@ -6,41 +6,41 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:71. + Called from tests/value/partitioning-annots.c:73. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:71: +[eva] tests/value/partitioning-annots.c:73: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:72. -[eva] tests/value/partitioning-annots.c:72: + Called from tests/value/partitioning-annots.c:74. +[eva] tests/value/partitioning-annots.c:74: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:78: +[eva] tests/value/partitioning-annots.c:80: Frama_C_show_each_before_first_split: {0; 1}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_second_split: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:81: - Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} [eva] tests/value/partitioning-annots.c:83: + Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:83: - Frama_C_show_each_before_first_merge: {0}, {0}, {0} [eva] tests/value/partitioning-annots.c:85: + Frama_C_show_each_before_first_merge: {0}, {0}, {0} +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {0; 1}, {2}, {0; 1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {0; 1}, {1}, {0; 1} -[eva] tests/value/partitioning-annots.c:85: - Frama_C_show_each_before_second_merge: {0; 1}, {0}, {0; 1} [eva] tests/value/partitioning-annots.c:87: + Frama_C_show_each_before_second_merge: {0; 1}, {0}, {0; 1} +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_end: {0; 1}, {0; 1; 2}, {0; 1} [eva] Recording results for test_split [eva] done for function test_split diff --git a/tests/value/oracle/partitioning-annots.2.res.oracle b/tests/value/oracle/partitioning-annots.2.res.oracle index 523baf86ab3..64a0b52e080 100644 --- a/tests/value/oracle/partitioning-annots.2.res.oracle +++ b/tests/value/oracle/partitioning-annots.2.res.oracle @@ -6,49 +6,49 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:71. + Called from tests/value/partitioning-annots.c:73. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:71: +[eva] tests/value/partitioning-annots.c:73: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_split. - Called from tests/value/partitioning-annots.c:72. -[eva] tests/value/partitioning-annots.c:72: + Called from tests/value/partitioning-annots.c:74. +[eva] tests/value/partitioning-annots.c:74: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:78: +[eva] tests/value/partitioning-annots.c:80: Frama_C_show_each_before_first_split: {0; 1}, {0; 1; 2}, {0} -[eva] tests/value/partitioning-annots.c:81: +[eva] tests/value/partitioning-annots.c:83: Frama_C_show_each_before_second_split: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:81: - Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} [eva] tests/value/partitioning-annots.c:83: + Frama_C_show_each_before_second_split: {0}, {0; 1; 2}, {0} +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:83: +[eva] tests/value/partitioning-annots.c:85: Frama_C_show_each_before_first_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:83: - Frama_C_show_each_before_first_merge: {0}, {0}, {0} [eva] tests/value/partitioning-annots.c:85: + Frama_C_show_each_before_first_merge: {0}, {0}, {0} +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {1}, {2}, {1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {0}, {2}, {0} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {1}, {1}, {1} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {0}, {1}, {0} -[eva] tests/value/partitioning-annots.c:85: +[eva] tests/value/partitioning-annots.c:87: Frama_C_show_each_before_second_merge: {1}, {0}, {1} -[eva] tests/value/partitioning-annots.c:85: - Frama_C_show_each_before_second_merge: {0}, {0}, {0} [eva] tests/value/partitioning-annots.c:87: + Frama_C_show_each_before_second_merge: {0}, {0}, {0} +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_end: {1}, {0; 1; 2}, {1} -[eva] tests/value/partitioning-annots.c:87: +[eva] tests/value/partitioning-annots.c:89: Frama_C_show_each_end: {0}, {0; 1; 2}, {0} [eva] Recording results for test_split [eva] done for function test_split diff --git a/tests/value/oracle/partitioning-annots.3.res.oracle b/tests/value/oracle/partitioning-annots.3.res.oracle index c2bbd71dfb8..0726db35992 100644 --- a/tests/value/oracle/partitioning-annots.3.res.oracle +++ b/tests/value/oracle/partitioning-annots.3.res.oracle @@ -6,41 +6,41 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:105. + Called from tests/value/partitioning-annots.c:107. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:105: +[eva] tests/value/partitioning-annots.c:107: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:105. + Called from tests/value/partitioning-annots.c:107. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:103: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:105: starting to merge loop iterations [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:105. + Called from tests/value/partitioning-annots.c:107. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:105. + Called from tests/value/partitioning-annots.c:107. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:105. + Called from tests/value/partitioning-annots.c:107. [eva] Done for function Frama_C_interval [eva] computing for function Frama_C_interval <- test_loop_split. - Called from tests/value/partitioning-annots.c:105. + Called from tests/value/partitioning-annots.c:107. [eva] Done for function Frama_C_interval -[eva:alarm] tests/value/partitioning-annots.c:112: Warning: +[eva:alarm] tests/value/partitioning-annots.c:114: Warning: accessing uninitialized left-value. assert \initialized(&A[i]); -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {9}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {8}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {7}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {6}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {5}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {4}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {3}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {2}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {1}, {42} -[eva] tests/value/partitioning-annots.c:117: Frama_C_show_each: {0}, {42} -[eva] tests/value/partitioning-annots.c:118: assertion got status valid. -[eva] tests/value/partitioning-annots.c:121: +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {9}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {8}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {7}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {6}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {5}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {4}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {3}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {2}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {1}, {42} +[eva] tests/value/partitioning-annots.c:119: Frama_C_show_each: {0}, {42} +[eva] tests/value/partitioning-annots.c:120: assertion got status valid. +[eva] tests/value/partitioning-annots.c:123: Frama_C_show_each: {{ "Value 42 not found" }} [eva] Recording results for test_loop_split [eva] done for function test_loop_split diff --git a/tests/value/oracle/partitioning-annots.4.res.oracle b/tests/value/oracle/partitioning-annots.4.res.oracle index f319bc5df38..95b65614d11 100644 --- a/tests/value/oracle/partitioning-annots.4.res.oracle +++ b/tests/value/oracle/partitioning-annots.4.res.oracle @@ -6,13 +6,13 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. - Called from tests/value/partitioning-annots.c:127. + Called from tests/value/partitioning-annots.c:129. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:127: +[eva] tests/value/partitioning-annots.c:129: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:133: Frama_C_show_each: {0; 1}, {0; 1} -[eva:alarm] tests/value/partitioning-annots.c:136: Warning: +[eva] tests/value/partitioning-annots.c:135: Frama_C_show_each: {0; 1}, {0; 1} +[eva:alarm] tests/value/partitioning-annots.c:138: Warning: division by zero. assert j ≢ 0; [eva] Recording results for test_history [eva] done for function test_history diff --git a/tests/value/oracle/partitioning-annots.5.res.oracle b/tests/value/oracle/partitioning-annots.5.res.oracle index 22626883a48..e2009fcbb60 100644 --- a/tests/value/oracle/partitioning-annots.5.res.oracle +++ b/tests/value/oracle/partitioning-annots.5.res.oracle @@ -6,13 +6,13 @@ k ∈ {0} nondet ∈ [--..--] [eva] computing for function Frama_C_interval <- test_history. - Called from tests/value/partitioning-annots.c:127. + Called from tests/value/partitioning-annots.c:129. [eva] using specification for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:127: +[eva] tests/value/partitioning-annots.c:129: function Frama_C_interval: precondition 'order' got status valid. [eva] Done for function Frama_C_interval -[eva] tests/value/partitioning-annots.c:133: Frama_C_show_each: {0}, {0} -[eva] tests/value/partitioning-annots.c:133: Frama_C_show_each: {1}, {1} +[eva] tests/value/partitioning-annots.c:135: Frama_C_show_each: {0}, {0} +[eva] tests/value/partitioning-annots.c:135: Frama_C_show_each: {1}, {1} [eva] Recording results for test_history [eva] done for function test_history [eva] ====== VALUES COMPUTED ====== diff --git a/tests/value/oracle/partitioning-annots.6.res.oracle b/tests/value/oracle/partitioning-annots.6.res.oracle index 504718adca8..405717c890d 100644 --- a/tests/value/oracle/partitioning-annots.6.res.oracle +++ b/tests/value/oracle/partitioning-annots.6.res.oracle @@ -5,10 +5,8 @@ [eva:initial-state] Values of globals at initialization k ∈ {0} nondet ∈ [--..--] -[eva] tests/value/partitioning-annots.c:150: starting to merge loop iterations -[eva] tests/value/partitioning-annots.c:155: starting to merge loop iterations -[eva] tests/value/partitioning-annots.c:175: - Trace partitioning superposing up to 100 states +[eva] tests/value/partitioning-annots.c:152: starting to merge loop iterations +[eva] tests/value/partitioning-annots.c:157: starting to merge loop iterations [eva] Recording results for test_slevel [eva] done for function test_slevel [eva] ====== VALUES COMPUTED ====== @@ -18,9 +16,7 @@ c[0..3] ∈ {33; 42} [4..9] ∈ {33; 42} or UNINITIALIZED d[0..9] ∈ {33; 42} - e[0..5] ∈ {33; 42} - [6..9] ∈ {33; 42} or UNINITIALIZED - [10..99] ∈ UNINITIALIZED + e[0..3] ∈ {33; 42} [from] Computing for function test_slevel [from] Done for function test_slevel [from] ====== DEPENDENCIES COMPUTED ====== @@ -29,6 +25,6 @@ NO EFFECTS [from] ====== END OF DEPENDENCIES ====== [inout] Out (internal) for function test_slevel: - a[0..9]; b[0..9]; c[0..9]; d[0..9]; e[0..9]; i; i_0; i_1; i_2; i_3 + a[0..9]; b[0..9]; c[0..9]; d[0..9]; e[0..3]; i; i_0; i_1; i_2; i_3 [inout] Inputs for function test_slevel: nondet diff --git a/tests/value/partitioning-annots.c b/tests/value/partitioning-annots.c index 45afe10c853..8137bbab1c2 100644 --- a/tests/value/partitioning-annots.c +++ b/tests/value/partitioning-annots.c @@ -6,7 +6,7 @@ STDOPT: #"-main test_loop_split -eva-partition-history 1" STDOPT: #"-main test_history -eva-partition-history 0" STDOPT: #"-main test_history -eva-partition-history 1" - STDOPT: #"-main test_slevel -eva-slevel-full-cap 100" + STDOPT: #"-main test_slevel" */ #include "__fc_builtin.h" @@ -142,7 +142,7 @@ volatile nondet; void test_slevel() { - int a[N], b[N], c[N], d[N], e[100]; + int a[N], b[N], c[N], d[N], e[4]; //@slevel 10; for (int i = 0; i < N; i++) { a[i] = 42; @@ -174,7 +174,7 @@ void test_slevel() //@slevel 0; ; //@slevel full; - for (int i = 0; i < N; i++) { + for (int i = 0; i < 4; i++) { if (nondet) e[i] = 42; else -- GitLab From 609513b45dc571488f5c3318c777edb16994604e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 1 Sep 2020 13:58:57 +0200 Subject: [PATCH 230/255] [Eva] Minor simplication. --- src/plugins/value/partitioning/per_stmt_slevel.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins/value/partitioning/per_stmt_slevel.ml b/src/plugins/value/partitioning/per_stmt_slevel.ml index 11f4c3b3f94..cf9f8d15a74 100644 --- a/src/plugins/value/partitioning/per_stmt_slevel.ml +++ b/src/plugins/value/partitioning/per_stmt_slevel.ml @@ -107,7 +107,7 @@ let compute kf = and post s = match get_slevel_annot s with | None | Some SlevelMerge -> () - | Some (SlevelLocal _) | Some SlevelFull -> + | Some (SlevelLocal _ | SlevelFull) -> if debug then Format.printf "Leaving split %d, poping@." s.sid; ignore (Stack.pop local_slevel); | Some SlevelDefault -> -- GitLab From 2597c927e5b2320708bf72a7e7c91e9773e25cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Thu, 24 Sep 2020 10:59:38 +0200 Subject: [PATCH 231/255] [Eva] Comments the module Eva_annotations in the interface Eva.mli. --- src/plugins/value/Eva.mli | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/plugins/value/Eva.mli b/src/plugins/value/Eva.mli index 5608c7dbe0a..dc8c0bae4f7 100644 --- a/src/plugins/value/Eva.mli +++ b/src/plugins/value/Eva.mli @@ -67,21 +67,26 @@ module Unit_tests: sig val run: unit -> unit end - +(** Register special annotations to locally guide the partitioning of states + performed by an Eva analysis. *) module Eva_annotations: sig + + (** Annotations tweaking the behavior of the -eva-slevel paramter. *) type slevel_annotation = - | SlevelMerge - | SlevelDefault - | SlevelLocal of int - | SlevelFull + | SlevelMerge (** Join all states separated by slevel. *) + | SlevelDefault (** Use the limit defined by -eva-slevel. *) + | SlevelLocal of int (** Use the given limit instead of -eva-slevel. *) + | SlevelFull (** Remove the limit of number of separated states. *) + (** Loop unroll annotations. *) type unroll_annotation = - | UnrollAmount of Cil_types.term - | UnrollFull + | UnrollAmount of Cil_types.term (** Unroll the n first iterations. *) + | UnrollFull (** Unroll amount defined by -eva-default-loop-unroll. *) + (** Split/merge annotations for value partitioning. *) type flow_annotation = - | FlowSplit of Cil_types.term - | FlowMerge of Cil_types.term + | FlowSplit of Cil_types.term (** Split states according to a term. *) + | FlowMerge of Cil_types.term (** Merge states separated by a previous split. *) val add_slevel_annot : emitter:Emitter.t -> loc:Cil_types.location -> Cil_types.stmt -> slevel_annotation -> unit -- GitLab From c8d7d05d30f660fca388ee83419cff7ee255a802 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Wed, 23 Sep 2020 14:11:40 +0200 Subject: [PATCH 232/255] [Eva] Fixes the parameters name in the message of -eva-builtins-list. --- src/plugins/value/domains/cvalue/builtins.ml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/plugins/value/domains/cvalue/builtins.ml b/src/plugins/value/domains/cvalue/builtins.ml index f992d2c0885..e8478f7c7f8 100644 --- a/src/plugins/value/domains/cvalue/builtins.ml +++ b/src/plugins/value/domains/cvalue/builtins.ml @@ -27,7 +27,7 @@ exception Invalid_nb_of_args of int (* 'Always' means the builtin will always be used to replace a function with its name. 'OnAuto' means that the function will be replaced only - if -val-builtins-auto is set. *) + if -eva-builtins-auto is set. *) type use_builtin = Always | OnAuto (* Table of all registered builtins; filled by [register_builtin] calls. *) @@ -83,7 +83,7 @@ let () = Log.print_on_output (fun fmt -> Format.fprintf fmt "@[*** LIST OF EVA BUILTINS@\n@\n\ - ** Replacements set by -val-builtins-auto:\ + ** Replacements set -eva-builtins-auto:\ @\n unless otherwise specified, \ function <f> is replaced by builtin \ Frama_C_<f>:@\n@\n @[%a@]@]@\n" @@ -97,7 +97,7 @@ let () = Log.print_on_output (fun fmt -> Format.fprintf fmt "@\n@[** Full list of builtins \ - (configurable via -val-builtin):@\n\ + (configurable via -eva-builtin):@\n\ @\n @[%a@]@]@\n" (Pretty_utils.pp_list ~sep:",@ " Format.pp_print_string) stand_alone); -- GitLab From 6c0ab273cf128df47917e7c30c8bfb1ad13c8938 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Wed, 23 Sep 2020 14:12:16 +0200 Subject: [PATCH 233/255] [Eva] Fixes Eva parameters names in various comments and messages. --- src/plugins/nonterm/nonterm_run.ml | 2 +- src/plugins/value/domains/cvalue/builtins_malloc.ml | 2 +- src/plugins/value/domains/cvalue/builtins_print_c.ml | 2 +- src/plugins/value/engine/compute_functions.ml | 4 ++-- src/plugins/value/engine/transfer_stmt.ml | 2 +- src/plugins/value/utils/value_perf.ml | 2 +- src/plugins/value/values/cvalue_backward.ml | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/plugins/nonterm/nonterm_run.ml b/src/plugins/nonterm/nonterm_run.ml index 007d64d2489..a4f74bc205a 100644 --- a/src/plugins/nonterm/nonterm_run.ml +++ b/src/plugins/nonterm/nonterm_run.ml @@ -239,7 +239,7 @@ let check_unreachable_statements kf ~to_ignore ~dead_code ~warned_kfs = are ignored if: 1. the function is in the list of functions to be ignored; 2. or the function has a body AND its specification is not being used - via -val-use-spec. + via -eva-use-spec. In case 2, the call is ignored because non-terminating statements inside it will already be reported. *) let ignore_kf name = diff --git a/src/plugins/value/domains/cvalue/builtins_malloc.ml b/src/plugins/value/domains/cvalue/builtins_malloc.ml index 3387cb48196..576d50e93ce 100644 --- a/src/plugins/value/domains/cvalue/builtins_malloc.ml +++ b/src/plugins/value/domains/cvalue/builtins_malloc.ml @@ -297,7 +297,7 @@ let add_zeroes = add_v (V_Or_Uninitialized.initialized Cvalue.V.singleton_zero) [orig_state]: state before any allocation, returned in case of failure; [state_after_alloc]: state in case the allocation is successful; [returns_null]: if given, forces the result to consider/ignore the - possibility of failure, despite -val-alloc-returns-null. *) + possibility of failure, despite -eva-alloc-returns-null. *) let wrap_fallible_alloc ?returns_null ret orig_state state_after_alloc = let default_returns_null = Value_parameters.AllocReturnsNull.get () in let returns_null = Extlib.opt_conv default_returns_null returns_null in diff --git a/src/plugins/value/domains/cvalue/builtins_print_c.ml b/src/plugins/value/domains/cvalue/builtins_print_c.ml index bba8b1b0900..1ac0850f13a 100644 --- a/src/plugins/value/domains/cvalue/builtins_print_c.ml +++ b/src/plugins/value/domains/cvalue/builtins_print_c.ml @@ -140,7 +140,7 @@ let pretty_pointer_assignment fmt typname lv v = Kernel.abort ~current:true "pretty_pointer_assignment expected cardinal zero or one@ \ for value %a (lv %s);@ \ - (did you forget -val-no-alloc-returns-null?)" Cvalue.V.pretty v lv + (did you forget -eva-no-alloc-returns-null?)" Cvalue.V.pretty v lv let types = Hashtbl.create 7;; diff --git a/src/plugins/value/engine/compute_functions.ml b/src/plugins/value/engine/compute_functions.ml index e7d1b0f5a42..2e3d42bdb5d 100644 --- a/src/plugins/value/engine/compute_functions.ml +++ b/src/plugins/value/engine/compute_functions.ml @@ -55,7 +55,7 @@ let options_ok () = Value_parameters.UsePrototype.iter (fun kf -> check_assigns kf) (* Do something tasteless in case the user did not put a spec on functions - for which he set [-val-use-spec]: generate an incorrect one ourselves *) + for which he set [-eva-use-spec]: generate an incorrect one ourselves *) let generate_specs () = let aux kf = if need_assigns kf then begin @@ -156,7 +156,7 @@ module Make (Abstract: Abstractions.Eva) = struct (* Compute a call to [kf] in the state [state]. The evaluation will be done either using the body of [kf] or its specification, depending - on whether the body exists and on option [-val-use-spec]. [call_kinstr] + on whether the body exists and on option [-eva-use-spec]. [call_kinstr] is the instruction at which the call takes place, and is used to update the statuses of the preconditions of [kf]. If [show_progress] is true, the callstack and additional information are printed. *) diff --git a/src/plugins/value/engine/transfer_stmt.ml b/src/plugins/value/engine/transfer_stmt.ml index 6fb1f72709b..d7bb71ccae0 100644 --- a/src/plugins/value/engine/transfer_stmt.ml +++ b/src/plugins/value/engine/transfer_stmt.ml @@ -239,7 +239,7 @@ module Make (Abstract: Abstractions.Eva) = struct | `Value (valuation, lloc, ltyp) -> (* Tries to interpret the assignment as a copy for the returned value of a function call, on struct and union types, and when - -val-warn-copy-indeterminate is disabled. *) + -eva-warn-copy-indeterminate is disabled. *) let lval_copy = if is_ret || Cil.isStructOrUnionType ltyp || do_copy_at kinstr then find_lval expr diff --git a/src/plugins/value/utils/value_perf.ml b/src/plugins/value/utils/value_perf.ml index 6dea7f2ed29..de12cb45574 100644 --- a/src/plugins/value/utils/value_perf.ml +++ b/src/plugins/value/utils/value_perf.ml @@ -356,7 +356,7 @@ let reset_perf () = (* --- Flamegraphs --- *) (* -------------------------------------------------------------------------- *) -(* Set to [Some _] if option [-val-dump-flamegraph] is set and [main] is +(* Set to [Some _] if option [-eva-flamegraph] is set and [main] is currently being analyzed and the file is ok. Otherwise, set to [None]. *) let oc_flamegraph = ref None diff --git a/src/plugins/value/values/cvalue_backward.ml b/src/plugins/value/values/cvalue_backward.ml index c836d2a9c76..e97975c050f 100644 --- a/src/plugins/value/values/cvalue_backward.ml +++ b/src/plugins/value/values/cvalue_backward.ml @@ -339,7 +339,7 @@ let downcast_enabled ~ik_src ~ik_dst = if Cil.isSigned ik_dst then Kernel.SignedDowncast.get () || - (* In this case, -val-warn-signed-converted-downcast behaves exactly + (* In this case, -eva-warn-signed-converted-downcast behaves exactly as -warn-signed-downcast *) (Cil.isSigned ik_src && Value_parameters.WarnSignedConvertedDowncast.get ()) else Kernel.UnsignedDowncast.get () -- GitLab From 4ab56b22d5d2421673fc7c784e0e6b6fcdc11c9d Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Fri, 31 Jul 2020 19:32:33 +0200 Subject: [PATCH 234/255] [Kernel] revamp option -autocomplete to allow filtering and display more data --- share/_frama-c | 2 +- share/autocomplete_frama-c | 4 +- src/kernel_internals/runtime/special_hooks.ml | 55 +++++++++++++++++++ .../cmdline_parameters/cmdline.ml | 36 ------------ .../cmdline_parameters/cmdline.mli | 5 -- .../plugin_entry_points/kernel.ml | 29 +++++++--- .../plugin_entry_points/kernel.mli | 3 + .../plugin_entry_points/plugin.ml | 20 ++++--- .../plugin_entry_points/plugin.mli | 6 +- 9 files changed, 97 insertions(+), 63 deletions(-) diff --git a/share/_frama-c b/share/_frama-c index 7cd8c0d84e7..7166a0a39da 100644 --- a/share/_frama-c +++ b/share/_frama-c @@ -127,7 +127,7 @@ function _frama_c () { local autocomp # call frama-c with all the -load-module ; if it fails, test without the load-modules ; # if it fails again, abort - autocomp=$($the_args -autocomplete 2>/dev/null) || autocomp=$($my_words[1] -autocomplete 2>/dev/null) || unset autocomp + autocomp=$($the_args -autocomplete @all 2>/dev/null) || autocomp=$($my_words[1] -autocomplete @all 2>/dev/null) || unset autocomp (( $+autocomp )) && autocompletion=($(grep -o "\-[^ ]*" <<< $autocomp | sort)) (( $#autocompletion )) || _message "$my_words[1] exists, but no option was detected" _store_cache frama-c_autocompletion autocompletion diff --git a/share/autocomplete_frama-c b/share/autocomplete_frama-c index 423c17506bf..af9de4aaf1e 100644 --- a/share/autocomplete_frama-c +++ b/share/autocomplete_frama-c @@ -127,11 +127,11 @@ _frama-c () else case "$cur" in -*-*) - sub_option="$(frama-c -autocomplete | grep -E -o " $cur[^*]+" |sort |uniq)"; + sub_option="$(frama-c -autocomplete @all | grep -E -o " $cur[^*]+" |sort |uniq)"; COMPREPLY=( $( compgen -W "${sub_option}" -- $cur ) );; -*) - basic_options="$(frama-c -autocomplete | grep -E -o " \-[^-]+-?" |sort |uniq)" + basic_options="$(frama-c -autocomplete @all | grep -E -o " \-[^-]+-?" |sort |uniq)" COMPREPLY=( $( compgen -W "${basic_options}" -- $cur ) );; *) compopt -o default diff --git a/src/kernel_internals/runtime/special_hooks.ml b/src/kernel_internals/runtime/special_hooks.ml index ea0bc0bba11..733e759ccfc 100644 --- a/src/kernel_internals/runtime/special_hooks.ml +++ b/src/kernel_internals/runtime/special_hooks.ml @@ -161,6 +161,61 @@ let on_call_to_undeclared_function vi = let () = Cabs2cil.register_implicit_prototype_hook on_call_to_undeclared_function +let run_list_all_plugin_options () = + if not (Kernel.AutocompleteHelp.is_empty ()) then begin + let filter = Kernel.AutocompleteHelp.get () in + Plugin.iter_on_plugins + (fun plugin -> + if Datatype.String.Set.mem plugin.p_shortname filter then begin + Format.printf "Plugin: %s@." plugin.Plugin.p_name; + let plugins_opts = Hashtbl.fold + (fun group_name group_options acc -> + (* note: boolean options with negative counterparts + generate 2 strings *) + let strings_of_typed_parameter tp = + let name = tp.Typed_parameter.name in + match tp.Typed_parameter.accessor with + | Typed_parameter.Bool (_, opt_neg) -> + begin + match opt_neg with + | None -> [(name, "bool")] + | Some neg -> [(name, "bool"); (neg, "bool")] + end + | Int (_, frange) -> + let (min, max) = frange () in + if min = min_int && max = max_int then [(name, "int")] + else [(name, Format.asprintf "int (%d, %d)" min max)] + | String (_, fvalues) -> + let values = fvalues () in + if values = [] then [(name, "string")] + else + [(name, Format.asprintf "string (%a)" + (Pretty_utils.pp_list ~sep:", " + Format.pp_print_string) values)] + in + let group_options = + List.flatten + (List.map strings_of_typed_parameter group_options) + in + (group_name, group_options) :: acc + ) plugin.Plugin.p_parameters [] + in + let plugin_option_strings = + List.fold_left (fun acc (_gn, go) -> acc @ go) [] plugins_opts + in + let cmp_options (n1, _) (n2, _) = String.compare n1 n2 in + let sorted_options = + List.sort cmp_options plugin_option_strings + in + let pp_option fmt (n, a) = Format.fprintf fmt " %s: %s@." n a in + Format.printf "%a" (Pretty_utils.pp_list ~sep:"" pp_option) sorted_options + end + ); + raise Cmdline.Exit + end + else Cmdline.nop +let () = Cmdline.run_after_exiting_stage run_list_all_plugin_options + (* Local Variables: compile-command: "make -C ../../.." diff --git a/src/kernel_services/cmdline_parameters/cmdline.ml b/src/kernel_services/cmdline_parameters/cmdline.ml index 8e6729761d0..d4adb75535e 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.ml +++ b/src/kernel_services/cmdline_parameters/cmdline.ml @@ -1075,42 +1075,6 @@ let list_plugins () = end ; raise Exit -let list_all_plugin_options ~print_invisible = - Log.print_on_output - begin fun fmt -> - let of_name s = - if s = "" then (if Unix.isatty Unix.stdout then - "\x1b[31mNO NAME\x1b[0m" else "NO NAME") - else s - in - let print_cmdline_option fmt (c:cmdline_option) = - if print_invisible || c.ovisible then - Format.fprintf fmt "@[<v>Name: %s@]" c.oname - else - Format.ifprintf fmt "@[<v>Name: %s@]" c.oname - in - let print_cmdline_option_list fmt cs = - (Pretty_utils.pp_list ~pre:"@[<v>" ~suf:"@]" ~sep:"@;" - print_cmdline_option) fmt (sort_cmdline_options cs) - in - let print_groups fmt gs = - let sorted_gs = sort_groups gs in - (Pretty_utils.pp_list - ~pre:"@[<v>" ~sep:"@;" ~suf:"@]" - (Pretty_utils.pp_pair ~pre:"@[<v 2>" ~suf:"@]" ~sep:"@;" - (fun fmt name -> Format.pp_print_string fmt (of_name name)) - (fun fmt p -> print_cmdline_option_list fmt !p))) fmt sorted_gs - in - let print_plugin fmt p = - Format.fprintf fmt "@[<v 2>Name: %s@;%a@]" - p.Plugin.name print_groups p.Plugin.groups - in - Format.fprintf fmt "%a@." - (Pretty_utils.pp_list ~pre:"@[<v>" ~suf:"@]" ~sep:"@;" print_plugin) - (Plugin.all_plugins ()) - end; - raise Exit - (* ************************************************************************* *) (** {3 Explain} diff --git a/src/kernel_services/cmdline_parameters/cmdline.mli b/src/kernel_services/cmdline_parameters/cmdline.mli index 0d90e2d6dbe..d1cbe9927c7 100644 --- a/src/kernel_services/cmdline_parameters/cmdline.mli +++ b/src/kernel_services/cmdline_parameters/cmdline.mli @@ -239,11 +239,6 @@ val list_plugins: unit -> exit (** Display the list of installed plug-ins @since Magnesium-20151001 *) -(** Display the list of all installed plug-ins and their options, in - a condensed format. Used for zsh autocompletion. - @since Phosphorus-20170501-beta1 *) -val list_all_plugin_options : print_invisible:bool -> exit - val explain_cmdline : unit -> exit val plugin_help: string -> exit diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 83c199a92dc..d60942fa9c8 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -25,6 +25,7 @@ (* ************************************************************************* *) module CamlString = String +module FcPlugin = Plugin let () = Plugin.register_kernel () @@ -420,17 +421,27 @@ let () = Parameter_customize.set_cmdline_stage Cmdline.Exiting let () = Parameter_customize.do_not_journalize () let () = Parameter_customize.set_negative_option_name "" module AutocompleteHelp = - False + P.String_set (struct let option_name = "-autocomplete" - let help = "displays all plugin options. Used for zsh autocompletion" - let module_name = "AutocompleteHelp" - end) -let run_list_all_plugin_options () = - if AutocompleteHelp.get () then - Cmdline.list_all_plugin_options ~print_invisible:true - else Cmdline.nop -let () = Cmdline.run_after_exiting_stage run_list_all_plugin_options + let arg_name = "[+]p1,p2,..." + let help = "displays all Frama-C options, used for shell autocompletion. \ + Prints options for the specified plugin names (or '@all' for \ + all plugins). If the first character is '+', \ + only prints visible options." + end) + +let _ = + AutocompleteHelp.Category.enable_all + [] + (object + method fold: 'a. (string -> 'a -> 'a) -> 'a -> 'a = + fun f acc -> + FcPlugin.fold_on_plugins (fun p acc -> f p.FcPlugin.p_shortname acc) acc + method mem name = + FcPlugin.fold_on_plugins + (fun p found -> found || name = p.FcPlugin.p_shortname) false + end) let () = Parameter_customize.set_group help let () = Parameter_customize.set_cmdline_stage Cmdline.Extending diff --git a/src/kernel_services/plugin_entry_points/kernel.mli b/src/kernel_services/plugin_entry_points/kernel.mli index 4ee7fc8182a..33ca7c164f5 100644 --- a/src/kernel_services/plugin_entry_points/kernel.mli +++ b/src/kernel_services/plugin_entry_points/kernel.mli @@ -233,6 +233,9 @@ module PrintLib: Parameter_sig.Bool module PrintPluginPath: Parameter_sig.Bool (** Behavior of option "-print-plugin-path" *) +module AutocompleteHelp: Parameter_sig.String_set +(** Behavior of option "-autocomplete" *) + (* ************************************************************************* *) (** {2 Output Messages} *) (* ************************************************************************* *) diff --git a/src/kernel_services/plugin_entry_points/plugin.ml b/src/kernel_services/plugin_entry_points/plugin.ml index 067694ad12c..cb3f72b7351 100644 --- a/src/kernel_services/plugin_entry_points/plugin.ml +++ b/src/kernel_services/plugin_entry_points/plugin.ml @@ -116,16 +116,18 @@ type plugin = p_parameters: (string, Typed_parameter.t list) Hashtbl.t } let plugins: plugin list ref = ref [] +let cmp_plugins p1 p2 = + (* the kernel is the smallest plug-in *) + match p1.p_name, p2.p_name with + | s1, s2 when s1 = kernel_name && s2 = kernel_name -> 0 + | s1, _ when s1 = kernel_name -> -1 + | _, s2 when s2 = kernel_name -> 1 + | s1, s2 -> String.compare s1 s2 let iter_on_plugins f = - let cmp p1 p2 = - (* the kernel is the smaller plug-in *) - match p1.p_name, p2.p_name with - | s1, s2 when s1 = kernel_name && s2 = kernel_name -> 0 - | s1, _ when s1 = kernel_name -> -1 - | _, s2 when s2 = kernel_name -> 1 - | s1, s2 -> String.compare s1 s2 - in - List.iter f (List.sort cmp !plugins) + List.iter f (List.sort cmp_plugins !plugins) + +let fold_on_plugins (f : (plugin -> 'a -> 'a)) (acc : 'a) : 'a = + List.fold_left (fun acc e -> f e acc) acc (List.sort cmp_plugins !plugins) let is_present s = List.exists (fun p -> p.p_shortname = s) !plugins let get_from_name s = List.find (fun p -> p.p_name = s) !plugins diff --git a/src/kernel_services/plugin_entry_points/plugin.mli b/src/kernel_services/plugin_entry_points/plugin.mli index 16c14c026ae..49568f9c4f0 100644 --- a/src/kernel_services/plugin_entry_points/plugin.mli +++ b/src/kernel_services/plugin_entry_points/plugin.mli @@ -169,9 +169,13 @@ val get: string -> plugin @deprecated since Oxygen-20120901 *) val iter_on_plugins: (plugin -> unit) -> unit -(** Iterate on each registered plug-ins. +(** Iterate on each registered plug-in. @since Beryllium-20090901 *) +val fold_on_plugins: (plugin -> 'a -> 'a) -> 'a -> 'a +(** Fold [f] on each registered plug-in. + @since Frama-C+dev *) + (**/**) (* ************************************************************************* *) (** {2 Internal kernel stuff} *) -- GitLab From 1f3fc9c662feab2a8f8b08cc0163d2b50764d352 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 16 Sep 2020 21:37:13 +0200 Subject: [PATCH 235/255] [Kernel] replace do_iterate with is_reconfigurable Allows iterating through _all_ plugin options, while keeping same list of options for the GUI. Typed parameters have two extra fields: - visible: must be synchronized with the Cmdline.visible field; - reconfigurable: to be shown in the GUI's "Analyses" panel. iter_on_plugins (and fold_on_plugins) operate over all plugin options --- .../cmdline_parameters/parameter_builder.ml | 40 +++++++++++-------- .../cmdline_parameters/parameter_customize.ml | 10 ++--- .../parameter_customize.mli | 25 +++++++----- .../cmdline_parameters/typed_parameter.ml | 10 +++-- .../cmdline_parameters/typed_parameter.mli | 4 ++ .../plugin_entry_points/kernel.ml | 11 +++-- .../plugin_entry_points/plugin.ml | 4 +- .../plugin_entry_points/plugin.mli | 7 ++-- src/plugins/gui/launcher.ml | 5 ++- 9 files changed, 69 insertions(+), 47 deletions(-) diff --git a/src/kernel_services/cmdline_parameters/parameter_builder.ml b/src/kernel_services/cmdline_parameters/parameter_builder.ml index fbad1cab327..80881489f15 100644 --- a/src/kernel_services/cmdline_parameters/parameter_builder.ml +++ b/src/kernel_services/cmdline_parameters/parameter_builder.ml @@ -70,8 +70,8 @@ let force_ast_compute (** {2 Specific functors} *) (* ************************************************************************* *) -let iter_on_this_parameter stage = - match !Parameter_customize.do_iterate_ref, stage with +let is_parameter_reconfigurable stage = + match !Parameter_customize.is_reconfigurable_ref, stage with | Some false, _ | None, (Cmdline.Early | Cmdline.Extending | Cmdline.Extended | Cmdline.Exiting | Cmdline.Loading) -> @@ -96,17 +96,15 @@ struct let parameters_ref : Typed_parameter.t list ref = ref [] let parameters () = !parameters_ref - let add_parameter group stage param = - if iter_on_this_parameter stage then begin - parameters_ref := param :: !parameters_ref; - let parameter_groups = P.parameters in - try - let group_name = Cmdline.Group.name group in - let parameters = Hashtbl.find P.parameters group_name in - Hashtbl.replace parameter_groups group_name (param :: parameters) - with Not_found -> - assert false - end + let add_parameter group _stage param = + parameters_ref := param :: !parameters_ref; + let parameter_groups = P.parameters in + try + let group_name = Cmdline.Group.name group in + let parameters = Hashtbl.find P.parameters group_name in + Hashtbl.replace parameter_groups group_name (param :: parameters) + with Not_found -> + assert false (* ************************************************************************ *) (** {3 Bool} *) @@ -212,8 +210,10 @@ struct add_set_hook = add_set_hook; add_update_hook = add_update_hook }, negative_option) in + let reconfigurable = is_parameter_reconfigurable stage in let p = - Typed_parameter.create ~name ~help:X.help ~accessor:accessor ~is_set + Typed_parameter.create ~name ~help:X.help ~accessor:accessor + ~visible:is_visible ~reconfigurable ~is_set in add_parameter !Parameter_customize.group_ref stage p; Parameter_customize.reset (); @@ -318,8 +318,10 @@ struct add_set_hook = add_set_hook; add_update_hook = add_update_hook }, get_range) in + let reconfigurable = is_parameter_reconfigurable stage in let p = - Typed_parameter.create ~name ~help:X.help ~accessor ~is_set:is_set + Typed_parameter.create ~name ~help:X.help ~accessor + ~visible:is_visible ~reconfigurable ~is_set:is_set in add_parameter !Parameter_customize.group_ref stage p; add_option X.option_name; @@ -425,8 +427,10 @@ struct add_set_hook = add_set_hook; add_update_hook = add_update_hook }, get_possible_values) in + let reconfigurable = is_parameter_reconfigurable stage in let p = - Typed_parameter.create ~name ~help:X.help ~accessor ~is_set + Typed_parameter.create ~name ~help:X.help ~accessor + ~visible:is_visible ~reconfigurable ~is_set in add_parameter !Parameter_customize.group_ref stage p; add_option X.option_name; @@ -513,8 +517,10 @@ struct add_update_hook = parameter_add_update_hook }, fun () -> []) in + let reconfigurable = is_parameter_reconfigurable stage in let p = - Typed_parameter.create ~name ~help:X.help ~accessor ~is_set + Typed_parameter.create ~name ~help:X.help ~accessor + ~visible:is_visible ~reconfigurable ~is_set in add_parameter !Parameter_customize.group_ref stage p; add_option X.option_name; diff --git a/src/kernel_services/cmdline_parameters/parameter_customize.ml b/src/kernel_services/cmdline_parameters/parameter_customize.ml index 2a6a18e92cd..456dae219a1 100644 --- a/src/kernel_services/cmdline_parameters/parameter_customize.ml +++ b/src/kernel_services/cmdline_parameters/parameter_customize.ml @@ -81,14 +81,14 @@ let argument_must_be_existing_fun () = let group_ref = ref Cmdline.Group.default let set_group s = group_ref := s -let do_iterate_ref = ref None -let do_iterate () = do_iterate_ref := Some true -let do_not_iterate () = do_iterate_ref := Some false +let is_reconfigurable_ref = ref None +let is_reconfigurable () = is_reconfigurable_ref := Some true +let is_not_reconfigurable () = is_reconfigurable_ref := Some false let is_visible_ref = ref true let is_invisible () = is_visible_ref := false; - do_not_iterate () + is_not_reconfigurable () let use_category_ref = ref true let no_category () = use_category_ref := false @@ -124,7 +124,7 @@ let reset () = must_save_ref := true; module_name_ref := empty_string; group_ref := Cmdline.Group.default; - do_iterate_ref := None; + is_reconfigurable_ref := None; is_visible_ref := true; argument_is_function_name_ref := false; argument_may_be_fundecl_ref := false; diff --git a/src/kernel_services/cmdline_parameters/parameter_customize.mli b/src/kernel_services/cmdline_parameters/parameter_customize.mli index d2697198825..49e2f1433d6 100644 --- a/src/kernel_services/cmdline_parameters/parameter_customize.mli +++ b/src/kernel_services/cmdline_parameters/parameter_customize.mli @@ -90,7 +90,8 @@ val set_group: Cmdline.Group.t -> unit @since Beryllium-20090901 *) val is_invisible: unit -> unit -(** Prevent the help to list the parameter. Also imply {!do_not_iterate}. +(** Prevent -help from listing the parameter. + Also imply {!is_not_reconfigurable}. @since Carbon-20101201 @modify Nitrogen-20111001 does not appear in the help *) @@ -123,17 +124,21 @@ val argument_must_be_existing_fun: unit -> unit unset, names of defined-only functions will raise an error as well. @since Sodium-20150201 *) -val do_iterate: unit -> unit -(** Ensure that {!iter_on_plugins} is applied to this parameter. By default +val is_reconfigurable: unit -> unit +(** Ensure that the GUI will show this parameter. By default only parameters corresponding to options registered at the - {!Cmdline.Configuring} stage are iterable. - @since Nitrogen-20111001 *) + {!Cmdline.Configuring} stage are reconfigurable. + @since Nitrogen-20111001 + @modify Frama-C+dev [do_iterate] renamed to [is_reconfigurable] +*) -val do_not_iterate: unit -> unit -(** Prevent {!iter_on_plugins} to be applied on the parameter. By default, only +val is_not_reconfigurable: unit -> unit +(** Prevent the GUI from showing this parameter. By default, only parameters corresponding to options registered at the - {!Cmdline.Configuring} stage are iterable. - @since Nitrogen-20111001 *) + {!Cmdline.Configuring} stage are reconfigurable. + @since Nitrogen-20111001 + @modify Frama-C+dev [do_iterate] renamed to [is_reconfigurable] + *) val no_category: unit -> unit (** Prevent a collection parameter to use categories and the extension '+', and @@ -206,7 +211,7 @@ val argument_may_be_fundecl_ref: bool ref val argument_must_be_fundecl_ref: bool ref val argument_must_be_existing_fun_ref: bool ref val group_ref: Cmdline.Group.t ref -val do_iterate_ref: bool option ref +val is_reconfigurable_ref: bool option ref val is_visible_ref: bool ref val module_name_ref: string ref val use_category_ref: bool ref diff --git a/src/kernel_services/cmdline_parameters/typed_parameter.ml b/src/kernel_services/cmdline_parameters/typed_parameter.ml index 92429eec2cb..581fe62fbf8 100644 --- a/src/kernel_services/cmdline_parameters/typed_parameter.ml +++ b/src/kernel_services/cmdline_parameters/typed_parameter.ml @@ -36,7 +36,9 @@ type typed_accessor = type parameter = { name: string; help: string; - accessor: typed_accessor; + accessor: typed_accessor; + visible: bool; + reconfigurable: bool; is_set: unit -> bool } include @@ -56,6 +58,8 @@ include add_set_hook = (fun _ -> ()); add_update_hook = (fun _ -> ()) }, None); + visible = false ; + reconfigurable = false ; is_set = fun () -> false } ] let equal = (==) @@ -71,8 +75,8 @@ include let parameters = Datatype.String.Hashtbl.create 97 -let create ~name ~help ~accessor ~is_set = - let p = { name = name; help = help; accessor = accessor; is_set = is_set } in +let create ~name ~help ~accessor ~visible ~reconfigurable ~is_set = + let p = { name; help; accessor; visible; reconfigurable; is_set } in (* parameter name unicity already checks in [Plugin]. *) assert (not (Datatype.String.Hashtbl.mem parameters name)); Datatype.String.Hashtbl.add parameters name p; diff --git a/src/kernel_services/cmdline_parameters/typed_parameter.mli b/src/kernel_services/cmdline_parameters/typed_parameter.mli index 35117db7c00..28fafe6d94b 100644 --- a/src/kernel_services/cmdline_parameters/typed_parameter.mli +++ b/src/kernel_services/cmdline_parameters/typed_parameter.mli @@ -45,6 +45,8 @@ type parameter = private help: string; (** Help message *) accessor: typed_accessor; (** How to get and set the value of the parameter *) + visible: bool; (** Is visible to the user, e.g. in the command-line help *) + reconfigurable: bool; (** Can be reconfigured, e.g. in the GUI *) is_set: unit -> bool (** Is this option really set? *) } include Datatype.S_with_collections with type t = parameter @@ -61,6 +63,8 @@ val create: name:string -> help:string -> accessor:typed_accessor -> + visible:bool -> + reconfigurable:bool -> is_set: (unit -> bool) -> t (**/**) diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index d60942fa9c8..2556a163b6e 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -424,11 +424,10 @@ module AutocompleteHelp = P.String_set (struct let option_name = "-autocomplete" - let arg_name = "[+]p1,p2,..." + let arg_name = "p1,p2,..." let help = "displays all Frama-C options, used for shell autocompletion. \ Prints options for the specified plugin names (or '@all' for \ - all plugins). If the first character is '+', \ - only prints visible options." + all plugins). Note: for the kernel, use an empty string." end) let _ = @@ -471,7 +470,7 @@ let () = Parameter_customize.set_group messages let () = Parameter_customize.do_not_projectify () let () = Parameter_customize.do_not_journalize () let () = Parameter_customize.set_cmdline_stage Cmdline.Early -let () = Parameter_customize.do_iterate () +let () = Parameter_customize.is_reconfigurable () module GeneralVerbose = Int (struct @@ -493,7 +492,7 @@ let () = Parameter_customize.set_group messages let () = Parameter_customize.do_not_projectify () let () = Parameter_customize.do_not_journalize () let () = Parameter_customize.set_cmdline_stage Cmdline.Early -let () = Parameter_customize.do_iterate () +let () = Parameter_customize.is_reconfigurable () module GeneralDebug = Zero (struct @@ -517,7 +516,7 @@ let () = let () = Parameter_customize.set_group messages let () = Parameter_customize.set_negative_option_name "" let () = Parameter_customize.set_cmdline_stage Cmdline.Early -let () = Parameter_customize.do_iterate () +let () = Parameter_customize.is_reconfigurable () let () = Parameter_customize.do_not_projectify () let () = Parameter_customize.do_not_journalize () module Quiet = diff --git a/src/kernel_services/plugin_entry_points/plugin.ml b/src/kernel_services/plugin_entry_points/plugin.ml index cb3f72b7351..a02122eaa14 100644 --- a/src/kernel_services/plugin_entry_points/plugin.ml +++ b/src/kernel_services/plugin_entry_points/plugin.ml @@ -311,7 +311,7 @@ struct let () = Parameter_customize.set_cmdline_stage Cmdline.Extended; - if is_visible then Parameter_customize.do_iterate () + if is_visible then Parameter_customize.is_reconfigurable () else Parameter_customize.is_invisible () module Dir_name = @@ -517,7 +517,7 @@ struct Parameter_customize.set_group messages; Parameter_customize.do_not_projectify (); Parameter_customize.do_not_journalize (); - Parameter_customize.do_iterate (); + Parameter_customize.is_reconfigurable (); if is_kernel () then begin Parameter_customize.set_cmdline_stage Cmdline.Early; Parameter_customize.set_module_name modname; diff --git a/src/kernel_services/plugin_entry_points/plugin.mli b/src/kernel_services/plugin_entry_points/plugin.mli index 49568f9c4f0..39798e3efef 100644 --- a/src/kernel_services/plugin_entry_points/plugin.mli +++ b/src/kernel_services/plugin_entry_points/plugin.mli @@ -89,9 +89,10 @@ type plugin = private p_shortname: string; p_help: string; p_parameters: (string, Typed_parameter.t list) Hashtbl.t } -(** Only iterable parameters (see {!do_iterate} and {!do_not_iterate}) are - registered in the field [p_parameters]. - @since Beryllium-20090901 *) +(** @since Beryllium-20090901 + @modify Frama-C+dev previously only "iterable" parameters were included, + now all parameters are. +*) module type General_services = sig include S diff --git a/src/plugins/gui/launcher.ml b/src/plugins/gui/launcher.ml index 93505053884..447e7ae8e0a 100644 --- a/src/plugins/gui/launcher.ml +++ b/src/plugins/gui/launcher.ml @@ -137,7 +137,10 @@ let add_group (box:GPack.box) label options = in let highlight = List.fold_right - (fun p b -> let is_set = add_parameter box p in b || is_set) + (fun p b -> + if p.Typed_parameter.reconfigurable then + let is_set = add_parameter box p in b || is_set + else b) options false in -- GitLab From c87833a21307ac54b280a2bfeee03c489c60d661 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Wed, 16 Sep 2020 21:40:47 +0200 Subject: [PATCH 236/255] [Kernel] fix -autocomplete to avoid displaying 'Input C files' option --- src/kernel_internals/runtime/special_hooks.ml | 41 +++++++++++-------- 1 file changed, 23 insertions(+), 18 deletions(-) diff --git a/src/kernel_internals/runtime/special_hooks.ml b/src/kernel_internals/runtime/special_hooks.ml index 733e759ccfc..9161ca6e6d6 100644 --- a/src/kernel_internals/runtime/special_hooks.ml +++ b/src/kernel_internals/runtime/special_hooks.ml @@ -174,24 +174,29 @@ let run_list_all_plugin_options () = generate 2 strings *) let strings_of_typed_parameter tp = let name = tp.Typed_parameter.name in - match tp.Typed_parameter.accessor with - | Typed_parameter.Bool (_, opt_neg) -> - begin - match opt_neg with - | None -> [(name, "bool")] - | Some neg -> [(name, "bool"); (neg, "bool")] - end - | Int (_, frange) -> - let (min, max) = frange () in - if min = min_int && max = max_int then [(name, "int")] - else [(name, Format.asprintf "int (%d, %d)" min max)] - | String (_, fvalues) -> - let values = fvalues () in - if values = [] then [(name, "string")] - else - [(name, Format.asprintf "string (%a)" - (Pretty_utils.pp_list ~sep:", " - Format.pp_print_string) values)] + (* special case due to the "cmdline hack" related to + the "Input C files" option: if it does not start + with '-', ignore it *) + if String.get name 0 <> '-' then [] + else + match tp.Typed_parameter.accessor with + | Typed_parameter.Bool (_, opt_neg) -> + begin + match opt_neg with + | None -> [(name, "bool")] + | Some neg -> [(name, "bool"); (neg, "bool")] + end + | Int (_, frange) -> + let (min, max) = frange () in + if min = min_int && max = max_int then [(name, "int")] + else [(name, Format.asprintf "int (%d, %d)" min max)] + | String (_, fvalues) -> + let values = fvalues () in + if values = [] then [(name, "string")] + else + [(name, Format.asprintf "string (%a)" + (Pretty_utils.pp_list ~sep:", " + Format.pp_print_string) values)] in let group_options = List.flatten -- GitLab From 7d4bdee3a29dcd7458158b60212d80225b63d640 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 21 Sep 2020 11:33:11 +0200 Subject: [PATCH 237/255] [Kernel] use iter_on_plugins instead of fold_on_plugins --- src/kernel_services/plugin_entry_points/kernel.ml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/kernel_services/plugin_entry_points/kernel.ml b/src/kernel_services/plugin_entry_points/kernel.ml index 2556a163b6e..6765be0d0f3 100644 --- a/src/kernel_services/plugin_entry_points/kernel.ml +++ b/src/kernel_services/plugin_entry_points/kernel.ml @@ -438,8 +438,11 @@ let _ = fun f acc -> FcPlugin.fold_on_plugins (fun p acc -> f p.FcPlugin.p_shortname acc) acc method mem name = - FcPlugin.fold_on_plugins - (fun p found -> found || name = p.FcPlugin.p_shortname) false + try + FcPlugin.iter_on_plugins + (fun p -> if name = p.FcPlugin.p_shortname then raise Exit); + false + with Exit -> true end) let () = Parameter_customize.set_group help -- GitLab From 084e3c79d010900334614c754c6ef37cba41be75 Mon Sep 17 00:00:00 2001 From: Andre Maroneze <andre.maroneze@cea.fr> Date: Mon, 21 Sep 2020 17:34:06 +0200 Subject: [PATCH 238/255] [Doc] add mention to option -autocomplete in userman and manpage --- doc/userman/user-changes.tex | 2 ++ doc/userman/user-start.tex | 5 +++++ man/frama-c.1 | 6 +++++- man/frama-c.1.header | 2 +- man/frama-c.1.md | 4 ++++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/doc/userman/user-changes.tex b/doc/userman/user-changes.tex index 5689809133c..625dcc2db4a 100644 --- a/doc/userman/user-changes.tex +++ b/doc/userman/user-changes.tex @@ -6,6 +6,8 @@ release. First we list changes of the last release. \section*{\nextframacversion} \begin{itemize} +\item \textbf{Getting Started:} added option + \texttt{-autocomplete}. \item \textbf{Getting Started:} updated installation instructions. \item \textbf{Preparing the Sources:} added option \texttt{-print-cpp-commands}. diff --git a/doc/userman/user-start.tex b/doc/userman/user-start.tex index bd0a7d6d9e3..dc592cf246d 100644 --- a/doc/userman/user-start.tex +++ b/doc/userman/user-start.tex @@ -264,6 +264,11 @@ source $(frama-c-config -share)/autocomplete_frama-c || true There is also an autocompletion script for zsh, \texttt{\_frama-c}, also in the shared resources directory. Look inside for installation instructions. +The kernel option \optiondef{-}{autocomplete} provides a text output listing +all \FramaC options, so that autocompletion scripts may use it to provide +completion. The \FramaC team welcomes improved and additional autocompletion +scripts. + \subsection{Splitting a \FramaC Execution into Several Steps}\label{sec:then} By default, \FramaC parses its command line in an \emph{unspecified} order and diff --git a/man/frama-c.1 b/man/frama-c.1 index 6eb485315a7..92ee3debed2 100644 --- a/man/frama-c.1 +++ b/man/frama-c.1 @@ -25,7 +25,7 @@ .\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file .\" and run `make man/frama-c.1`. -.TH FRAMA-C 1 2020-09-01 +.TH FRAMA-C 1 2020-09-21 .SH NAME .PP frama-c[.byte] - a static analyzer for C programs @@ -141,6 +141,10 @@ This is the default. Annotations are pre-processed by default. Use -no-pp-annot if you don\[cq]t want to expand macros in annotations. .TP +.B -autocomplete \f[I]p1,\&...,pn\f[R] +lists the options of plugins \f[I]p1,\&...,pn\f[R] in a format suitable +for autocompletion scripts. +.TP .B -big-ints-hex \f[I]max\f[R] integers larger than \f[I]max\f[R] are displayed in hexadecimal (by default, all integers are displayed in decimal). diff --git a/man/frama-c.1.header b/man/frama-c.1.header index 0f53666d7fe..8d12fafa546 100644 --- a/man/frama-c.1.header +++ b/man/frama-c.1.header @@ -25,4 +25,4 @@ .\" using pandoc 2.0 or newer. To modify this file, edit the Markdown file .\" and run `make man/frama-c.1`. -.TH FRAMA-C 1 2020-09-01 +.TH FRAMA-C 1 2020-09-21 diff --git a/man/frama-c.1.md b/man/frama-c.1.md index 35111cfa6e8..30c76c5d3c5 100644 --- a/man/frama-c.1.md +++ b/man/frama-c.1.md @@ -97,6 +97,10 @@ with non-trivial control flow are never duplicated. Defaults to yes. : reads ACSL annotations. This is the default. Annotations are pre-processed by default. Use -no-pp-annot if you don't want to expand macros in annotations. +-autocomplete *p1,...,pn* +: lists the options of plugins *p1,...,pn* in a format suitable for +autocompletion scripts. + -big-ints-hex *max* : integers larger than *max* are displayed in hexadecimal (by default, all integers are displayed in decimal). -- GitLab From 33f78b3026162ea809b4aecd0fde5d9118c4f93f Mon Sep 17 00:00:00 2001 From: Julien Signoles <julien.signoles@cea.fr> Date: Thu, 24 Sep 2020 14:01:11 +0200 Subject: [PATCH 239/255] changelog --- Changelog | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Changelog b/Changelog index 76ba6294e47..f0a73adc855 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,9 @@ Open Source Release <next-release> ################################## +- Kernel [2020-09-22] New option -autocomplete p1, ..., pn that list the + options of plug-ins p1, ..., pn in a format suitable for + autocompletion scripts. - Kernel [2020-09-21] Option -permissive now allows non-existent option names. - Logic [2020-09-11] Introduce check-only annotations for -- GitLab From 02b336efa35fa41c74cca4bccc46dbde1fc46cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Mon, 6 Jul 2020 10:15:10 +0200 Subject: [PATCH 240/255] [Eva] Builtins string: fixes a performance issue on unaligned offsetmaps. Do not search character by character on offsetmap ranges that are not aligned with the reads. --- .../value/domains/cvalue/builtins_string.ml | 127 ++++++++---------- 1 file changed, 57 insertions(+), 70 deletions(-) diff --git a/src/plugins/value/domains/cvalue/builtins_string.ml b/src/plugins/value/domains/cvalue/builtins_string.ml index 9a474137e2f..39669a3e943 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.ml +++ b/src/plugins/value/domains/cvalue/builtins_string.ml @@ -59,6 +59,9 @@ let pos_min_int ival = | None -> Integer.zero | Some i -> Integer.(max zero i) +let make_interval ~min ~max = + Ival.inject_interval ~min:(Some min) ~max:(Some max) + (* Backward reduction of an ival against an integer.*) let backward_comp_left comp ival integer = Ival.backward_comp_int_left comp ival (Ival.inject_singleton integer) @@ -145,89 +148,73 @@ let read_char kind offset cvalue acc = let new_acc = read_one_char kind ~offset ~from:acc.from cvalue in { new_acc with read = join acc.read new_acc.read } -(* Reads the [offsetmap] character by character, starting from [index], with a - period of [kind.size], until reaching [max]. Precise but inefficient. *) -let rec search_each_index kind ~validity ~index ~max offsetmap acc = - let offsets = Ival.inject_singleton index in +(* Searches the range [min..max] of the [offsetmap], that contains a repeated + value of size [v_size]. *) +let search_offsetmap_range kind offsetmap validity ~min ~max ~v_size acc = let size = kind.size in - let cvalue = Cvalue.V_Offsetmap.find ~validity ~offsets ~size offsetmap in - let acc = read_char kind offsets cvalue acc in - let index = Integer.add index size in - if acc.stop || Integer.gt index max - then acc - else search_each_index kind ~validity ~index ~max offsetmap acc - -(* Reads at once the characters of size [kind.size] in the range [min..max] in - the [offsetmap], that contains the repeated value [v] of size [v_size]. - Assumes that [min] and [max] match the start and the end of the values. *) -let search_range kind ~min ~max (v, v_size, _v_shift) acc = - let make_interval ~min ~max = - Ival.inject_interval ~min:(Some min) ~max:(Some max) - in - (* Case where only one read is needed. *) - if Cvalue.V_Or_Uninitialized.is_isotropic v || Integer.equal kind.size v_size - then - let offset = make_interval ~min ~max ~rem:Integer.zero ~modu:kind.size in - read_char kind offset v acc - else - (* The value [v] contains [nb_chars] characters: need [nb_chars] reads. *) - let nb_chars = Integer.e_div v_size kind.size in - (* Reads the [count]-nth character in [v]. *) - let rec do_one_char count ~max res = - let start = Integer.mul kind.size count in - let min = Integer.add min start in - if Integer.ge count nb_chars || Integer.gt min max + (* Reads will repeat themselves every [modu] bits. *) + let modu = Integer.ppcm v_size size in + let max_reads = Integer.(to_int (e_div modu size)) in + (* Performs [max_reads] consecutive reads from offsets {[min] + k[modu]}, + bound by [max]. *) + let search_until ~max acc = + let rec read_index count ~min res = + let rem = Integer.e_rem min modu in + let offsets = make_interval ~min ~max ~rem ~modu in + let cvalue = Cvalue.V_Offsetmap.find ~validity ~offsets ~size offsetmap in + (* Be careful to not use this result [t] for the reads of the next + characters, as the reduction of [acc.from] assumes that the reads at + [offset] are consecutive, which is not the case here. Thus, we always + read with the initial [acc], and accumulate the result in [res]. *) + let t = read_char kind offsets cvalue acc in + let read = join res.read t.read in + (* At the end, all the reads are indeed consecutive, and we can + use the narrow of the [from] for the next ranges of the offsetmap. *) + let from = Ival.narrow res.from t.from in + let res = { read; from; stop = res.stop || t.stop; } in + let min = Integer.add min kind.size in + if (Ival.is_singleton_int offsets && res.stop) + || Integer.gt min max || count >= max_reads then res - else - let stop = Integer.(add start (pred kind.size)) in - let _, cvalue = - Cvalue.V_Or_Uninitialized.extract_bits - ~topify:Origin.K_Misalign_read ~start ~stop ~size:v_size v - in - let rem = Integer.mul count kind.size in - let offset = make_interval ~min ~max ~rem ~modu:v_size in - (* Be careful to not use this result [t] for the reads of the next - characters, as the reduction of [acc.from] assumes that the reads at - [offset] are consecutive, which is not the case here. Thus, we always - read with the initial [acc], and accumulate the result in [res]. *) - let t = read_char kind offset cvalue acc in - let read = join res.read t.read in - (* At the end, the [nb_chars] reads are indeed consecutive, and we can - use the narrow of the [from] for the next ranges of the offsetmap. *) - let from = Ival.narrow res.from t.from in - let res = { read; from; stop = res.stop || t.stop; } in - do_one_char (Integer.succ count) ~max res - in - (* The maximal offset we are sure to read. *) - let sure_offset = Integer.max (the_max_int acc.from) min in - let sure_max = Integer.add sure_offset v_size in - (* If one of the read characters stops the search, the other characters will - lead to imprecise results — as they are all periodic until [max]. Thus we - perform a first read until the maximal sure read offset. *) - let acc = - if Integer.lt sure_max max - then do_one_char Integer.zero ~max:sure_max acc - else acc + else read_index (count + 1) ~min res in - if acc.stop then acc else do_one_char Integer.zero ~max acc + read_index 1 ~min acc + in + (* The maximal offset we are sure to read from. *) + let sure_offset = Integer.max min (the_max_int acc.from) in + let sure_max = Integer.pred (Integer.add sure_offset modu) in + (* If one of the read characters stops the search, the other characters will + lead to imprecise results — as they are all periodic until [max]. Thus we + perform a first read of the range until the maximal sure read offset. *) + let acc = + if Integer.lt sure_max max + then search_until ~max:sure_max acc + else acc + in + if acc.stop then acc else search_until ~max acc (* Folds the [offsetmap] from [start] to [max]. *) let fold_offsm kind ~validity ~start ~max offsetmap acc = let modu = kind.size in let process_range (start, max) (v, v_size, v_shift) acc = if acc.stop then acc else - let index = Integer.round_up_to_r ~min:start ~r:Integer.zero ~modu in - let v_start = Abstract_interp.Rel.add_abs start v_shift in - (* Process the whole range at once when: + let min = Integer.round_up_to_r ~min:start ~r:Integer.zero ~modu in + let v_start = Abstract_interp.Rel.add_abs start v_shift in + (* Only one read of the value is needed when: - the ending cut is aligned with the reads, meaning that no read overlaps between two ranges of the offsetmap. - - and either the value is isotropic, or the reads are aligned with the - repeated values. *) + - and either the value is isotropic, or the repeated value has the + same size than the reads. *) if Integer.is_zero (Integer.e_rem (Integer.succ max) modu) && (Cvalue.V_Or_Uninitialized.is_isotropic v || - Integer.(equal index v_start && is_zero (e_rem v_size kind.size))) - then search_range kind ~min:index ~max (v, v_size, v_shift) acc - else search_each_index kind ~validity ~index ~max offsetmap acc + Integer.equal min v_start && Integer.equal v_size kind.size) + then + let offset = make_interval ~min ~max ~rem:Integer.zero ~modu in + read_char kind offset v acc + else + (* Otherwise, search the range by reading the offsetmap for each + required offset. Less efficient, but equally precise. *) + search_offsetmap_range kind offsetmap validity ~min ~max ~v_size acc in Cvalue.V_Offsetmap.fold_between ~entire:false (start, max) process_range offsetmap acc -- GitLab From affa390d366e70b8b4999b719a05ae0b03893bce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Mon, 6 Jul 2020 10:15:45 +0200 Subject: [PATCH 241/255] [Eva] Builtins string: fixes a crash on offsetmap ranges smaller than characters. --- .../value/domains/cvalue/builtins_string.ml | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/src/plugins/value/domains/cvalue/builtins_string.ml b/src/plugins/value/domains/cvalue/builtins_string.ml index 39669a3e943..f2c0dfbd2fe 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.ml +++ b/src/plugins/value/domains/cvalue/builtins_string.ml @@ -199,22 +199,23 @@ let fold_offsm kind ~validity ~start ~max offsetmap acc = let process_range (start, max) (v, v_size, v_shift) acc = if acc.stop then acc else let min = Integer.round_up_to_r ~min:start ~r:Integer.zero ~modu in + if Integer.gt min max then acc else let v_start = Abstract_interp.Rel.add_abs start v_shift in - (* Only one read of the value is needed when: - - the ending cut is aligned with the reads, meaning that no read - overlaps between two ranges of the offsetmap. - - and either the value is isotropic, or the repeated value has the - same size than the reads. *) - if Integer.is_zero (Integer.e_rem (Integer.succ max) modu) && - (Cvalue.V_Or_Uninitialized.is_isotropic v || - Integer.equal min v_start && Integer.equal v_size kind.size) - then - let offset = make_interval ~min ~max ~rem:Integer.zero ~modu in - read_char kind offset v acc - else - (* Otherwise, search the range by reading the offsetmap for each - required offset. Less efficient, but equally precise. *) - search_offsetmap_range kind offsetmap validity ~min ~max ~v_size acc + (* Only one read of the value is needed when: + - the ending cut is aligned with the reads, meaning that no read + overlaps between two ranges of the offsetmap. + - and either the value is isotropic, or the repeated value has the + same size than the reads. *) + if Integer.is_zero (Integer.e_rem (Integer.succ max) modu) && + (Cvalue.V_Or_Uninitialized.is_isotropic v || + Integer.equal min v_start && Integer.equal v_size kind.size) + then + let offset = make_interval ~min ~max ~rem:Integer.zero ~modu in + read_char kind offset v acc + else + (* Otherwise, search the range by reading the offsetmap for each + required offset. Less efficient, but equally precise. *) + search_offsetmap_range kind offsetmap validity ~min ~max ~v_size acc in Cvalue.V_Offsetmap.fold_between ~entire:false (start, max) process_range offsetmap acc -- GitLab From 5bd5228ee635f0c7614b80c2cdbc09040bbf4434 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 7 Jul 2020 18:05:14 +0200 Subject: [PATCH 242/255] [Eva] Builtins string: fixes the read through misaligned pointers. --- .../value/domains/cvalue/builtins_string.ml | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/plugins/value/domains/cvalue/builtins_string.ml b/src/plugins/value/domains/cvalue/builtins_string.ml index f2c0dfbd2fe..c5d67fdf4cb 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.ml +++ b/src/plugins/value/domains/cvalue/builtins_string.ml @@ -194,11 +194,11 @@ let search_offsetmap_range kind offsetmap validity ~min ~max ~v_size acc = if acc.stop then acc else search_until ~max acc (* Folds the [offsetmap] from [start] to [max]. *) -let fold_offsm kind ~validity ~start ~max offsetmap acc = +let fold_offsm kind ~validity ~start ~max ~rem offsetmap acc = let modu = kind.size in let process_range (start, max) (v, v_size, v_shift) acc = if acc.stop then acc else - let min = Integer.round_up_to_r ~min:start ~r:Integer.zero ~modu in + let min = Integer.round_up_to_r ~min:start ~r:rem ~modu in if Integer.gt min max then acc else let v_start = Abstract_interp.Rel.add_abs start v_shift in (* Only one read of the value is needed when: @@ -206,11 +206,11 @@ let fold_offsm kind ~validity ~start ~max offsetmap acc = overlaps between two ranges of the offsetmap. - and either the value is isotropic, or the repeated value has the same size than the reads. *) - if Integer.is_zero (Integer.e_rem (Integer.succ max) modu) && + if Integer.equal rem (Integer.e_rem (Integer.succ max) modu) && (Cvalue.V_Or_Uninitialized.is_isotropic v || Integer.equal min v_start && Integer.equal v_size kind.size) then - let offset = make_interval ~min ~max ~rem:Integer.zero ~modu in + let offset = make_interval ~min ~max ~rem ~modu in read_char kind offset v acc else (* Otherwise, search the range by reading the offsetmap for each @@ -221,7 +221,7 @@ let fold_offsm kind ~validity ~start ~max offsetmap acc = ~entire:false (start, max) process_range offsetmap acc (* Performs the search in the [offsetmap]. *) -let search_offsm kind ~validity ~offset offsetmap = +let search_offsm kind ~validity ~offset ~rem offsetmap = let start = pos_min_int offset in (* Compute the maximal bit that can be read in the offsetmap. *) let base_max = match Base.valid_range validity with @@ -239,7 +239,7 @@ let search_offsm kind ~validity ~offset offsetmap = in (* Starts the search with an empty accumulator. *) let acc = { read = empty; from = offset; stop = false } in - let acc = fold_offsm kind ~validity ~start ~max offsetmap acc in + let acc = fold_offsm kind ~validity ~start ~max ~rem offsetmap acc in (* Alarm if the search does not stop before the end of the offsetmap. *) if not acc.stop && Integer.gt (Integer.add max kind.size) base_max then { acc.read with alarm = true } @@ -261,9 +261,14 @@ let search_base kind ~offset base state = | `Top -> assert false | `Value offsetmap -> let validity = Base.validity base in - let search_one_char offset char = + let search_one_rem ~offset ~char ~rem acc = let kind = { kind with search = char } in - search_offsm kind ~validity ~offset offsetmap + let res = search_offsm kind ~validity ~offset ~rem offsetmap in + join acc res + in + let search_one_char offset char = + let rems = Ival.scale_rem ~pos:true kind.size offset in + Ival.fold_int (fun rem -> search_one_rem ~offset ~char ~rem) rems empty in let search_one_offset offset = search_by_folding kind.search (search_one_char offset) -- GitLab From 65e4bfd3aebf2c4a91432d5bf6111586c27fd8b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 8 Sep 2020 15:25:05 +0200 Subject: [PATCH 243/255] [Eva] Builtins string: misaligned pointers are considered invalid. But they are not reduced to properly aligned pointers for now. --- src/plugins/value/domains/cvalue/builtins_string.ml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/value/domains/cvalue/builtins_string.ml b/src/plugins/value/domains/cvalue/builtins_string.ml index c5d67fdf4cb..b4ac0886249 100644 --- a/src/plugins/value/domains/cvalue/builtins_string.ml +++ b/src/plugins/value/domains/cvalue/builtins_string.ml @@ -339,7 +339,12 @@ let reduce_by_validity ~size cvalue = let loc_bits = Locations.loc_bytes_to_loc_bits cvalue in let loc = Locations.make_loc loc_bits (Int_Base.inject size) in if Locations.(is_valid Read loc) - then loc.Locations.loc, true + then + let is_aligned _base ival = + Ival.is_zero (Ival.scale_rem ~pos:true size ival) + in + let valid = Locations.Location_Bits.for_all is_aligned loc_bits in + loc.Locations.loc, valid else let valid_loc = Locations.(valid_part Read ~bitfield:true loc) in valid_loc.Locations.loc, false -- GitLab From 82f1a0f6504f3845e38d9a04079b2760b17d18f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Fri, 25 Sep 2020 11:51:29 +0200 Subject: [PATCH 244/255] [Eva] Adds a test for string builtins applied on misaligned offsetmap or pointer. --- tests/builtins/oracle/wcslen.res.oracle | 82 ++++++++++++++++++++----- tests/builtins/wcslen.c | 32 ++++++++++ 2 files changed, 100 insertions(+), 14 deletions(-) diff --git a/tests/builtins/oracle/wcslen.res.oracle b/tests/builtins/oracle/wcslen.res.oracle index 784bf02c5cf..00a752d3a13 100644 --- a/tests/builtins/oracle/wcslen.res.oracle +++ b/tests/builtins/oracle/wcslen.res.oracle @@ -31,7 +31,7 @@ [11] ∈ {100} nondet ∈ [--..--] [eva] computing for function small_sets <- main. - Called from tests/builtins/wcslen.c:339. + Called from tests/builtins/wcslen.c:370. [eva] tests/builtins/wcslen.c:60: Call to builtin wcslen [eva] tests/builtins/wcslen.c:60: function wcslen: precondition 'valid_string_s' got status valid. @@ -55,7 +55,7 @@ [eva] Recording results for small_sets [eva] Done for function small_sets [eva] computing for function zero_termination <- main. - Called from tests/builtins/wcslen.c:340. + Called from tests/builtins/wcslen.c:371. [eva] tests/builtins/wcslen.c:89: Call to builtin wcslen [eva:alarm] tests/builtins/wcslen.c:89: Warning: function wcslen: precondition 'valid_string_s' got status unknown. @@ -69,7 +69,7 @@ [eva] Recording results for zero_termination [eva] Done for function zero_termination [eva] computing for function wcslen_initialization <- main. - Called from tests/builtins/wcslen.c:341. + Called from tests/builtins/wcslen.c:372. [eva] tests/builtins/wcslen.c:105: Call to builtin wcslen [eva:alarm] tests/builtins/wcslen.c:105: Warning: function wcslen: precondition 'valid_string_s' got status unknown. @@ -88,7 +88,7 @@ [eva] Recording results for wcslen_initialization [eva] Done for function wcslen_initialization [eva] computing for function wcslen_large <- main. - Called from tests/builtins/wcslen.c:342. + Called from tests/builtins/wcslen.c:373. [eva] computing for function init_array_nondet <- wcslen_large <- main. Called from tests/builtins/wcslen.c:168. [eva] tests/builtins/wcslen.c:161: Call to builtin memset @@ -152,7 +152,7 @@ [eva] Recording results for wcslen_large [eva] Done for function wcslen_large [eva] computing for function wcslen_large_uninit <- main. - Called from tests/builtins/wcslen.c:343. + Called from tests/builtins/wcslen.c:374. [eva] computing for function init_array_nondet <- wcslen_large_uninit <- main. Called from tests/builtins/wcslen.c:197. [eva] tests/builtins/wcslen.c:161: Call to builtin memset @@ -193,7 +193,7 @@ [eva] Recording results for wcslen_large_uninit [eva] Done for function wcslen_large_uninit [eva] computing for function misc <- main. - Called from tests/builtins/wcslen.c:344. + Called from tests/builtins/wcslen.c:375. [eva] tests/builtins/wcslen.c:241: Call to builtin wcslen [eva:alarm] tests/builtins/wcslen.c:241: Warning: function wcslen: precondition 'valid_string_s' got status invalid. @@ -245,14 +245,14 @@ [eva] Recording results for misc [eva] Done for function misc [eva] computing for function bitfields <- main. - Called from tests/builtins/wcslen.c:345. + Called from tests/builtins/wcslen.c:376. [eva] tests/builtins/wcslen.c:140: Call to builtin wcslen [eva:alarm] tests/builtins/wcslen.c:140: Warning: function wcslen: precondition 'valid_string_s' got status invalid. [eva] Recording results for bitfields [eva] Done for function bitfields [eva] computing for function bitfields2 <- main. - Called from tests/builtins/wcslen.c:346. + Called from tests/builtins/wcslen.c:377. [eva] tests/builtins/wcslen.c:155: Call to builtin wcslen [eva] tests/builtins/wcslen.c:155: function wcslen: precondition 'valid_string_s' got status valid. @@ -260,7 +260,7 @@ [eva] Recording results for bitfields2 [eva] Done for function bitfields2 [eva] computing for function escaping <- main. - Called from tests/builtins/wcslen.c:347. + Called from tests/builtins/wcslen.c:378. [eva:alarm] tests/builtins/wcslen.c:222: Warning: pointer downcast. assert (unsigned int)(&x) ≤ 2147483647; [eva:alarm] tests/builtins/wcslen.c:222: Warning: @@ -282,7 +282,7 @@ [eva] Recording results for escaping [eva] Done for function escaping [eva] computing for function big_array <- main. - Called from tests/builtins/wcslen.c:348. + Called from tests/builtins/wcslen.c:379. [eva:alarm] tests/builtins/wcslen.c:287: Warning: out of bounds write. assert \valid(p); [eva:alarm] tests/builtins/wcslen.c:291: Warning: @@ -312,7 +312,7 @@ [eva] Recording results for big_array [eva] Done for function big_array [eva] computing for function negative_offsets <- main. - Called from tests/builtins/wcslen.c:349. + Called from tests/builtins/wcslen.c:380. [eva] tests/builtins/wcslen.c:314: starting to merge loop iterations [eva] computing for function Frama_C_interval <- negative_offsets <- main. Called from tests/builtins/wcslen.c:318. @@ -364,6 +364,32 @@ function wcslen: precondition 'valid_string_s' got status unknown. [eva] Recording results for negative_offsets [eva] Done for function negative_offsets +[eva] computing for function misaligned_string <- main. + Called from tests/builtins/wcslen.c:381. +[eva] tests/builtins/wcslen.c:345: assertion got status valid. +[eva] tests/builtins/wcslen.c:346: Call to builtin wcslen +[eva] tests/builtins/wcslen.c:346: + function wcslen: precondition 'valid_string_s' got status valid. +[eva] computing for function Frama_C_interval <- misaligned_string <- main. + Called from tests/builtins/wcslen.c:350. +[eva] tests/builtins/wcslen.c:350: + function Frama_C_interval: precondition 'order' got status valid. +[eva] Done for function Frama_C_interval +[eva:alarm] tests/builtins/wcslen.c:351: Warning: + out of bounds write. assert \valid((char *)((wchar_t *)b) + i); +[eva:alarm] tests/builtins/wcslen.c:352: Warning: assertion got status unknown. +[eva] tests/builtins/wcslen.c:353: Call to builtin wcslen +[eva:alarm] tests/builtins/wcslen.c:353: Warning: + function wcslen: precondition 'valid_string_s' got status unknown. +[eva:alarm] tests/builtins/wcslen.c:361: Warning: assertion got status unknown. +[eva] tests/builtins/wcslen.c:362: Call to builtin wcslen +[eva:alarm] tests/builtins/wcslen.c:362: Warning: + function wcslen: precondition 'valid_string_s' got status unknown. +[eva] tests/builtins/wcslen.c:365: Call to builtin wcslen +[eva:alarm] tests/builtins/wcslen.c:365: Warning: + function wcslen: precondition 'valid_string_s' got status invalid. +[eva] Recording results for misaligned_string +[eva] Done for function misaligned_string [eva] Recording results for main [eva] done for function main [scope:rm_asserts] removing 3 assertion(s) @@ -405,6 +431,24 @@ [1..3] ∈ ESCAPINGADDR z1 ∈ {0} z2 ∈ {0} +[eva:final-states] Values at end of function misaligned_string: + Frama_C_entropy_source ∈ [--..--] + a[0][bits 0 to 7] ∈ {1} + [0][bits 8 to 31] ∈ {0} + [1] ∈ {1} + [2] ∈ {0} + a_length ∈ {2} + b[0..9999999]# ∈ {0; 17} repeated %8 + i ∈ [0..39999999] + b_length ∈ [0..9999999] + c[0][bits 0 to 7] ∈ {0} + {[0][bits 8 to 31]#; [1][bits 0 to 7]#} ∈ {1} + {[1][bits 8 to 31]#; [2][bits 0 to 7]#} ∈ {2} + {[2][bits 8 to 31]; [3][bits 0 to 7]} ∈ {0} + {[3][bits 8 to 31]#; [4][bits 0 to 7]#} ∈ {4} + [4][bits 8 to 31] ∈ {0} + p ∈ {{ &c + {1} }} + c_length ∈ {2} [eva:final-states] Values at end of function misc: Frama_C_entropy_source ∈ [--..--] loc_str ∈ {{ L"Bonjour Monde\n" }} @@ -524,9 +568,11 @@ [from] Done for function bitfields2 [from] Computing for function escaping [from] Done for function escaping -[from] Computing for function misc -[from] Computing for function Frama_C_interval <-misc +[from] Computing for function misaligned_string +[from] Computing for function Frama_C_interval <-misaligned_string [from] Done for function Frama_C_interval +[from] Done for function misaligned_string +[from] Computing for function misc [from] Done for function misc [from] Computing for function negative_offsets [from] Done for function negative_offsets @@ -560,7 +606,8 @@ non_terminated2[2..3]; empty_or_uninitialized[0]; uninitialized[0]; s[0..1]; t[0..3]; s; s; a[3..99]; a[3..99]; s[0..3]; loc_char_array[0..4]; x[0..3]; maybe_init[0..1]; - t[0..999999]; u[0..199]; r[0..200]; buf[0..99]; + t[0..999999]; u[0..199]; r[0..200]; buf[0..99]; a[0..2]; + b[0..9999999]; c{[0][bits 8 to 31]; [1..3]; [4][bits 0 to 7]}; L"Hello World\n"[bits 0 to 415]; L"abc\000\000\000abc"[bits 0 to 319]; L""; L"a"[bits 0 to 63]; L"aa"[bits 0 to 95]; L"aaa"[bits 0 to 127]; @@ -582,6 +629,8 @@ NO EFFECTS [from] Function escaping: NO EFFECTS +[from] Function misaligned_string: + Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF) [from] Function misc: Frama_C_entropy_source FROM Frama_C_entropy_source (and SELF) [from] Function negative_offsets: @@ -620,6 +669,11 @@ s[0..3]; z1; tmp; z2; tmp_0 [inout] Inputs for function escaping: nondet +[inout] Out (internal) for function misaligned_string: + Frama_C_entropy_source; a[0..2]; a_length; b[0..9999999]; i; b_length; + c[0..4]; p; c_length +[inout] Inputs for function misaligned_string: + Frama_C_entropy_source; nondet [inout] Out (internal) for function misc: Frama_C_entropy_source; loc_str; loc_char_array[3]; sz1; sz2; sz3; sz4; sz5; sz6; sz7; sz8; x[0..3]; z[0..3]; i; str; s1; tmp; s2; tmp_0; diff --git a/tests/builtins/wcslen.c b/tests/builtins/wcslen.c index dea7cd1aad9..183e2f2a2da 100644 --- a/tests/builtins/wcslen.c +++ b/tests/builtins/wcslen.c @@ -335,6 +335,37 @@ void negative_offsets() { wchar_t dest[100 * 2]; } +#define MAX 10000000 + +void misaligned_string () { + // Read an offsetmap with a value range smaller than the read characters. + wchar_t a[3] = {0}; + *(char *)a = 1; + a[1] = 1; + //@ assert valid_read_wstring(&a[0]); + unsigned int a_length = wcslen(&a[0]); + /* Read an offsetmap with repeated values smaller than the searched + characters: test a performance issue. */ + wchar_t b[MAX] = {0}; + int i = Frama_C_interval(0, MAX * 4); + *((char *)b + i) = (char)17; + //@ assert valid_read_wstring(&b[0]); + unsigned int b_length = wcslen(&b[0]); + /* Read an offsetmap through a misaligned pointer. */ + wchar_t c[5] = {0}; + wchar_t *p = (wchar_t *)( (char *)c + 1); + *p = 1; + *(p+1) = 2; + *(p+2) = 0; // If we accept the string pointed by p, its length should be 2. + *(p+3) = 4; + //@ assert valid_read_wstring(p); + unsigned int c_length = wcslen(p); + if (nondet) { + *(p+2) = 3; // The string pointed by p cannot be valid here. + c_length = wcslen(p); + } +} + int main (int c) { small_sets(); zero_termination(); @@ -347,5 +378,6 @@ int main (int c) { escaping(); big_array(); negative_offsets(); + misaligned_string(); return 0; } -- GitLab From c99be93a6d49d85d997a277689305aca060a500e Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Wed, 23 Sep 2020 17:31:39 +0200 Subject: [PATCH 245/255] [wp] Add goal name on script error --- src/plugins/wp/ProverScript.ml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/wp/ProverScript.ml b/src/plugins/wp/ProverScript.ml index 7a264f1e5f5..50d39797232 100644 --- a/src/plugins/wp/ProverScript.ml +++ b/src/plugins/wp/ProverScript.ml @@ -324,7 +324,8 @@ let rec crawl env on_child node = function Task.return () | Error(msg,json) :: alternative -> - Wp_parameters.warning "@[<hov 2>Script Error %S: %a@]@." + Wp_parameters.warning "@[<hov 2>Script Error: on goal %a@\n%S: %a@]@." + WpPropId.pretty (Env.goal env node).po_pid msg Json.pp json ; crawl env on_child node alternative @@ -349,9 +350,11 @@ let rec crawl env on_child node = function match jfork (Env.tree env) ?node jtactic with | None -> Wp_parameters.warning - "Script Error: can not apply '%s'@\n\ + "Script Error: on goal %a@\n\ + can not apply '%s'@\n\ @[<hov 2>Params: %a@]@\n\ @[<hov 2>Select: %a@]@." + WpPropId.pretty (Env.goal env node).po_pid jtactic.tactic Json.pp jtactic.params Json.pp jtactic.select ; -- GitLab From 613343b02a5efa92457a0042319de5cd9950cdae Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 24 Sep 2020 16:09:42 +0200 Subject: [PATCH 246/255] [wp] More information when Alt-Ergo fails --- src/plugins/wp/ProverErgo.ml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/plugins/wp/ProverErgo.ml b/src/plugins/wp/ProverErgo.ml index 1e9a0feae7c..0dc36e0245f 100644 --- a/src/plugins/wp/ProverErgo.ml +++ b/src/plugins/wp/ProverErgo.ml @@ -404,9 +404,14 @@ class altergo ~config ~pid ~gui ~file ~lines ~logout ~logerr = ~steps verdict with Not_found -> begin + let message std = + Format.asprintf + "Alt-Ergo (%s) for goal %a" + std WpPropId.pretty pid + in if Wp_parameters.verbose_atleast 1 then begin - ProverTask.pp_file ~message:"Alt-Ergo (stdout)" ~file:logout ; - ProverTask.pp_file ~message:"Alt-Ergo (stderr)" ~file:logerr ; + ProverTask.pp_file ~message:(message "stdout") ~file:logout ; + ProverTask.pp_file ~message:(message "stderr") ~file:logerr ; end; if r = 0 then VCS.failed "Unexpected Alt-Ergo output" else VCS.kfailed "Alt-Ergo exits with status [%d]." r -- GitLab From 1a4effc13bacd79b27993ebd24d0fd51426532eb Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 24 Sep 2020 17:42:34 +0200 Subject: [PATCH 247/255] [wp] Strategies use the right prover list --- src/plugins/wp/GuiGoal.ml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/plugins/wp/GuiGoal.ml b/src/plugins/wp/GuiGoal.ml index c9693efd719..6444533328f 100644 --- a/src/plugins/wp/GuiGoal.ml +++ b/src/plugins/wp/GuiGoal.ml @@ -665,9 +665,10 @@ class pane (gprovers : GuiConfig.provers) = self#search proof fork else begin + let provers = List.map (fun e -> e#prover) provers in ProverScript.search ~depth ~width ~auto - ~provers:[ VCS.NativeAltErgo ] + ~provers ~result: (fun wpo prv res -> text#printf "[%a] %a : %a@." -- GitLab From 641a8e29c2e088c916976653f354881ee76b255d Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 24 Sep 2020 15:08:11 +0200 Subject: [PATCH 248/255] [wp] MemVar provides the constraints on variables --- src/plugins/wp/MemVar.ml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index e3f2c8292be..1eb2e120663 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -1533,7 +1533,12 @@ struct (M.domain obj (mloc_of_loc l)) Heap.Set.empty let is_well_formed sigma = - M.is_well_formed sigma.mem + let values = SIGMA.domain sigma.vars in + let constrain v = + Cvalues.has_ctype v.vtype (e_var (Sigma.get sigma (Var v))) + in + let cstrs = SIGMA.Chunk.Set.fold (fun e l -> constrain e :: l) values [] in + p_and (p_conj cstrs) (M.is_well_formed sigma.mem) (* -------------------------------------------------------------------------- *) -- GitLab From ec736052069a58941ab127a2ee6ebdb37b874284 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 24 Sep 2020 15:09:53 +0200 Subject: [PATCH 249/255] [wp] Update oracles --- .../wp_acsl/oracle/chunk_typing.res.oracle | 17 ++++++++------- .../wp_acsl/oracle/struct_fields.res.oracle | 21 ++++++++++--------- .../04c1fcb3dde99404e56f398c9d3c7b31.json | 2 ++ .../09419c3fbb6dc84c7ea4daf3841c155f.json | 2 ++ .../0af3d5135623c7629e8792c15c73e11e.json | 2 ++ .../1d2ed0d831c17546d006475b478b59c1.json | 2 ++ .../281d06f1268fc1f6bae73c9b23a370f6.json | 2 ++ .../35644610983981a71b83b5427a68f6c0.json | 2 ++ .../6367c7d1e56f1af80ad76d813e09b66a.json | 2 ++ .../675a842c7ec32528e5e21888634a1279.json | 2 ++ .../7ea33aa4c8dc9c1ed12a312a5a7b96ed.json | 2 ++ .../a76226839c540aad032cd3b9de095b89.json | 2 ++ .../bd67f73e3ff115a9f45b4244c20611fe.json | 2 ++ .../e046513e2f30f1a1946d5d6e40ef9129.json | 2 ++ .../e434135b1fa122e6a232e26709df80a5.json | 2 ++ .../e8e066b606c41e89f82b2aa3eef46a68.json | 2 ++ .../e9c784c595bc40819eff858fbcc12bab.json | 2 ++ .../efda69b6f9003dcb53f99c442ec8c4de.json | 2 ++ .../f6b163a1cc48d21b279ce315660ffd85.json | 2 ++ .../f97c74763d0222ed9be7c3fa666ce4e9.json | 2 ++ .../feca65e917b9c99c3286ceebc5a4d618.json | 2 ++ .../23316fd95fd7b645f6e7ee1ac0ec11dd.json | 2 ++ .../af1c6e5e9ad0ce51ef02350de25db7b1.json | 1 + .../e7547aa0621803b4e7d628af9dae8742.json | 2 ++ .../0aaa8433bdd863a175c8f7aa27b5b23b.json | 1 + .../1235102376d88a3bdb52f3e4e1c49883.json | 2 ++ .../55cf143d013d4eb3345feb58b26b90df.json | 2 ++ .../6203cf6d36b297213c87a78442bb23a3.json | 1 + .../7d35e079640e61a3109774eff9ba7fe6.json | 1 + .../bd22ac48c200239c37396cb5c074a071.json | 1 + .../d3883c78b48ca2e9439df35f88b59d8c.json | 1 + .../da21dd780a181597dd44b362df8f5670.json | 1 + .../320f90061a8c50bf116b388e086c7897.json | 2 ++ .../28c1570cd2d3e97ddd579e328c469acf.json | 1 + .../5bfdad2f5b18af371b905b94799e1cc0.json | 2 ++ .../7ac4f3e9696602b90e6fd7dbef86293c.json | 2 ++ .../c520b8395718f1f484266fd4e5983d1e.json | 2 ++ .../647e4705204771b6a78e805ee29cba26.json | 1 + .../94f13affa6f3b5126e172fdc6062be2e.json | 2 ++ .../10fef2083d54144639f0b6cd94778cb5.json | 2 ++ .../52fdcb4ddd856ebb4464834c99aebae0.json | 2 ++ .../76a1b1317f2520ef9a599a12e344730d.json | 2 ++ .../786eb6ddc8b4a1c15c3182f42e302b10.json | 2 ++ .../c47ae970e7baa8aa14a744f568b77922.json | 2 ++ .../d3570f7a7a9be38c8599ac1773a618a2.json | 2 ++ .../08ff774ac6a70674d784cefe233dc1ab.json | 2 ++ .../82750bb2b6c7b7cda9f4f22eea23f1ef.json | 2 ++ .../e6bfe72a35736c49013701f4e6cc2d7c.json | 2 ++ .../152adf213328a70d06d3041ea7eca814.json | 1 + .../cdfaa1f77a537214fe4d4d473da0c93f.json | 2 ++ .../dbca0c75b09289a0939a4568bccb8ffe.json | 2 ++ .../e3abd032ee5753e542d0c3d7701189e4.json | 2 ++ .../ce56b654edab77f40b10056e97cc5df5.json | 2 ++ .../2de8075c9ff8cf4d4f231608bed835a9.json | 2 ++ .../91244a7f80eb57f7181e1278e1172cc9.json | 2 ++ .../a59cc9b3f7f8b4a6624a1d1232662c22.json | 2 ++ .../a93f056d32a8ace3dd916b64068f94c2.json | 2 ++ .../aafe330c4b6932bf122ff6509f3fc2b0.json | 2 ++ .../0d14213263b1d1def509095c28e95ea9.json | 2 ++ .../5c04a7d9d73560b7116ff3914824c36d.json | 2 ++ .../7cf5fa10093d1ce2fd3940954cba0727.json | 2 ++ .../857d1f9981d68d1406859c8aae1b4639.json | 2 ++ .../9ad7d025e7eb0eec65fb3551668328c9.json | 2 ++ .../0ee6d92adc52cf841d8f421ae8b9d2f2.json | 2 ++ .../0f47526247a0528c7b0b8c8e945b32bd.json | 2 ++ .../3220ff8d08680b2082f90cfbabe5515c.json | 2 ++ .../3c1da17d2eb3aa57d9920fdbb8fdc9ff.json | 2 ++ .../f6d37791a1137bc07941a661f2333b7e.json | 2 ++ .../0748144945def11ea300e135d8482e4a.json | 2 ++ .../0b916424d61743046a3a8aa2d1980ca0.json | 2 ++ .../0f63fa83c61794d80fd003f133e182a7.json | 2 ++ .../1784d421c70ac778d245b285417fda0f.json | 2 ++ .../1fe4ca1fb351003ccbd8755355135f8a.json | 2 ++ .../21a3de19df739b18752521529d786b4b.json | 2 ++ .../25def53021ebb0a8629e796358a6848b.json | 2 ++ .../27bf4adc6f09a58eafeabec80e08e561.json | 2 ++ .../2ad8e6939da759ba7083da389f70b19a.json | 2 ++ .../2b04374aa95473cfa45c6abca5d0fe15.json | 2 ++ .../2de5619cd6bf8a4549f18cbf2daefbba.json | 2 ++ .../3b096d1ad2f60d27d68c9819789fceb4.json | 2 ++ .../3d5c736c9ebc4a910745c54e3f810000.json | 2 ++ .../4524f3b1a3aaeae1f14f29cffc5532b4.json | 2 ++ .../45fc8639c2e8c14a8ba57fe664c24c9d.json | 2 ++ .../4833c149c493290f7476cb694c326889.json | 2 ++ .../51225dc69fc56402c586cbf2cad99281.json | 2 ++ .../5998e90eb1b10fc1fd4ff54e6ef5689e.json | 2 ++ .../5d20435c0b8e9bb4e51ab262b3129648.json | 2 ++ .../5d3f4ea5bf6dc3f773faf7e0d63f1c76.json | 2 ++ .../6e15ce103fe14e50af7e0936d1d2a924.json | 1 + .../75158755074596f3fba764a01a862cea.json | 2 ++ .../77066c103c80ea4e5f9b5605057d8d03.json | 2 ++ .../78c65afc8eeed0925d1f9c68b047f97a.json | 2 ++ .../7e81584b97fe9a89bed8cd913741db47.json | 2 ++ .../805d516e173e9a1980e332963ed26853.json | 2 ++ .../85bd4f374f9098d4767c14833e05b5b8.json | 2 ++ .../904dfd55419e9da26d6710c5e3bb2512.json | 2 ++ .../93d52e79f66a5fbbf8a8d577d910215e.json | 2 ++ .../9e3b12919ddd0b7f3deeaa63da75f6e5.json | 2 ++ .../a82a6af66093c860d0011d4f227136d1.json | 2 ++ .../a8e0d95eaca351657706fd30bd03bea1.json | 2 ++ .../a9311c935f353c4d4cea656ea0ab8a1e.json | 2 ++ .../b2ad64f1c1643c7dd2550c00a9074f69.json | 2 ++ .../b2ddcd489f338024c524107b6e504a00.json | 2 ++ .../bfe86eb3dc31cfbaa90471047107b2d3.json | 2 ++ .../c89d9d7df15c1516409d246b82b8c1f0.json | 2 ++ .../cf7eaa96c53ed9bc0ce7eef2ff6d4785.json | 2 ++ .../d73fc9500445fd11b1277eb233677128.json | 2 ++ .../dfb4426937ac0dd3319b8d97b1113ef1.json | 2 ++ .../e3c7c32c0e592dcd434f4f389ed60f36.json | 2 ++ .../e90a80dc6573ff3be6973ff12e676e32.json | 2 ++ .../ef4bb98ab16552a98c74ec0913047b5d.json | 2 ++ .../f6abbe317c0d2a1424b05d2fb7e4bd9b.json | 2 ++ .../f9262c0413f25f71d0ae44d4744746f0.json | 2 ++ .../1097cb045925dc7690981f0f528ee5d4.json | 2 ++ .../d89912a1e879d06f335b8d985cb804f3.json | 2 ++ .../de777917ace9bbef5272bb764ddd82c2.json | 2 ++ .../3016a12fe9f82a49a0ff618ae2acf170.json | 2 ++ .../3016a12fe9f82a49a0ff618ae2acf170.json | 2 ++ .../89c62021b110300d0866feac14bd7c45.json | 1 + .../b602aeb805673b0805c79216c3ced563.json | 1 + .../8d2cbdde2b0c4740b0467e8f84939e0d.json | 2 ++ 121 files changed, 245 insertions(+), 18 deletions(-) create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json create mode 100644 src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json create mode 100644 src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json create mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json create mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json create mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json create mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json create mode 100644 src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json create mode 100644 src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json create mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json create mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json create mode 100644 src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json diff --git a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle index 8df080b73db..f318abf289f 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/chunk_typing.res.oracle @@ -31,19 +31,20 @@ Let a_20 = a_9[shift_sint32(i32_0, i)]. Let a_21 = a_11[shift_uint32(u32_0, i)]. Let a_22 = a_13[shift_sint64(i64_0, i)]. Assume { - Type: is_sint16_chunk(Mint_1) /\ is_sint32_chunk(Mint_3) /\ - is_sint64_chunk(Mint_5) /\ is_sint8_chunk(Mchar_0) /\ - is_uint16_chunk(Mint_2) /\ is_uint32_chunk(Mint_4) /\ - is_uint64_chunk(Mint_6) /\ is_uint8_chunk(Mint_0) /\ is_sint32(i_1) /\ - is_sint16_chunk(a_5) /\ is_sint32_chunk(a_9) /\ - is_sint64_chunk(a_13) /\ is_sint8_chunk(a_1) /\ is_uint16_chunk(a_7) /\ - is_uint32_chunk(a_11) /\ is_uint64_chunk(a_15) /\ is_uint8_chunk(a_3). + Type: IsArray1_sint8(x) /\ is_sint16_chunk(Mint_1) /\ + is_sint32_chunk(Mint_3) /\ is_sint64_chunk(Mint_5) /\ + is_sint8_chunk(Mchar_0) /\ is_uint16_chunk(Mint_2) /\ + is_uint32_chunk(Mint_4) /\ is_uint64_chunk(Mint_6) /\ + is_uint8_chunk(Mint_0) /\ is_sint32(i_1) /\ is_sint16_chunk(a_5) /\ + is_sint32_chunk(a_9) /\ is_sint64_chunk(a_13) /\ is_sint8_chunk(a_1) /\ + is_uint16_chunk(a_7) /\ is_uint32_chunk(a_11) /\ + is_uint64_chunk(a_15) /\ is_uint8_chunk(a_3). (* Heap *) Type: (region(i16_0.base) <= 0) /\ (region(i32_0.base) <= 0) /\ (region(i64_0.base) <= 0) /\ (region(i8_0.base) <= 0) /\ (region(u16_0.base) <= 0) /\ (region(u32_0.base) <= 0) /\ (region(u64_0.base) <= 0) /\ (region(u8_0.base) <= 0) /\ - IsArray1_sint8(x) /\ linked(Malloc_0) /\ sconst(Mchar_0). + linked(Malloc_0) /\ sconst(Mchar_0). (* Goal *) When: (0 <= i) /\ (i <= 9). (* Initializer *) diff --git a/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle index 2e93da0b17e..0a7a16a6aca 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/struct_fields.res.oracle @@ -216,16 +216,17 @@ end (* use frama_c_wp.memory.Memory *) - (* use Chunk *) - (* use S1_X *) + (* use Chunk *) + (* use Compound *) goal wp_goal : forall t:addr -> bool, t1:int -> int, t2:addr -> int, t3:addr -> int, t4: - addr -> int, a:addr. + addr -> int, a:addr, x:S1_X. region (base a) <= 0 -> + IsS1_X x -> is_sint16_chunk t3 -> is_sint32_chunk t4 -> is_sint8_chunk t2 -> @@ -240,15 +241,15 @@ end Goal Assertion 'rte,mem_access' (file tests/wp_acsl/struct_fields.i, line 15): Assume { - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0) /\ IsS1_X(Load_S1_X(p, Mchar_0, Mint_0, Mint_1)). (* Heap *) Type: (region(p.base) <= 0) /\ linked(Malloc_0) /\ sconst(Mchar_0) /\ cinits(Init_0). - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0). - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0). (* Block In *) Have: ({ Init_F1_X_a = false ; Init_F1_X_b = false ; Init_F1_X_c = false }) = @@ -261,16 +262,16 @@ Prove: valid_rd(Malloc_0, p, 3). Goal Assertion 'rte,mem_access' (file tests/wp_acsl/struct_fields.i, line 16): Let a = Load_S1_X(p, Mchar_0, Mint_0, Mint_1). Assume { - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0) /\ IsS1_X(a). (* Heap *) Type: (region(p.base) <= 0) /\ linked(Malloc_0) /\ sconst(Mchar_0) /\ cinits(Init_0). - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0). - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0). - Type: is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ + Type: IsS1_X(r) /\ is_sint16_chunk(Mint_0) /\ is_sint32_chunk(Mint_1) /\ is_sint8_chunk(Mchar_0). (* Block In *) Have: ({ Init_F1_X_a = false ; Init_F1_X_b = false ; Init_F1_X_c = false }) = diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json new file mode 100644 index 00000000000..bf03e943986 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1563, + "steps": 286 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json new file mode 100644 index 00000000000..15c20e5cfc0 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0323, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json new file mode 100644 index 00000000000..15c20e5cfc0 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0323, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json new file mode 100644 index 00000000000..79dc4338f21 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0322, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json new file mode 100644 index 00000000000..2172e49206c --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0337, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json new file mode 100644 index 00000000000..d226fb9296c --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0377, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json new file mode 100644 index 00000000000..1cb9dc92527 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.138, + "steps": 269 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json new file mode 100644 index 00000000000..d05c7f00bb2 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0463, + "steps": 123 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json new file mode 100644 index 00000000000..fbd18991a8f --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1203, + "steps": 252 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json new file mode 100644 index 00000000000..9749d24da27 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1085, + "steps": 235 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json new file mode 100644 index 00000000000..9a8316dd72e --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0154, + "steps": 64 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json new file mode 100644 index 00000000000..cf65d980e11 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0847, + "steps": 184 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json new file mode 100644 index 00000000000..143a1e69e0b --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0129, + "steps": 62 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json new file mode 100644 index 00000000000..b2a493adaa4 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0853, + "steps": 201 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json new file mode 100644 index 00000000000..ef833bf2578 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0314, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json new file mode 100644 index 00000000000..72229c47d0f --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0722, + "steps": 167 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json new file mode 100644 index 00000000000..ac1b7fec88f --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0881, + "steps": 218 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json new file mode 100644 index 00000000000..d3cae1db457 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0487, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json new file mode 100644 index 00000000000..ac5ca13418a --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0324, + "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json new file mode 100644 index 00000000000..ca8a4ddf594 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0096, + "steps": 17 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json new file mode 100644 index 00000000000..b8e36e2803f --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json new file mode 100644 index 00000000000..b4eff8a25e7 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0148, + "steps": 21 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json new file mode 100644 index 00000000000..e4c3de15c1a --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json new file mode 100644 index 00000000000..5a95e44801c --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0079, + "steps": 10 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json new file mode 100644 index 00000000000..741d4bc44f1 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0082, + "steps": 10 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json new file mode 100644 index 00000000000..56c39550428 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "unknown" } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json new file mode 100644 index 00000000000..e4c3de15c1a --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json new file mode 100644 index 00000000000..56c39550428 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "unknown" } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json new file mode 100644 index 00000000000..e4c3de15c1a --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json new file mode 100644 index 00000000000..e4c3de15c1a --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json new file mode 100644 index 00000000000..066974fb605 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0131, + "steps": 35 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json new file mode 100644 index 00000000000..b8e36e2803f --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json new file mode 100644 index 00000000000..2eb44ba21a5 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0095, + "steps": 52 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json new file mode 100644 index 00000000000..c9b1db9c4af --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0181, + "steps": 45 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json new file mode 100644 index 00000000000..a197c97ceb4 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.013, + "steps": 25 } diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json new file mode 100644 index 00000000000..b8e36e2803f --- /dev/null +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json new file mode 100644 index 00000000000..c9419cd7789 --- /dev/null +++ b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0115, + "steps": 17 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json new file mode 100644 index 00000000000..12b29ad9f00 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0189, + "steps": 67 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json new file mode 100644 index 00000000000..c438ee106b5 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0118, + "steps": 25 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json new file mode 100644 index 00000000000..83bedfff027 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0123, + "steps": 27 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json new file mode 100644 index 00000000000..2de817ca705 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0517, + "steps": 92 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json new file mode 100644 index 00000000000..f5eb47507d0 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0131, + "steps": 29 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json new file mode 100644 index 00000000000..3291e8fc3f1 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0105, + "steps": 16 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json new file mode 100644 index 00000000000..7416efea8d9 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0254, + "steps": 55 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json new file mode 100644 index 00000000000..b27f2eee4a7 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0336, + "steps": 178 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json new file mode 100644 index 00000000000..f2ba5b4ebae --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0137, + "steps": 48 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json new file mode 100644 index 00000000000..ebb299a05a8 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.02, "steps": 54 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json new file mode 100644 index 00000000000..7cb83418252 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0174, + "steps": 54 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json new file mode 100644 index 00000000000..c16c4630985 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0159, + "steps": 53 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json new file mode 100644 index 00000000000..084b990db48 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0102, + "steps": 27 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json new file mode 100644 index 00000000000..b92d9fe95b4 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0205, + "steps": 62 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json new file mode 100644 index 00000000000..a5593ead662 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0297, + "steps": 130 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json new file mode 100644 index 00000000000..3fcfc93ffdf --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.035, + "steps": 132 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json new file mode 100644 index 00000000000..78e22d71472 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0285, + "steps": 130 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json new file mode 100644 index 00000000000..ff7646a74d0 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0113, + "steps": 23 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json new file mode 100644 index 00000000000..c4ef5983902 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0091, + "steps": 39 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json new file mode 100644 index 00000000000..e1e5a02eec2 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0198, + "steps": 73 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json new file mode 100644 index 00000000000..e523147de74 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0124, + "steps": 32 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json new file mode 100644 index 00000000000..1dd11313ae1 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0235, + "steps": 73 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json new file mode 100644 index 00000000000..fdfc488fd36 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0164, + "steps": 45 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json new file mode 100644 index 00000000000..67801b1ad0c --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0196, + "steps": 71 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json new file mode 100644 index 00000000000..4346351e328 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0171, + "steps": 53 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json new file mode 100644 index 00000000000..69c84a26f33 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0095, + "steps": 19 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json new file mode 100644 index 00000000000..635370d75fb --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.016, + "steps": 51 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json new file mode 100644 index 00000000000..2a821f8d129 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.015, + "steps": 53 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json new file mode 100644 index 00000000000..71a57ad70b2 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0078, + "steps": 50 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json new file mode 100644 index 00000000000..5033fa63b66 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0459, + "steps": 121 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json new file mode 100644 index 00000000000..4b76bff9c5a --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0143, + "steps": 61 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json new file mode 100644 index 00000000000..2ee4c477e8a --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.112, + "steps": 224 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json new file mode 100644 index 00000000000..826c52aacf7 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0201, + "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json new file mode 100644 index 00000000000..137bfc045d3 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1581, + "steps": 251 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json new file mode 100644 index 00000000000..7881c7c9a45 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0427, + "steps": 101 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json new file mode 100644 index 00000000000..93a6c31f0ca --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.027, + "steps": 66 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json new file mode 100644 index 00000000000..5970963a22a --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 1.448, + "steps": 874 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json new file mode 100644 index 00000000000..7bf27258b66 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.008, + "steps": 18 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json new file mode 100644 index 00000000000..1c231cee37e --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0123, + "steps": 35 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json new file mode 100644 index 00000000000..e03b006e36d --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0114, + "steps": 29 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json new file mode 100644 index 00000000000..7cbb165d065 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0677, + "steps": 169 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json new file mode 100644 index 00000000000..ca5bb4ea160 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1562, + "steps": 267 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json new file mode 100644 index 00000000000..e667529e5ba --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0207, + "steps": 82 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json new file mode 100644 index 00000000000..34cbd0294af --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0471, + "steps": 107 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json new file mode 100644 index 00000000000..c85fd94e357 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0372, + "steps": 61 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json new file mode 100644 index 00000000000..b6d8db7b016 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0262, + "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json new file mode 100644 index 00000000000..df8ca8fe1a0 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0977, + "steps": 179 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json new file mode 100644 index 00000000000..827ebad8def --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.2324, + "steps": 210 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json new file mode 100644 index 00000000000..83e0ba8ee6f --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0397, + "steps": 111 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json new file mode 100644 index 00000000000..b1fe562c2f1 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.02, "steps": 64 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json new file mode 100644 index 00000000000..32f9c5fdfe9 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0193, + "steps": 66 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json new file mode 100644 index 00000000000..60dab5b5ec2 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0612, + "steps": 151 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json new file mode 100644 index 00000000000..6a103d99cdb --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0156, + "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json new file mode 100644 index 00000000000..83debd7e69e --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0206, + "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json new file mode 100644 index 00000000000..6e36003ddf4 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0095, + "steps": 21 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json new file mode 100644 index 00000000000..a00184de1fd --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0574, + "steps": 117 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json new file mode 100644 index 00000000000..9f1ee7872b4 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0287, + "steps": 93 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json new file mode 100644 index 00000000000..e9844a57cba --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0898, + "steps": 195 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json new file mode 100644 index 00000000000..398e1b3eb88 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0332, + "steps": 95 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json new file mode 100644 index 00000000000..f105ad10719 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.021, + "steps": 64 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json new file mode 100644 index 00000000000..2d135b93226 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.008, + "steps": 19 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json new file mode 100644 index 00000000000..2471b919ea1 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0233, + "steps": 81 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json new file mode 100644 index 00000000000..ee56722a84b --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0305, + "steps": 90 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json new file mode 100644 index 00000000000..ed311aa3bf7 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0239, + "steps": 64 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json new file mode 100644 index 00000000000..19937fe629e --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.7249, + "steps": 586 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json new file mode 100644 index 00000000000..e2adf732c23 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0076, + "steps": 24 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json new file mode 100644 index 00000000000..453f17235fb --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0222, + "steps": 73 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json new file mode 100644 index 00000000000..7181b9f0008 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0677, + "steps": 128 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json new file mode 100644 index 00000000000..4ce8c833c8d --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0575, + "steps": 133 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json new file mode 100644 index 00000000000..985a0441350 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1778, + "steps": 240 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json new file mode 100644 index 00000000000..5c8499dcc7e --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0143, + "steps": 54 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json new file mode 100644 index 00000000000..b480d3f35b7 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0856, + "steps": 138 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json new file mode 100644 index 00000000000..e3e8779cbd7 --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0534, + "steps": 114 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json new file mode 100644 index 00000000000..d2cb65a7b9e --- /dev/null +++ b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0333, + "steps": 92 } diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json new file mode 100644 index 00000000000..1a411f445d6 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.023, + "steps": 27 } diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json new file mode 100644 index 00000000000..7b78699ea74 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0131, + "steps": 28 } diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json new file mode 100644 index 00000000000..2d31e4969e8 --- /dev/null +++ b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0121, + "steps": 28 } diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json new file mode 100644 index 00000000000..428a1839b17 --- /dev/null +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0102, + "steps": 22 } diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json new file mode 100644 index 00000000000..f6ac3dd3d95 --- /dev/null +++ b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0118, + "steps": 22 } diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json new file mode 100644 index 00000000000..b8e36e2803f --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json new file mode 100644 index 00000000000..b8e36e2803f --- /dev/null +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json @@ -0,0 +1 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json new file mode 100644 index 00000000000..d3dcde5a175 --- /dev/null +++ b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0157, + "steps": 35 } -- GitLab From 4696e2740e3124f65a373ead236f7631cc8e2cb0 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Thu, 24 Sep 2020 15:22:08 +0200 Subject: [PATCH 250/255] [wp] Adds a test for memvar chunks typing --- src/plugins/wp/tests/wp_acsl/memvar_chunk_typing.i | 11 +++++++++++ .../wp_acsl/oracle/memvar_chunk_typing.res.oracle | 12 ++++++++++++ .../cache/28ec4268b539503760829aad231d95a9.json | 2 ++ .../oracle_qualif/memvar_chunk_typing.res.oracle | 13 +++++++++++++ 4 files changed, 38 insertions(+) create mode 100644 src/plugins/wp/tests/wp_acsl/memvar_chunk_typing.i create mode 100644 src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json create mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle diff --git a/src/plugins/wp/tests/wp_acsl/memvar_chunk_typing.i b/src/plugins/wp/tests/wp_acsl/memvar_chunk_typing.i new file mode 100644 index 00000000000..941820b19d2 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/memvar_chunk_typing.i @@ -0,0 +1,11 @@ +/* run.config + OPT: -wp-rte +*/ +/* run.config_qualif + OPT: -wp-rte +*/ + +unsigned char C; + +//@ predicate P{L1} = 0 <= C <= 255; +//@ lemma L{L1}: P{L1}; diff --git a/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle new file mode 100644 index 00000000000..ba74f1ad34b --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle @@ -0,0 +1,12 @@ +# frama-c -wp -wp-rte [...] +[kernel] Parsing tests/wp_acsl/memvar_chunk_typing.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +------------------------------------------------------------ + Global +------------------------------------------------------------ + +Lemma L: +Prove: (is_uint8 C_0) -> (P_P C_0) + +------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json new file mode 100644 index 00000000000..0001a8311c2 --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json @@ -0,0 +1,2 @@ +{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0108, + "steps": 19 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle new file mode 100644 index 00000000000..c13e7796ebc --- /dev/null +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle @@ -0,0 +1,13 @@ +# frama-c -wp -wp-rte [...] +[kernel] Parsing tests/wp_acsl/memvar_chunk_typing.i (no preprocessing) +[wp] Running WP plugin... +[wp] Loading driver 'share/wp.driver' +[wp] 1 goal scheduled +[wp] [Alt-Ergo] Goal typed_lemma_L : Valid +[wp] Proved goals: 1 / 1 + Qed: 0 + Alt-Ergo: 1 +------------------------------------------------------------ + Axiomatics WP Alt-Ergo Total Success + Lemma - 1 1 100% +------------------------------------------------------------ -- GitLab From fc7044613202ffdc3a4f7f3d4eb338b501e09415 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 25 Sep 2020 12:52:01 +0200 Subject: [PATCH 251/255] [wp] More efficient MemVar constraints computation --- src/plugins/wp/MemVar.ml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/plugins/wp/MemVar.ml b/src/plugins/wp/MemVar.ml index 1eb2e120663..102135a390c 100644 --- a/src/plugins/wp/MemVar.ml +++ b/src/plugins/wp/MemVar.ml @@ -1533,12 +1533,11 @@ struct (M.domain obj (mloc_of_loc l)) Heap.Set.empty let is_well_formed sigma = - let values = SIGMA.domain sigma.vars in - let constrain v = - Cvalues.has_ctype v.vtype (e_var (Sigma.get sigma (Var v))) - in - let cstrs = SIGMA.Chunk.Set.fold (fun e l -> constrain e :: l) values [] in - p_and (p_conj cstrs) (M.is_well_formed sigma.mem) + let cstrs = ref [] in + SIGMA.iter + (fun v c -> cstrs := Cvalues.has_ctype v.vtype (e_var c) :: !cstrs) + sigma.vars ; + p_conj ((M.is_well_formed sigma.mem) :: !cstrs) (* -------------------------------------------------------------------------- *) -- GitLab From c59871bf0cc5414cfb4a90f6b557356b3573c896 Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Fri, 25 Sep 2020 16:08:45 +0200 Subject: [PATCH 252/255] [wp] Removes old cache entries and update oracles --- .../wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle | 1 - .../cache/04c1fcb3dde99404e56f398c9d3c7b31.json | 2 -- .../cache/09419c3fbb6dc84c7ea4daf3841c155f.json | 2 -- .../cache/0af3d5135623c7629e8792c15c73e11e.json | 2 -- .../cache/1d2ed0d831c17546d006475b478b59c1.json | 2 -- .../cache/281d06f1268fc1f6bae73c9b23a370f6.json | 2 -- .../cache/35644610983981a71b83b5427a68f6c0.json | 2 -- .../cache/6367c7d1e56f1af80ad76d813e09b66a.json | 2 -- .../cache/675a842c7ec32528e5e21888634a1279.json | 2 -- .../cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json | 2 -- .../cache/a76226839c540aad032cd3b9de095b89.json | 2 -- .../cache/bd67f73e3ff115a9f45b4244c20611fe.json | 2 -- .../cache/e046513e2f30f1a1946d5d6e40ef9129.json | 2 -- .../cache/e434135b1fa122e6a232e26709df80a5.json | 2 -- .../cache/e8e066b606c41e89f82b2aa3eef46a68.json | 2 -- .../cache/e9c784c595bc40819eff858fbcc12bab.json | 2 -- .../cache/efda69b6f9003dcb53f99c442ec8c4de.json | 2 -- .../cache/f6b163a1cc48d21b279ce315660ffd85.json | 2 -- .../cache/f97c74763d0222ed9be7c3fa666ce4e9.json | 2 -- .../cache/feca65e917b9c99c3286ceebc5a4d618.json | 2 -- .../cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json | 2 -- .../cache/af1c6e5e9ad0ce51ef02350de25db7b1.json | 1 - .../cache/e7547aa0621803b4e7d628af9dae8742.json | 2 -- .../cache/0aaa8433bdd863a175c8f7aa27b5b23b.json | 1 - .../cache/1235102376d88a3bdb52f3e4e1c49883.json | 2 -- .../cache/55cf143d013d4eb3345feb58b26b90df.json | 2 -- .../cache/6203cf6d36b297213c87a78442bb23a3.json | 1 - .../cache/7d35e079640e61a3109774eff9ba7fe6.json | 1 - .../cache/bd22ac48c200239c37396cb5c074a071.json | 1 - .../cache/d3883c78b48ca2e9439df35f88b59d8c.json | 1 - .../cache/da21dd780a181597dd44b362df8f5670.json | 1 - .../cache/320f90061a8c50bf116b388e086c7897.json | 2 -- .../logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json | 1 - .../logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json | 2 -- .../logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json | 2 -- .../logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json | 2 -- .../cache/28ec4268b539503760829aad231d95a9.json | 2 -- .../tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle | 1 - .../cache/647e4705204771b6a78e805ee29cba26.json | 1 - .../cache/94f13affa6f3b5126e172fdc6062be2e.json | 2 -- .../cache/10fef2083d54144639f0b6cd94778cb5.json | 2 -- .../cache/52fdcb4ddd856ebb4464834c99aebae0.json | 2 -- .../cache/76a1b1317f2520ef9a599a12e344730d.json | 2 -- .../cache/786eb6ddc8b4a1c15c3182f42e302b10.json | 2 -- .../cache/c47ae970e7baa8aa14a744f568b77922.json | 2 -- .../cache/d3570f7a7a9be38c8599ac1773a618a2.json | 2 -- .../find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json | 2 -- .../find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json | 2 -- .../find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json | 2 -- .../cache/152adf213328a70d06d3041ea7eca814.json | 1 - .../cache/cdfaa1f77a537214fe4d4d473da0c93f.json | 2 -- .../cache/dbca0c75b09289a0939a4568bccb8ffe.json | 2 -- .../cache/e3abd032ee5753e542d0c3d7701189e4.json | 2 -- .../cache/ce56b654edab77f40b10056e97cc5df5.json | 2 -- .../cache/2de8075c9ff8cf4d4f231608bed835a9.json | 2 -- .../cache/91244a7f80eb57f7181e1278e1172cc9.json | 2 -- .../cache/a59cc9b3f7f8b4a6624a1d1232662c22.json | 2 -- .../cache/a93f056d32a8ace3dd916b64068f94c2.json | 2 -- .../cache/aafe330c4b6932bf122ff6509f3fc2b0.json | 2 -- .../cache/0d14213263b1d1def509095c28e95ea9.json | 2 -- .../cache/5c04a7d9d73560b7116ff3914824c36d.json | 2 -- .../cache/7cf5fa10093d1ce2fd3940954cba0727.json | 2 -- .../cache/857d1f9981d68d1406859c8aae1b4639.json | 2 -- .../cache/9ad7d025e7eb0eec65fb3551668328c9.json | 2 -- .../cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json | 2 -- .../cache/0f47526247a0528c7b0b8c8e945b32bd.json | 2 -- .../cache/3220ff8d08680b2082f90cfbabe5515c.json | 2 -- .../cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json | 2 -- .../cache/f6d37791a1137bc07941a661f2333b7e.json | 2 -- .../cache/0748144945def11ea300e135d8482e4a.json | 2 -- .../cache/0b916424d61743046a3a8aa2d1980ca0.json | 2 -- .../cache/0f63fa83c61794d80fd003f133e182a7.json | 2 -- .../cache/1784d421c70ac778d245b285417fda0f.json | 2 -- .../cache/1fe4ca1fb351003ccbd8755355135f8a.json | 2 -- .../cache/21a3de19df739b18752521529d786b4b.json | 2 -- .../cache/25def53021ebb0a8629e796358a6848b.json | 2 -- .../cache/27bf4adc6f09a58eafeabec80e08e561.json | 2 -- .../cache/2ad8e6939da759ba7083da389f70b19a.json | 2 -- .../cache/2b04374aa95473cfa45c6abca5d0fe15.json | 2 -- .../cache/2de5619cd6bf8a4549f18cbf2daefbba.json | 2 -- .../cache/3b096d1ad2f60d27d68c9819789fceb4.json | 2 -- .../cache/3d5c736c9ebc4a910745c54e3f810000.json | 2 -- .../cache/4524f3b1a3aaeae1f14f29cffc5532b4.json | 2 -- .../cache/45fc8639c2e8c14a8ba57fe664c24c9d.json | 2 -- .../cache/4833c149c493290f7476cb694c326889.json | 2 -- .../cache/51225dc69fc56402c586cbf2cad99281.json | 2 -- .../cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json | 2 -- .../cache/5d20435c0b8e9bb4e51ab262b3129648.json | 2 -- .../cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json | 2 -- .../cache/6e15ce103fe14e50af7e0936d1d2a924.json | 1 - .../cache/75158755074596f3fba764a01a862cea.json | 2 -- .../cache/77066c103c80ea4e5f9b5605057d8d03.json | 2 -- .../cache/78c65afc8eeed0925d1f9c68b047f97a.json | 2 -- .../cache/7e81584b97fe9a89bed8cd913741db47.json | 2 -- .../cache/805d516e173e9a1980e332963ed26853.json | 2 -- .../cache/85bd4f374f9098d4767c14833e05b5b8.json | 2 -- .../cache/904dfd55419e9da26d6710c5e3bb2512.json | 2 -- .../cache/93d52e79f66a5fbbf8a8d577d910215e.json | 2 -- .../cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json | 2 -- .../cache/a82a6af66093c860d0011d4f227136d1.json | 2 -- .../cache/a8e0d95eaca351657706fd30bd03bea1.json | 2 -- .../cache/a9311c935f353c4d4cea656ea0ab8a1e.json | 2 -- .../cache/b2ad64f1c1643c7dd2550c00a9074f69.json | 2 -- .../cache/b2ddcd489f338024c524107b6e504a00.json | 2 -- .../cache/bfe86eb3dc31cfbaa90471047107b2d3.json | 2 -- .../cache/c89d9d7df15c1516409d246b82b8c1f0.json | 2 -- .../cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json | 2 -- .../cache/d73fc9500445fd11b1277eb233677128.json | 2 -- .../cache/dfb4426937ac0dd3319b8d97b1113ef1.json | 2 -- .../cache/e3c7c32c0e592dcd434f4f389ed60f36.json | 2 -- .../cache/e90a80dc6573ff3be6973ff12e676e32.json | 2 -- .../cache/ef4bb98ab16552a98c74ec0913047b5d.json | 2 -- .../cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json | 2 -- .../cache/f9262c0413f25f71d0ae44d4744746f0.json | 2 -- .../cache/1097cb045925dc7690981f0f528ee5d4.json | 2 -- .../cache/d89912a1e879d06f335b8d985cb804f3.json | 2 -- .../cache/de777917ace9bbef5272bb764ddd82c2.json | 2 -- .../cache/3016a12fe9f82a49a0ff618ae2acf170.json | 2 -- .../cache/3016a12fe9f82a49a0ff618ae2acf170.json | 2 -- .../rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json | 1 - .../rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json | 1 - .../cache/8d2cbdde2b0c4740b0467e8f84939e0d.json | 2 -- 122 files changed, 229 deletions(-) delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json delete mode 100644 src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json delete mode 100644 src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json delete mode 100644 src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json delete mode 100644 src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json delete mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json delete mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json delete mode 100644 src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json delete mode 100644 src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json delete mode 100644 src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json delete mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json delete mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json delete mode 100644 src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json diff --git a/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle index ba74f1ad34b..26231a706b7 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/memvar_chunk_typing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_acsl/memvar_chunk_typing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' ------------------------------------------------------------ Global ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json deleted file mode 100644 index bf03e943986..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/04c1fcb3dde99404e56f398c9d3c7b31.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1563, - "steps": 286 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json deleted file mode 100644 index 15c20e5cfc0..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/09419c3fbb6dc84c7ea4daf3841c155f.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0323, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json deleted file mode 100644 index 15c20e5cfc0..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/0af3d5135623c7629e8792c15c73e11e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0323, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json deleted file mode 100644 index 79dc4338f21..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/1d2ed0d831c17546d006475b478b59c1.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0322, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json deleted file mode 100644 index 2172e49206c..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/281d06f1268fc1f6bae73c9b23a370f6.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0337, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json deleted file mode 100644 index d226fb9296c..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/35644610983981a71b83b5427a68f6c0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0377, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json deleted file mode 100644 index 1cb9dc92527..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/6367c7d1e56f1af80ad76d813e09b66a.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.138, - "steps": 269 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json deleted file mode 100644 index d05c7f00bb2..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/675a842c7ec32528e5e21888634a1279.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0463, - "steps": 123 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json deleted file mode 100644 index fbd18991a8f..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/7ea33aa4c8dc9c1ed12a312a5a7b96ed.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1203, - "steps": 252 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json deleted file mode 100644 index 9749d24da27..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/a76226839c540aad032cd3b9de095b89.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1085, - "steps": 235 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json deleted file mode 100644 index 9a8316dd72e..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/bd67f73e3ff115a9f45b4244c20611fe.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0154, - "steps": 64 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json deleted file mode 100644 index cf65d980e11..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e046513e2f30f1a1946d5d6e40ef9129.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0847, - "steps": 184 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json deleted file mode 100644 index 143a1e69e0b..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e434135b1fa122e6a232e26709df80a5.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0129, - "steps": 62 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json deleted file mode 100644 index b2a493adaa4..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e8e066b606c41e89f82b2aa3eef46a68.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0853, - "steps": 201 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json deleted file mode 100644 index ef833bf2578..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/e9c784c595bc40819eff858fbcc12bab.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0314, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json deleted file mode 100644 index 72229c47d0f..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/efda69b6f9003dcb53f99c442ec8c4de.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0722, - "steps": 167 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json deleted file mode 100644 index ac1b7fec88f..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f6b163a1cc48d21b279ce315660ffd85.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0881, - "steps": 218 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json deleted file mode 100644 index d3cae1db457..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/f97c74763d0222ed9be7c3fa666ce4e9.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0487, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json deleted file mode 100644 index ac5ca13418a..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing.0.session/cache/feca65e917b9c99c3286ceebc5a4d618.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0324, - "steps": 171 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json deleted file mode 100644 index ca8a4ddf594..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/23316fd95fd7b645f6e7ee1ac0ec11dd.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0096, - "steps": 17 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json deleted file mode 100644 index b8e36e2803f..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/af1c6e5e9ad0ce51ef02350de25db7b1.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json deleted file mode 100644 index b4eff8a25e7..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/chunk_typing_usable.0.session/cache/e7547aa0621803b4e7d628af9dae8742.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0148, - "steps": 21 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json deleted file mode 100644 index e4c3de15c1a..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/0aaa8433bdd863a175c8f7aa27b5b23b.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json deleted file mode 100644 index 5a95e44801c..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/1235102376d88a3bdb52f3e4e1c49883.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0079, - "steps": 10 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json deleted file mode 100644 index 741d4bc44f1..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/55cf143d013d4eb3345feb58b26b90df.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0082, - "steps": 10 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json deleted file mode 100644 index 56c39550428..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/6203cf6d36b297213c87a78442bb23a3.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "unknown" } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json deleted file mode 100644 index e4c3de15c1a..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/7d35e079640e61a3109774eff9ba7fe6.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json deleted file mode 100644 index 56c39550428..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/bd22ac48c200239c37396cb5c074a071.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "unknown" } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json deleted file mode 100644 index e4c3de15c1a..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/d3883c78b48ca2e9439df35f88b59d8c.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json deleted file mode 100644 index e4c3de15c1a..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/generalized_checks.0.session/cache/da21dd780a181597dd44b362df8f5670.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 1. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json deleted file mode 100644 index 066974fb605..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/init_value_mem.0.session/cache/320f90061a8c50bf116b388e086c7897.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0131, - "steps": 35 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json deleted file mode 100644 index b8e36e2803f..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/28c1570cd2d3e97ddd579e328c469acf.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json deleted file mode 100644 index 2eb44ba21a5..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/5bfdad2f5b18af371b905b94799e1cc0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0095, - "steps": 52 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json deleted file mode 100644 index c9b1db9c4af..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/7ac4f3e9696602b90e6fd7dbef86293c.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0181, - "steps": 45 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json deleted file mode 100644 index a197c97ceb4..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/logic.0.session/cache/c520b8395718f1f484266fd4e5983d1e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.013, - "steps": 25 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json deleted file mode 100644 index 0001a8311c2..00000000000 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.0.session/cache/28ec4268b539503760829aad231d95a9.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0108, - "steps": 19 } diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle index c13e7796ebc..b6dab655323 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/memvar_chunk_typing.res.oracle @@ -1,7 +1,6 @@ # frama-c -wp -wp-rte [...] [kernel] Parsing tests/wp_acsl/memvar_chunk_typing.i (no preprocessing) [wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_lemma_L : Valid [wp] Proved goals: 1 / 1 diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json deleted file mode 100644 index b8e36e2803f..00000000000 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/647e4705204771b6a78e805ee29cba26.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json b/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json deleted file mode 100644 index c9419cd7789..00000000000 --- a/src/plugins/wp/tests/wp_bts/oracle_qualif/bts779.0.session/cache/94f13affa6f3b5126e172fdc6062be2e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0115, - "steps": 17 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json deleted file mode 100644 index 12b29ad9f00..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/10fef2083d54144639f0b6cd94778cb5.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0189, - "steps": 67 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json deleted file mode 100644 index c438ee106b5..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/52fdcb4ddd856ebb4464834c99aebae0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0118, - "steps": 25 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json deleted file mode 100644 index 83bedfff027..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/76a1b1317f2520ef9a599a12e344730d.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0123, - "steps": 27 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json deleted file mode 100644 index 2de817ca705..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/786eb6ddc8b4a1c15c3182f42e302b10.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0517, - "steps": 92 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json deleted file mode 100644 index f5eb47507d0..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication-without-overflow.0.session/cache/c47ae970e7baa8aa14a744f568b77922.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0131, - "steps": 29 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json deleted file mode 100644 index 3291e8fc3f1..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/binary-multiplication.0.session/cache/d3570f7a7a9be38c8599ac1773a618a2.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0105, - "steps": 16 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json deleted file mode 100644 index 7416efea8d9..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/08ff774ac6a70674d784cefe233dc1ab.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0254, - "steps": 55 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json deleted file mode 100644 index b27f2eee4a7..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/82750bb2b6c7b7cda9f4f22eea23f1ef.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0336, - "steps": 178 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json deleted file mode 100644 index f2ba5b4ebae..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/find.0.session/cache/e6bfe72a35736c49013701f4e6cc2d7c.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0137, - "steps": 48 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json deleted file mode 100644 index ebb299a05a8..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/152adf213328a70d06d3041ea7eca814.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.02, "steps": 54 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json deleted file mode 100644 index 7cb83418252..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/cdfaa1f77a537214fe4d4d473da0c93f.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0174, - "steps": 54 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json deleted file mode 100644 index c16c4630985..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/dbca0c75b09289a0939a4568bccb8ffe.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0159, - "steps": 53 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json deleted file mode 100644 index 084b990db48..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo1_solved.0.session/cache/e3abd032ee5753e542d0c3d7701189e4.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0102, - "steps": 27 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json deleted file mode 100644 index b92d9fe95b4..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo2_solved.0.session/cache/ce56b654edab77f40b10056e97cc5df5.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0205, - "steps": 62 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json deleted file mode 100644 index a5593ead662..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/2de8075c9ff8cf4d4f231608bed835a9.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0297, - "steps": 130 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json deleted file mode 100644 index 3fcfc93ffdf..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/91244a7f80eb57f7181e1278e1172cc9.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.035, - "steps": 132 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json deleted file mode 100644 index 78e22d71472..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a59cc9b3f7f8b4a6624a1d1232662c22.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0285, - "steps": 130 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json deleted file mode 100644 index ff7646a74d0..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/a93f056d32a8ace3dd916b64068f94c2.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0113, - "steps": 23 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json deleted file mode 100644 index c4ef5983902..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.0.session/cache/aafe330c4b6932bf122ff6509f3fc2b0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0091, - "steps": 39 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json deleted file mode 100644 index e1e5a02eec2..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/0d14213263b1d1def509095c28e95ea9.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0198, - "steps": 73 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json deleted file mode 100644 index e523147de74..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/5c04a7d9d73560b7116ff3914824c36d.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0124, - "steps": 32 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json deleted file mode 100644 index 1dd11313ae1..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/7cf5fa10093d1ce2fd3940954cba0727.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0235, - "steps": 73 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json deleted file mode 100644 index fdfc488fd36..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/857d1f9981d68d1406859c8aae1b4639.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0164, - "steps": 45 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json deleted file mode 100644 index 67801b1ad0c..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.old.v2.0.session/cache/9ad7d025e7eb0eec65fb3551668328c9.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0196, - "steps": 71 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json deleted file mode 100644 index 4346351e328..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0ee6d92adc52cf841d8f421ae8b9d2f2.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0171, - "steps": 53 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json deleted file mode 100644 index 69c84a26f33..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/0f47526247a0528c7b0b8c8e945b32bd.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0095, - "steps": 19 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json deleted file mode 100644 index 635370d75fb..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3220ff8d08680b2082f90cfbabe5515c.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.016, - "steps": 51 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json deleted file mode 100644 index 2a821f8d129..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/3c1da17d2eb3aa57d9920fdbb8fdc9ff.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.015, - "steps": 53 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json deleted file mode 100644 index 71a57ad70b2..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_exo3_solved.simplified.0.session/cache/f6d37791a1137bc07941a661f2333b7e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0078, - "steps": 50 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json deleted file mode 100644 index 5033fa63b66..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0748144945def11ea300e135d8482e4a.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0459, - "steps": 121 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json deleted file mode 100644 index 4b76bff9c5a..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0b916424d61743046a3a8aa2d1980ca0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0143, - "steps": 61 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json deleted file mode 100644 index 2ee4c477e8a..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/0f63fa83c61794d80fd003f133e182a7.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.112, - "steps": 224 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json deleted file mode 100644 index 826c52aacf7..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1784d421c70ac778d245b285417fda0f.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0201, - "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json deleted file mode 100644 index 137bfc045d3..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/1fe4ca1fb351003ccbd8755355135f8a.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1581, - "steps": 251 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json deleted file mode 100644 index 7881c7c9a45..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/21a3de19df739b18752521529d786b4b.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0427, - "steps": 101 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json deleted file mode 100644 index 93a6c31f0ca..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/25def53021ebb0a8629e796358a6848b.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.027, - "steps": 66 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json deleted file mode 100644 index 5970963a22a..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/27bf4adc6f09a58eafeabec80e08e561.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 1.448, - "steps": 874 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json deleted file mode 100644 index 7bf27258b66..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2ad8e6939da759ba7083da389f70b19a.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.008, - "steps": 18 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json deleted file mode 100644 index 1c231cee37e..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2b04374aa95473cfa45c6abca5d0fe15.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0123, - "steps": 35 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json deleted file mode 100644 index e03b006e36d..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/2de5619cd6bf8a4549f18cbf2daefbba.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0114, - "steps": 29 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json deleted file mode 100644 index 7cbb165d065..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3b096d1ad2f60d27d68c9819789fceb4.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0677, - "steps": 169 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json deleted file mode 100644 index ca5bb4ea160..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/3d5c736c9ebc4a910745c54e3f810000.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1562, - "steps": 267 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json deleted file mode 100644 index e667529e5ba..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4524f3b1a3aaeae1f14f29cffc5532b4.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0207, - "steps": 82 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json deleted file mode 100644 index 34cbd0294af..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/45fc8639c2e8c14a8ba57fe664c24c9d.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0471, - "steps": 107 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json deleted file mode 100644 index c85fd94e357..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/4833c149c493290f7476cb694c326889.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0372, - "steps": 61 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json deleted file mode 100644 index b6d8db7b016..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/51225dc69fc56402c586cbf2cad99281.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0262, - "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json deleted file mode 100644 index df8ca8fe1a0..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5998e90eb1b10fc1fd4ff54e6ef5689e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0977, - "steps": 179 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json deleted file mode 100644 index 827ebad8def..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d20435c0b8e9bb4e51ab262b3129648.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.2324, - "steps": 210 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json deleted file mode 100644 index 83e0ba8ee6f..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/5d3f4ea5bf6dc3f773faf7e0d63f1c76.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0397, - "steps": 111 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json deleted file mode 100644 index b1fe562c2f1..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/6e15ce103fe14e50af7e0936d1d2a924.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.02, "steps": 64 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json deleted file mode 100644 index 32f9c5fdfe9..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/75158755074596f3fba764a01a862cea.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0193, - "steps": 66 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json deleted file mode 100644 index 60dab5b5ec2..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/77066c103c80ea4e5f9b5605057d8d03.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0612, - "steps": 151 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json deleted file mode 100644 index 6a103d99cdb..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/78c65afc8eeed0925d1f9c68b047f97a.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0156, - "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json deleted file mode 100644 index 83debd7e69e..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/7e81584b97fe9a89bed8cd913741db47.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0206, - "steps": 76 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json deleted file mode 100644 index 6e36003ddf4..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/805d516e173e9a1980e332963ed26853.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0095, - "steps": 21 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json deleted file mode 100644 index a00184de1fd..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/85bd4f374f9098d4767c14833e05b5b8.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0574, - "steps": 117 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json deleted file mode 100644 index 9f1ee7872b4..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/904dfd55419e9da26d6710c5e3bb2512.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0287, - "steps": 93 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json deleted file mode 100644 index e9844a57cba..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/93d52e79f66a5fbbf8a8d577d910215e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0898, - "steps": 195 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json deleted file mode 100644 index 398e1b3eb88..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/9e3b12919ddd0b7f3deeaa63da75f6e5.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0332, - "steps": 95 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json deleted file mode 100644 index f105ad10719..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a82a6af66093c860d0011d4f227136d1.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.021, - "steps": 64 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json deleted file mode 100644 index 2d135b93226..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a8e0d95eaca351657706fd30bd03bea1.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.008, - "steps": 19 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json deleted file mode 100644 index 2471b919ea1..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/a9311c935f353c4d4cea656ea0ab8a1e.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0233, - "steps": 81 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json deleted file mode 100644 index ee56722a84b..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ad64f1c1643c7dd2550c00a9074f69.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0305, - "steps": 90 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json deleted file mode 100644 index ed311aa3bf7..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/b2ddcd489f338024c524107b6e504a00.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0239, - "steps": 64 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json deleted file mode 100644 index 19937fe629e..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/bfe86eb3dc31cfbaa90471047107b2d3.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.7249, - "steps": 586 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json deleted file mode 100644 index e2adf732c23..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/c89d9d7df15c1516409d246b82b8c1f0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0076, - "steps": 24 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json deleted file mode 100644 index 453f17235fb..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/cf7eaa96c53ed9bc0ce7eef2ff6d4785.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0222, - "steps": 73 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json deleted file mode 100644 index 7181b9f0008..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/d73fc9500445fd11b1277eb233677128.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0677, - "steps": 128 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json deleted file mode 100644 index 4ce8c833c8d..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/dfb4426937ac0dd3319b8d97b1113ef1.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0575, - "steps": 133 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json deleted file mode 100644 index 985a0441350..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e3c7c32c0e592dcd434f4f389ed60f36.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.1778, - "steps": 240 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json deleted file mode 100644 index 5c8499dcc7e..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/e90a80dc6573ff3be6973ff12e676e32.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0143, - "steps": 54 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json deleted file mode 100644 index b480d3f35b7..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/ef4bb98ab16552a98c74ec0913047b5d.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0856, - "steps": 138 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json deleted file mode 100644 index e3e8779cbd7..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f6abbe317c0d2a1424b05d2fb7e4bd9b.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0534, - "steps": 114 } diff --git a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json b/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json deleted file mode 100644 index d2cb65a7b9e..00000000000 --- a/src/plugins/wp/tests/wp_gallery/oracle_qualif/frama_c_hashtbl_solved.0.session/cache/f9262c0413f25f71d0ae44d4744746f0.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0333, - "steps": 92 } diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json deleted file mode 100644 index 1a411f445d6..00000000000 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/1097cb045925dc7690981f0f528ee5d4.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.023, - "steps": 27 } diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json deleted file mode 100644 index 7b78699ea74..00000000000 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/d89912a1e879d06f335b8d985cb804f3.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0131, - "steps": 28 } diff --git a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json b/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json deleted file mode 100644 index 2d31e4969e8..00000000000 --- a/src/plugins/wp/tests/wp_hoare/oracle_qualif/logicarr.0.session/cache/de777917ace9bbef5272bb764ddd82c2.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0121, - "steps": 28 } diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json deleted file mode 100644 index 428a1839b17..00000000000 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.1.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0102, - "steps": 22 } diff --git a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json b/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json deleted file mode 100644 index f6ac3dd3d95..00000000000 --- a/src/plugins/wp/tests/wp_manual/oracle_qualif/manual.2.session/cache/3016a12fe9f82a49a0ff618ae2acf170.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0118, - "steps": 22 } diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json deleted file mode 100644 index b8e36e2803f..00000000000 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/89c62021b110300d0866feac14bd7c45.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json deleted file mode 100644 index b8e36e2803f..00000000000 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.0.session/cache/b602aeb805673b0805c79216c3ced563.json +++ /dev/null @@ -1 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "timeout", "time": 10. } diff --git a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json b/src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json deleted file mode 100644 index d3dcde5a175..00000000000 --- a/src/plugins/wp/tests/wp_store/oracle_qualif/struct.0.session/cache/8d2cbdde2b0c4740b0467e8f84939e0d.json +++ /dev/null @@ -1,2 +0,0 @@ -{ "prover": "Alt-Ergo:2.0.0", "verdict": "valid", "time": 0.0157, - "steps": 35 } -- GitLab From f644f3c69e6dddb7249aae70a318637fa4c36437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Mon, 28 Sep 2020 11:59:27 +0200 Subject: [PATCH 253/255] [wp] split x<y like x+1 <= y --- src/plugins/wp/TacSplit.ml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/wp/TacSplit.ml b/src/plugins/wp/TacSplit.ml index 20f844db03a..5b53076bb48 100644 --- a/src/plugins/wp/TacSplit.ml +++ b/src/plugins/wp/TacSplit.ml @@ -187,7 +187,9 @@ class split = let open Qed.Logic in match Lang.F.repr e with | Leq(x,y) -> split_cmp "Split (comp.)" x y - | Lt(x,y) -> split_cmp "Split (comp.)" x y + | Lt(x,y) -> + let x = if F.is_int x then F.(e_add x e_one) else x in + split_cmp "Split (comp.)" x y | Eq(x,y) when not (is_prop x || is_prop y) -> split_cmp "Split (eq.)" x y | Neq(x,y) when not (is_prop x || is_prop y) -> -- GitLab From 66570f60b0cdc6309e000f8bd351b8815ff4107f Mon Sep 17 00:00:00 2001 From: Allan Blanchard <allan.blanchard@cea.fr> Date: Mon, 28 Sep 2020 13:52:40 +0200 Subject: [PATCH 254/255] [wp+qed] Allow to force builtin in Qed --- src/plugins/qed/logic.ml | 42 ++++++++++++++++++++++++++++++++++------ src/plugins/qed/term.ml | 25 ++++++++++++------------ src/plugins/wp/Lang.ml | 16 +++++++++++---- 3 files changed, 61 insertions(+), 22 deletions(-) diff --git a/src/plugins/qed/logic.ml b/src/plugins/qed/logic.ml index e7ce8e49087..eb4ff31c0b0 100644 --- a/src/plugins/qed/logic.ml +++ b/src/plugins/qed/logic.ml @@ -418,7 +418,7 @@ sig (** {3 Support for Builtins} *) - val set_builtin : Fun.t -> (term list -> term) -> unit + val set_builtin : ?force: bool -> Fun.t -> (term list -> term) -> unit (** Register a simplifier for function [f]. The computation code may raise [Not_found], in which case the symbol is not interpreted. @@ -428,33 +428,58 @@ sig Highest priority is [0]. Recursive calls must be performed on strictly smaller terms. + + The [force] parameters defaults to [false], when it is [true], if there + exist another builtin, it is replaced with the new one. Use with care. + + @modify Frama-C+dev add optional [force] parameter *) - val set_builtin' : Fun.t -> (term list -> tau option -> term) -> unit + val set_builtin' : + ?force: bool -> Fun.t -> (term list -> tau option -> term) -> unit - val set_builtin_map : Fun.t -> (term list -> term list) -> unit + val set_builtin_map : + ?force: bool -> Fun.t -> (term list -> term list) -> unit (** Register a builtin for rewriting [f a1..an] into [f b1..bm]. This is short cut for [set_builtin], where the head application of [f] avoids to run into an infinite loop. + + The [force] parameters defaults to [false], when it is [true], if there + exist another builtin, it is replaced with the new one. Use with care. + + @modify Frama-C+dev add optional [force] parameter *) - val set_builtin_get : Fun.t -> (term list -> tau option -> term -> term) -> unit + val set_builtin_get : + ?force: bool -> Fun.t -> (term list -> tau option -> term -> term) -> unit (** [set_builtin_get f rewrite] register a builtin for rewriting [(f a1..an)[k]] into [rewrite (a1..an) k]. The type given is the type of (f a1..an). + + The [force] parameters defaults to [false], when it is [true], if there + exist another builtin, it is replaced with the new one. Use with care. + + @modify Frama-C+dev add optional [force] parameter *) - val set_builtin_eq : Fun.t -> (term -> term -> term) -> unit + val set_builtin_eq : + ?force: bool -> Fun.t -> (term -> term -> term) -> unit (** Register a builtin equality for comparing any term with head-symbol. {b Must} only use recursive comparison for strictly smaller terms. The recognized term with head function symbol is passed first. Highest priority is [0]. Recursive calls must be performed on strictly smaller terms. + + The [force] parameters defaults to [false], when it is [true], if there + exist another builtin, it is replaced with the new one. Use with care. + + @modify Frama-C+dev add optional [force] parameter *) - val set_builtin_leq : Fun.t -> (term -> term -> term) -> unit + val set_builtin_leq : + ?force: bool -> Fun.t -> (term -> term -> term) -> unit (** Register a builtin for comparing any term with head-symbol. {b Must} only use recursive comparison for strictly smaller terms. The recognized term with head function symbol can be on both sides. @@ -462,6 +487,11 @@ sig Highest priority is [0]. Recursive calls must be performed on strictly smaller terms. + + The [force] parameters defaults to [false], when it is [true], if there + exist another builtin, it is replaced with the new one. Use with care. + + @modify Frama-C+dev add optional [force] parameter *) (** {3 Specific Patterns} *) diff --git a/src/plugins/qed/term.ml b/src/plugins/qed/term.ml index c533be908fb..bc8331ad3c9 100644 --- a/src/plugins/qed/term.ml +++ b/src/plugins/qed/term.ml @@ -1009,40 +1009,41 @@ struct let c_builtin_lt a b = distribute_if_over_operation true (fun a b -> operation (CMP(LT ,a,b))) a b !extern_lt a b let c_builtin_leq a b = distribute_if_over_operation true (fun a b -> operation (CMP(LEQ,a,b))) a b !extern_leq a b - let prepare_builtin f m = + let prepare_builtin ~force f m = release () ; - if BUILTIN.mem f m then + if BUILTIN.mem f m && not force then let msg = Printf.sprintf "Builtin already registered for '%s'" (Fun.debug f) in raise (Failure msg) - let set_builtin' f p = + let set_builtin' ?(force=false) f p = begin - prepare_builtin f !state.builtins_fun ; + prepare_builtin ~force f !state.builtins_fun ; !state.builtins_fun <- BUILTIN.add f p !state.builtins_fun ; end - let set_builtin f p = set_builtin' f (fun es _ -> p es) + let set_builtin ?force f p = set_builtin' ?force f (fun es _ -> p es) - let set_builtin_get f p = + let set_builtin_get ?(force=false) f p = begin - prepare_builtin f !state.builtins_get ; + prepare_builtin ~force f !state.builtins_get ; !state.builtins_get <- BUILTIN.add f p !state.builtins_get ; end - let set_builtin_eq f p = + let set_builtin_eq ?(force=false) f p = begin - prepare_builtin f !state.builtins_eq ; + prepare_builtin ~force f !state.builtins_eq ; !state.builtins_eq <- BUILTIN.add f p !state.builtins_eq ; end - let set_builtin_leq f p = + let set_builtin_leq ?(force=false) f p = begin - prepare_builtin f !state.builtins_leq ; + prepare_builtin ~force f !state.builtins_leq ; !state.builtins_leq <- BUILTIN.add f p !state.builtins_leq ; end - let set_builtin_map f phi = set_builtin' f (fun es tau -> c_fun f (phi es) tau) + let set_builtin_map ?force f phi = + set_builtin' ?force f (fun es tau -> c_fun f (phi es) tau) (* -------------------------------------------------------------------------- *) (* --- Negation --- *) diff --git a/src/plugins/wp/Lang.ml b/src/plugins/wp/Lang.ml index 43f7709a6ac..2c3dbf50588 100644 --- a/src/plugins/wp/Lang.ml +++ b/src/plugins/wp/Lang.ml @@ -726,6 +726,14 @@ struct end include QED + (* Hide force parameter. *) + let set_builtin f = QZERO.set_builtin f + let set_builtin' f = QZERO.set_builtin' f + let set_builtin_eq f = QZERO.set_builtin_eq f + let set_builtin_leq f = QZERO.set_builtin_leq f + let set_builtin_get f = QZERO.set_builtin_get f + + (* -------------------------------------------------------------------------- *) (* --- Term Extensions --- *) (* -------------------------------------------------------------------------- *) @@ -1042,14 +1050,14 @@ module For_export = struct let rebuild ?cache t = QZERO.rebuild_in_state (get_state ()) ?cache t let set_builtin f c = - add_init (fun () -> QZERO.set_builtin f c) + add_init (fun () -> QZERO.set_builtin ~force:true f c) let set_builtin' f c = - add_init (fun () -> QZERO.set_builtin' f c) + add_init (fun () -> QZERO.set_builtin' ~force:true f c) let set_builtin_eq f c = - add_init (fun () -> QZERO.set_builtin_eq f c) + add_init (fun () -> QZERO.set_builtin_eq ~force:true f c) let set_builtin_leq f c = - add_init (fun () -> QZERO.set_builtin_leq f c) + add_init (fun () -> QZERO.set_builtin_leq ~force:true f c) let in_state f v = QZERO.in_state (get_state ()) f v -- GitLab From 3bcebe361b378e1ff4aa494ee7bc995c72d77fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20B=C3=BChler?= <david.buhler@cea.fr> Date: Tue, 29 Sep 2020 10:48:14 +0200 Subject: [PATCH 255/255] Updates the Changelog for MR !2850. --- Changelog | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Changelog b/Changelog index f0a73adc855..8b87a700230 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,8 @@ Open Source Release <next-release> ################################## +-* Eva [2020-09-28] Improved string builtins on wide strings: crash fixed, + better performance, misaligned pointers now considered invalid. - Kernel [2020-09-22] New option -autocomplete p1, ..., pn that list the options of plug-ins p1, ..., pn in a format suitable for autocompletion scripts. -- GitLab