diff --git a/grammars/fuzz/Cargo.toml b/grammars/fuzz/Cargo.toml index 992caa35..6974aa6f 100644 --- a/grammars/fuzz/Cargo.toml +++ b/grammars/fuzz/Cargo.toml @@ -10,6 +10,8 @@ cargo-fuzz = true [dependencies.pest_grammars] path = ".." +[dependencies.pest] +path = "../../pest" [dependencies.libfuzzer-sys] git = "https://github.com/rust-fuzz/libfuzzer-sys.git" diff --git a/grammars/fuzz/fuzz_targets/json.rs b/grammars/fuzz/fuzz_targets/json.rs index d3a96f1a..03a23326 100644 --- a/grammars/fuzz/fuzz_targets/json.rs +++ b/grammars/fuzz/fuzz_targets/json.rs @@ -1,5 +1,6 @@ #![no_main] -#[macro_use] extern crate libfuzzer_sys; +#[macro_use] +extern crate libfuzzer_sys; extern crate pest_grammars; fuzz_target!(|data: &[u8]| { diff --git a/grammars/fuzz/fuzz_targets/toml.rs b/grammars/fuzz/fuzz_targets/toml.rs index 0b637d15..9e2389ac 100644 --- a/grammars/fuzz/fuzz_targets/toml.rs +++ b/grammars/fuzz/fuzz_targets/toml.rs @@ -1,12 +1,17 @@ #![no_main] -#[macro_use] extern crate libfuzzer_sys; +#[macro_use] +extern crate libfuzzer_sys; +extern crate pest; extern crate pest_grammars; +use std::convert::TryInto; + fuzz_target!(|data: &[u8]| { use pest_grammars::toml; use pest_grammars::Parser; if let Ok(s) = std::str::from_utf8(data) { + pest::set_call_limit(Some(100_000usize.try_into().unwrap())); let _ = toml::TomlParser::parse(toml::Rule::toml, s); } }); diff --git a/grammars/resources/test/tomlfuzzsample1.grammar b/grammars/resources/test/tomlfuzzsample1.grammar new file mode 100644 index 00000000..9161ad7f --- /dev/null +++ b/grammars/resources/test/tomlfuzzsample1.grammar @@ -0,0 +1,8649 @@ +[2]1=0x3=0-=0_3=[105,true,5, +[ +[1, +[ +[1,5,1, +4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[[ +1,53,[1,5,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[9,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +35 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,50,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[9,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +35 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,50,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,0, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[[ +1,53,[1,5,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,53 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[9,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +35 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,50,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[9,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +35 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,50,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,0, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[[ +1,53,[1,5,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +45 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[9,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +35 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,50,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31, +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +45 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[9,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +35 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15,[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,50,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,1,43,5 +, +[ +[15, +15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +115 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +# +[4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31, +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[1,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5,[ +[1,5 +,1,4 +,[31,505, +[ +3,5, +[ +-1, +[ +[1,5,1, +4,[4,[1,5, +1,5 +,0,4 +,[3 +,1,43,5 +, +[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,45, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +15, + +[1,5 +,5 +,1,4 +,[3,5 +, +[4,[4,[1,5, + +1,5 +,0,4 +,[3 +,1,43,5 +, +[ +[15, +[ +[1,53,[1,5, + +[1,5 +, \ No newline at end of file diff --git a/grammars/src/lib.rs b/grammars/src/lib.rs index 0a663323..30042753 100644 --- a/grammars/src/lib.rs +++ b/grammars/src/lib.rs @@ -32,3 +32,25 @@ pub mod toml { #[grammar = "grammars/toml.pest"] pub struct TomlParser; } + +#[cfg(test)] +mod tests { + use std::convert::TryInto; + + use pest::Parser; + + use crate::toml; + + #[test] + fn toml_handles_deep_nesting() { + let sample1 = include_str!(concat!( + env!("CARGO_MANIFEST_DIR"), + "/resources/test/tomlfuzzsample1.grammar" + )); + const ERROR: &str = "call limit reached"; + pest::set_call_limit(Some(100_000usize.try_into().unwrap())); + let s1 = toml::TomlParser::parse(toml::Rule::toml, sample1); + assert!(s1.is_err()); + assert_eq!(s1.unwrap_err().variant.message(), ERROR); + } +}