{"statement":[3,3,3,4,4,4,6,6,6,7,7,7,8,8,8,10,10,10,11,11,11,18,19,20,28,29,30,38,39,40,43,44,45,46,46,47,48,56,57,58,59,60,61,62,63,64,72,73,74,75,76,77,85,86,87,88,89,97,98,99,101,109,110,118,119,127,128,136,137,138,140,141,142,143,144,144,144,145,147,149,157,158,159,161,162,163,164,165,166,167,168,169,170,171,171,172,173,174,175,176,176,177,178,179,181,182],"branch":[[29,{"text":"if not defined $id or $id eq \"\""}],[39,{"text":"if (ref $page ne \"Developer::Dashboard::PageDocument\")"}],[45,{"text":"unless open my $fh, \">\", $file"}],[58,{"text":"unless -f $file"}],[59,{"text":"unless open my $fh, \"<\", $file"}],[74,{"text":"unless -f $file"}],[75,{"text":"unless open my $fh, \"<\", $file"}],[98,{"text":"if (ref $page ne \"Developer::Dashboard::PageDocument\")"}],[138,{"text":"unless opendir my $dh, $root"}],[142,{"text":"if $entry eq \".\" or $entry eq \"..\""}],[143,{"text":"if -d \"File::Spec\"->catfile($root, $entry)"}],[145,{"text":"if $ok"}],[159,{"text":"unless opendir my $dh, $root"}],[163,{"text":"if $entry eq \".\" or $entry eq \"..\""}],[164,{"text":"unless $entry =~ /\\.json\\z/"}],[166,{"text":"if -d $file"}],[167,{"text":"unless open my $fh, \"<\", $file"}],[171,{"text":"unless my $page = eval {\n\tdo {\n\t\"Developer::Dashboard::PageDocument\"->from_json($raw)\n}\n}"}],[175,{"text":"unless open my $out, \">\", $target"}],[178,{"text":"unless unlink $file"}]],"digest":"9bb9ad3a4df325dc445bb588cbfa41f5","file":"blib/lib/Developer/Dashboard/PageStore.pm","start":{"-1":{"__COVER__":[{"time":null,"statement":106,"branch":20,"condition":7,"subroutine":19}]},"118":{"render_url":[{"branch":8,"time":null,"statement":63,"subroutine":15,"condition":4}]},"10":{"BEGIN":[{"branch":null,"statement":15,"time":null,"subroutine":5,"condition":null}]},"8":{"BEGIN":[{"condition":null,"subroutine":4,"time":null,"statement":12,"branch":null}]},"6":{"BEGIN":[{"statement":6,"time":null,"branch":null,"condition":null,"subroutine":2}]},"38":{"save_page":[{"subroutine":9,"condition":2,"branch":1,"time":null,"statement":27}]},"4":{"BEGIN":[{"branch":null,"time":null,"statement":3,"subroutine":1,"condition":null}]},"28":{"page_file":[{"condition":1,"subroutine":8,"time":null,"statement":24,"branch":null}]},"72":{"read_saved_entry":[{"condition":4,"subroutine":11,"time":null,"statement":46,"branch":5}]},"18":{"new":[{"statement":21,"time":null,"branch":null,"condition":null,"subroutine":7}]},"157":{"migrate_legacy_json_pages":[{"subroutine":18,"condition":5,"branch":12,"time":null,"statement":80}]},"56":{"load_saved_page":[{"subroutine":10,"condition":3,"branch":3,"statement":37,"time":null}]},"11":{"BEGIN":[{"subroutine":6,"condition":null,"branch":null,"time":null,"statement":18}]},"3":{"BEGIN":[{"branch":null,"statement":null,"time":null,"subroutine":null,"condition":null}]},"127":{"source_url":[{"condition":4,"subroutine":16,"statement":65,"time":null,"branch":8}]},"7":{"BEGIN":[{"condition":null,"subroutine":3,"time":null,"statement":9,"branch":null}]},"136":{"list_saved_pages":[{"time":null,"statement":67,"branch":8,"condition":4,"subroutine":17}]},"85":{"load_transient_page":[{"time":null,"statement":52,"branch":7,"condition":4,"subroutine":12}]},"97":{"encode_page":[{"condition":4,"subroutine":13,"time":null,"statement":57,"branch":7}]},"109":{"editable_url":[{"statement":61,"time":null,"branch":8,"condition":4,"subroutine":14}]}},"condition":[[19,{"left":"$args{'paths'}","type":"or_2","right":"die('Missing paths registry')","op":"||"}],[29,{"op":"or","right":"$id eq \"\"","left":"not defined $id","type":"or_3"}],[43,{"right":"die('Saved pages require an id')","op":"||","type":"or_2","left":"$page->as_hash->{'id'}"}],[62,{"type":"or_3","left":"$page->{'id'}","right":"$id","op":"||="}],[142,{"right":"$entry eq \"..\"","op":"or","type":"or_3","left":"$entry eq \".\""}],[163,{"type":"or_3","left":"$entry eq \".\"","right":"$entry eq \"..\"","op":"or"}],[172,{"type":"or_3","left":"$page->as_hash->{'id'}","right":"basename($entry, '.json')","op":"||"}]],"subroutine":[[3,"BEGIN"],[4,"BEGIN"],[6,"BEGIN"],[7,"BEGIN"],[8,"BEGIN"],[10,"BEGIN"],[11,"BEGIN"],[18,"new"],[28,"page_file"],[38,"save_page"],[56,"load_saved_page"],[72,"read_saved_entry"],[85,"load_transient_page"],[97,"encode_page"],[109,"editable_url"],[118,"render_url"],[127,"source_url"],[136,"list_saved_pages"],[157,"migrate_legacy_json_pages"]]}