From 38a0460e92723390a87e96fd7d53410811c3a65a Mon Sep 17 00:00:00 2001 From: Boris Zhguchev Date: Mon, 28 Aug 2023 23:28:19 +0200 Subject: [PATCH] add rem actiobn to sim --- CHANGELOG.md | 2 + Cargo.lock | 2 +- Cargo.toml | 2 +- docs/src/actions.md | 2 +- docs/src/builtin.md | 1 - docs/src/sim.md | 36 +- src/simulator/actions.rs | 57 +- src/simulator/builder.rs | 23 +- src/simulator/config.rs | 10 +- src/tests/simulator.rs | 68 +- tree/tests/plain_project/main.svg | 268 +-- tree/tests/simulator/example5.yaml | 16 + tree/tests/simulator/smoke_rem/main.tree | 5 + tree/tests/simulator/smoke_rem/sim.yaml | 11 + tree/tests/trimmer/naive/main.log | 7 + tree/tests/trimmer/smoke/main.log | 2069 ++++++++++++++++++++++ 16 files changed, 2405 insertions(+), 174 deletions(-) create mode 100644 tree/tests/simulator/example5.yaml create mode 100644 tree/tests/simulator/smoke_rem/main.tree create mode 100644 tree/tests/simulator/smoke_rem/sim.yaml diff --git a/CHANGELOG.md b/CHANGELOG.md index df0cddb..5a520c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,4 +35,6 @@ * **`0.2.3`** * Add built in actions for bb * fix bugs +* **`0.2.4`** + * add remote action to simulation diff --git a/Cargo.lock b/Cargo.lock index 3f621eb..4a7b5e7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -341,7 +341,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "forester-rs" -version = "0.2.3" +version = "0.2.4" dependencies = [ "axum", "chrono", diff --git a/Cargo.toml b/Cargo.toml index fa3a267..02e3183 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ description = "Workflow framework based on the behavior trees" authors = ["BorisZhguchev "] homepage = "https://github.com/besok/forester" repository = "https://github.com/besok/forester" -version = "0.2.3" +version = "0.2.4" edition = "2021" license-file = "LICENSE" diff --git a/docs/src/actions.md b/docs/src/actions.md index 29c936c..5fd9381 100644 --- a/docs/src/actions.md +++ b/docs/src/actions.md @@ -7,7 +7,7 @@ and mix-in on the execution stage. The actions have 2 keywords to mark: - `impl` means some job or action that can take time and be asynchronous -- `cond` means some activity to check some conditions and swiftly returns result +- `cond` means some activity to check some conditions and immediately returns result *In practice, the engine does not see difference* diff --git a/docs/src/builtin.md b/docs/src/builtin.md index 5119679..202860d 100644 --- a/docs/src/builtin.md +++ b/docs/src/builtin.md @@ -65,5 +65,4 @@ impl http_get(url:string, bb_key:string); # Http server (sync | async) # Curl -# lock | unlock key \ No newline at end of file diff --git a/docs/src/sim.md b/docs/src/sim.md index 191edd6..09ad586 100644 --- a/docs/src/sim.md +++ b/docs/src/sim.md @@ -37,24 +37,27 @@ actions: Config section: -| Setting | Description | Default | Example | -|---------------|--------------------------------------------------|------------------------------------------|-------------------| -| tracer.file | the tracer settings to write to a file | if it is absent, there will be no action | gen/main.trace | -| tracer.dt_fmt | the tracer settings to given data format | if it is absent, there will be no action | "%d %H:%M:%S%.3f" | -| graph | the visualization file | if it is absent, there will be no action | gen/main.svg | -| bb.dump | the dump of the bb at the end | if it is absent, there will be no action | gen/bb.json | -| bb.load | the dump that will be used to init bb before sim | if it is absent, there will be no action | gen/init_bb.json | -| max_ticks | the maximum amount of ticks to work. | 0 by default | 10 | +| Setting | Description | Default | Example | +|---------------|-------------------------------------------------------------------|------------------------------------------|-------------------| +| tracer.file | the tracer settings to write to a file | if it is absent, there will be no action | gen/main.trace | +| tracer.dt_fmt | the tracer settings to given data format | if it is absent, there will be no action | "%d %H:%M:%S%.3f" | +| graph | the visualization file | if it is absent, there will be no action | gen/main.svg | +| bb.dump | the dump of the bb at the end | if it is absent, there will be no action | gen/bb.json | +| bb.load | the dump that will be used to init bb before sim | if it is absent, there will be no action | gen/init_bb.json | +| max_ticks | the maximum amount of ticks to work. | 0 by default | 10 | +| http.port | The port for http server to communicate with the remote actions . | if it is absent, there will be no action | 8080 | Actions sections: The actions sections is an array to stub the actions -| Setting | Description | Default | Example | -|--------------|------------------------------------------|---------------------|---------| -| name | the name of the stubbed action | should be presented | name | -| stub | the stubbed implementation | should be presented | success | -| params.delay | denotes the pause before start in millis | 0 | 100 | +| Setting | Description | Default | Example | +|---------------|-----------------------------------------------------------------|---------------------|-------------------------------| +| name | the name of the stubbed action | should be presented | name | +| stub | the stubbed implementation | should be presented | success | +| params.delay | denotes the pause before start in millis | 0 | 100 | +| params.url | (For remote stub) the url to connect | should be presented | http://localhost:10000/action | +| params.server | (For remote stub) the url to provide to action to connect to bb | http://localhost | http://localhost:8080 | #### Default profile @@ -67,10 +70,15 @@ Other artifacts will not be generated. - success: returns a success - failure: returns a failure - random: returns either a failure or a success randomly +- remote: connects to the remote server and returns the result of the action. The details can be found in the [Remote action](./r_actions.md#remote-actions). -All stubs have the following params: +The stubs success, failure, random have the following param: - delay: in millis, the time to delay the stub. +The remote stub has the following params: +- url: the url to connect to the remote server +- server: the url to provide to the remote server to connect to the blackboard + ## Process The simulation can be performed in on of two ways: diff --git a/src/simulator/actions.rs b/src/simulator/actions.rs index 12d0830..edeaf37 100644 --- a/src/simulator/actions.rs +++ b/src/simulator/actions.rs @@ -1,32 +1,72 @@ -use crate::runtime::action::{Impl, Tick}; +use crate::runtime::action::builtin::remote::RemoteHttpAction; +use crate::runtime::action::{Impl, ImplRemote, Tick}; use crate::runtime::args::RtArgs; -use crate::runtime::context::TreeContextRef; +use crate::runtime::context::{TreeContextRef, TreeRemoteContextRef}; use crate::runtime::{RtResult, RuntimeError, TickResult}; +use std::collections::HashMap; use std::time::{Duration, SystemTime}; /// The action that represent the stubs fro the real actions. pub enum SimAction { - /// usize here is a miilisecond for delay + /// usize here is a millisecond for delay Success(usize), - /// usize here is a miilisecond for delay + /// usize here is a millisecond for delay Random(usize), - /// usize here is a miilisecond for delay + /// usize here is a millisecond for delay Failure(usize), + /// The remote action wrapper + Remote(RemoteHttpAction), } impl SimAction { - pub fn create(key: &str, delay: usize) -> RtResult { + pub fn is_remote(&self) -> bool { + match self { + SimAction::Remote(_) => true, + _ => false, + } + } + + pub fn create(key: &str, params: HashMap) -> RtResult { + let delay = params + .get("delay") + .map(|s| s.parse::().unwrap_or_default()) + .unwrap_or_default(); + match key { "success" => Ok(SimAction::Success(delay)), "random" => Ok(SimAction::Random(delay)), "failure" => Ok(SimAction::Failure(delay)), + "remote" => { + let url = params.get("url").cloned().ok_or_else(|| { + RuntimeError::WrongArgument("the url is not specified".to_string()) + })?; + + let action = if let Some(serv) = params.get("server").cloned() { + RemoteHttpAction::new_with(url, serv) + } else { + RemoteHttpAction::new(url) + }; + + Ok(SimAction::Remote(action)) + } e => Err(RuntimeError::WrongArgument(format!( - "the {e} is not recognized as simulation stub." + "the {e} is not recognized as a simulation stub." ))), } } } +impl ImplRemote for SimAction { + fn tick(&self, args: RtArgs, ctx: TreeRemoteContextRef) -> Tick { + match self { + SimAction::Remote(delegate) => delegate.tick(args, ctx), + _ => Err(RuntimeError::uex( + "the remote action is expected here".to_string(), + )), + } + } +} + impl Impl for SimAction { fn tick(&self, _args: RtArgs, _ctx: TreeContextRef) -> Tick { match self { @@ -51,6 +91,9 @@ impl Impl for SimAction { Ok(TickResult::failure_empty()) } } + SimAction::Remote(_) => Ok(TickResult::Failure( + "The remote action should execute another contract namely ImplRemote".to_string(), + )), } } } diff --git a/src/simulator/builder.rs b/src/simulator/builder.rs index e63f3e6..969fa59 100644 --- a/src/simulator/builder.rs +++ b/src/simulator/builder.rs @@ -127,18 +127,19 @@ impl SimulatorBuilder { fb.bb_load(bb_load_path); } + if let Some(http) = profile.config.http { + fb.http_serv(http.port); + } + for action in profile.actions.iter() { - fb.register_sync_action( - action.name.as_str(), - SimAction::create( - action.stub.as_str(), - action - .params - .get("delay") - .map(|s| s.parse::().unwrap_or_default()) - .unwrap_or_default(), - )?, - ) + let sim_action = SimAction::create(action.stub.as_str(), action.params.clone())?; + let name = action.name.as_str(); + + if sim_action.is_remote() { + fb.register_remote_action(name, sim_action); + } else { + fb.register_sync_action(name, sim_action); + } } let forester = diff --git a/src/simulator/config.rs b/src/simulator/config.rs index 14539df..96c1a4a 100644 --- a/src/simulator/config.rs +++ b/src/simulator/config.rs @@ -47,7 +47,15 @@ pub struct SimProfileConfig { /// The port where needs to deploy the server to communicate with the remote actions. #[serde(default)] - pub port: Option, + pub http: Option, +} + +/// The http server configuration +/// It is used to communicate with the remote actions. +/// The server is used to receive the requests from the remote actions and to send the responses. +#[derive(Debug, Default, PartialEq, Clone, Serialize, Deserialize)] +pub struct HttpServ { + pub port: u16, } #[derive(Debug, Default, Clone, PartialEq, Serialize, Deserialize)] diff --git a/src/tests/simulator.rs b/src/tests/simulator.rs index ec94af2..48c5b39 100644 --- a/src/tests/simulator.rs +++ b/src/tests/simulator.rs @@ -1,8 +1,10 @@ use crate::runtime::builder::ForesterBuilder; use crate::simulator::builder::SimulatorBuilder; -use crate::simulator::config::{Action, BbConfig, SimProfile, SimProfileConfig, TracerSimConfig}; +use crate::simulator::config::{ + Action, BbConfig, HttpServ, SimProfile, SimProfileConfig, TracerSimConfig, +}; use crate::simulator::Simulator; -use crate::tests::test_folder; +use crate::tests::{test_folder, turn_on_logs}; use graphviz_rust::attributes::quadtree::fast; use std::collections::HashMap; use std::path::PathBuf; @@ -25,7 +27,7 @@ fn file() { dump: Some(String::from("bb.dump")), load: Some(String::from("bb.json")), }, - port: None, + http: None, }, actions: vec![ Action { @@ -90,6 +92,40 @@ fn file() { }, profile ); + + let buf = test_folder("simulator/example5.yaml"); + let profile = SimProfile::parse_file(&buf).unwrap(); + + assert_eq!( + SimProfile { + config: SimProfileConfig { + tracer: Default::default(), + bb: Default::default(), + graph: None, + max_ticks: None, + http: Some(HttpServ { port: 8080 }), + }, + actions: vec![ + Action { + name: "name1".to_string(), + stub: "remote".to_string(), + params: HashMap::from_iter(vec![ + ("url".to_string(), "localhost:10000".to_string()), + ("server".to_string(), "http://localhost:8080".to_string()), + ]) + }, + Action { + name: "name2".to_string(), + stub: "remote".to_string(), + params: HashMap::from_iter(vec![( + "url".to_string(), + "localhost:10001".to_string() + ),]) + } + ] + }, + profile + ); } #[test] @@ -111,6 +147,32 @@ fn smoke() { let tracer = &sim.forester.tracer; sim.run().unwrap(); } +#[test] +fn smoke_remote() { + turn_on_logs(); + let mut sb = SimulatorBuilder::new(); + + let root = test_folder("simulator/smoke_rem"); + + sb.root(root.clone()); + sb.profile(PathBuf::from("sim.yaml")); + + let mut fb = ForesterBuilder::from_fs(); + fb.main_file("main.tree".to_string()); + fb.root(root); + + sb.forester_builder(fb); + + let mut sim = sb.build().unwrap(); + sim.run().unwrap(); + + let bb = sim.forester.bb.lock().unwrap(); + let option = bb.get("tt".to_string()).unwrap(); + assert_eq!( + option.and_then(|v| v.clone().as_string()), + Some("OK".to_string()) + ); +} // #[test] fn text() { diff --git a/tree/tests/plain_project/main.svg b/tree/tests/plain_project/main.svg index 8016da6..fec1bfd 100644 --- a/tree/tests/plain_project/main.svg +++ b/tree/tests/plain_project/main.svg @@ -4,338 +4,338 @@ - + - + 1 - -(1) root -place_ball_to_target + +(1) root +place_ball_to_target 2 - -(2) fallback + +(2) fallback 1->2 - - + + 3 - -(3) sequence -place_to (what={..},operation=place(<>)) + +(3) sequence +place_to (what={..},operation=place(<>)) 2->3 - - + + 4 - - -(4) retry (arg=5) + + +(4) retry (arg=5) 2->4 - - + + 5 - -(5) fallback + +(5) fallback 3->5 - - + + 6 - -(6) fallback + +(6) fallback 3->6 - - + + 7 - -(7) sequence + +(7) sequence 3->7 - - + + 8 - - - -(8) ask_for_help + + + +(8) ask_for_help 4->8 - - + + 9 - + -(9) is_approachable (obj=what) +(9) is_approachable (obj={..}) 5->9 - - + + 10 - -(10) sequence -do_job (action=approach(<>)) + +(10) sequence +do_job (action=approach(<>)) 5->10 - - + + 11 - - - -(11) is_graspable (obj=what) + + + +(11) is_graspable (obj={..}) 6->11 - - + + 12 - -(12) sequence -do_job (action=grasp_ball(<>)) + +(12) sequence +do_job (action=grasp_ball(<>)) 6->12 - - + + 13 - - - -(13) savepoint + + + +(13) savepoint 7->13 - - + + 14 - -(14) sequence -place (where=[..]) + +(14) sequence +place (where=[..]) 7->14 - - + + 15 - - - -(15) savepoint + + + +(15) savepoint 10->15 - - + + 16 - - - -(16) approach (obj=what) + + + +(16) approach (obj={..}) 10->16 - - + + 17 - - - -(17) savepoint + + + +(17) savepoint 10->17 - - + + 18 - - - -(18) savepoint + + + +(18) savepoint 12->18 - - + + 19 - - - -(19) grasp[grasp_ball] (obj=what) + + + +(19) grasp[grasp_ball] (obj={..}) 12->19 - - + + 20 - - - -(20) savepoint + + + +(20) savepoint 12->20 - - + + 21 - - - -(21) is_valid_place (obj=where) + + + +(21) is_valid_place (obj=[..]) 14->21 - - + + 22 - -(22) sequence -do_job (action=slowly_drop(<>)) + +(22) sequence +do_job (action=slowly_drop(<>)) 14->22 - - + + 23 - - - -(23) savepoint + + + +(23) savepoint 22->23 - - + + 24 - - - -(24) slowly_drop (params={..}) + + + +(24) slowly_drop (params={..}) 22->24 - - + + 25 - - - -(25) savepoint + + + +(25) savepoint 22->25 - - + + diff --git a/tree/tests/simulator/example5.yaml b/tree/tests/simulator/example5.yaml new file mode 100644 index 0000000..6f73106 --- /dev/null +++ b/tree/tests/simulator/example5.yaml @@ -0,0 +1,16 @@ +config: + http: + port: 8080 + +actions: + - + name: name1 + stub: remote + params: + url: localhost:10000 + server: http://localhost:8080 + - + name: name2 + stub: remote + params: + url: localhost:10001 diff --git a/tree/tests/simulator/smoke_rem/main.tree b/tree/tests/simulator/smoke_rem/main.tree new file mode 100644 index 0000000..f301841 --- /dev/null +++ b/tree/tests/simulator/smoke_rem/main.tree @@ -0,0 +1,5 @@ + +root main sequence { + task({}) +} +impl task(config: object); \ No newline at end of file diff --git a/tree/tests/simulator/smoke_rem/sim.yaml b/tree/tests/simulator/smoke_rem/sim.yaml new file mode 100644 index 0000000..d593771 --- /dev/null +++ b/tree/tests/simulator/smoke_rem/sim.yaml @@ -0,0 +1,11 @@ +config: + max_ticks: 10 + http: + port: 8080 + +actions: + - + name: task + stub: remote + params: + url: http://localhost:10000/action \ No newline at end of file diff --git a/tree/tests/trimmer/naive/main.log b/tree/tests/trimmer/naive/main.log index 267b435..dae35d5 100644 --- a/tree/tests/trimmer/naive/main.log +++ b/tree/tests/trimmer/naive/main.log @@ -265,3 +265,10 @@ [1] 3 : Success(cursor=0,len=3) [1] 2 : Success(cursor=0,len=1) [1] 1 : Success(cursor=0,len=1) +[1] 1 : Running(cursor=0,len=1) +[1] 2 : Running(cursor=0,len=1) +[1] 3 : Running(cursor=0,len=3) +[1] 4 : Success(item=[y:1,x:1]) +[1] 3 : Success(cursor=0,len=3) +[1] 2 : Success(cursor=0,len=1) +[1] 1 : Success(cursor=0,len=1) diff --git a/tree/tests/trimmer/smoke/main.log b/tree/tests/trimmer/smoke/main.log index 3d28fcf..cfdade3 100644 --- a/tree/tests/trimmer/smoke/main.log +++ b/tree/tests/trimmer/smoke/main.log @@ -64137,3 +64137,2072 @@ [90] 2 : Success(cursor=0,len=2) [90] 1 : Running(cursor=0,len=1) [90] 1 : Success(cursor=0,len=1) +[1] 1 : Running(cursor=0,len=1) +[1] 2 : Running(cursor=0,len=2) +[1] 3 : Running(cursor=0,len=4) +[1] 5 : Success() +[1] 3 : Running(cursor=1,len=4) +[1] 6 : Success() +[1] 3 : Running(cursor=2,len=4) +[1] 7 : Success() +[1] 3 : Running(cursor=3,len=4) +[1] 8 : Running(cursor=0,len=4) +[1] 9 : Success() +[1] 8 : Running(cursor=1,len=4) +[1] 10 : Success() +[1] 8 : Running(cursor=2,len=4) +[1] 11 : Success() +[1] 8 : Running(cursor=3,len=4) +[1] 12 : Failure(reason=) +[1] 8 : Failure(cursor=3,len=4,reason=) +[1] 3 : Failure(cursor=3,len=4,reason=) +[1] 2 : Running(cursor=1,len=2) +[1] 4 : Running() +[1] 2 : Running(cursor=1,len=2) +[2] next tick +[2] 2 : Running(cursor=0,len=2) +[2] 3 : Running(cursor=0,len=4,reason=) +[2] 5 : Success() +[2] 3 : Running(cursor=1,len=4,reason=) +[2] 6 : Success() +[2] 3 : Running(cursor=2,len=4,reason=) +[2] 7 : Success() +[2] 3 : Running(cursor=3,len=4,reason=) +[2] 8 : Running(cursor=0,len=4,reason=) +[2] 9 : Success() +[2] 8 : Running(cursor=1,len=4,reason=) +[2] 10 : Success() +[2] 8 : Running(cursor=2,len=4,reason=) +[2] 11 : Success() +[2] 8 : Running(cursor=3,len=4,reason=) +[2] 12 : Failure(reason=) +[2] 8 : Failure(cursor=3,len=4,reason=) +[2] 3 : Failure(cursor=3,len=4,reason=) +[2] 2 : Running(cursor=1,len=2) +[2] 4 : Running() +[2] 2 : Running(cursor=1,len=2) +[2] 1 : Running(cursor=0,len=1) +[3] next tick +[3] 2 : Running(cursor=0,len=2) +[3] 3 : Running(cursor=0,len=4,reason=) +[3] 5 : Success() +[3] 3 : Running(cursor=1,len=4,reason=) +[3] 6 : Success() +[3] 3 : Running(cursor=2,len=4,reason=) +[3] 7 : Success() +[3] 3 : Running(cursor=3,len=4,reason=) +[3] 8 : Running(cursor=0,len=4,reason=) +[3] 9 : Success() +[3] 8 : Running(cursor=1,len=4,reason=) +[3] 10 : Success() +[3] 8 : Running(cursor=2,len=4,reason=) +[3] 11 : Success() +[3] 8 : Running(cursor=3,len=4,reason=) +[3] 12 : Failure(reason=) +[3] 8 : Failure(cursor=3,len=4,reason=) +[3] 3 : Failure(cursor=3,len=4,reason=) +[3] 2 : Running(cursor=1,len=2) +[3] 4 : Running() +[3] 2 : Running(cursor=1,len=2) +[3] 1 : Running(cursor=0,len=1) +[4] next tick +[4] 2 : Running(cursor=0,len=2) +[4] 3 : Running(cursor=0,len=4,reason=) +[4] 5 : Success() +[4] 3 : Running(cursor=1,len=4,reason=) +[4] 6 : Success() +[4] 3 : Running(cursor=2,len=4,reason=) +[4] 7 : Success() +[4] 3 : Running(cursor=3,len=4,reason=) +[4] 8 : Running(cursor=0,len=4,reason=) +[4] 9 : Success() +[4] 8 : Running(cursor=1,len=4,reason=) +[4] 10 : Success() +[4] 8 : Running(cursor=2,len=4,reason=) +[4] 11 : Success() +[4] 8 : Running(cursor=3,len=4,reason=) +[4] 12 : Failure(reason=) +[4] 8 : Failure(cursor=3,len=4,reason=) +[4] 3 : Failure(cursor=3,len=4,reason=) +[4] 2 : Running(cursor=1,len=2) +[4] 4 : Running() +[4] 2 : Running(cursor=1,len=2) +[4] 1 : Running(cursor=0,len=1) +[5] next tick +[5] 2 : Running(cursor=0,len=2) +[5] 3 : Running(cursor=0,len=4,reason=) +[5] 5 : Success() +[5] 3 : Running(cursor=1,len=4,reason=) +[5] 6 : Success() +[5] 3 : Running(cursor=2,len=4,reason=) +[5] 7 : Success() +[5] 3 : Running(cursor=3,len=4,reason=) +[5] 8 : Running(cursor=0,len=4,reason=) +[5] 9 : Success() +[5] 8 : Running(cursor=1,len=4,reason=) +[5] 10 : Success() +[5] 8 : Running(cursor=2,len=4,reason=) +[5] 11 : Success() +[5] 8 : Running(cursor=3,len=4,reason=) +[5] 12 : Failure(reason=) +[5] 8 : Failure(cursor=3,len=4,reason=) +[5] 3 : Failure(cursor=3,len=4,reason=) +[5] 2 : Running(cursor=1,len=2) +[5] 4 : Running() +[5] 2 : Running(cursor=1,len=2) +[5] 1 : Running(cursor=0,len=1) +[6] next tick +[6] 2 : Running(cursor=0,len=2) +[6] 3 : Running(cursor=0,len=4,reason=) +[6] 5 : Success() +[6] 3 : Running(cursor=1,len=4,reason=) +[6] 6 : Success() +[6] 3 : Running(cursor=2,len=4,reason=) +[6] 7 : Success() +[6] 3 : Running(cursor=3,len=4,reason=) +[6] 8 : Running(cursor=0,len=4,reason=) +[6] 9 : Success() +[6] 8 : Running(cursor=1,len=4,reason=) +[6] 10 : Success() +[6] 8 : Running(cursor=2,len=4,reason=) +[6] 11 : Success() +[6] 8 : Running(cursor=3,len=4,reason=) +[6] 12 : Failure(reason=) +[6] 8 : Failure(cursor=3,len=4,reason=) +[6] 3 : Failure(cursor=3,len=4,reason=) +[6] 2 : Running(cursor=1,len=2) +[6] 4 : Running() +[6] 2 : Running(cursor=1,len=2) +[6] 1 : Running(cursor=0,len=1) +[7] next tick +[7] 2 : Running(cursor=0,len=2) +[7] 3 : Running(cursor=0,len=4,reason=) +[7] 5 : Success() +[7] 3 : Running(cursor=1,len=4,reason=) +[7] 6 : Success() +[7] 3 : Running(cursor=2,len=4,reason=) +[7] 7 : Success() +[7] 3 : Running(cursor=3,len=4,reason=) +[7] 8 : Running(cursor=0,len=4,reason=) +[7] 9 : Success() +[7] 8 : Running(cursor=1,len=4,reason=) +[7] 10 : Success() +[7] 8 : Running(cursor=2,len=4,reason=) +[7] 11 : Success() +[7] 8 : Running(cursor=3,len=4,reason=) +[7] 12 : Failure(reason=) +[7] 8 : Failure(cursor=3,len=4,reason=) +[7] 3 : Failure(cursor=3,len=4,reason=) +[7] 2 : Running(cursor=1,len=2) +[7] 4 : Running() +[7] 2 : Running(cursor=1,len=2) +[7] 1 : Running(cursor=0,len=1) +[8] next tick +[8] 2 : Running(cursor=0,len=2) +[8] 3 : Running(cursor=0,len=4,reason=) +[8] 5 : Success() +[8] 3 : Running(cursor=1,len=4,reason=) +[8] 6 : Success() +[8] 3 : Running(cursor=2,len=4,reason=) +[8] 7 : Success() +[8] 3 : Running(cursor=3,len=4,reason=) +[8] 8 : Running(cursor=0,len=4,reason=) +[8] 9 : Success() +[8] 8 : Running(cursor=1,len=4,reason=) +[8] 10 : Success() +[8] 8 : Running(cursor=2,len=4,reason=) +[8] 11 : Success() +[8] 8 : Running(cursor=3,len=4,reason=) +[8] 12 : Failure(reason=) +[8] 8 : Failure(cursor=3,len=4,reason=) +[8] 3 : Failure(cursor=3,len=4,reason=) +[8] 2 : Running(cursor=1,len=2) +[8] 4 : Running() +[8] 2 : Running(cursor=1,len=2) +[8] 1 : Running(cursor=0,len=1) +[9] next tick +[9] 2 : Running(cursor=0,len=2) +[9] 3 : Running(cursor=0,len=4,reason=) +[9] 5 : Success() +[9] 3 : Running(cursor=1,len=4,reason=) +[9] 6 : Success() +[9] 3 : Running(cursor=2,len=4,reason=) +[9] 7 : Success() +[9] 3 : Running(cursor=3,len=4,reason=) +[9] 8 : Running(cursor=0,len=4,reason=) +[9] 9 : Success() +[9] 8 : Running(cursor=1,len=4,reason=) +[9] 10 : Success() +[9] 8 : Running(cursor=2,len=4,reason=) +[9] 11 : Success() +[9] 8 : Running(cursor=3,len=4,reason=) +[9] 12 : Failure(reason=) +[9] 8 : Failure(cursor=3,len=4,reason=) +[9] 3 : Failure(cursor=3,len=4,reason=) +[9] 2 : Running(cursor=1,len=2) +[9] 4 : Running() +[9] 2 : Running(cursor=1,len=2) +[9] 1 : Running(cursor=0,len=1) +[10] next tick +[10] 2 : Running(cursor=0,len=2) +[10] 3 : Running(cursor=0,len=4,reason=) +[10] 5 : Success() +[10] 3 : Running(cursor=1,len=4,reason=) +[10] 6 : Success() +[10] 3 : Running(cursor=2,len=4,reason=) +[10] 7 : Success() +[10] 3 : Running(cursor=3,len=4,reason=) +[10] 8 : Running(cursor=0,len=4,reason=) +[10] 9 : Success() +[10] 8 : Running(cursor=1,len=4,reason=) +[10] 10 : Success() +[10] 8 : Running(cursor=2,len=4,reason=) +[10] 11 : Success() +[10] 8 : Running(cursor=3,len=4,reason=) +[10] 12 : Failure(reason=) +[10] 8 : Failure(cursor=3,len=4,reason=) +[10] 3 : Failure(cursor=3,len=4,reason=) +[10] 2 : Running(cursor=1,len=2) +[10] 4 : Running() +[10] 2 : Running(cursor=1,len=2) +[10] 1 : Running(cursor=0,len=1) +[11] next tick +[11] 2 : Running(cursor=0,len=2) +[11] 3 : Running(cursor=0,len=4,reason=) +[11] 5 : Success() +[11] 3 : Running(cursor=1,len=4,reason=) +[11] 6 : Success() +[11] 3 : Running(cursor=2,len=4,reason=) +[11] 7 : Success() +[11] 3 : Running(cursor=3,len=4,reason=) +[11] 8 : Running(cursor=0,len=4,reason=) +[11] 9 : Success() +[11] 8 : Running(cursor=1,len=4,reason=) +[11] 10 : Success() +[11] 8 : Running(cursor=2,len=4,reason=) +[11] 11 : Success() +[11] 8 : Running(cursor=3,len=4,reason=) +[11] 12 : Failure(reason=) +[11] 8 : Failure(cursor=3,len=4,reason=) +[11] 3 : Failure(cursor=3,len=4,reason=) +[11] 2 : Running(cursor=1,len=2) +[11] 4 : Running() +[11] 2 : Running(cursor=1,len=2) +[11] 1 : Running(cursor=0,len=1) +[12] next tick +[12] 2 : Running(cursor=0,len=2) +[12] 3 : Running(cursor=0,len=4,reason=) +[12] 5 : Success() +[12] 3 : Running(cursor=1,len=4,reason=) +[12] 6 : Success() +[12] 3 : Running(cursor=2,len=4,reason=) +[12] 7 : Success() +[12] 3 : Running(cursor=3,len=4,reason=) +[12] 8 : Running(cursor=0,len=4,reason=) +[12] 9 : Success() +[12] 8 : Running(cursor=1,len=4,reason=) +[12] 10 : Success() +[12] 8 : Running(cursor=2,len=4,reason=) +[12] 11 : Success() +[12] 8 : Running(cursor=3,len=4,reason=) +[12] 12 : Failure(reason=) +[12] 8 : Failure(cursor=3,len=4,reason=) +[12] 3 : Failure(cursor=3,len=4,reason=) +[12] 2 : Running(cursor=1,len=2) +[12] 4 : Running() +[12] 2 : Running(cursor=1,len=2) +[12] 1 : Running(cursor=0,len=1) +[13] next tick +[13] 2 : Running(cursor=0,len=2) +[13] 3 : Running(cursor=0,len=4,reason=) +[13] 5 : Success() +[13] 3 : Running(cursor=1,len=4,reason=) +[13] 6 : Success() +[13] 3 : Running(cursor=2,len=4,reason=) +[13] 7 : Success() +[13] 3 : Running(cursor=3,len=4,reason=) +[13] 8 : Running(cursor=0,len=4,reason=) +[13] 9 : Success() +[13] 8 : Running(cursor=1,len=4,reason=) +[13] 10 : Success() +[13] 8 : Running(cursor=2,len=4,reason=) +[13] 11 : Success() +[13] 8 : Running(cursor=3,len=4,reason=) +[13] 12 : Failure(reason=) +[13] 8 : Failure(cursor=3,len=4,reason=) +[13] 3 : Failure(cursor=3,len=4,reason=) +[13] 2 : Running(cursor=1,len=2) +[13] 4 : Running() +[13] 2 : Running(cursor=1,len=2) +[13] 1 : Running(cursor=0,len=1) +[14] next tick +[14] 2 : Running(cursor=0,len=2) +[14] 3 : Running(cursor=0,len=4,reason=) +[14] 5 : Success() +[14] 3 : Running(cursor=1,len=4,reason=) +[14] 6 : Success() +[14] 3 : Running(cursor=2,len=4,reason=) +[14] 7 : Success() +[14] 3 : Running(cursor=3,len=4,reason=) +[14] 8 : Running(cursor=0,len=4,reason=) +[14] 9 : Success() +[14] 8 : Running(cursor=1,len=4,reason=) +[14] 10 : Success() +[14] 8 : Running(cursor=2,len=4,reason=) +[14] 11 : Success() +[14] 8 : Running(cursor=3,len=4,reason=) +[14] 12 : Failure(reason=) +[14] 8 : Failure(cursor=3,len=4,reason=) +[14] 3 : Failure(cursor=3,len=4,reason=) +[14] 2 : Running(cursor=1,len=2) +[14] 4 : Running() +[14] 2 : Running(cursor=1,len=2) +[14] 1 : Running(cursor=0,len=1) +[15] next tick +[15] 2 : Running(cursor=0,len=2) +[15] 3 : Running(cursor=0,len=4,reason=) +[15] 5 : Success() +[15] 3 : Running(cursor=1,len=4,reason=) +[15] 6 : Success() +[15] 3 : Running(cursor=2,len=4,reason=) +[15] 7 : Success() +[15] 3 : Running(cursor=3,len=4,reason=) +[15] 8 : Running(cursor=0,len=4,reason=) +[15] 9 : Success() +[15] 8 : Running(cursor=1,len=4,reason=) +[15] 10 : Success() +[15] 8 : Running(cursor=2,len=4,reason=) +[15] 11 : Success() +[15] 8 : Running(cursor=3,len=4,reason=) +[15] 12 : Failure(reason=) +[15] 8 : Failure(cursor=3,len=4,reason=) +[15] 3 : Failure(cursor=3,len=4,reason=) +[15] 2 : Running(cursor=1,len=2) +[15] 4 : Running() +[15] 2 : Running(cursor=1,len=2) +[15] 1 : Running(cursor=0,len=1) +[16] next tick +[16] 2 : Running(cursor=0,len=2) +[16] 3 : Running(cursor=0,len=4,reason=) +[16] 5 : Success() +[16] 3 : Running(cursor=1,len=4,reason=) +[16] 6 : Success() +[16] 3 : Running(cursor=2,len=4,reason=) +[16] 7 : Success() +[16] 3 : Running(cursor=3,len=4,reason=) +[16] 8 : Running(cursor=0,len=4,reason=) +[16] 9 : Success() +[16] 8 : Running(cursor=1,len=4,reason=) +[16] 10 : Success() +[16] 8 : Running(cursor=2,len=4,reason=) +[16] 11 : Success() +[16] 8 : Running(cursor=3,len=4,reason=) +[16] 12 : Failure(reason=) +[16] 8 : Failure(cursor=3,len=4,reason=) +[16] 3 : Failure(cursor=3,len=4,reason=) +[16] 2 : Running(cursor=1,len=2) +[16] 4 : Running() +[16] 2 : Running(cursor=1,len=2) +[16] 1 : Running(cursor=0,len=1) +[17] next tick +[17] 2 : Running(cursor=0,len=2) +[17] 3 : Running(cursor=0,len=4,reason=) +[17] 5 : Success() +[17] 3 : Running(cursor=1,len=4,reason=) +[17] 6 : Success() +[17] 3 : Running(cursor=2,len=4,reason=) +[17] 7 : Success() +[17] 3 : Running(cursor=3,len=4,reason=) +[17] 8 : Running(cursor=0,len=4,reason=) +[17] 9 : Success() +[17] 8 : Running(cursor=1,len=4,reason=) +[17] 10 : Success() +[17] 8 : Running(cursor=2,len=4,reason=) +[17] 11 : Success() +[17] 8 : Running(cursor=3,len=4,reason=) +[17] 12 : Failure(reason=) +[17] 8 : Failure(cursor=3,len=4,reason=) +[17] 3 : Failure(cursor=3,len=4,reason=) +[17] 2 : Running(cursor=1,len=2) +[17] 4 : Running() +[17] 2 : Running(cursor=1,len=2) +[17] 1 : Running(cursor=0,len=1) +[18] next tick +[18] 2 : Running(cursor=0,len=2) +[18] 3 : Running(cursor=0,len=4,reason=) +[18] 5 : Success() +[18] 3 : Running(cursor=1,len=4,reason=) +[18] 6 : Success() +[18] 3 : Running(cursor=2,len=4,reason=) +[18] 7 : Success() +[18] 3 : Running(cursor=3,len=4,reason=) +[18] 8 : Running(cursor=0,len=4,reason=) +[18] 9 : Success() +[18] 8 : Running(cursor=1,len=4,reason=) +[18] 10 : Success() +[18] 8 : Running(cursor=2,len=4,reason=) +[18] 11 : Success() +[18] 8 : Running(cursor=3,len=4,reason=) +[18] 12 : Failure(reason=) +[18] 8 : Failure(cursor=3,len=4,reason=) +[18] 3 : Failure(cursor=3,len=4,reason=) +[18] 2 : Running(cursor=1,len=2) +[18] 4 : Running() +[18] 2 : Running(cursor=1,len=2) +[18] 1 : Running(cursor=0,len=1) +[19] next tick +[19] 2 : Running(cursor=0,len=2) +[19] 3 : Running(cursor=0,len=4,reason=) +[19] 5 : Success() +[19] 3 : Running(cursor=1,len=4,reason=) +[19] 6 : Success() +[19] 3 : Running(cursor=2,len=4,reason=) +[19] 7 : Success() +[19] 3 : Running(cursor=3,len=4,reason=) +[19] 8 : Running(cursor=0,len=4,reason=) +[19] 9 : Success() +[19] 8 : Running(cursor=1,len=4,reason=) +[19] 10 : Success() +[19] 8 : Running(cursor=2,len=4,reason=) +[19] 11 : Success() +[19] 8 : Running(cursor=3,len=4,reason=) +[19] 12 : Failure(reason=) +[19] 8 : Failure(cursor=3,len=4,reason=) +[19] 3 : Failure(cursor=3,len=4,reason=) +[19] 2 : Running(cursor=1,len=2) +[19] 4 : Running() +[19] 2 : Running(cursor=1,len=2) +[19] 1 : Running(cursor=0,len=1) +[20] next tick +[20] 2 : Running(cursor=0,len=2) +[20] 3 : Running(cursor=0,len=4,reason=) +[20] 5 : Success() +[20] 3 : Running(cursor=1,len=4,reason=) +[20] 6 : Success() +[20] 3 : Running(cursor=2,len=4,reason=) +[20] 7 : Success() +[20] 3 : Running(cursor=3,len=4,reason=) +[20] 8 : Running(cursor=0,len=4,reason=) +[20] 9 : Success() +[20] 8 : Running(cursor=1,len=4,reason=) +[20] 10 : Success() +[20] 8 : Running(cursor=2,len=4,reason=) +[20] 11 : Success() +[20] 8 : Running(cursor=3,len=4,reason=) +[20] 12 : Failure(reason=) +[20] 8 : Failure(cursor=3,len=4,reason=) +[20] 3 : Failure(cursor=3,len=4,reason=) +[20] 2 : Running(cursor=1,len=2) +[20] 4 : Running() +[20] 2 : Running(cursor=1,len=2) +[20] 1 : Running(cursor=0,len=1) +[21] next tick +[21] 2 : Running(cursor=0,len=2) +[21] 3 : Running(cursor=0,len=4,reason=) +[21] 5 : Success() +[21] 3 : Running(cursor=1,len=4,reason=) +[21] 6 : Success() +[21] 3 : Running(cursor=2,len=4,reason=) +[21] 7 : Success() +[21] 3 : Running(cursor=3,len=4,reason=) +[21] 8 : Running(cursor=0,len=4,reason=) +[21] 9 : Success() +[21] 8 : Running(cursor=1,len=4,reason=) +[21] 10 : Success() +[21] 8 : Running(cursor=2,len=4,reason=) +[21] 11 : Success() +[21] 8 : Running(cursor=3,len=4,reason=) +[21] 12 : Failure(reason=) +[21] 8 : Failure(cursor=3,len=4,reason=) +[21] 3 : Failure(cursor=3,len=4,reason=) +[21] 2 : Running(cursor=1,len=2) +[21] 4 : Running() +[21] 2 : Running(cursor=1,len=2) +[21] 1 : Running(cursor=0,len=1) +[22] next tick +[22] 2 : Running(cursor=0,len=2) +[22] 3 : Running(cursor=0,len=4,reason=) +[22] 5 : Success() +[22] 3 : Running(cursor=1,len=4,reason=) +[22] 6 : Success() +[22] 3 : Running(cursor=2,len=4,reason=) +[22] 7 : Success() +[22] 3 : Running(cursor=3,len=4,reason=) +[22] 8 : Running(cursor=0,len=4,reason=) +[22] 9 : Success() +[22] 8 : Running(cursor=1,len=4,reason=) +[22] 10 : Success() +[22] 8 : Running(cursor=2,len=4,reason=) +[22] 11 : Success() +[22] 8 : Running(cursor=3,len=4,reason=) +[22] 12 : Failure(reason=) +[22] 8 : Failure(cursor=3,len=4,reason=) +[22] 3 : Failure(cursor=3,len=4,reason=) +[22] 2 : Running(cursor=1,len=2) +[22] 4 : Running() +[22] 2 : Running(cursor=1,len=2) +[22] 1 : Running(cursor=0,len=1) +[23] next tick +[23] 2 : Running(cursor=0,len=2) +[23] 3 : Running(cursor=0,len=4,reason=) +[23] 5 : Success() +[23] 3 : Running(cursor=1,len=4,reason=) +[23] 6 : Success() +[23] 3 : Running(cursor=2,len=4,reason=) +[23] 7 : Success() +[23] 3 : Running(cursor=3,len=4,reason=) +[23] 8 : Running(cursor=0,len=4,reason=) +[23] 9 : Success() +[23] 8 : Running(cursor=1,len=4,reason=) +[23] 10 : Success() +[23] 8 : Running(cursor=2,len=4,reason=) +[23] 11 : Success() +[23] 8 : Running(cursor=3,len=4,reason=) +[23] 12 : Failure(reason=) +[23] 8 : Failure(cursor=3,len=4,reason=) +[23] 3 : Failure(cursor=3,len=4,reason=) +[23] 2 : Running(cursor=1,len=2) +[23] 4 : Running() +[23] 2 : Running(cursor=1,len=2) +[23] 1 : Running(cursor=0,len=1) +[24] next tick +[24] 2 : Running(cursor=0,len=2) +[24] 3 : Running(cursor=0,len=4,reason=) +[24] 5 : Success() +[24] 3 : Running(cursor=1,len=4,reason=) +[24] 6 : Success() +[24] 3 : Running(cursor=2,len=4,reason=) +[24] 7 : Success() +[24] 3 : Running(cursor=3,len=4,reason=) +[24] 8 : Running(cursor=0,len=4,reason=) +[24] 9 : Success() +[24] 8 : Running(cursor=1,len=4,reason=) +[24] 10 : Success() +[24] 8 : Running(cursor=2,len=4,reason=) +[24] 11 : Success() +[24] 8 : Running(cursor=3,len=4,reason=) +[24] 12 : Failure(reason=) +[24] 8 : Failure(cursor=3,len=4,reason=) +[24] 3 : Failure(cursor=3,len=4,reason=) +[24] 2 : Running(cursor=1,len=2) +[24] 4 : Running() +[24] 2 : Running(cursor=1,len=2) +[24] 1 : Running(cursor=0,len=1) +[25] next tick +[25] 2 : Running(cursor=0,len=2) +[25] 3 : Running(cursor=0,len=4,reason=) +[25] 5 : Success() +[25] 3 : Running(cursor=1,len=4,reason=) +[25] 6 : Success() +[25] 3 : Running(cursor=2,len=4,reason=) +[25] 7 : Success() +[25] 3 : Running(cursor=3,len=4,reason=) +[25] 8 : Running(cursor=0,len=4,reason=) +[25] 9 : Success() +[25] 8 : Running(cursor=1,len=4,reason=) +[25] 10 : Success() +[25] 8 : Running(cursor=2,len=4,reason=) +[25] 11 : Success() +[25] 8 : Running(cursor=3,len=4,reason=) +[25] 12 : Failure(reason=) +[25] 8 : Failure(cursor=3,len=4,reason=) +[25] 3 : Failure(cursor=3,len=4,reason=) +[25] 2 : Running(cursor=1,len=2) +[25] 4 : Running() +[25] 2 : Running(cursor=1,len=2) +[25] 1 : Running(cursor=0,len=1) +[26] next tick +[26] 2 : Running(cursor=0,len=2) +[26] 3 : Running(cursor=0,len=4,reason=) +[26] 5 : Success() +[26] 3 : Running(cursor=1,len=4,reason=) +[26] 6 : Success() +[26] 3 : Running(cursor=2,len=4,reason=) +[26] 7 : Success() +[26] 3 : Running(cursor=3,len=4,reason=) +[26] 8 : Running(cursor=0,len=4,reason=) +[26] 9 : Success() +[26] 8 : Running(cursor=1,len=4,reason=) +[26] 10 : Success() +[26] 8 : Running(cursor=2,len=4,reason=) +[26] 11 : Success() +[26] 8 : Running(cursor=3,len=4,reason=) +[26] 12 : Failure(reason=) +[26] 8 : Failure(cursor=3,len=4,reason=) +[26] 3 : Failure(cursor=3,len=4,reason=) +[26] 2 : Running(cursor=1,len=2) +[26] 4 : Running() +[26] 2 : Running(cursor=1,len=2) +[26] 1 : Running(cursor=0,len=1) +[27] next tick +[27] 2 : Running(cursor=0,len=2) +[27] 3 : Running(cursor=0,len=4,reason=) +[27] 5 : Success() +[27] 3 : Running(cursor=1,len=4,reason=) +[27] 6 : Success() +[27] 3 : Running(cursor=2,len=4,reason=) +[27] 7 : Success() +[27] 3 : Running(cursor=3,len=4,reason=) +[27] 8 : Running(cursor=0,len=4,reason=) +[27] 9 : Success() +[27] 8 : Running(cursor=1,len=4,reason=) +[27] 10 : Success() +[27] 8 : Running(cursor=2,len=4,reason=) +[27] 11 : Success() +[27] 8 : Running(cursor=3,len=4,reason=) +[27] 12 : Failure(reason=) +[27] 8 : Failure(cursor=3,len=4,reason=) +[27] 3 : Failure(cursor=3,len=4,reason=) +[27] 2 : Running(cursor=1,len=2) +[27] 4 : Running() +[27] 2 : Running(cursor=1,len=2) +[27] 1 : Running(cursor=0,len=1) +[28] next tick +[28] 2 : Running(cursor=0,len=2) +[28] 3 : Running(cursor=0,len=4,reason=) +[28] 5 : Success() +[28] 3 : Running(cursor=1,len=4,reason=) +[28] 6 : Success() +[28] 3 : Running(cursor=2,len=4,reason=) +[28] 7 : Success() +[28] 3 : Running(cursor=3,len=4,reason=) +[28] 8 : Running(cursor=0,len=4,reason=) +[28] 9 : Success() +[28] 8 : Running(cursor=1,len=4,reason=) +[28] 10 : Success() +[28] 8 : Running(cursor=2,len=4,reason=) +[28] 11 : Success() +[28] 8 : Running(cursor=3,len=4,reason=) +[28] 12 : Failure(reason=) +[28] 8 : Failure(cursor=3,len=4,reason=) +[28] 3 : Failure(cursor=3,len=4,reason=) +[28] 2 : Running(cursor=1,len=2) +[28] 4 : Running() +[28] 2 : Running(cursor=1,len=2) +[28] 1 : Running(cursor=0,len=1) +[29] next tick +[29] 2 : Running(cursor=0,len=2) +[29] 3 : Running(cursor=0,len=4,reason=) +[29] 5 : Success() +[29] 3 : Running(cursor=1,len=4,reason=) +[29] 6 : Success() +[29] 3 : Running(cursor=2,len=4,reason=) +[29] 7 : Success() +[29] 3 : Running(cursor=3,len=4,reason=) +[29] 8 : Running(cursor=0,len=4,reason=) +[29] 9 : Success() +[29] 8 : Running(cursor=1,len=4,reason=) +[29] 10 : Success() +[29] 8 : Running(cursor=2,len=4,reason=) +[29] 11 : Success() +[29] 8 : Running(cursor=3,len=4,reason=) +[29] 12 : Failure(reason=) +[29] 8 : Failure(cursor=3,len=4,reason=) +[29] 3 : Failure(cursor=3,len=4,reason=) +[29] 2 : Running(cursor=1,len=2) +[29] 4 : Running() +[29] 2 : Running(cursor=1,len=2) +[29] 1 : Running(cursor=0,len=1) +[30] next tick +[30] 2 : Running(cursor=0,len=2) +[30] 3 : Running(cursor=0,len=4,reason=) +[30] 5 : Success() +[30] 3 : Running(cursor=1,len=4,reason=) +[30] 6 : Success() +[30] 3 : Running(cursor=2,len=4,reason=) +[30] 7 : Success() +[30] 3 : Running(cursor=3,len=4,reason=) +[30] 8 : Running(cursor=0,len=4,reason=) +[30] 9 : Success() +[30] 8 : Running(cursor=1,len=4,reason=) +[30] 10 : Success() +[30] 8 : Running(cursor=2,len=4,reason=) +[30] 11 : Success() +[30] 8 : Running(cursor=3,len=4,reason=) +[30] 12 : Failure(reason=) +[30] 8 : Failure(cursor=3,len=4,reason=) +[30] 3 : Failure(cursor=3,len=4,reason=) +[30] 2 : Running(cursor=1,len=2) +[30] 4 : Running() +[30] 2 : Running(cursor=1,len=2) +[30] 1 : Running(cursor=0,len=1) +[31] next tick +[31] 2 : Running(cursor=0,len=2) +[31] 3 : Running(cursor=0,len=4,reason=) +[31] 5 : Success() +[31] 3 : Running(cursor=1,len=4,reason=) +[31] 6 : Success() +[31] 3 : Running(cursor=2,len=4,reason=) +[31] 7 : Success() +[31] 3 : Running(cursor=3,len=4,reason=) +[31] 8 : Running(cursor=0,len=4,reason=) +[31] 9 : Success() +[31] 8 : Running(cursor=1,len=4,reason=) +[31] 10 : Success() +[31] 8 : Running(cursor=2,len=4,reason=) +[31] 11 : Success() +[31] 8 : Running(cursor=3,len=4,reason=) +[31] 12 : Failure(reason=) +[31] 8 : Failure(cursor=3,len=4,reason=) +[31] 3 : Failure(cursor=3,len=4,reason=) +[31] 2 : Running(cursor=1,len=2) +[31] 4 : Running() +[31] 2 : Running(cursor=1,len=2) +[31] 1 : Running(cursor=0,len=1) +[32] next tick +[32] 2 : Running(cursor=0,len=2) +[32] 3 : Running(cursor=0,len=4,reason=) +[32] 5 : Success() +[32] 3 : Running(cursor=1,len=4,reason=) +[32] 6 : Success() +[32] 3 : Running(cursor=2,len=4,reason=) +[32] 7 : Success() +[32] 3 : Running(cursor=3,len=4,reason=) +[32] 8 : Running(cursor=0,len=4,reason=) +[32] 9 : Success() +[32] 8 : Running(cursor=1,len=4,reason=) +[32] 10 : Success() +[32] 8 : Running(cursor=2,len=4,reason=) +[32] 11 : Success() +[32] 8 : Running(cursor=3,len=4,reason=) +[32] 12 : Failure(reason=) +[32] 8 : Failure(cursor=3,len=4,reason=) +[32] 3 : Failure(cursor=3,len=4,reason=) +[32] 2 : Running(cursor=1,len=2) +[32] 4 : Running() +[32] 2 : Running(cursor=1,len=2) +[32] 1 : Running(cursor=0,len=1) +[33] next tick +[33] 2 : Running(cursor=0,len=2) +[33] 3 : Running(cursor=0,len=4,reason=) +[33] 5 : Success() +[33] 3 : Running(cursor=1,len=4,reason=) +[33] 6 : Success() +[33] 3 : Running(cursor=2,len=4,reason=) +[33] 7 : Success() +[33] 3 : Running(cursor=3,len=4,reason=) +[33] 8 : Running(cursor=0,len=4,reason=) +[33] 9 : Success() +[33] 8 : Running(cursor=1,len=4,reason=) +[33] 10 : Success() +[33] 8 : Running(cursor=2,len=4,reason=) +[33] 11 : Success() +[33] 8 : Running(cursor=3,len=4,reason=) +[33] 12 : Failure(reason=) +[33] 8 : Failure(cursor=3,len=4,reason=) +[33] 3 : Failure(cursor=3,len=4,reason=) +[33] 2 : Running(cursor=1,len=2) +[33] 4 : Running() +[33] 2 : Running(cursor=1,len=2) +[33] 1 : Running(cursor=0,len=1) +[34] next tick +[34] 2 : Running(cursor=0,len=2) +[34] 3 : Running(cursor=0,len=4,reason=) +[34] 5 : Success() +[34] 3 : Running(cursor=1,len=4,reason=) +[34] 6 : Success() +[34] 3 : Running(cursor=2,len=4,reason=) +[34] 7 : Success() +[34] 3 : Running(cursor=3,len=4,reason=) +[34] 8 : Running(cursor=0,len=4,reason=) +[34] 9 : Success() +[34] 8 : Running(cursor=1,len=4,reason=) +[34] 10 : Success() +[34] 8 : Running(cursor=2,len=4,reason=) +[34] 11 : Success() +[34] 8 : Running(cursor=3,len=4,reason=) +[34] 12 : Failure(reason=) +[34] 8 : Failure(cursor=3,len=4,reason=) +[34] 3 : Failure(cursor=3,len=4,reason=) +[34] 2 : Running(cursor=1,len=2) +[34] 4 : Running() +[34] 2 : Running(cursor=1,len=2) +[34] 1 : Running(cursor=0,len=1) +[35] next tick +[35] 2 : Running(cursor=0,len=2) +[35] 3 : Running(cursor=0,len=4,reason=) +[35] 5 : Success() +[35] 3 : Running(cursor=1,len=4,reason=) +[35] 6 : Success() +[35] 3 : Running(cursor=2,len=4,reason=) +[35] 7 : Success() +[35] 3 : Running(cursor=3,len=4,reason=) +[35] 8 : Running(cursor=0,len=4,reason=) +[35] 9 : Success() +[35] 8 : Running(cursor=1,len=4,reason=) +[35] 10 : Success() +[35] 8 : Running(cursor=2,len=4,reason=) +[35] 11 : Success() +[35] 8 : Running(cursor=3,len=4,reason=) +[35] 12 : Failure(reason=) +[35] 8 : Failure(cursor=3,len=4,reason=) +[35] 3 : Failure(cursor=3,len=4,reason=) +[35] 2 : Running(cursor=1,len=2) +[35] 4 : Running() +[35] 2 : Running(cursor=1,len=2) +[35] 1 : Running(cursor=0,len=1) +[36] next tick +[36] 2 : Running(cursor=0,len=2) +[36] 3 : Running(cursor=0,len=4,reason=) +[36] 5 : Success() +[36] 3 : Running(cursor=1,len=4,reason=) +[36] 6 : Success() +[36] 3 : Running(cursor=2,len=4,reason=) +[36] 7 : Success() +[36] 3 : Running(cursor=3,len=4,reason=) +[36] 8 : Running(cursor=0,len=4,reason=) +[36] 9 : Success() +[36] 8 : Running(cursor=1,len=4,reason=) +[36] 10 : Success() +[36] 8 : Running(cursor=2,len=4,reason=) +[36] 11 : Success() +[36] 8 : Running(cursor=3,len=4,reason=) +[36] 12 : Failure(reason=) +[36] 8 : Failure(cursor=3,len=4,reason=) +[36] 3 : Failure(cursor=3,len=4,reason=) +[36] 2 : Running(cursor=1,len=2) +[36] 4 : Running() +[36] 2 : Running(cursor=1,len=2) +[36] 1 : Running(cursor=0,len=1) +[37] next tick +[37] 2 : Running(cursor=0,len=2) +[37] 3 : Running(cursor=0,len=4,reason=) +[37] 5 : Success() +[37] 3 : Running(cursor=1,len=4,reason=) +[37] 6 : Success() +[37] 3 : Running(cursor=2,len=4,reason=) +[37] 7 : Success() +[37] 3 : Running(cursor=3,len=4,reason=) +[37] 8 : Running(cursor=0,len=4,reason=) +[37] 9 : Success() +[37] 8 : Running(cursor=1,len=4,reason=) +[37] 10 : Success() +[37] 8 : Running(cursor=2,len=4,reason=) +[37] 11 : Success() +[37] 8 : Running(cursor=3,len=4,reason=) +[37] 12 : Failure(reason=) +[37] 8 : Failure(cursor=3,len=4,reason=) +[37] 3 : Failure(cursor=3,len=4,reason=) +[37] 2 : Running(cursor=1,len=2) +[37] 4 : Running() +[37] 2 : Running(cursor=1,len=2) +[37] 1 : Running(cursor=0,len=1) +[38] next tick +[38] 2 : Running(cursor=0,len=2) +[38] 3 : Running(cursor=0,len=4,reason=) +[38] 5 : Success() +[38] 3 : Running(cursor=1,len=4,reason=) +[38] 6 : Success() +[38] 3 : Running(cursor=2,len=4,reason=) +[38] 7 : Success() +[38] 3 : Running(cursor=3,len=4,reason=) +[38] 8 : Running(cursor=0,len=4,reason=) +[38] 9 : Success() +[38] 8 : Running(cursor=1,len=4,reason=) +[38] 10 : Success() +[38] 8 : Running(cursor=2,len=4,reason=) +[38] 11 : Success() +[38] 8 : Running(cursor=3,len=4,reason=) +[38] 12 : Failure(reason=) +[38] 8 : Failure(cursor=3,len=4,reason=) +[38] 3 : Failure(cursor=3,len=4,reason=) +[38] 2 : Running(cursor=1,len=2) +[38] 4 : Running() +[38] 2 : Running(cursor=1,len=2) +[38] 1 : Running(cursor=0,len=1) +[39] next tick +[39] 2 : Running(cursor=0,len=2) +[39] 3 : Running(cursor=0,len=4,reason=) +[39] 5 : Success() +[39] 3 : Running(cursor=1,len=4,reason=) +[39] 6 : Success() +[39] 3 : Running(cursor=2,len=4,reason=) +[39] 7 : Success() +[39] 3 : Running(cursor=3,len=4,reason=) +[39] 8 : Running(cursor=0,len=4,reason=) +[39] 9 : Success() +[39] 8 : Running(cursor=1,len=4,reason=) +[39] 10 : Success() +[39] 8 : Running(cursor=2,len=4,reason=) +[39] 11 : Success() +[39] 8 : Running(cursor=3,len=4,reason=) +[39] 12 : Failure(reason=) +[39] 8 : Failure(cursor=3,len=4,reason=) +[39] 3 : Failure(cursor=3,len=4,reason=) +[39] 2 : Running(cursor=1,len=2) +[39] 4 : Running() +[39] 2 : Running(cursor=1,len=2) +[39] 1 : Running(cursor=0,len=1) +[40] next tick +[40] 2 : Running(cursor=0,len=2) +[40] 3 : Running(cursor=0,len=4,reason=) +[40] 5 : Success() +[40] 3 : Running(cursor=1,len=4,reason=) +[40] 6 : Success() +[40] 3 : Running(cursor=2,len=4,reason=) +[40] 7 : Success() +[40] 3 : Running(cursor=3,len=4,reason=) +[40] 8 : Running(cursor=0,len=4,reason=) +[40] 9 : Success() +[40] 8 : Running(cursor=1,len=4,reason=) +[40] 10 : Success() +[40] 8 : Running(cursor=2,len=4,reason=) +[40] 11 : Success() +[40] 8 : Running(cursor=3,len=4,reason=) +[40] 12 : Failure(reason=) +[40] 8 : Failure(cursor=3,len=4,reason=) +[40] 3 : Failure(cursor=3,len=4,reason=) +[40] 2 : Running(cursor=1,len=2) +[40] 4 : Running() +[40] 2 : Running(cursor=1,len=2) +[40] 1 : Running(cursor=0,len=1) +[41] next tick +[41] 2 : Running(cursor=0,len=2) +[41] 3 : Running(cursor=0,len=4,reason=) +[41] 5 : Success() +[41] 3 : Running(cursor=1,len=4,reason=) +[41] 6 : Success() +[41] 3 : Running(cursor=2,len=4,reason=) +[41] 7 : Success() +[41] 3 : Running(cursor=3,len=4,reason=) +[41] 8 : Running(cursor=0,len=4,reason=) +[41] 9 : Success() +[41] 8 : Running(cursor=1,len=4,reason=) +[41] 10 : Success() +[41] 8 : Running(cursor=2,len=4,reason=) +[41] 11 : Success() +[41] 8 : Running(cursor=3,len=4,reason=) +[41] 12 : Failure(reason=) +[41] 8 : Failure(cursor=3,len=4,reason=) +[41] 3 : Failure(cursor=3,len=4,reason=) +[41] 2 : Running(cursor=1,len=2) +[41] 4 : Running() +[41] 2 : Running(cursor=1,len=2) +[41] 1 : Running(cursor=0,len=1) +[42] next tick +[42] 2 : Running(cursor=0,len=2) +[42] 3 : Running(cursor=0,len=4,reason=) +[42] 5 : Success() +[42] 3 : Running(cursor=1,len=4,reason=) +[42] 6 : Success() +[42] 3 : Running(cursor=2,len=4,reason=) +[42] 7 : Success() +[42] 3 : Running(cursor=3,len=4,reason=) +[42] 8 : Running(cursor=0,len=4,reason=) +[42] 9 : Success() +[42] 8 : Running(cursor=1,len=4,reason=) +[42] 10 : Success() +[42] 8 : Running(cursor=2,len=4,reason=) +[42] 11 : Success() +[42] 8 : Running(cursor=3,len=4,reason=) +[42] 12 : Failure(reason=) +[42] 8 : Failure(cursor=3,len=4,reason=) +[42] 3 : Failure(cursor=3,len=4,reason=) +[42] 2 : Running(cursor=1,len=2) +[42] 4 : Running() +[42] 2 : Running(cursor=1,len=2) +[42] 1 : Running(cursor=0,len=1) +[43] next tick +[43] 2 : Running(cursor=0,len=2) +[43] 3 : Running(cursor=0,len=4,reason=) +[43] 5 : Success() +[43] 3 : Running(cursor=1,len=4,reason=) +[43] 6 : Success() +[43] 3 : Running(cursor=2,len=4,reason=) +[43] 7 : Success() +[43] 3 : Running(cursor=3,len=4,reason=) +[43] 8 : Running(cursor=0,len=4,reason=) +[43] 9 : Success() +[43] 8 : Running(cursor=1,len=4,reason=) +[43] 10 : Success() +[43] 8 : Running(cursor=2,len=4,reason=) +[43] 11 : Success() +[43] 8 : Running(cursor=3,len=4,reason=) +[43] 12 : Failure(reason=) +[43] 8 : Failure(cursor=3,len=4,reason=) +[43] 3 : Failure(cursor=3,len=4,reason=) +[43] 2 : Running(cursor=1,len=2) +[43] 4 : Running() +[43] 2 : Running(cursor=1,len=2) +[43] 1 : Running(cursor=0,len=1) +[44] next tick +[44] 2 : Running(cursor=0,len=2) +[44] 3 : Running(cursor=0,len=4,reason=) +[44] 5 : Success() +[44] 3 : Running(cursor=1,len=4,reason=) +[44] 6 : Success() +[44] 3 : Running(cursor=2,len=4,reason=) +[44] 7 : Success() +[44] 3 : Running(cursor=3,len=4,reason=) +[44] 8 : Running(cursor=0,len=4,reason=) +[44] 9 : Success() +[44] 8 : Running(cursor=1,len=4,reason=) +[44] 10 : Success() +[44] 8 : Running(cursor=2,len=4,reason=) +[44] 11 : Success() +[44] 8 : Running(cursor=3,len=4,reason=) +[44] 12 : Failure(reason=) +[44] 8 : Failure(cursor=3,len=4,reason=) +[44] 3 : Failure(cursor=3,len=4,reason=) +[44] 2 : Running(cursor=1,len=2) +[44] 4 : Running() +[44] 2 : Running(cursor=1,len=2) +[44] 1 : Running(cursor=0,len=1) +[45] next tick +[45] 2 : Running(cursor=0,len=2) +[45] 3 : Running(cursor=0,len=4,reason=) +[45] 5 : Success() +[45] 3 : Running(cursor=1,len=4,reason=) +[45] 6 : Success() +[45] 3 : Running(cursor=2,len=4,reason=) +[45] 7 : Success() +[45] 3 : Running(cursor=3,len=4,reason=) +[45] 8 : Running(cursor=0,len=4,reason=) +[45] 9 : Success() +[45] 8 : Running(cursor=1,len=4,reason=) +[45] 10 : Success() +[45] 8 : Running(cursor=2,len=4,reason=) +[45] 11 : Success() +[45] 8 : Running(cursor=3,len=4,reason=) +[45] 12 : Failure(reason=) +[45] 8 : Failure(cursor=3,len=4,reason=) +[45] 3 : Failure(cursor=3,len=4,reason=) +[45] 2 : Running(cursor=1,len=2) +[45] 4 : Running() +[45] 2 : Running(cursor=1,len=2) +[45] 1 : Running(cursor=0,len=1) +[46] next tick +[46] 2 : Running(cursor=0,len=2) +[46] 3 : Running(cursor=0,len=4,reason=) +[46] 5 : Success() +[46] 3 : Running(cursor=1,len=4,reason=) +[46] 6 : Success() +[46] 3 : Running(cursor=2,len=4,reason=) +[46] 7 : Success() +[46] 3 : Running(cursor=3,len=4,reason=) +[46] 8 : Running(cursor=0,len=4,reason=) +[46] 9 : Success() +[46] 8 : Running(cursor=1,len=4,reason=) +[46] 10 : Success() +[46] 8 : Running(cursor=2,len=4,reason=) +[46] 11 : Success() +[46] 8 : Running(cursor=3,len=4,reason=) +[46] 12 : Failure(reason=) +[46] 8 : Failure(cursor=3,len=4,reason=) +[46] 3 : Failure(cursor=3,len=4,reason=) +[46] 2 : Running(cursor=1,len=2) +[46] 4 : Running() +[46] 2 : Running(cursor=1,len=2) +[46] 1 : Running(cursor=0,len=1) +[47] next tick +[47] 2 : Running(cursor=0,len=2) +[47] 3 : Running(cursor=0,len=4,reason=) +[47] 5 : Success() +[47] 3 : Running(cursor=1,len=4,reason=) +[47] 6 : Success() +[47] 3 : Running(cursor=2,len=4,reason=) +[47] 7 : Success() +[47] 3 : Running(cursor=3,len=4,reason=) +[47] 8 : Running(cursor=0,len=4,reason=) +[47] 9 : Success() +[47] 8 : Running(cursor=1,len=4,reason=) +[47] 10 : Success() +[47] 8 : Running(cursor=2,len=4,reason=) +[47] 11 : Success() +[47] 8 : Running(cursor=3,len=4,reason=) +[47] 12 : Failure(reason=) +[47] 8 : Failure(cursor=3,len=4,reason=) +[47] 3 : Failure(cursor=3,len=4,reason=) +[47] 2 : Running(cursor=1,len=2) +[47] 4 : Running() +[47] 2 : Running(cursor=1,len=2) +[47] 1 : Running(cursor=0,len=1) +[48] next tick +[48] 2 : Running(cursor=0,len=2) +[48] 3 : Running(cursor=0,len=4,reason=) +[48] 5 : Success() +[48] 3 : Running(cursor=1,len=4,reason=) +[48] 6 : Success() +[48] 3 : Running(cursor=2,len=4,reason=) +[48] 7 : Success() +[48] 3 : Running(cursor=3,len=4,reason=) +[48] 8 : Running(cursor=0,len=4,reason=) +[48] 9 : Success() +[48] 8 : Running(cursor=1,len=4,reason=) +[48] 10 : Success() +[48] 8 : Running(cursor=2,len=4,reason=) +[48] 11 : Success() +[48] 8 : Running(cursor=3,len=4,reason=) +[48] 12 : Failure(reason=) +[48] 8 : Failure(cursor=3,len=4,reason=) +[48] 3 : Failure(cursor=3,len=4,reason=) +[48] 2 : Running(cursor=1,len=2) +[48] 4 : Running() +[48] 2 : Running(cursor=1,len=2) +[48] 1 : Running(cursor=0,len=1) +[49] next tick +[49] 2 : Running(cursor=0,len=2) +[49] 3 : Running(cursor=0,len=4,reason=) +[49] 5 : Success() +[49] 3 : Running(cursor=1,len=4,reason=) +[49] 6 : Success() +[49] 3 : Running(cursor=2,len=4,reason=) +[49] 7 : Success() +[49] 3 : Running(cursor=3,len=4,reason=) +[49] 8 : Running(cursor=0,len=4,reason=) +[49] 9 : Success() +[49] 8 : Running(cursor=1,len=4,reason=) +[49] 10 : Success() +[49] 8 : Running(cursor=2,len=4,reason=) +[49] 11 : Success() +[49] 8 : Running(cursor=3,len=4,reason=) +[49] 12 : Failure(reason=) +[49] 8 : Failure(cursor=3,len=4,reason=) +[49] 3 : Failure(cursor=3,len=4,reason=) +[49] 2 : Running(cursor=1,len=2) +[49] 4 : Running() +[49] 2 : Running(cursor=1,len=2) +[49] 1 : Running(cursor=0,len=1) +[50] next tick +[50] 2 : Running(cursor=0,len=2) +[50] 3 : Running(cursor=0,len=4,reason=) +[50] 5 : Success() +[50] 3 : Running(cursor=1,len=4,reason=) +[50] 6 : Success() +[50] 3 : Running(cursor=2,len=4,reason=) +[50] 7 : Success() +[50] 3 : Running(cursor=3,len=4,reason=) +[50] 8 : Running(cursor=0,len=4,reason=) +[50] 9 : Success() +[50] 8 : Running(cursor=1,len=4,reason=) +[50] 10 : Success() +[50] 8 : Running(cursor=2,len=4,reason=) +[50] 11 : Success() +[50] 8 : Running(cursor=3,len=4,reason=) +[50] 12 : Failure(reason=) +[50] 8 : Failure(cursor=3,len=4,reason=) +[50] 3 : Failure(cursor=3,len=4,reason=) +[50] 2 : Running(cursor=1,len=2) +[50] 4 : Running() +[50] 2 : Running(cursor=1,len=2) +[50] 1 : Running(cursor=0,len=1) +[51] next tick +[51] 2 : Running(cursor=0,len=2) +[51] 3 : Running(cursor=0,len=4,reason=) +[51] 5 : Success() +[51] 3 : Running(cursor=1,len=4,reason=) +[51] 6 : Success() +[51] 3 : Running(cursor=2,len=4,reason=) +[51] 7 : Success() +[51] 3 : Running(cursor=3,len=4,reason=) +[51] 8 : Running(cursor=0,len=4,reason=) +[51] 9 : Success() +[51] 8 : Running(cursor=1,len=4,reason=) +[51] 10 : Success() +[51] 8 : Running(cursor=2,len=4,reason=) +[51] 11 : Success() +[51] 8 : Running(cursor=3,len=4,reason=) +[51] 12 : Failure(reason=) +[51] 8 : Failure(cursor=3,len=4,reason=) +[51] 3 : Failure(cursor=3,len=4,reason=) +[51] 2 : Running(cursor=1,len=2) +[51] 4 : Running() +[51] 2 : Running(cursor=1,len=2) +[51] 1 : Running(cursor=0,len=1) +[52] next tick +[52] 2 : Running(cursor=0,len=2) +[52] 3 : Running(cursor=0,len=4,reason=) +[52] 5 : Success() +[52] 3 : Running(cursor=1,len=4,reason=) +[52] 6 : Success() +[52] 3 : Running(cursor=2,len=4,reason=) +[52] 7 : Success() +[52] 3 : Running(cursor=3,len=4,reason=) +[52] 8 : Running(cursor=0,len=4,reason=) +[52] 9 : Success() +[52] 8 : Running(cursor=1,len=4,reason=) +[52] 10 : Success() +[52] 8 : Running(cursor=2,len=4,reason=) +[52] 11 : Success() +[52] 8 : Running(cursor=3,len=4,reason=) +[52] 12 : Failure(reason=) +[52] 8 : Failure(cursor=3,len=4,reason=) +[52] 3 : Failure(cursor=3,len=4,reason=) +[52] 2 : Running(cursor=1,len=2) +[52] 4 : Running() +[52] 2 : Running(cursor=1,len=2) +[52] 1 : Running(cursor=0,len=1) +[53] next tick +[53] 2 : Running(cursor=0,len=2) +[53] 3 : Running(cursor=0,len=4,reason=) +[53] 5 : Success() +[53] 3 : Running(cursor=1,len=4,reason=) +[53] 6 : Success() +[53] 3 : Running(cursor=2,len=4,reason=) +[53] 7 : Success() +[53] 3 : Running(cursor=3,len=4,reason=) +[53] 8 : Running(cursor=0,len=4,reason=) +[53] 9 : Success() +[53] 8 : Running(cursor=1,len=4,reason=) +[53] 10 : Success() +[53] 8 : Running(cursor=2,len=4,reason=) +[53] 11 : Success() +[53] 8 : Running(cursor=3,len=4,reason=) +[53] 12 : Failure(reason=) +[53] 8 : Failure(cursor=3,len=4,reason=) +[53] 3 : Failure(cursor=3,len=4,reason=) +[53] 2 : Running(cursor=1,len=2) +[53] 4 : Running() +[53] 2 : Running(cursor=1,len=2) +[53] 1 : Running(cursor=0,len=1) +[54] next tick +[54] 2 : Running(cursor=0,len=2) +[54] 3 : Running(cursor=0,len=4,reason=) +[54] 5 : Success() +[54] 3 : Running(cursor=1,len=4,reason=) +[54] 6 : Success() +[54] 3 : Running(cursor=2,len=4,reason=) +[54] 7 : Success() +[54] 3 : Running(cursor=3,len=4,reason=) +[54] 8 : Running(cursor=0,len=4,reason=) +[54] 9 : Success() +[54] 8 : Running(cursor=1,len=4,reason=) +[54] 10 : Success() +[54] 8 : Running(cursor=2,len=4,reason=) +[54] 11 : Success() +[54] 8 : Running(cursor=3,len=4,reason=) +[54] 12 : Failure(reason=) +[54] 8 : Failure(cursor=3,len=4,reason=) +[54] 3 : Failure(cursor=3,len=4,reason=) +[54] 2 : Running(cursor=1,len=2) +[54] 4 : Running() +[54] 2 : Running(cursor=1,len=2) +[54] 1 : Running(cursor=0,len=1) +[55] next tick +[55] 2 : Running(cursor=0,len=2) +[55] 3 : Running(cursor=0,len=4,reason=) +[55] 5 : Success() +[55] 3 : Running(cursor=1,len=4,reason=) +[55] 6 : Success() +[55] 3 : Running(cursor=2,len=4,reason=) +[55] 7 : Success() +[55] 3 : Running(cursor=3,len=4,reason=) +[55] 8 : Running(cursor=0,len=4,reason=) +[55] 9 : Success() +[55] 8 : Running(cursor=1,len=4,reason=) +[55] 10 : Success() +[55] 8 : Running(cursor=2,len=4,reason=) +[55] 11 : Success() +[55] 8 : Running(cursor=3,len=4,reason=) +[55] 12 : Failure(reason=) +[55] 8 : Failure(cursor=3,len=4,reason=) +[55] 3 : Failure(cursor=3,len=4,reason=) +[55] 2 : Running(cursor=1,len=2) +[55] 4 : Running() +[55] 2 : Running(cursor=1,len=2) +[55] 1 : Running(cursor=0,len=1) +[56] next tick +[56] 2 : Running(cursor=0,len=2) +[56] 3 : Running(cursor=0,len=4,reason=) +[56] 5 : Success() +[56] 3 : Running(cursor=1,len=4,reason=) +[56] 6 : Success() +[56] 3 : Running(cursor=2,len=4,reason=) +[56] 7 : Success() +[56] 3 : Running(cursor=3,len=4,reason=) +[56] 8 : Running(cursor=0,len=4,reason=) +[56] 9 : Success() +[56] 8 : Running(cursor=1,len=4,reason=) +[56] 10 : Success() +[56] 8 : Running(cursor=2,len=4,reason=) +[56] 11 : Success() +[56] 8 : Running(cursor=3,len=4,reason=) +[56] 12 : Failure(reason=) +[56] 8 : Failure(cursor=3,len=4,reason=) +[56] 3 : Failure(cursor=3,len=4,reason=) +[56] 2 : Running(cursor=1,len=2) +[56] 4 : Running() +[56] 2 : Running(cursor=1,len=2) +[56] 1 : Running(cursor=0,len=1) +[57] next tick +[57] 2 : Running(cursor=0,len=2) +[57] 3 : Running(cursor=0,len=4,reason=) +[57] 5 : Success() +[57] 3 : Running(cursor=1,len=4,reason=) +[57] 6 : Success() +[57] 3 : Running(cursor=2,len=4,reason=) +[57] 7 : Success() +[57] 3 : Running(cursor=3,len=4,reason=) +[57] 8 : Running(cursor=0,len=4,reason=) +[57] 9 : Success() +[57] 8 : Running(cursor=1,len=4,reason=) +[57] 10 : Success() +[57] 8 : Running(cursor=2,len=4,reason=) +[57] 11 : Success() +[57] 8 : Running(cursor=3,len=4,reason=) +[57] 12 : Failure(reason=) +[57] 8 : Failure(cursor=3,len=4,reason=) +[57] 3 : Failure(cursor=3,len=4,reason=) +[57] 2 : Running(cursor=1,len=2) +[57] 4 : Running() +[57] 2 : Running(cursor=1,len=2) +[57] 1 : Running(cursor=0,len=1) +[58] next tick +[58] 2 : Running(cursor=0,len=2) +[58] 3 : Running(cursor=0,len=4,reason=) +[58] 5 : Success() +[58] 3 : Running(cursor=1,len=4,reason=) +[58] 6 : Success() +[58] 3 : Running(cursor=2,len=4,reason=) +[58] 7 : Success() +[58] 3 : Running(cursor=3,len=4,reason=) +[58] 8 : Running(cursor=0,len=4,reason=) +[58] 9 : Success() +[58] 8 : Running(cursor=1,len=4,reason=) +[58] 10 : Success() +[58] 8 : Running(cursor=2,len=4,reason=) +[58] 11 : Success() +[58] 8 : Running(cursor=3,len=4,reason=) +[58] 12 : Failure(reason=) +[58] 8 : Failure(cursor=3,len=4,reason=) +[58] 3 : Failure(cursor=3,len=4,reason=) +[58] 2 : Running(cursor=1,len=2) +[58] 4 : Running() +[58] 2 : Running(cursor=1,len=2) +[58] 1 : Running(cursor=0,len=1) +[59] next tick +[59] 2 : Running(cursor=0,len=2) +[59] 3 : Running(cursor=0,len=4,reason=) +[59] 5 : Success() +[59] 3 : Running(cursor=1,len=4,reason=) +[59] 6 : Success() +[59] 3 : Running(cursor=2,len=4,reason=) +[59] 7 : Success() +[59] 3 : Running(cursor=3,len=4,reason=) +[59] 8 : Running(cursor=0,len=4,reason=) +[59] 9 : Success() +[59] 8 : Running(cursor=1,len=4,reason=) +[59] 10 : Success() +[59] 8 : Running(cursor=2,len=4,reason=) +[59] 11 : Success() +[59] 8 : Running(cursor=3,len=4,reason=) +[59] 12 : Failure(reason=) +[59] 8 : Failure(cursor=3,len=4,reason=) +[59] 3 : Failure(cursor=3,len=4,reason=) +[59] 2 : Running(cursor=1,len=2) +[59] 4 : Running() +[59] 2 : Running(cursor=1,len=2) +[59] 1 : Running(cursor=0,len=1) +[60] next tick +[60] 2 : Running(cursor=0,len=2) +[60] 3 : Running(cursor=0,len=4,reason=) +[60] 5 : Success() +[60] 3 : Running(cursor=1,len=4,reason=) +[60] 6 : Success() +[60] 3 : Running(cursor=2,len=4,reason=) +[60] 7 : Success() +[60] 3 : Running(cursor=3,len=4,reason=) +[60] 8 : Running(cursor=0,len=4,reason=) +[60] 9 : Success() +[60] 8 : Running(cursor=1,len=4,reason=) +[60] 10 : Success() +[60] 8 : Running(cursor=2,len=4,reason=) +[60] 11 : Success() +[60] 8 : Running(cursor=3,len=4,reason=) +[60] 12 : Failure(reason=) +[60] 8 : Failure(cursor=3,len=4,reason=) +[60] 3 : Failure(cursor=3,len=4,reason=) +[60] 2 : Running(cursor=1,len=2) +[60] 4 : Running() +[60] 2 : Running(cursor=1,len=2) +[60] 1 : Running(cursor=0,len=1) +[61] next tick +[61] 2 : Running(cursor=0,len=2) +[61] 3 : Running(cursor=0,len=4,reason=) +[61] 5 : Success() +[61] 3 : Running(cursor=1,len=4,reason=) +[61] 6 : Success() +[61] 3 : Running(cursor=2,len=4,reason=) +[61] 7 : Success() +[61] 3 : Running(cursor=3,len=4,reason=) +[61] 8 : Running(cursor=0,len=4,reason=) +[61] 9 : Success() +[61] 8 : Running(cursor=1,len=4,reason=) +[61] 10 : Success() +[61] 8 : Running(cursor=2,len=4,reason=) +[61] 11 : Success() +[61] 8 : Running(cursor=3,len=4,reason=) +[61] 12 : Failure(reason=) +[61] 8 : Failure(cursor=3,len=4,reason=) +[61] 3 : Failure(cursor=3,len=4,reason=) +[61] 2 : Running(cursor=1,len=2) +[61] 4 : Running() +[61] 2 : Running(cursor=1,len=2) +[61] 1 : Running(cursor=0,len=1) +[62] next tick +[62] 2 : Running(cursor=0,len=2) +[62] 3 : Running(cursor=0,len=4,reason=) +[62] 5 : Success() +[62] 3 : Running(cursor=1,len=4,reason=) +[62] 6 : Success() +[62] 3 : Running(cursor=2,len=4,reason=) +[62] 7 : Success() +[62] 3 : Running(cursor=3,len=4,reason=) +[62] 8 : Running(cursor=0,len=4,reason=) +[62] 9 : Success() +[62] 8 : Running(cursor=1,len=4,reason=) +[62] 10 : Success() +[62] 8 : Running(cursor=2,len=4,reason=) +[62] 11 : Success() +[62] 8 : Running(cursor=3,len=4,reason=) +[62] 12 : Failure(reason=) +[62] 8 : Failure(cursor=3,len=4,reason=) +[62] 3 : Failure(cursor=3,len=4,reason=) +[62] 2 : Running(cursor=1,len=2) +[62] 4 : Running() +[62] 2 : Running(cursor=1,len=2) +[62] 1 : Running(cursor=0,len=1) +[63] next tick +[63] 2 : Running(cursor=0,len=2) +[63] 3 : Running(cursor=0,len=4,reason=) +[63] 5 : Success() +[63] 3 : Running(cursor=1,len=4,reason=) +[63] 6 : Success() +[63] 3 : Running(cursor=2,len=4,reason=) +[63] 7 : Success() +[63] 3 : Running(cursor=3,len=4,reason=) +[63] 8 : Running(cursor=0,len=4,reason=) +[63] 9 : Success() +[63] 8 : Running(cursor=1,len=4,reason=) +[63] 10 : Success() +[63] 8 : Running(cursor=2,len=4,reason=) +[63] 11 : Success() +[63] 8 : Running(cursor=3,len=4,reason=) +[63] 12 : Failure(reason=) +[63] 8 : Failure(cursor=3,len=4,reason=) +[63] 3 : Failure(cursor=3,len=4,reason=) +[63] 2 : Running(cursor=1,len=2) +[63] 4 : Running() +[63] 2 : Running(cursor=1,len=2) +[63] 1 : Running(cursor=0,len=1) +[64] next tick +[64] 2 : Running(cursor=0,len=2) +[64] 3 : Running(cursor=0,len=4,reason=) +[64] 5 : Success() +[64] 3 : Running(cursor=1,len=4,reason=) +[64] 6 : Success() +[64] 3 : Running(cursor=2,len=4,reason=) +[64] 7 : Success() +[64] 3 : Running(cursor=3,len=4,reason=) +[64] 8 : Running(cursor=0,len=4,reason=) +[64] 9 : Success() +[64] 8 : Running(cursor=1,len=4,reason=) +[64] 10 : Success() +[64] 8 : Running(cursor=2,len=4,reason=) +[64] 11 : Success() +[64] 8 : Running(cursor=3,len=4,reason=) +[64] 12 : Failure(reason=) +[64] 8 : Failure(cursor=3,len=4,reason=) +[64] 3 : Failure(cursor=3,len=4,reason=) +[64] 2 : Running(cursor=1,len=2) +[64] 4 : Running() +[64] 2 : Running(cursor=1,len=2) +[64] 1 : Running(cursor=0,len=1) +[65] next tick +[65] 2 : Running(cursor=0,len=2) +[65] 3 : Running(cursor=0,len=4,reason=) +[65] 5 : Success() +[65] 3 : Running(cursor=1,len=4,reason=) +[65] 6 : Success() +[65] 3 : Running(cursor=2,len=4,reason=) +[65] 7 : Success() +[65] 3 : Running(cursor=3,len=4,reason=) +[65] 8 : Running(cursor=0,len=4,reason=) +[65] 9 : Success() +[65] 8 : Running(cursor=1,len=4,reason=) +[65] 10 : Success() +[65] 8 : Running(cursor=2,len=4,reason=) +[65] 11 : Success() +[65] 8 : Running(cursor=3,len=4,reason=) +[65] 12 : Failure(reason=) +[65] 8 : Failure(cursor=3,len=4,reason=) +[65] 3 : Failure(cursor=3,len=4,reason=) +[65] 2 : Running(cursor=1,len=2) +[65] 4 : Running() +[65] 2 : Running(cursor=1,len=2) +[65] 1 : Running(cursor=0,len=1) +[66] next tick +[66] 2 : Running(cursor=0,len=2) +[66] 3 : Running(cursor=0,len=4,reason=) +[66] 5 : Success() +[66] 3 : Running(cursor=1,len=4,reason=) +[66] 6 : Success() +[66] 3 : Running(cursor=2,len=4,reason=) +[66] 7 : Success() +[66] 3 : Running(cursor=3,len=4,reason=) +[66] 8 : Running(cursor=0,len=4,reason=) +[66] 9 : Success() +[66] 8 : Running(cursor=1,len=4,reason=) +[66] 10 : Success() +[66] 8 : Running(cursor=2,len=4,reason=) +[66] 11 : Success() +[66] 8 : Running(cursor=3,len=4,reason=) +[66] 12 : Failure(reason=) +[66] 8 : Failure(cursor=3,len=4,reason=) +[66] 3 : Failure(cursor=3,len=4,reason=) +[66] 2 : Running(cursor=1,len=2) +[66] 4 : Running() +[66] 2 : Running(cursor=1,len=2) +[66] 1 : Running(cursor=0,len=1) +[67] next tick +[67] 2 : Running(cursor=0,len=2) +[67] 3 : Running(cursor=0,len=4,reason=) +[67] 5 : Success() +[67] 3 : Running(cursor=1,len=4,reason=) +[67] 6 : Success() +[67] 3 : Running(cursor=2,len=4,reason=) +[67] 7 : Success() +[67] 3 : Running(cursor=3,len=4,reason=) +[67] 8 : Running(cursor=0,len=4,reason=) +[67] 9 : Success() +[67] 8 : Running(cursor=1,len=4,reason=) +[67] 10 : Success() +[67] 8 : Running(cursor=2,len=4,reason=) +[67] 11 : Success() +[67] 8 : Running(cursor=3,len=4,reason=) +[67] 12 : Failure(reason=) +[67] 8 : Failure(cursor=3,len=4,reason=) +[67] 3 : Failure(cursor=3,len=4,reason=) +[67] 2 : Running(cursor=1,len=2) +[67] 4 : Running() +[67] 2 : Running(cursor=1,len=2) +[67] 1 : Running(cursor=0,len=1) +[68] next tick +[68] 2 : Running(cursor=0,len=2) +[68] 3 : Running(cursor=0,len=4,reason=) +[68] 5 : Success() +[68] 3 : Running(cursor=1,len=4,reason=) +[68] 6 : Success() +[68] 3 : Running(cursor=2,len=4,reason=) +[68] 7 : Success() +[68] 3 : Running(cursor=3,len=4,reason=) +[68] 8 : Running(cursor=0,len=4,reason=) +[68] 9 : Success() +[68] 8 : Running(cursor=1,len=4,reason=) +[68] 10 : Success() +[68] 8 : Running(cursor=2,len=4,reason=) +[68] 11 : Success() +[68] 8 : Running(cursor=3,len=4,reason=) +[68] 12 : Failure(reason=) +[68] 8 : Failure(cursor=3,len=4,reason=) +[68] 3 : Failure(cursor=3,len=4,reason=) +[68] 2 : Running(cursor=1,len=2) +[68] 4 : Running() +[68] 2 : Running(cursor=1,len=2) +[68] 1 : Running(cursor=0,len=1) +[69] next tick +[69] 2 : Running(cursor=0,len=2) +[69] 3 : Running(cursor=0,len=4,reason=) +[69] 5 : Success() +[69] 3 : Running(cursor=1,len=4,reason=) +[69] 6 : Success() +[69] 3 : Running(cursor=2,len=4,reason=) +[69] 7 : Success() +[69] 3 : Running(cursor=3,len=4,reason=) +[69] 8 : Running(cursor=0,len=4,reason=) +[69] 9 : Success() +[69] 8 : Running(cursor=1,len=4,reason=) +[69] 10 : Success() +[69] 8 : Running(cursor=2,len=4,reason=) +[69] 11 : Success() +[69] 8 : Running(cursor=3,len=4,reason=) +[69] 12 : Failure(reason=) +[69] 8 : Failure(cursor=3,len=4,reason=) +[69] 3 : Failure(cursor=3,len=4,reason=) +[69] 2 : Running(cursor=1,len=2) +[69] 4 : Running() +[69] 2 : Running(cursor=1,len=2) +[69] 1 : Running(cursor=0,len=1) +[70] next tick +[70] 2 : Running(cursor=0,len=2) +[70] 3 : Running(cursor=0,len=4,reason=) +[70] 5 : Success() +[70] 3 : Running(cursor=1,len=4,reason=) +[70] 6 : Success() +[70] 3 : Running(cursor=2,len=4,reason=) +[70] 7 : Success() +[70] 3 : Running(cursor=3,len=4,reason=) +[70] 8 : Running(cursor=0,len=4,reason=) +[70] 9 : Success() +[70] 8 : Running(cursor=1,len=4,reason=) +[70] 10 : Success() +[70] 8 : Running(cursor=2,len=4,reason=) +[70] 11 : Success() +[70] 8 : Running(cursor=3,len=4,reason=) +[70] 12 : Failure(reason=) +[70] 8 : Failure(cursor=3,len=4,reason=) +[70] 3 : Failure(cursor=3,len=4,reason=) +[70] 2 : Running(cursor=1,len=2) +[70] 4 : Running() +[70] 2 : Running(cursor=1,len=2) +[70] 1 : Running(cursor=0,len=1) +[71] next tick +[71] 2 : Running(cursor=0,len=2) +[71] 3 : Running(cursor=0,len=4,reason=) +[71] 5 : Success() +[71] 3 : Running(cursor=1,len=4,reason=) +[71] 6 : Success() +[71] 3 : Running(cursor=2,len=4,reason=) +[71] 7 : Success() +[71] 3 : Running(cursor=3,len=4,reason=) +[71] 8 : Running(cursor=0,len=4,reason=) +[71] 9 : Success() +[71] 8 : Running(cursor=1,len=4,reason=) +[71] 10 : Success() +[71] 8 : Running(cursor=2,len=4,reason=) +[71] 11 : Success() +[71] 8 : Running(cursor=3,len=4,reason=) +[71] 12 : Failure(reason=) +[71] 8 : Failure(cursor=3,len=4,reason=) +[71] 3 : Failure(cursor=3,len=4,reason=) +[71] 2 : Running(cursor=1,len=2) +[71] 4 : Running() +[71] 2 : Running(cursor=1,len=2) +[71] 1 : Running(cursor=0,len=1) +[72] next tick +[72] 2 : Running(cursor=0,len=2) +[72] 3 : Running(cursor=0,len=4,reason=) +[72] 5 : Success() +[72] 3 : Running(cursor=1,len=4,reason=) +[72] 6 : Success() +[72] 3 : Running(cursor=2,len=4,reason=) +[72] 7 : Success() +[72] 3 : Running(cursor=3,len=4,reason=) +[72] 8 : Running(cursor=0,len=4,reason=) +[72] 9 : Success() +[72] 8 : Running(cursor=1,len=4,reason=) +[72] 10 : Success() +[72] 8 : Running(cursor=2,len=4,reason=) +[72] 11 : Success() +[72] 8 : Running(cursor=3,len=4,reason=) +[72] 12 : Failure(reason=) +[72] 8 : Failure(cursor=3,len=4,reason=) +[72] 3 : Failure(cursor=3,len=4,reason=) +[72] 2 : Running(cursor=1,len=2) +[72] 4 : Running() +[72] 2 : Running(cursor=1,len=2) +[72] 1 : Running(cursor=0,len=1) +[73] next tick +[73] 2 : Running(cursor=0,len=2) +[73] 3 : Running(cursor=0,len=4,reason=) +[73] 5 : Success() +[73] 3 : Running(cursor=1,len=4,reason=) +[73] 6 : Success() +[73] 3 : Running(cursor=2,len=4,reason=) +[73] 7 : Success() +[73] 3 : Running(cursor=3,len=4,reason=) +[73] 8 : Running(cursor=0,len=4,reason=) +[73] 9 : Success() +[73] 8 : Running(cursor=1,len=4,reason=) +[73] 10 : Success() +[73] 8 : Running(cursor=2,len=4,reason=) +[73] 11 : Success() +[73] 8 : Running(cursor=3,len=4,reason=) +[73] 12 : Failure(reason=) +[73] 8 : Failure(cursor=3,len=4,reason=) +[73] 3 : Failure(cursor=3,len=4,reason=) +[73] 2 : Running(cursor=1,len=2) +[73] 4 : Running() +[73] 2 : Running(cursor=1,len=2) +[73] 1 : Running(cursor=0,len=1) +[74] next tick +[74] 2 : Running(cursor=0,len=2) +[74] 3 : Running(cursor=0,len=4,reason=) +[74] 5 : Success() +[74] 3 : Running(cursor=1,len=4,reason=) +[74] 6 : Success() +[74] 3 : Running(cursor=2,len=4,reason=) +[74] 7 : Success() +[74] 3 : Running(cursor=3,len=4,reason=) +[74] 8 : Running(cursor=0,len=4,reason=) +[74] 9 : Success() +[74] 8 : Running(cursor=1,len=4,reason=) +[74] 10 : Success() +[74] 8 : Running(cursor=2,len=4,reason=) +[74] 11 : Success() +[74] 8 : Running(cursor=3,len=4,reason=) +[74] 12 : Failure(reason=) +[74] 8 : Failure(cursor=3,len=4,reason=) +[74] 3 : Failure(cursor=3,len=4,reason=) +[74] 2 : Running(cursor=1,len=2) +[74] 4 : Running() +[74] 2 : Running(cursor=1,len=2) +[74] 1 : Running(cursor=0,len=1) +[75] next tick +[75] 2 : Running(cursor=0,len=2) +[75] 3 : Running(cursor=0,len=4,reason=) +[75] 5 : Success() +[75] 3 : Running(cursor=1,len=4,reason=) +[75] 6 : Success() +[75] 3 : Running(cursor=2,len=4,reason=) +[75] 7 : Success() +[75] 3 : Running(cursor=3,len=4,reason=) +[75] 8 : Running(cursor=0,len=4,reason=) +[75] 9 : Success() +[75] 8 : Running(cursor=1,len=4,reason=) +[75] 10 : Success() +[75] 8 : Running(cursor=2,len=4,reason=) +[75] 11 : Success() +[75] 8 : Running(cursor=3,len=4,reason=) +[75] 12 : Failure(reason=) +[75] 8 : Failure(cursor=3,len=4,reason=) +[75] 3 : Failure(cursor=3,len=4,reason=) +[75] 2 : Running(cursor=1,len=2) +[75] 4 : Running() +[75] 2 : Running(cursor=1,len=2) +[75] 1 : Running(cursor=0,len=1) +[76] next tick +[76] 2 : Running(cursor=0,len=2) +[76] 3 : Running(cursor=0,len=4,reason=) +[76] 5 : Success() +[76] 3 : Running(cursor=1,len=4,reason=) +[76] 6 : Success() +[76] 3 : Running(cursor=2,len=4,reason=) +[76] 7 : Success() +[76] 3 : Running(cursor=3,len=4,reason=) +[76] 8 : Running(cursor=0,len=4,reason=) +[76] 9 : Success() +[76] 8 : Running(cursor=1,len=4,reason=) +[76] 10 : Success() +[76] 8 : Running(cursor=2,len=4,reason=) +[76] 11 : Success() +[76] 8 : Running(cursor=3,len=4,reason=) +[76] 12 : Failure(reason=) +[76] 8 : Failure(cursor=3,len=4,reason=) +[76] 3 : Failure(cursor=3,len=4,reason=) +[76] 2 : Running(cursor=1,len=2) +[76] 4 : Running() +[76] 2 : Running(cursor=1,len=2) +[76] 1 : Running(cursor=0,len=1) +[77] next tick +[77] 2 : Running(cursor=0,len=2) +[77] 3 : Running(cursor=0,len=4,reason=) +[77] 5 : Success() +[77] 3 : Running(cursor=1,len=4,reason=) +[77] 6 : Success() +[77] 3 : Running(cursor=2,len=4,reason=) +[77] 7 : Success() +[77] 3 : Running(cursor=3,len=4,reason=) +[77] 8 : Running(cursor=0,len=4,reason=) +[77] 9 : Success() +[77] 8 : Running(cursor=1,len=4,reason=) +[77] 10 : Success() +[77] 8 : Running(cursor=2,len=4,reason=) +[77] 11 : Success() +[77] 8 : Running(cursor=3,len=4,reason=) +[77] 12 : Failure(reason=) +[77] 8 : Failure(cursor=3,len=4,reason=) +[77] 3 : Failure(cursor=3,len=4,reason=) +[77] 2 : Running(cursor=1,len=2) +[77] 4 : Running() +[77] 2 : Running(cursor=1,len=2) +[77] 1 : Running(cursor=0,len=1) +[78] next tick +[78] 2 : Running(cursor=0,len=2) +[78] 3 : Running(cursor=0,len=4,reason=) +[78] 5 : Success() +[78] 3 : Running(cursor=1,len=4,reason=) +[78] 6 : Success() +[78] 3 : Running(cursor=2,len=4,reason=) +[78] 7 : Success() +[78] 3 : Running(cursor=3,len=4,reason=) +[78] 8 : Running(cursor=0,len=4,reason=) +[78] 9 : Success() +[78] 8 : Running(cursor=1,len=4,reason=) +[78] 10 : Success() +[78] 8 : Running(cursor=2,len=4,reason=) +[78] 11 : Success() +[78] 8 : Running(cursor=3,len=4,reason=) +[78] 12 : Failure(reason=) +[78] 8 : Failure(cursor=3,len=4,reason=) +[78] 3 : Failure(cursor=3,len=4,reason=) +[78] 2 : Running(cursor=1,len=2) +[78] 4 : Running() +[78] 2 : Running(cursor=1,len=2) +[78] 1 : Running(cursor=0,len=1) +[79] next tick +[79] 2 : Running(cursor=0,len=2) +[79] 3 : Running(cursor=0,len=4,reason=) +[79] 5 : Success() +[79] 3 : Running(cursor=1,len=4,reason=) +[79] 6 : Success() +[79] 3 : Running(cursor=2,len=4,reason=) +[79] 7 : Success() +[79] 3 : Running(cursor=3,len=4,reason=) +[79] 8 : Running(cursor=0,len=4,reason=) +[79] 9 : Success() +[79] 8 : Running(cursor=1,len=4,reason=) +[79] 10 : Success() +[79] 8 : Running(cursor=2,len=4,reason=) +[79] 11 : Success() +[79] 8 : Running(cursor=3,len=4,reason=) +[79] 12 : Failure(reason=) +[79] 8 : Failure(cursor=3,len=4,reason=) +[79] 3 : Failure(cursor=3,len=4,reason=) +[79] 2 : Running(cursor=1,len=2) +[79] 4 : Running() +[79] 2 : Running(cursor=1,len=2) +[79] 1 : Running(cursor=0,len=1) +[80] next tick +[80] 2 : Running(cursor=0,len=2) +[80] 3 : Running(cursor=0,len=4,reason=) +[80] 5 : Success() +[80] 3 : Running(cursor=1,len=4,reason=) +[80] 6 : Success() +[80] 3 : Running(cursor=2,len=4,reason=) +[80] 7 : Success() +[80] 3 : Running(cursor=3,len=4,reason=) +[80] 8 : Running(cursor=0,len=4,reason=) +[80] 9 : Success() +[80] 8 : Running(cursor=1,len=4,reason=) +[80] 10 : Success() +[80] 8 : Running(cursor=2,len=4,reason=) +[80] 11 : Success() +[80] 8 : Running(cursor=3,len=4,reason=) +[80] 12 : Failure(reason=) +[80] 8 : Failure(cursor=3,len=4,reason=) +[80] 3 : Failure(cursor=3,len=4,reason=) +[80] 2 : Running(cursor=1,len=2) +[80] 4 : Running() +[80] 2 : Running(cursor=1,len=2) +[80] 1 : Running(cursor=0,len=1) +[81] next tick +[81] 2 : Running(cursor=0,len=2) +[81] 3 : Running(cursor=0,len=4,reason=) +[81] 5 : Success() +[81] 3 : Running(cursor=1,len=4,reason=) +[81] 6 : Success() +[81] 3 : Running(cursor=2,len=4,reason=) +[81] 7 : Success() +[81] 3 : Running(cursor=3,len=4,reason=) +[81] 8 : Running(cursor=0,len=4,reason=) +[81] 9 : Success() +[81] 8 : Running(cursor=1,len=4,reason=) +[81] 10 : Success() +[81] 8 : Running(cursor=2,len=4,reason=) +[81] 11 : Success() +[81] 8 : Running(cursor=3,len=4,reason=) +[81] 12 : Failure(reason=) +[81] 8 : Failure(cursor=3,len=4,reason=) +[81] 3 : Failure(cursor=3,len=4,reason=) +[81] 2 : Running(cursor=1,len=2) +[81] 4 : Running() +[81] 2 : Running(cursor=1,len=2) +[81] 1 : Running(cursor=0,len=1) +[82] next tick +[82] 2 : Running(cursor=0,len=2) +[82] 3 : Running(cursor=0,len=4,reason=) +[82] 5 : Success() +[82] 3 : Running(cursor=1,len=4,reason=) +[82] 6 : Success() +[82] 3 : Running(cursor=2,len=4,reason=) +[82] 7 : Success() +[82] 3 : Running(cursor=3,len=4,reason=) +[82] 8 : Running(cursor=0,len=4,reason=) +[82] 9 : Success() +[82] 8 : Running(cursor=1,len=4,reason=) +[82] 10 : Success() +[82] 8 : Running(cursor=2,len=4,reason=) +[82] 11 : Success() +[82] 8 : Running(cursor=3,len=4,reason=) +[82] 12 : Failure(reason=) +[82] 8 : Failure(cursor=3,len=4,reason=) +[82] 3 : Failure(cursor=3,len=4,reason=) +[82] 2 : Running(cursor=1,len=2) +[82] 4 : Running() +[82] 2 : Running(cursor=1,len=2) +[82] 1 : Running(cursor=0,len=1) +[83] next tick +[83] 2 : Running(cursor=0,len=2) +[83] 3 : Running(cursor=0,len=4,reason=) +[83] 5 : Success() +[83] 3 : Running(cursor=1,len=4,reason=) +[83] 6 : Success() +[83] 3 : Running(cursor=2,len=4,reason=) +[83] 7 : Success() +[83] 3 : Running(cursor=3,len=4,reason=) +[83] 8 : Running(cursor=0,len=4,reason=) +[83] 9 : Success() +[83] 8 : Running(cursor=1,len=4,reason=) +[83] 10 : Success() +[83] 8 : Running(cursor=2,len=4,reason=) +[83] 11 : Success() +[83] 8 : Running(cursor=3,len=4,reason=) +[83] 12 : Failure(reason=) +[83] 8 : Failure(cursor=3,len=4,reason=) +[83] 3 : Failure(cursor=3,len=4,reason=) +[83] 2 : Running(cursor=1,len=2) +[83] 4 : Running() +[83] 2 : Running(cursor=1,len=2) +[83] 1 : Running(cursor=0,len=1) +[84] next tick +[84] 2 : Running(cursor=0,len=2) +[84] 3 : Running(cursor=0,len=4,reason=) +[84] 5 : Success() +[84] 3 : Running(cursor=1,len=4,reason=) +[84] 6 : Success() +[84] 3 : Running(cursor=2,len=4,reason=) +[84] 7 : Success() +[84] 3 : Running(cursor=3,len=4,reason=) +[84] 8 : Running(cursor=0,len=4,reason=) +[84] 9 : Success() +[84] 8 : Running(cursor=1,len=4,reason=) +[84] 10 : Success() +[84] 8 : Running(cursor=2,len=4,reason=) +[84] 11 : Success() +[84] 8 : Running(cursor=3,len=4,reason=) +[84] 12 : Failure(reason=) +[84] 8 : Failure(cursor=3,len=4,reason=) +[84] 3 : Failure(cursor=3,len=4,reason=) +[84] 2 : Running(cursor=1,len=2) +[84] 4 : Running() +[84] 2 : Running(cursor=1,len=2) +[84] 1 : Running(cursor=0,len=1) +[85] next tick +[85] 2 : Running(cursor=0,len=2) +[85] 3 : Running(cursor=0,len=4,reason=) +[85] 5 : Success() +[85] 3 : Running(cursor=1,len=4,reason=) +[85] 6 : Success() +[85] 3 : Running(cursor=2,len=4,reason=) +[85] 7 : Success() +[85] 3 : Running(cursor=3,len=4,reason=) +[85] 8 : Running(cursor=0,len=4,reason=) +[85] 9 : Success() +[85] 8 : Running(cursor=1,len=4,reason=) +[85] 10 : Success() +[85] 8 : Running(cursor=2,len=4,reason=) +[85] 11 : Success() +[85] 8 : Running(cursor=3,len=4,reason=) +[85] 12 : Failure(reason=) +[85] 8 : Failure(cursor=3,len=4,reason=) +[85] 3 : Failure(cursor=3,len=4,reason=) +[85] 2 : Running(cursor=1,len=2) +[85] 4 : Running() +[85] 2 : Running(cursor=1,len=2) +[85] 1 : Running(cursor=0,len=1) +[86] next tick +[86] 2 : Running(cursor=0,len=2) +[86] 3 : Running(cursor=0,len=4,reason=) +[86] 5 : Success() +[86] 3 : Running(cursor=1,len=4,reason=) +[86] 6 : Success() +[86] 3 : Running(cursor=2,len=4,reason=) +[86] 7 : Success() +[86] 3 : Running(cursor=3,len=4,reason=) +[86] 8 : Running(cursor=0,len=4,reason=) +[86] 9 : Success() +[86] 8 : Running(cursor=1,len=4,reason=) +[86] 10 : Success() +[86] 8 : Running(cursor=2,len=4,reason=) +[86] 11 : Success() +[86] 8 : Running(cursor=3,len=4,reason=) +[86] 12 : Failure(reason=) +[86] 8 : Failure(cursor=3,len=4,reason=) +[86] 3 : Failure(cursor=3,len=4,reason=) +[86] 2 : Running(cursor=1,len=2) +[86] 4 : Running() +[86] 2 : Running(cursor=1,len=2) +[86] 1 : Running(cursor=0,len=1) +[87] next tick +[87] 2 : Running(cursor=0,len=2) +[87] 3 : Running(cursor=0,len=4,reason=) +[87] 5 : Success() +[87] 3 : Running(cursor=1,len=4,reason=) +[87] 6 : Success() +[87] 3 : Running(cursor=2,len=4,reason=) +[87] 7 : Success() +[87] 3 : Running(cursor=3,len=4,reason=) +[87] 8 : Running(cursor=0,len=4,reason=) +[87] 9 : Success() +[87] 8 : Running(cursor=1,len=4,reason=) +[87] 10 : Success() +[87] 8 : Running(cursor=2,len=4,reason=) +[87] 11 : Success() +[87] 8 : Running(cursor=3,len=4,reason=) +[87] 12 : Failure(reason=) +[87] 8 : Failure(cursor=3,len=4,reason=) +[87] 3 : Failure(cursor=3,len=4,reason=) +[87] 2 : Running(cursor=1,len=2) +[87] 4 : Running() +[87] 2 : Running(cursor=1,len=2) +[87] 1 : Running(cursor=0,len=1) +[88] next tick +[88] 2 : Running(cursor=0,len=2) +[88] 3 : Running(cursor=0,len=4,reason=) +[88] 5 : Success() +[88] 3 : Running(cursor=1,len=4,reason=) +[88] 6 : Success() +[88] 3 : Running(cursor=2,len=4,reason=) +[88] 7 : Success() +[88] 3 : Running(cursor=3,len=4,reason=) +[88] 8 : Running(cursor=0,len=4,reason=) +[88] 9 : Success() +[88] 8 : Running(cursor=1,len=4,reason=) +[88] 10 : Success() +[88] 8 : Running(cursor=2,len=4,reason=) +[88] 11 : Success() +[88] 8 : Running(cursor=3,len=4,reason=) +[88] 12 : Failure(reason=) +[88] 8 : Failure(cursor=3,len=4,reason=) +[88] 3 : Failure(cursor=3,len=4,reason=) +[88] 2 : Running(cursor=1,len=2) +[88] 4 : Running() +[88] 2 : Running(cursor=1,len=2) +[88] 1 : Running(cursor=0,len=1) +[89] next tick +[89] 2 : Running(cursor=0,len=2) +[89] 3 : Running(cursor=0,len=4,reason=) +[89] 5 : Success() +[89] 3 : Running(cursor=1,len=4,reason=) +[89] 6 : Success() +[89] 3 : Running(cursor=2,len=4,reason=) +[89] 7 : Success() +[89] 3 : Running(cursor=3,len=4,reason=) +[89] 8 : Running(cursor=0,len=4,reason=) +[89] 9 : Success() +[89] 8 : Running(cursor=1,len=4,reason=) +[89] 10 : Success() +[89] 8 : Running(cursor=2,len=4,reason=) +[89] 11 : Success() +[89] 8 : Running(cursor=3,len=4,reason=) +[89] 12 : Failure(reason=) +[89] 8 : Failure(cursor=3,len=4,reason=) +[89] 3 : Failure(cursor=3,len=4,reason=) +[89] 2 : Running(cursor=1,len=2) +[89] 4 : Running() +[89] 2 : Running(cursor=1,len=2) +[89] 1 : Running(cursor=0,len=1) +[90] next tick +[90] trim 12 : Some(Leaf(Name("fail_empty"), RtArgs([]))) >>> Leaf(Name("success"), RtArgs([])) +[90] 2 : Running(cursor=0,len=2) +[90] 3 : Running(cursor=0,len=4,reason=) +[90] 5 : Success() +[90] 3 : Running(cursor=1,len=4,reason=) +[90] 6 : Success() +[90] 3 : Running(cursor=2,len=4,reason=) +[90] 7 : Success() +[90] 3 : Running(cursor=3,len=4,reason=) +[90] 8 : Running(cursor=0,len=4,reason=) +[90] 9 : Success() +[90] 8 : Running(cursor=1,len=4,reason=) +[90] 10 : Success() +[90] 8 : Running(cursor=2,len=4,reason=) +[90] 11 : Success() +[90] 8 : Running(cursor=3,len=4,reason=) +[90] 12 : Success() +[90] 8 : Success(cursor=3,len=4,reason=) +[90] 3 : Success(cursor=3,len=4,reason=) +[90] 2 : Success(cursor=0,len=2) +[90] 1 : Running(cursor=0,len=1) +[90] 1 : Success(cursor=0,len=1)