{"decls":[{"body":["begin",["set","v",["std.vec.push","v",58]],["std.vec.push","v",32]],"kind":"defn","name":"main.append_colon_space","params":[{"name":"v","ty":"vec_u8"}],"result":"vec_u8"},{"body":["std.vec.extend_bytes","v","label"],"kind":"defn","name":"main.append_label","params":[{"name":"v","ty":"vec_u8"},{"name":"label","ty":"bytes"}],"result":"vec_u8"},{"body":["std.vec.push","v",10],"kind":"defn","name":"main.append_newline","params":[{"name":"v","ty":"vec_u8"}],"result":"vec_u8"},{"body":["std.vec.extend_bytes","v",["std.fmt.u32_to_dec","x"]],"kind":"defn","name":"main.append_u32","params":[{"name":"v","ty":"vec_u8"},{"name":"x","ty":"i32"}],"result":"vec_u8"}],"imports":["std.btree_map","std.btree_set","std.bytes","std.codec","std.fmt","std.vec"],"kind":"entry","module_id":"main","schema_version":"x07.x07ast@0.8.0","solve":["begin",["let","n",["view.len","input"]],["let","count",["/","n",4]],["if",["=","count",0],["bytes.lit","ERROR:empty_input"],["begin",["let","sum",0],["let","min_val",-1],["let","max_val",0],["let","unique_set",["std.btree_set.empty_u32"]],["let","freq_map",["std.btree_map.empty_u32_u32"]],["for","i",0,"count",["begin",["let","off",["*","i",4]],["let","val",["std.codec.read_u32_le","input","off"]],["set","sum",["+","sum","val"]],["if",["<u","val","min_val"],["set","min_val","val"],0],["if",[">u","val","max_val"],["set","max_val","val"],0],["set","unique_set",["std.btree_set.insert_u32","unique_set","val"]],["let","old_freq",["std.btree_map.get_u32_u32_or","freq_map","val",0]],["set","freq_map",["std.btree_map.put_u32_u32","freq_map","val",["+","old_freq",1]]],0]],["let","unique_count",["std.btree_set.len_u32","unique_set"]],["let","mean",["/","sum","count"]],["let","out",["std.vec.with_capacity",256]],["set","out",["main.append_label","out",["bytes.lit","===_DATA_ANALYSIS_REPORT_==="]]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","Count"]]],["set","out",["main.append_colon_space","out"]],["set","out",["main.append_u32","out","count"]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","Sum"]]],["set","out",["main.append_colon_space","out"]],["set","out",["main.append_u32","out","sum"]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","Min"]]],["set","out",["main.append_colon_space","out"]],["set","out",["main.append_u32","out","min_val"]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","Max"]]],["set","out",["main.append_colon_space","out"]],["set","out",["main.append_u32","out","max_val"]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","Mean"]]],["set","out",["main.append_colon_space","out"]],["set","out",["main.append_u32","out","mean"]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","Unique_values"]]],["set","out",["main.append_colon_space","out"]],["set","out",["main.append_u32","out","unique_count"]],["set","out",["main.append_newline","out"]],["set","out",["main.append_label","out",["bytes.lit","---_Frequency_Table_---"]]],["set","out",["main.append_newline","out"]],["let","freq_data",["std.btree_map.emit_kv_u32le_u32le","freq_map"]],["let","freq_view",["bytes.view","freq_data"]],["let","freq_count",["/",["view.len","freq_view"],8]],["for","j",0,"freq_count",["begin",["let","foff",["*","j",8]],["let","fkey",["std.codec.read_u32_le","freq_view","foff"]],["let","fval",["std.codec.read_u32_le","freq_view",["+","foff",4]]],["set","out",["main.append_label","out",["bytes.lit","__"]]],["set","out",["main.append_u32","out","fkey"]],["set","out",["main.append_label","out",["bytes.lit","_x_"]]],["set","out",["main.append_u32","out","fval"]],["set","out",["main.append_label","out",["bytes.lit","_|"]]],["for","b",0,"fval",["begin",["set","out",["std.vec.push","out",35]],0]],["set","out",["std.vec.push","out",124]],["set","out",["main.append_newline","out"]],0]],["set","out",["main.append_label","out",["bytes.lit","===_END_REPORT_==="]]],["set","out",["main.append_newline","out"]],["std.vec.as_bytes","out"]]]]}
