diff --git a/rust2/benches/bottles.bf b/rust2/benches/bottles.bf new file mode 100644 index 0000000..b2c18e0 --- /dev/null +++ b/rust2/benches/bottles.bf @@ -0,0 +1,44 @@ +>+++++++++[<+++++++++++>-]<[>[-]>[-]<<[>+>+<<-]>>[<<+>>-]>>> +[-]<<<+++++++++<[>>>+<<[>+>[-]<<-]>[<+>-]>[<<++++++++++>>>+< +-]<<-<-]+++++++++>[<->-]>>+>[<[-]<<+>>>-]>[-]+<<[>+>-<<-]<<< +[>>+>+<<<-]>>>[<<<+>>>-]>[<+>-]<<-[>[-]<[-]]>>+<[>[-]<-]<+++ ++++++[<++++++<++++++>>-]>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>- +]<<<<<<.>>[-]>[-]++++[<++++++++>-]<.>++++[<++++++++>-]<++.>+ +++++[<+++++++++>-]<.><+++++..--------.-------.>>[>>+>+<<<-]> +>>[<<<+>>>-]<[<<<<++++++++++++++.>>>>-]<<<<[-]>++++[<+++++++ ++>-]<.>+++++++++[<+++++++++>-]<--.---------.>+++++++[<------ +---->-]<.>++++++[<+++++++++++>-]<.+++..+++++++++++++.>++++++ +++[<---------->-]<--.>+++++++++[<+++++++++>-]<--.-.>++++++++ +[<---------->-]<++.>++++++++[<++++++++++>-]<++++.----------- +-.---.>+++++++[<---------->-]<+.>++++++++[<+++++++++++>-]<-. +>++[<----------->-]<.+++++++++++..>+++++++++[<---------->-]< +-----.---.>>>[>+>+<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>>+++ ++[<++++++>-]<--.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<. +><+++++..--------.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++ +++++++++++++.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<++ ++++++++>-]<--.---------.>+++++++[<---------->-]<.>++++++[<++ ++++++++++>-]<.+++..+++++++++++++.>++++++++++[<---------->-]< +-.---.>+++++++[<++++++++++>-]<++++.+++++++++++++.++++++++++. +------.>+++++++[<---------->-]<+.>++++++++[<++++++++++>-]<-. +-.---------.>+++++++[<---------->-]<+.>+++++++[<++++++++++>- +]<--.+++++++++++.++++++++.---------.>++++++++[<---------->-] +<++.>+++++[<+++++++++++++>-]<.+++++++++++++.----------.>++++ ++++[<---------->-]<++.>++++++++[<++++++++++>-]<.>+++[<-----> +-]<.>+++[<++++++>-]<..>+++++++++[<--------->-]<--.>+++++++[< +++++++++++>-]<+++.+++++++++++.>++++++++[<----------->-]<++++ +.>+++++[<+++++++++++++>-]<.>+++[<++++++>-]<-.---.++++++.---- +---.----------.>++++++++[<----------->-]<+.---.[-]<<<->[-]>[ +-]<<[>+>+<<-]>>[<<+>>-]>>>[-]<<<+++++++++<[>>>+<<[>+>[-]<<-] +>[<+>-]>[<<++++++++++>>>+<-]<<-<-]+++++++++>[<->-]>>+>[<[-]< +<+>>>-]>[-]+<<[>+>-<<-]<<<[>>+>+<<<-]>>>[<<<+>>>-]<>>[<+>-]< +<-[>[-]<[-]]>>+<[>[-]<-]<++++++++[<++++++<++++++>>-]>>>[>+>+ +<<-]>>[<<+>>-]<[<<<<<.>>>>>-]<<<<<<.>>[-]>[-]++++[<++++++++> +-]<.>++++[<++++++++>-]<++.>+++++[<+++++++++>-]<.><+++++..--- +-----.-------.>>[>>+>+<<<-]>>>[<<<+>>>-]<[<<<<++++++++++++++ +.>>>>-]<<<<[-]>++++[<++++++++>-]<.>+++++++++[<+++++++++>-]<- +-.---------.>+++++++[<---------->-]<.>++++++[<+++++++++++>-] +<.+++..+++++++++++++.>++++++++[<---------->-]<--.>+++++++++[ +<+++++++++>-]<--.-.>++++++++[<---------->-]<++.>++++++++[<++ +++++++++>-]<++++.------------.---.>+++++++[<---------->-]<+. +>++++++++[<+++++++++++>-]<-.>++[<----------->-]<.+++++++++++ +..>+++++++++[<---------->-]<-----.---.+++.---.[-]<<<] \ No newline at end of file diff --git a/rust2/benches/hello.bf b/rust2/benches/hello.bf deleted file mode 100644 index 8fa0f72..0000000 --- a/rust2/benches/hello.bf +++ /dev/null @@ -1 +0,0 @@ -++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++. diff --git a/rust2/benches/opts.rs b/rust2/benches/opts.rs index d332847..b7cebd0 100644 --- a/rust2/benches/opts.rs +++ b/rust2/benches/opts.rs @@ -21,7 +21,7 @@ impl Write for MockReadWrite { } } -fn run_bf_bench(bf: &str) { +fn run_bf(bf: &str) { let bump = Bump::new(); let parsed = brainfuck::parse::parse(&bump, bf.bytes().enumerate()).unwrap(); let optimized = brainfuck::opts::optimize(&bump, &parsed); @@ -30,18 +30,16 @@ fn run_bf_bench(bf: &str) { fn optimized(c: &mut Criterion) { let fizzbuzz = include_str!("fizzbuzz.bf"); - let hello_world = include_str!("hello.bf"); let bench = include_str!("bench.bf"); let loopremove = include_str!("loopremove.bf"); + let twinkle = include_str!("twinkle.bf"); + let bottles = include_str!("bottles.bf"); - c.bench_function("fizzbuzz", |b| b.iter(|| run_bf_bench(black_box(fizzbuzz)))); - c.bench_function("hello_world", |b| { - b.iter(|| run_bf_bench(black_box(hello_world))) - }); - c.bench_function("bench", |b| b.iter(|| run_bf_bench(black_box(bench)))); - c.bench_function("loopremove", |b| { - b.iter(|| run_bf_bench(black_box(loopremove))) - }); + c.bench_function("fizzbuzz", |b| b.iter(|| run_bf(black_box(fizzbuzz)))); + c.bench_function("bench", |b| b.iter(|| run_bf(black_box(bench)))); + c.bench_function("loopremove", |b| b.iter(|| run_bf(black_box(loopremove)))); + c.bench_function("twinkle", |b| b.iter(|| run_bf(black_box(twinkle)))); + c.bench_function("bottles", |b| b.iter(|| run_bf(black_box(bottles)))); } criterion_group!(benches, optimized); diff --git a/rust2/benches/twinkle.bf b/rust2/benches/twinkle.bf new file mode 100644 index 0000000..394a31c --- /dev/null +++ b/rust2/benches/twinkle.bf @@ -0,0 +1,3 @@ +A computer generated; Overflowey; Twinkle Twinkle Little Star + +-[--->+<]>-.-[----->+<]>.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.+++.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.++[--->++<]>.---.+++++++++++..--------.-------.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]>++.--[--->+<]>---.[++>---<]>+.>++++++++++.++[->++++++<]>.-[--->+<]>++.++++++++.+[---->+<]>++.++++[->++<]>+.-[->++++<]>.--[->++++<]>-.--------.-.----------.+.+++++++++++++.[-->+++++<]>+++.--[->++++<]>-.+[->+++<]>.-------.--[--->+<]>-.[---->+<]>+++.--[->++++<]>+.----------.++++++.-[---->+<]>+++.[->+++<]>+.--[--->+<]>---.-------------.[->+++<]>-.>++++++++++.>-[--->+<]>.--[--->+<]>-.[------->++<]>.[->+++<]>+.+.+++++++++++++.+++++++.+[->+++<]>.--[--->+<]>-.---[->++++<]>.------------.---.--[--->+<]>-.--[->++++<]>-.--------.+++.------.--------.-[--->+<]>-.---[->++++<]>-.----.[--->+<]>-----.-[--->++<]>--.+.--.+.----[->+++<]>.>++++++++++.[------->++<]>.++[--->++++<]>+.++.------.--[--->+<]>-.[->+++<]>+.-[->+++<]>.+[->+++<]>+.+++++.--------.++++++++++++.++.-.----------.-[--->+<]>-.-[--->++<]>-.+++++.-[->+++++<]>-.---[->++++<]>.------------.---.--[--->+<]>-.---[->++++<]>-.--------.[--->+<]>.-----[++>---<]>.>++++++++++.>-[--->+<]>-.-[----->+<]>.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.+++.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.++[--->++<]>.---.+++++++++++..--------.-------.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]>++.--[--->+<]>---.[++>---<]>+.>++++++++++.++[->++++++<]>.-[--->+<]>++.++++++++.+[---->+<]>++.++++[->++<]>+.-[->++++<]>.--[->++++<]>-.--------.-.----------.+.+++++++++++++.[-->+++++<]>+++.--[->++++<]>-.+[->+++<]>.-------.--[--->+<]>-.[---->+<]>+++.--[->++++<]>+.----------.++++++.-[---->+<]>+++.[->+++<]>+.--[--->+<]>---.-------------.--[--->+<]>.[--->+<]>-..[------>+<]>.+++[->++++<]>.---.+++++++++.-[->+++++<]>-.---[->++++<]>.------------.---.--[--->+<]>-.[->+++<]>++.++++++++++.-----------.+[----->+<]>.--[->+++<]>+.+++++.-------.-[--->+<]>--.---[->++++<]>-.++.-------.-[->+++++<]>-.-[--->++<]>-.++++++++++.+[---->+<]>+++.++[->+++<]>+.++++++++.-.---------.-[->+++<]>.>++++++++++.[------>+<]>.+++[->++++<]>.---.+++++++++.-[->+++++<]>-.---[->++++<]>.------------.---.+++++++++++++.-------------.---[->+++<]>+.-[->+++<]>+.+[---->+<]>+++.+[----->+<]>+.+.+++++.------------.+.+++++.-------.-[--->+<]>--.-[--->++<]>--.---.--[--->+<]>-.---[->++++<]>-.-----------.+.+++++.---------.[--->+<]>----.+[---->+<]>+++.---[->++++<]>+.-----.-.-.[----->++<]>.>++++++++++.>-[--->+<]>-.[---->+++++<]>-.---.+++++++++.-[->+++++<]>-.--[->++++<]>+.----------.++++++.-[---->+<]>+++.---[->++++<]>-.-----------.+++++++.++++++++.+[---->+<]>++.--[->++++<]>+.----------.++++++.---.[-->+++++<]>+++.++[--->++<]>.---.+++++++++++..--------.-------.--[--->+<]>-.++[--->++<]>.---.--.+.++++++++++++.[++>---<]>--.>++++++++++.>-[--->+<]>-.-[----->+<]>.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.+++.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.------------.++++++++++.---.++++++.++[->+++<]>++.+.--[--->+<]>--.---[->++++<]>.------------.---.--[--->+<]>-.+[----->+<]>+.-----.--.+.++++++++++++.[++>---<]>.>++++++++++.>-[--->+<]>-.-[----->+<]>.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.+++.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.++[--->++<]>.---.+++++++++++..--------.-------.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]>++.--[--->+<]>---.[++>---<]>+.>++++++++++.++[->++++++<]>.-[--->+<]>++.++++++++.+[---->+<]>++.++++[->++<]>+.-[->++++<]>.--[->++++<]>-.--------.-.----------.+.+++++++++++++.[-->+++++<]>+++.--[->++++<]>-.+[->+++<]>.-------.--[--->+<]>-.[---->+<]>+++.--[->++++<]>+.----------.++++++.-[---->+<]>+++.[->+++<]>+.--[--->+<]>---.-------------.--[--->+<]>.[--->+<]>-..++[++++>---<]>.+[--->+<]>.-[->+++++<]>-.---[->++++<]>.------------.---.--[--->+<]>-.+[->+++<]>+.---.--[--->+<]>---.-------.-[++>---<]>+.[->+++<]>++.++++++++++.+++++++++.++[->+++<]>.--[--->+<]>-.---[->++++<]>-.--------.[--->+<]>.-[---->+<]>++.---[->++++<]>-.----.[--->+<]>-----.+[->+++<]>+.+..+++++++++++.>++++++++++.>-[--->+<]>-.[---->+++++<]>-.++++++++++.---.++++++.++[->+++<]>++.+.--[--->+<]>--.+[----->+<]>.--[--->+<]>.-[---->+<]>++.+[->+++<]>.-[--->+<]>-.---.++.+[->+++<]>++.++++++++.+++++.+++++.+[---->+<]>+++.+++++[->+++<]>.---------.-[--->+<]>---.+++[->+++<]>.+++++++++.-[->+++++<]>-.[-->+++++++<]>.-----------..+++++++++++.>++++++++++.[->+++++++<]>.+[--->+<]>++.+++.[-->+++++<]>+++.--[->++++<]>+.----------.++++++.-[---->+<]>+++.+[----->+<]>+.---------.[--->+<]>-.+[->+++<]>.+++++++++++++.[-->+++++<]>+++.+[->+++<]>.+++++++++.+++.++++.++++[->+++<]>.--[--->+<]>-.--[->++++<]>+.----------.++++++.---.[-->+++++<]>+++.+[->+++<]>++.[--->+<]>++.--[->+++<]>.[--->+<]>----.>++++++++++.>-[--->+<]>-.[---->+++++<]>.+++.[++>---<]>--.---[->++++<]>.------------.---.--[--->+<]>-.+[----->+<]>.++.+++.----.-----.+++++.-------.-[--->+<]>--.---[->++++<]>-.++.-------.-[->+++++<]>-.+[->+++<]>+.+++++++++++.----------.[--->+<]>----.+[---->+<]>+++.---[----->++<]>.---------.++++++++++.++++[->+++<]>.>++++++++++.>-[--->+<]>-.-[----->+<]>.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.+++.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.++[--->++<]>.---.+++++++++++..--------.-------.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]>++.--[--->+<]>---.>++++++++++.++[->++++++<]>.-[--->+<]>++.++++++++.+[---->+<]>++.++++[->++<]>+.-[->++++<]>.--[->++++<]>-.--------.-.----------.+.+++++++++++++.[-->+++++<]>+++.--[->++++<]>-.+[->+++<]>.-------.--[--->+<]>-.[---->+<]>+++.--[->++++<]>+.----------.++++++.-[---->+<]>+++.[->+++<]>+.--[--->+<]>---.-------------.>++++++++++..>-[--->+<]>-.-[----->+<]>.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.---[->++++<]>.+++.+[->+++<]>+.+++++.---.+.-------.-[->+++<]>.------------.++[--->++<]>.---.+++++++++++..--------.-------.--[--->+<]>-.---[->++++<]>-.+.+[->+++<]>++.--[--->+<]>---.>++++++++++.++[->++++++<]>.-[--->+<]>++.++++++++.+[---->+<]>++.++++[->++<]>+.-[->++++<]>.--[->++++<]>-.--------.-.----------.+.+++++++++++++.[-->+++++<]>+++.--[->++++<]>-.+[->+++<]>.-------.--[--->+<]>-.[---->+<]>+++.--[->++++<]>+.----------.++++++.-[---->+<]>+++.[->+++<]>+.--[--->+<]>---.-------------.--[--->+<]>-. \ No newline at end of file diff --git a/rust2/test.bf b/rust2/test.bf index 2e15441..ef4ebc1 100644 --- a/rust2/test.bf +++ b/rust2/test.bf @@ -1 +1,687 @@ -+++[-]. \ No newline at end of file + A mandelbrot set fractal viewer in brainf*** written by Erik Bosman+++++++++++++ +[->++>>>+++++>++>+<<<<<<]>>>>>++++++>--->>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]+ +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[>>>>>>>> +[-]<<<<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>> +[-]+<<<<<<<<>+++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>>>>+<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>> +[<<<>>>>>>>>> +[>>>>>>> +[-]<<<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>> +[-]+<<<<<<<>++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>>>+<<<<<<<>+++++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>>>+<<<<<<<<<<<<<<<< +[<<<<<<<<<]>>> +[<<<>>> +[-]<<<>>>>>>>>> +[>>>>>>> +[-<<<<<<<>+<>>>>>>>]<<<<<<<> +[-<>>>>>>>+<<<<<<<>>>>>+<<<<<>>+<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>>>>>>>> +[-<<<<<<<<>+<>>>>>>>>]<<<<<<<<> +[-<>>>>>>>>+<<<<<<<<>>>>>>+<<<<<<>>>+<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>> +[<<<<<<<>>>>>>>-<<<<<<<+>>>>>>>]<<<<<<< +[->>>>>>>+<<<<<<<>>>>>+<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]+> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>> +[-<<<<<>+<>>>>>]<<<<<> +[-<>>>>>+<<<<< +[->> +[-<<+>>]<< +[->>+<<>>>>+<<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>]<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>> +[<<<<>>>>-<<<<+> +[<->-<<<<<<<<<<>>>>+<<<<>>>>>>>>>>]< +[->+<]>>>>]<<<<> +[<>-<>>>>+<<<<>]<+<<<<<<<<<]>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>>> +[-<<<<<<>+<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<< +[->>> +[-<<<+>>>]<<< +[->>>+<<<>>>>+<<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>>> +[<<<>>>-<<<>>>>>>>>>>>>+<<<<<<<<<<<<>>>]<<<<<<<<<<<<>]<>>> +[<<<>>>-<<<>>>>>>>>>>>>+<<<<<<<<<<<<>>>]<<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>> +[<<<<>>>>-<<<<+> +[<->-<<<<<<<<<<>>>>+<<<<>>>>>>>>>>]< +[->+<]>>>>]<<<<> +[<>-<>>>>+<<<<>]<+<<<<<<<<<]>>>>>>>>> +[>>>> +[-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]<<<<<<<<<-<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+<<< +[<<<<<<<<<]>>>>>>>>> +[-+>>> +[-<<<->>>]+<<< +[->>>-<<<>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>>>> +[-<<<<->>>>]+<<<< +[->>>>-<<<<>>> +[-<<<+>>>]<<< +[->>>+<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]<<<<<<< +[->+>>>-<<<<]>>>>>>>>>++++++++++++++++++++++++++<<>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>> +[-]<<]>> +[<<<<<<<+< +[-<+>>>>+<< +[-]]> +[-><<< +[->+>>>-<<<<]>>>]>>>>>>>>>>>>> +[>> +[-]<<>>> +[-]<<<>>>> +[-]<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>> +[-]<<<>>>>>>>>> +[>>>>> +[-<<<<<>+<>>>>>]<<<<<> +[-<>>>>>+<<<<<>>+<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>> +[-<<<<<<<<<+>>>>>>>>>]<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]+> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>>> +[-<<<<<<>+<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<< +[->> +[-<<+>>]<< +[->>+<<>>>+<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>]<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>> +[<<<>>>-<<<+> +[<->-<<<<<<<<<<>>>+<<<>>>>>>>>>>]< +[->+<]>>>]<<<> +[<>-<>>>+<<<>]<+<<<<<<<<<]>>>>>>>>> +[>>>>>> +[-<<<<<<>+<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<<>>+<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>>> +[-<<<<<<>+<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<< +[->> +[-<<+>>]<< +[->>+<<>>>>+<<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>]<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>> +[<<<<>>>>-<<<<+> +[<->-<<<<<<<<<<>>>>+<<<<>>>>>>>>>>]< +[->+<]>>>>]<<<<> +[<>-<>>>>+<<<<>]<+<<<<<<<<<]>>>>>>>>> +[>>>> +[-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>>> +[-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]<<<<<<<<<-<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[>>>>>>>> +[-<<<<<<<<>+<>>>>>>>>]<<<<<<<<> +[-<>>>>>>>>+<<<<<<<<>>+<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>>>>>> +[-]<<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>+<<<<>>>>> +[<<<<<>>>>>-<<<<<>>>>-<<<<+>>>>>]<<<<<>>>>>> +[<<<<<<>>>>>>-<<<<<< +[->>>>>+<<<<<>>>>+<<<<>>>>+<<<<]>>>>> +[<<<<<>>>>>-<<<<<+>>>>>]<<<<<>>>>-<<<<>>>>>+<<<<<>>>>>>]<<<<<<>>>>> +[<<<<<>>>>>-<<<<<>>>>>>+<<<<<<>>>>>]<<<<< +[->>>>>+<<<<<]>>>>>> +[-]<<<<<<+>>>> +[-<<<<->>>>]+<<<< +[->>>>-<<<<>>>>>>>>> +[-+>> +[-<<->>]+<< +[->>-<<>>> +[-<<<+>>>]<<< +[->>>+<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>>> +[-<<<->>>]+<<< +[->>>-<<<>> +[-<<+>>]<< +[->>+<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>>>>>>>>> +[>+<>>> +[-<<<>-<>>>]<<<> +[-<>>>+<<<>]<>>>>>>>>>]<<<<<<<<<>+< +[> +[-<>>>>>>+<<<<<<>> +[-<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>> +[-<<<>>>>>>+<<<<<<>>>]<<<>>]<<>>> +[-<<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>]<>> +[-<<>>>>>>+<<<<<<>>> +[-<<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>>]<<>>> +[-<<<>>>>>>+<<<<<<>>>]<<<<<<<<<<<<]>>>> +[-]<<<<]>>> +[-<<<+>>>]<<< +[->>>+<<<>>>>>>>>> +[>+<>> +[-<<>-<>>]<<> +[-<>>+<<>]<>>>>>>>>>]<<<<<<<<<>+< +[> +[-<>>>>>>+<<<<<<>>> +[-<<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>> +[-<<>>>>>>+<<<<<<>>]<<>>>]<<<>> +[-<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>]<<>]<>>> +[-<<<>>>>>>+<<<<<<>> +[-<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>]<<>>>]<<<>> +[-<<>>>>>>+<<<<<<>>]<<<<<<<<<<<]>>>>>>+<<<<<<]]>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>>>>>>>>> +[>>>>>>>>>]<<<<<<<<< +[> +[-<>>>>>>+<<<<<<>> +[-<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>> +[-<<<>>>>>>+<<<<<<>>>]<<<>>]<<>>> +[-<<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>]<>> +[-<<>>>>>>+<<<<<<>>> +[-<<<>>>>>>-<<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>>]<<>>> +[-<<<>>>>>>+<<<<<<>>>]<<<<<<<<<<<<]]> +[-]<>>> +[-]<<<>>>> +[-]<<<<>>>>>>>>> +[>> +[-]<<>>> +[-]<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>>>>> +[-<<<<<>+<>>>>>]<<<<<> +[-<>>>>>+<<<<<>>+<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]+> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>> +[-<<<<<>+<>>>>>]<<<<<> +[-<>>>>>+<<<<< +[->> +[-<<+>>]<< +[->>+<<>>>+<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>]<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>> +[<<<>>>-<<<+> +[<->-<<<<<<<<<<>>>+<<<>>>>>>>>>>]< +[->+<]>>>]<<<> +[<>-<>>>+<<<>]<+<<<<<<<<<]>>>>>>>>> +[>>> +[-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>> +[-]<<<<<>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]<<<<<<<<<-<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[-+>>> +[-<<<->>>]+<<< +[->>>-<<<>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>>>> +[-<<<<->>>>]+<<<< +[->>>>-<<<<>>> +[-<<<+>>>]<<< +[->>>+<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>> +[-<<<+>>>]<<< +[->>>+<<<>>>>>>>>> +[>+<>>>> +[-<<<<>-<>>>>]<<<<> +[-<>>>>+<<<<>]<>>>>>>>>>]<<<<<<<<<>+< +[> +[-<>>+<<>>> +[-<<<>>-<<><<<<<<<<<+>>>>>>>>><>>>> +[-<<<<>>+<<>>>>]<<<<>>>]<<<>>>> +[-<<<<>>-<<><<<<<<<<<+>>>>>>>>><>>>>]<<<<>]<>>> +[-<<<>>+<<>>>> +[-<<<<>>-<<><<<<<<<<<+>>>>>>>>><>>>>]<<<<>>>]<<<>>>> +[-<<<<>>+<<>>>>]<<<<<<<<<<<<<]]>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>>>>>>>>> +[>+<>>> +[-<<<>-<>>>]<<<> +[-<>>>+<<<>]<>>>>>>>>>]<<<<<<<<<>+< +[> +[-<>>+<<>>>> +[-<<<<>>-<<><<<<<<<<<+>>>>>>>>><>>> +[-<<<>>+<<>>>]<<<>>>>]<<<<>>> +[-<<<>>-<<><<<<<<<<<+>>>>>>>>><>>>]<<<>]<>>>> +[-<<<<>>+<<>>> +[-<<<>>-<<><<<<<<<<<+>>>>>>>>><>>>]<<<>>>>]<<<<>>> +[-<<<>>+<<>>>]<<<<<<<<<<<<]>>>>>+<<<<<]>>>>>>>>> +[>>> +[-]<<<>>>> +[-]<<<<>>>>> +[-]<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>> +[-]<<<>>>> +[-]<<<<>>>>>>>>> +[>>>>>>> +[-<<<<<<<>+<>>>>>>>]<<<<<<<> +[-<>>>>>>>+<<<<<<<>>>+<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>+<<<<>>>>> +[<<<<<>>>>>-<<<<<>>>>-<<<<+>>>>>]<<<<<>>>>>>> +[<<<<<<<>>>>>>>-<<<<<<< +[->>>>>+<<<<<>>>>+<<<<>>>>+<<<<]>>>>> +[<<<<<>>>>>-<<<<<+>>>>>]<<<<<>>>>-<<<<>>>>>+<<<<<>>>>>>>]<<<<<<<>>>>> +[<<<<<>>>>>-<<<<<>>>>>>>+<<<<<<<>>>>>]<<<<< +[->>>>>+<<<<<]+>>>> +[-<<<<->>>>]+<<<< +[->>>>-<<<<>>>>>>>>> +[-+>>> +[-<<<->>>]+<<< +[->>>-<<<>> +[-<<+>>]<< +[->>+<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>> +[-<<->>]+<< +[->>-<<>>> +[-<<<+>>>]<<< +[->>>+<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>> +[-<<<+>>>]<<< +[->>>+<<<>>>>>>>>> +[>+<>> +[-<<>-<>>]<<> +[-<>>+<<>]<>>>>>>>>>]<<<<<<<<<>+< +[> +[-<>>>>>+<<<<<>>> +[-<<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>> +[-<<>>>>>+<<<<<>>]<<>>>]<<<>> +[-<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>]<<>]<>>> +[-<<<>>>>>+<<<<<>> +[-<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>]<<>>>]<<<>> +[-<<>>>>>+<<<<<>>]<<<<<<<<<<<]>>>>> +[-]<<<<<>>>>>>> +[<<<<<<<>>>>>>>-<<<<<<<+>>>>>>>]<<<<<<< +[->>>>>>>+<<<<<<<>>>>>+<<<<<]]>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>>>>>>>>> +[>+<>>> +[-<<<>-<>>>]<<<> +[-<>>>+<<<>]<>>>>>>>>>]<<<<<<<<<>+< +[> +[-<>>>>>+<<<<<>> +[-<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>> +[-<<<>>>>>+<<<<<>>>]<<<>>]<<>>> +[-<<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>]<>> +[-<<>>>>>+<<<<<>>> +[-<<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>>]<<>>> +[-<<<>>>>>+<<<<<>>>]<<<<<<<<<<<<]]>>>> +[-]<<<<]>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>>>>> +[-]<<<<<>>>>>>> +[<<<<<<<>>>>>>>-<<<<<<<+>>>>>>>]<<<<<<< +[->>>>>>>+<<<<<<<>>>>>+<<<<<]>>>>>>>>> +[>>>>>>>>>]<<<<<<<<< +[> +[-<>>>>>+<<<<<>> +[-<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>> +[-<<<>>>>>+<<<<<>>>]<<<>>]<<>>> +[-<<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>]<>> +[-<<>>>>>+<<<<<>>> +[-<<<>>>>>-<<<<<><<<<<<<<<+>>>>>>>>><>>>]<<<>>]<<>>> +[-<<<>>>>>+<<<<<>>>]<<<<<<<<<<<<]]>>>>>>>>> +[>> +[-]<<>>> +[-]<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>> +[-]<<<>>>> +[-]<<<<>>>>>>>>> +[>>>>> +[-<<<<<>+<>>>>>]<<<<<> +[-<>>>>>+<<<<<>>+<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>>>>>> +[-<<<<<<>+<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<<>>>+<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]+> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>> +[-<<<<<>+<>>>>>]<<<<<> +[-<>>>>>+<<<<< +[->> +[-<<+>>]<< +[->>+<<>>>>+<<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>]<>> +[<<>>-<<>>>>>>>>>>>+<<<<<<<<<<<>>]<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>> +[<<<<>>>>-<<<<+> +[<->-<<<<<<<<<<>>>>+<<<<>>>>>>>>>>]< +[->+<]>>>>]<<<<> +[<>-<>>>>+<<<<>]<+<<<<<<<<<]>>>>>>>>> +[>+<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>-<>>>>>> +[-<<<<<<>+<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<< +[->>> +[-<<<+>>>]<<< +[->>>+<<<>>>>+<<<<]+>>>>>>>>>]><<<<<<<<< +[<<<<<<<<<]<>]<>>>>>>>>>> +[>>>>>>>>>]<<<<<<<<<<> +[<>>> +[<<<>>>-<<<>>>>>>>>>>>>+<<<<<<<<<<<<>>>]<<<<<<<<<<<<>]<>>> +[<<<>>>-<<<>>>>>>>>>>>>+<<<<<<<<<<<<>>>]<<<<<<<<<<<<>>>>>>>>>>+<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>> +[<<<<>>>>-<<<<+> +[<->-<<<<<<<<<<>>>>+<<<<>>>>>>>>>>]< +[->+<]>>>>]<<<<> +[<>-<>>>>+<<<<>]<+<<<<<<<<<]>>>>>>>>> +[>>>> +[-<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<+>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>++++++++++++++++- +[ +[>>>>>>>>>]<<<<<<<<<-<<<<<<<<< +[<<<<<<<<<]>>>>>>>>>-]+<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+<<< +[<<<<<<<<<]>>>>>>>>> +[-+>>> +[-<<<->>>]+<<< +[->>>-<<<>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>>>> +[-<<<<->>>>]+<<<< +[->>>>-<<<<>>> +[-<<<+>>>]<<< +[->>>+<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>-<<>>>> +[-<<<<+>>>>]<<<< +[->>>>+<<<<>> +[-]<<]>>]<<+>>>> +[-<<<<->>>>]+<<<< +[->>>>-<<<<<<.>>]>>>> +[<<<<>>>>-<<<<<<<.>>>>>>>]<<<<> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]<<<<<<>>>>>>>>> +[> +[-]> +[-]> +[-]> +[-]> +[-]> +[-]<<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>>>>>>> +[>>>>> +[-]<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>++++++++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>+<<<<<>>>>>>>>>>>>>>+<<<<<<<<<<<<<< +[<<<<<<<<<]>>>>>>> +[-<<<<<<<+>>>>>>>]<<<<<<< +[->>>>>>>+<<<<<<<>>>>>>> +[-]<<<<<<<>>>>>>>>> +[>>>>>>>>>]<<<<<<<<< +[>>>>>>> +[-<<<<<<<>+<>>>>>>>]<<<<<<<> +[-<>>>>>>>+<<<<<<< +[<<<<<<<<<]>>>>>>> +[-]+<<<<<<<>>>>>>>>>>]<<<<<<<<<<]]>>>>>>> +[-<<<<<<<+>>>>>>>]<<<<<<< +[->>>>>>>+<<<<<<<>>>>>>>>> +[>+<>>>>> +[-<<<<<>-<>>>>>]<<<<<> +[-<>>>>>+<<<<<>]<>>>>>>>>>]<<<<<<<<<>>>>>>>+<<<<<<< +[>>>>> +[<<<<<>>>>>-<<<<<>>>>>>>+<<<<<<<>>>>>]<<<<<<<<<<<<<<]>>>>>>>>> +[>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>>>>> +[<<<<<<<>>>>>>>-<<<<<<<+> +[<->-<<<<<<<<<<>>>>>>>+<<<<<<<>>>>>>>>>>]< +[->+<]>>>>>>>]<<<<<<<> +[<>-<>>>>>>>+<<<<<<<>]<+<<<<<<<<<]>>>>>>>-<<<<<<<>>> +[-]+<<<]+>>>>>>> +[-<<<<<<<->>>>>>>]+<<<<<<< +[->>>>>>>-<<<<<<<>>>>>>>>> +[>>>>> +[<<<<<>>>>>-<<<<<>>>>>>>+<<<<<<<>>>>>]<<<<<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>>>>> +[<<<<<<<>>>>>>>-<<<<<<<+> +[<->-<<<<<<<<<<>>>>>>>+<<<<<<<>>>>>>>>>>]< +[->+<]>>>>>>>]<<<<<<<> +[<>-<>>>>>>>+<<<<<<<>]<+<<<<<<<<<]>+++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>+<<<<< +[<<<<<<<<<]>>>>>>>>> +[-+>>>>> +[-<<<<<->>>>>]+<<<<< +[->>>>>-<<<<<>>>>>>> +[-<<<<<<<+>>>>>>>]<<<<<<< +[->>>>>>>+<<<<<<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>>>>>>> +[-<<<<<<<->>>>>>>]+<<<<<<< +[->>>>>>>-<<<<<<<>>>>> +[-<<<<<+>>>>>]<<<<< +[->>>>>+<<<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>> +[-]<<<<>+++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>-<<<<< +[<<<<<<<<<]]>>>]<<<<.>>>>>>>>>> +[>>>>>> +[-]<<<<<<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>+++++++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>>+<<<<<<>>>>>>>>>>>>>>>+<<<<<<<<<<<<<<< +[<<<<<<<<<]>>>>>>>> +[-<<<<<<<<+>>>>>>>>]<<<<<<<< +[->>>>>>>>+<<<<<<<<>>>>>>>> +[-]<<<<<<<<>>>>>>>>> +[>>>>>>>>>]<<<<<<<<< +[>>>>>>>> +[-<<<<<<<<>+<>>>>>>>>]<<<<<<<<> +[-<>>>>>>>>+<<<<<<<< +[<<<<<<<<<]>>>>>>>> +[-]+<<<<<<<<>>>>>>>>>>]<<<<<<<<<<]]>>>>>>>> +[-<<<<<<<<+>>>>>>>>]<<<<<<<< +[->>>>>>>>+<<<<<<<<>>>>>>>>> +[>+<>>>>>> +[-<<<<<<>-<>>>>>>]<<<<<<> +[-<>>>>>>+<<<<<<>]<>>>>>>>>>]<<<<<<<<<>>>>>>>>+<<<<<<<< +[>>>>>> +[<<<<<<>>>>>>-<<<<<<>>>>>>>>+<<<<<<<<>>>>>>]<<<<<<<<<<<<<<<]>>>>>>>>> +[>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>>>>>> +[<<<<<<<<>>>>>>>>-<<<<<<<<+> +[<->-<<<<<<<<<<>>>>>>>>+<<<<<<<<>>>>>>>>>>]< +[->+<]>>>>>>>>]<<<<<<<<> +[<>-<>>>>>>>>+<<<<<<<<>]<+<<<<<<<<<]>>>>>>>>-<<<<<<<<>>> +[-]+<<<]+>>>>>>>> +[-<<<<<<<<->>>>>>>>]+<<<<<<<< +[->>>>>>>>-<<<<<<<<>>>>>>>>> +[>>>>>> +[<<<<<<>>>>>>-<<<<<<>>>>>>>>+<<<<<<<<>>>>>>]<<<<<<>>>>>>>>>]<<<<<<<<< +[> +[-]<->>>>>>>> +[<<<<<<<<>>>>>>>>-<<<<<<<<+> +[<->-<<<<<<<<<<>>>>>>>>+<<<<<<<<>>>>>>>>>>]< +[->+<]>>>>>>>>]<<<<<<<<> +[<>-<>>>>>>>>+<<<<<<<<>]<+<<<<<<<<<]>+++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>>+<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>+<<<<<< +[<<<<<<<<<]>>>>>>>>> +[-+>>>>>> +[-<<<<<<->>>>>>]+<<<<<< +[->>>>>>-<<<<<<>>>>>>>> +[-<<<<<<<<+>>>>>>>>]<<<<<<<< +[->>>>>>>>+<<<<<<<<<<<<<<<<< +[<<<<<<<<<]>>>> +[-]+<<<<>>>>>>>>> +[>>>>>>>>>]>+<]]+>>>>>>>> +[-<<<<<<<<->>>>>>>>]+<<<<<<<< +[->>>>>>>>-<<<<<<<<>>>>>> +[-<<<<<<+>>>>>>]<<<<<< +[->>>>>>+<<<<<<<<<<<<<<< +[<<<<<<<<<]>>> +[-]+<<<>>>>>>>>> +[>>>>>>>>>]> +[-]+<]]+> +[-< +[>>>>>>>>>]<<<<<<<<<>]<>>>>>>>>>]<<<<<<<<< +[<<<<<<<<<]>>>> +[-]<<<<>+++++<> +[<>-<> +[<>-<>>>>>>>>>>+<<<<<<<<<<>]<>>>>>>>>>>]<>>>>>>-<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>-<<<<<< +[<<<<<<<<<]]>>>]<<< \ No newline at end of file