Break connection on iq error
[?]
Mar 8, 2019, 8:51 PM
FCPF2FV6SMQEZPLLJP3HIKFCR3CTGUOWPTF6DOHIEJ5EB3CQRZ6QCDependencies
- [2]
5GINRCKLSend ping XEP-0199 - [3]
RGOSS73UConvert self-presence to xmpp_parser's type - [4]
5OBTKGDLUpdate deps - [5]
QWE26TMVupdate deps - [6]
5IKA4GO7Rename xmpp client field from "inner" to "client" - [7]
IK3YDPTYUpdate deps - [8]
6E5IC33ZTry to test 2018 edition - [9]
2VZBEEXAMessages fixed - [10]
FV6BJ5K6Send self-presence and store account info in Rc so it willbe used in some future in parallel - [11]
FVVPKFTLInitial commit - [12]
EOHEZXX3Move request processing to structure - [13]
VW7NVWAGLeave MUC properly - [14]
5Y6YJ6UHAdd shutdown function to make actions before offline - [15]
HU3NZX5ZProcess self-presence via new processing code - [16]
CBWCXUZZPrepare adding new items to roster - [17]
AYQZ2UIAUpdate deps - [18]
L3D22A5JPrepare to check incoming presence - [19]
WBU7UOQWRead chatroom from config - [20]
NDDQQP2PUpdate deps - [21]
YZVEEOYTUpdate dependencies - [22]
ZI4GJ72VAdd message to xmpp command - [23]
5A5UVGNMMove receiver closing logic out of xmpp processing - [24]
AA2ZWGRLEnter to MUC - [25]
HKSQO7JZEnable hyper http server and configuration - [26]
ACXUIS63Update dependecies - [27]
QYY3KRGLUse failure instead Box<dyn Error> - [28]
OGMBXBKPMove online to XmppConnection - [29]
SYH7UQP6Make xmpp command enum to allow different commands Save subscription ask status. Don't ask if already requested subscription. - [30]
37OMJ4CKSend MUC message - [31]
X6L47BHQUse different structure for established xmpp connection - [32]
MAC6WCSXFix pipelines - [33]
V5HDBSZMUse jid for receiver address - [34]
VS6AHRWIMove XMPP to separate dir - [35]
J7VX56FWToDo - [36]
OB3HA2MDUse Client::new_with_jid to parse jid only once - [37]
DISBBP3IUpdate dependencies
Change contents
- edit in src/xmpp/stanzas.rs at line 4
use xmpp_parsers::ping::Ping; - edit in src/xmpp/stanzas.rs at line 60
}pub fn make_muc_message(to: xmpp_parsers::Jid, text: String) -> Element {let mut message = Message::new(Some(to.into_bare_jid()));message.bodies.insert(String::new(), Body(text));message.type_ = MessageType::Groupchat;message.into() - edit in src/xmpp/stanzas.rs at line 61
pub fn make_muc_presence_leave(from: xmpp_parsers::Jid, to: xmpp_parsers::Jid) -> Element {let mut presence = Presence::new(PresenceType::Unavailable);presence.from = Some(from);presence.to = Some(to);presence.into()}pub fn make_ping(id: &str, from: xmpp_parsers::Jid) -> Element {let mut ping = Iq::from_get(Ping);ping.id = Some(id.to_string());ping.to = Some(from.clone().into_domain_jid());ping.from = Some(from);ping.into()} - edit in src/xmpp/mod.rs at line 30
/// muc id to muc jidmucs: HashMap<String, xmpp_parsers::Jid>, - replacement in src/xmpp/mod.rs at line 185[3.6026]→[3.6026:6271](∅→∅),[3.6026]→[3.6026:6271](∅→∅),[3.6026]→[3.6026:6271](∅→∅),[3.6026]→[3.6026:6271](∅→∅),[3.6271]→[3.4114:4435](∅→∅),[3.4435]→[3.1018:1071](∅→∅),[3.1071]→[3.5885:5926](∅→∅),[3.5885]→[3.5885:5926](∅→∅),[3.5926]→[3.8083:8153](∅→∅),[3.5586]→[3.8083:8153](∅→∅),[3.820]→[3.8083:8153](∅→∅),[3.2740]→[3.8083:8153](∅→∅),[3.8083]→[3.8083:8153](∅→∅),[3.8153]→[3.5927:6068](∅→∅),[3.6068]→[3.1072:1161](∅→∅)
if let xmpp_parsers::iq::IqType::Set(element) = iq.payload {if let Some(roster) =element.try_into().ok() as Option<xmpp_parsers::roster::Roster>{for i in roster.items {if let Some(ref mut rdata) = self.state.data.roster.get_mut(&i.jid){info!("Update {} in roster", i.jid);rdata.0 = i.subscription;rdata.1 = i.ask;} else {info!("Add {} to roster", i.jid);self.state.data.roster.insert(i.jid.clone(), (i.subscription, i.ask));match iq.payload {xmpp_parsers::iq::IqType::Set(element) => {if let Some(roster) =element.try_into().ok() as Option<xmpp_parsers::roster::Roster>{for i in roster.items {if let Some(ref mut rdata) =self.state.data.roster.get_mut(&i.jid){info!("Update {} in roster", i.jid);rdata.0 = i.subscription;rdata.1 = i.ask;} else {info!("Add {} to roster", i.jid);self.state.data.roster.insert(i.jid.clone(), (i.subscription, i.ask));}self.process_jid(&i.jid); - edit in src/xmpp/mod.rs at line 206
self.process_jid(&i.jid); - edit in src/xmpp/mod.rs at line 208
xmpp_parsers::iq::IqType::Error(e) => {error!("iq error: {:?}", e);return false;}_ => (), // ignore - edit in src/xmpp/mod.rs at line 610
XmppCommand::Chatroom { muc_id, message } => {if let Some(muc) = self.state.data.mucs.get(&muc_id) {self.state.data.send_queue.push_back(stanzas::make_muc_message(muc.clone(), message));} else {error!("Not found MUC {}", muc_id);}}XmppCommand::Ping => {self.state.data.counter += 1;let id_ping = format!("id_ping{}", self.state.data.counter);let ping = stanzas::make_ping(&id_ping, self.state.client.jid.clone());self.state.data.send_queue.push_back(ping);} - edit in src/xmpp/mod.rs at line 611
}fn shutdown(self) -> impl Future<Item = (), Error = failure::Error> {info!("Shutdown connection");let XmppConnection { account, state } = self;stream::iter_ok(state.data.mucs.values().map(std::clone::Clone::clone).collect::<Vec<_>>(),).fold(state, move |XmppState { client, data }, muc_jid| {let muc_presence =stanzas::make_muc_presence_leave(account.jid.clone(), muc_jid.clone());info!("Sending muc leave presence... {:?}", muc_presence);use tokio::prelude::Sink;client.send(Packet::Stanza(muc_presence)).map_err(|e| {error!("Error on send muc presence: {}", e);e}).and_then(|client| future::ok(XmppState { client, data }))}).map(|_| ()) - replacement in src/xmpp/mod.rs at line 626
stream::iter_ok(account.chatrooms.clone()).fold(state, move |XmppState { client, mut data }, muc_jid| {data.counter += 1;let id_muc_presence = format!("id_muc_presence{}", data.counter);let muc_presence = stanzas::make_muc_presence(&id_muc_presence,account2.jid.clone(),muc_jid.1.clone(),);stream::iter_ok(account.chatrooms.values().map(std::clone::Clone::clone).collect::<Vec<_>>(),).fold(state, move |XmppState { client, mut data }, muc_jid| {data.counter += 1;let id_muc_presence = format!("id_muc_presence{}", data.counter);let muc_presence =stanzas::make_muc_presence(&id_muc_presence, account2.jid.clone(), muc_jid); - replacement in src/xmpp/mod.rs at line 639
info!("Sending muc presence... {:?}", muc_presence);info!("Sending muc presence... {:?}", muc_presence); - replacement in src/xmpp/mod.rs at line 641
let account4 = account2.clone();let account4 = account2.clone(); - replacement in src/xmpp/mod.rs at line 643
use tokio::prelude::Sink;client.send(Packet::Stanza(muc_presence)).map_err(|e| {error!("Error on send muc presence: {}", e);account4}).and_then(|client| {data.mucs.insert(muc_jid.0, muc_jid.1);future::ok(XmppState { client, data })})}).map(|state| XmppConnection {account: account3,state,})use tokio::prelude::Sink;client.send(Packet::Stanza(muc_presence)).map_err(|e| {error!("Error on send muc presence: {}", e);account4}).and_then(|client| future::ok(XmppState { client, data }))}).map(|state| XmppConnection {account: account3,state,}) - edit in src/xmpp/mod.rs at line 665
Chatroom {muc_id: String,message: String,},Ping, - replacement in src/xmpp/mod.rs at line 714
error!("Command receiver is gone");future::ok(future::Loop::Break(Some(conn)))future::err(format_err!("Command receiver is gone")) - replacement in src/xmpp/mod.rs at line 727
future::ok(future::Loop::Break(Some(conn)))future::ok(future::Loop::Break(())) - edit in src/xmpp/mod.rs at line 729[3.24993]→[3.24993:25019](∅→∅),[3.24993]→[3.24993:25019](∅→∅),[3.24993]→[3.24993:25019](∅→∅),[3.24993]→[3.24993:25019](∅→∅),[3.24993]→[3.24993:25019](∅→∅),[3.24993]→[3.24993:25019](∅→∅),[3.25019]→[2.2057:2231](∅→∅)
}Err(_) => {error!("Command receiver is broken");future::ok(future::Loop::Break(Some(conn))) - edit in src/xmpp/mod.rs at line 730
Err(_) => future::err(format_err!("Command receiver is broken")), - replacement in src/xmpp/mod.rs at line 753
future::ok(future::Loop::Break(None))future::ok(future::Loop::Break(())) - edit in src/xmpp/mod.rs at line 760
}).and_then(|opt_conn| {if let Some(conn) = opt_conn {Box::new(conn.shutdown()) as Box<dyn Future<Item = (), Error = _>>} else {Box::new(future::ok(()))} - edit in src/main.rs at line 37[3.4337]→[3.13949:13950](∅→∅),[3.13950]→[3.1995:2109](∅→∅),[3.2109]→[3.315:358](∅→∅),[3.358]→[3.2140:2314](∅→∅),[3.2140]→[3.2140:2314](∅→∅)
fn body_to_string(req: Request<Body>) -> impl Future<Item = String, Error = failure::Error> {req.into_body().map_err(std::convert::Into::into).fold(String::new(), |mut acc, ch| {std::str::from_utf8(&*ch).map(|s| {acc.push_str(s);acc})})} - replacement in src/main.rs at line 55
.map_err(std::convert::Into::into).and_then(|s| std::str::FromStr::from_str(s).map_err(std::convert::Into::into)).map_err(|e| e.into()).and_then(|s| {std::str::FromStr::from_str(s).map_err(|e: xmpp_parsers::JidParseError| e.into())}) - edit in src/main.rs at line 62[3.14893]→[3.14893:14894](∅→∅),[3.14893]→[3.14893:14894](∅→∅),[3.14894]→[3.2316:2401](∅→∅),[3.2401]→[3.479:551](∅→∅)
let xmpp_muc_opt = req.headers().get("X-XMPP-Muc").map(|h| h.to_str().map(std::string::ToString::to_string)); - replacement in src/main.rs at line 63
match (xmpp_muc_opt, xmpp_to_res) {(None, Err(err)) => {match xmpp_to_res {Err(err) => { - replacement in src/main.rs at line 70
.map_err(std::convert::Into::into),.map_err(|e| e.into()), - replacement in src/main.rs at line 73
(None, Ok(xmpp_to)) => {Ok(xmpp_to) => { - replacement in src/main.rs at line 76[3.15523]→[3.2576:3856](∅→∅),[3.3856]→[3.613:681](∅→∅),[3.681]→[3.3912:4267](∅→∅),[3.3912]→[3.3912:4267](∅→∅),[3.4267]→[3.682:750](∅→∅),[3.750]→[3.4323:4534](∅→∅),[3.4323]→[3.4323:4534](∅→∅),[3.4534]→[3.18122:18136](∅→∅),[3.18122]→[3.18122:18136](∅→∅),[3.18136]→[3.4535:5970](∅→∅),[3.5970]→[3.751:819](∅→∅),[3.819]→[3.6026:6381](∅→∅),[3.6026]→[3.6026:6381](∅→∅),[3.6381]→[3.820:888](∅→∅),[3.888]→[3.6437:7006](∅→∅),[3.6437]→[3.6437:7006](∅→∅),[3.7006]→[3.889:949](∅→∅),[3.949]→[3.7054:7130](∅→∅),[3.7054]→[3.7054:7130](∅→∅)
Box::new(body_to_string(req).and_then(move |message: String| {if !message.is_empty() {Box::new(cmd_send.clone().send(XmppCommand::Chat { xmpp_to, message }).then(|r| match r {Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted",))),Err(e) => {error!("Command sent error: {}", e);tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Command sent error: {}",e))),)}}).map_err(std::convert::Into::into),)} else {warn!("Empty message");Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from("Empty message")).map_err(std::convert::Into::into),))as Box<dyn Future<Item = _, Error = _> + Send + 'static>}})) as Box<dyn Future<Item = _, Error = _> + Send + 'static>}(Some(Ok(muc_id)), _) => {info!("Got MUC request. Reading body...");let cmd_send = self.cmd_send.clone();Box::new(body_to_string(req).and_then(move |message: String| {if !message.is_empty() {Box::new(cmd_send.clone().send(XmppCommand::Chatroom { muc_id, message }).then(|r| match r {Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted",))),Err(e) => {error!("Command sent error: {}", e);tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Command sent error: {}",e))),)}}).map_err(std::convert::Into::into),)} else {warn!("Empty message");Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from("Empty message")).map_err(std::convert::Into::into),))as Box<dyn Future<Item = _, Error = _> + Send + 'static>}})) as Box<dyn Future<Item = _, Error = _> + Send + 'static>}(Some(Err(err)), _) => {warn!("Unknown MUC destination: {}", err);Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Unknown MUC destination: {}", err))).map_err(std::convert::Into::into),)) as Box<dyn Future<Item = _, Error = _> + Send + 'static>Box::new(req.into_body().map_err(|e| e.into()).fold(String::new(), |mut acc, ch| {std::str::from_utf8(&*ch).map(|s| {acc.push_str(s);acc})}).and_then(move |message: String| {if !message.is_empty() {Box::new(cmd_send.clone().send(XmppCommand::Chat { xmpp_to, message }).then(|r| match r {Ok(_) => tokio::prelude::future::ok(Response::new(Body::from("Accepted"),)),Err(e) => {error!("Command sent error: {}", e);tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from(format!("Command sent error: {}",e))),)}}).map_err(|e| e.into()),)} else {warn!("Empty message");Box::new(tokio::prelude::future::result(Response::builder().status(hyper::StatusCode::BAD_REQUEST).body(Body::from("Empty message")).map_err(|e| e.into()),))as Box<dyn Future<Item = _, Error = _> + Send + 'static>}}),) as Box<dyn Future<Item = _, Error = _> + Send + 'static> - replacement in src/main.rs at line 178
.serve(MakeServiceCmd {cmd_send: cmd_send.clone(),}).serve(MakeServiceCmd { cmd_send }) - edit in src/main.rs at line 184
if let Some(ping) = config.account.ping {let ping = tokio::timer::Interval::new_interval(std::time::Duration::from_secs(ping));rt.spawn(ping.map_err(|e| {error!("Ping error: {}", e);}).for_each(move |_| {cmd_send.clone().send(XmppCommand::Ping).map_err(|e| {error!("Ping command error: {}", e);}).map(|_| ())}).select(ctrl_c.clone().map(|_| ()).map_err(|e| error!("ping server error: {}", e)),).map(|_| ()).map_err(|_| ()),);} - edit in src/config.rs at line 0
use std::collections::HashMap; - edit in src/config.rs at line 9
#[serde(default, deserialize_with = "deserialize_jid_map")]pub chatrooms: HashMap<String, xmpp_parsers::Jid>,pub ping: Option<u64>, - edit in src/config.rs at line 35
}fn deserialize_jid_map<'de, D>(deserializer: D,) -> Result<HashMap<String, xmpp_parsers::Jid>, D::Error>whereD: serde::Deserializer<'de>,{use serde::Deserialize;let s = HashMap::<String, String>::deserialize(deserializer)?;let size = s.len();s.into_iter().map(|(k, v)| (k, std::str::FromStr::from_str(&v))).take_while(|(_k, r)| r.is_ok()).fold(Ok(HashMap::with_capacity(size)), |res, (k, r)| match res {Ok(mut res) => match r {Ok(v) => {res.insert(k, v);Ok(res)}Err(e) => Err(e),},Err(e) => Err(e),}).map_err(serde::de::Error::custom) - edit in README.md at line 0
### XMPP client daemon#### Sending messages```curl http://localhost:8083/ -H "X-XMPP-To: some@domain.org" -d "Test"```#### Sending messages to MUC```curl http://localhost:8083/ -H "X-XMPP-Muc: smac" -d "Test"``` - edit in Cargo.lock at line 0
# This file is automatically @generated by Cargo.# It is not intended for manual editing. - replacement in Cargo.lock at line 5
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 10
version = "0.6.10"version = "0.6.9" - replacement in Cargo.lock at line 13
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 42
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 54
version = "0.3.14"version = "0.3.13" - replacement in Cargo.lock at line 60
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 70
"cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 100
version = "0.7.0"version = "0.7.2" - replacement in Cargo.lock at line 143
version = "1.0.30"version = "1.0.29" - replacement in Cargo.lock at line 189
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 197
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",][[package]]name = "crossbeam"version = "0.6.0"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-epoch 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)","parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",][[package]]name = "crossbeam-channel"version = "0.3.8"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 226
version = "0.7.1"version = "0.6.3" - replacement in Cargo.lock at line 241
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 244
][[package]]name = "crossbeam-queue"version = "0.1.2"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["crossbeam-utils 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 252
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 284
version = "0.8.17"version = "0.8.15" - replacement in Cargo.lock at line 298
"regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)","regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 307
"backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)","backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 315
"backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)","backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 326
"syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 378
"new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)","new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 392
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 412
"http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 417
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 434
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 440
version = "0.1.16"version = "0.1.15" - replacement in Cargo.lock at line 463
version = "0.12.25"version = "0.12.23" - replacement in Cargo.lock at line 470
"http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 476
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 477
"tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 479
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 482
"tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 507
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 554
version = "1.3.0"version = "1.2.0" - replacement in Cargo.lock at line 564
version = "0.2.49"version = "0.2.48" - replacement in Cargo.lock at line 609
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 624
version = "2.2.0"version = "2.1.3" - edit in Cargo.lock at line 626
dependencies = ["cfg-if 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 643
"quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)","quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 656
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 670
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 690
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 693
"openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)","openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 695
"openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)","schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)","schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 699
"tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)","tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 708
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 714
version = "1.0.3"version = "1.0.1" - edit in Cargo.lock at line 716
dependencies = ["unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 740
version = "1.10.0"version = "1.9.0" - replacement in Cargo.lock at line 743
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 753
version = "0.10.19"version = "0.10.16" - replacement in Cargo.lock at line 759[3.32261]→[3.5373:5451](∅→∅),[3.5451]→[2.6311:6383](∅→∅),[2.6383]→[3.5523:5602](∅→∅),[3.5523]→[3.5523:5602](∅→∅)
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)","openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 771
version = "0.9.42"version = "0.9.40" - replacement in Cargo.lock at line 774
"cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 777
"rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 802
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 805
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 882
version = "0.13.3"version = "0.13.2" - replacement in Cargo.lock at line 885
"encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)","encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 888
"memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 911
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 922
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 929
"rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)","rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 977
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 989
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 997
version = "0.1.2"version = "0.1.1" - replacement in Cargo.lock at line 1000
"autocfg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)","rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)","rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)","rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1035
version = "1.1.2"version = "1.1.0" - replacement in Cargo.lock at line 1038
"aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)","aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1103
version = "0.1.15"version = "0.1.14" - replacement in Cargo.lock at line 1106
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1122
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1133
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1156
"hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)","hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1159
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1172
version = "1.0.89"version = "1.0.87" - replacement in Cargo.lock at line 1177
version = "1.0.89"version = "1.0.87" - replacement in Cargo.lock at line 1182
"syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1187
version = "1.0.39"version = "1.0.38" - replacement in Cargo.lock at line 1192
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1200
"block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)","block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1211
"block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)","block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1222
"block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)","block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1231
version = "0.1.8"version = "0.1.7" - replacement in Cargo.lock at line 1235
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1250
version = "0.6.9"version = "0.6.8" - edit in Cargo.lock at line 1252
dependencies = ["unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",] - replacement in Cargo.lock at line 1262
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1282
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)","new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1286
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1330
version = "0.15.27"version = "0.15.26" - replacement in Cargo.lock at line 1353
"syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)","syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1359
version = "3.0.7"version = "3.0.6" - replacement in Cargo.lock at line 1363
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1393
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1411
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1419
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1426
version = "0.1.16"version = "0.1.15" - replacement in Cargo.lock at line 1432
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1434
"tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)","tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1436
"tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)","tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio-sync 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1441
"tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1462
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1467
version = "0.1.5"version = "0.1.4" - replacement in Cargo.lock at line 1485
version = "0.1.6"version = "0.1.5" - replacement in Cargo.lock at line 1489
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1495
version = "0.1.12"version = "0.1.11" - replacement in Cargo.lock at line 1505
version = "0.1.9"version = "0.1.8" - replacement in Cargo.lock at line 1510
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1513
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1517
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1526
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1529
"signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)","signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1531
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1538
version = "0.1.3"version = "0.1.1" - edit in Cargo.lock at line 1541
"fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1553
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1559
version = "0.1.12"version = "0.1.11" - replacement in Cargo.lock at line 1562
"crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)","crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1568
"num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)","num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1592
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1605
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1617
"libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)","libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1622
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1636
"quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)","quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1638
"tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1640
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1653
"serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)","serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1665
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1668
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1671
"tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)","tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1688
"lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)","lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1692
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)","tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", - replacement in Cargo.lock at line 1733
"smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)","smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", - edit in Cargo.lock at line 1752
name = "unreachable"version = "1.0.0"source = "registry+https://github.com/rust-lang/crates.io-index"dependencies = ["void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",][[package]] - edit in Cargo.lock at line 1787
source = "registry+https://github.com/rust-lang/crates.io-index"[[package]]name = "void"version = "1.0.2" - replacement in Cargo.lock at line 1910
"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5""checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e" - replacement in Cargo.lock at line 1916
"checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4""checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5" - replacement in Cargo.lock at line 1921
"checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d""checksum block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "509de513cca6d92b6aacf9c61acfe7eaa160837323a81068d690cc1f8e5740da" - replacement in Cargo.lock at line 1927
"checksum cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92""checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e" - replacement in Cargo.lock at line 1934
"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71""checksum crossbeam 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ad4c7ea749d9fb09e23c5cb17e3b70650860553a0e2744e38446b1803bf7db94""checksum crossbeam-channel 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f0ed1a4de2235cabda8558ff5840bffb97fcb64c97827f354a451307df5f72b""checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13" - edit in Cargo.lock at line 1938
"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" - replacement in Cargo.lock at line 1942
"checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed""checksum encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)" = "fd251508d65030820f3a4317af2248180db337fdb25d89967956242580277813" - replacement in Cargo.lock at line 1961
"checksum http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a""checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5" - replacement in Cargo.lock at line 1964
"checksum hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896""checksum hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)" = "860faf61a9957c9cb0e23e69f1c8290e92f6eb660fcdd1f2d6777043a2ae1a46" - replacement in Cargo.lock at line 1973
"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14""checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1" - replacement in Cargo.lock at line 1975
"checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e""checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047" - replacement in Cargo.lock at line 1983
"checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39""checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8" - replacement in Cargo.lock at line 1991
"checksum new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f40f005c60db6e03bae699e414c58bf9aa7ea02a2d0b9bfbcf19286cc4c82b30""checksum new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cdc457076c78ab54d5e0d6fa7c47981757f1e34dc39ff92787f217dede586c4" - replacement in Cargo.lock at line 1995
"checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba""checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238" - replacement in Cargo.lock at line 1997
"checksum openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)" = "84321fb9004c3bce5611188a644d6171f895fa2889d155927d528782edb21c5d""checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9" - replacement in Cargo.lock at line 1999
"checksum openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cb534d752bf98cf363b473950659ac2546517f9c6be9723771614ab3f03bbc9e""checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6" - replacement in Cargo.lock at line 2013
"checksum quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "22fcc48ecef4609b243e8c01ff4695d08ee0fc9d5bdbc54630e1a5fe8bb40953""checksum quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98d8d2d671bd29c6122a98b45ce3106391e89ba378f731274de677f1eff06e5f" - replacement in Cargo.lock at line 2025
"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44""checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05" - replacement in Cargo.lock at line 2030
"checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f""checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f" - replacement in Cargo.lock at line 2038
"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339""checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56" - replacement in Cargo.lock at line 2044
"checksum serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "92514fb95f900c9b5126e32d020f5c6d40564c27a5ea6d1d7d9f157a96623560""checksum serde_derive 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6eabf4b5914e88e24eea240bb7c9f9a2cbc1bbbe8d961d381975ec3c6b806c""checksum serde_json 1.0.39 (registry+https://github.com/rust-lang/crates.io-index)" = "5a23aa71d4a4d43fdbfaac00eff68ba8a06a51759a89ac3304323e800c4dd40d""checksum serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "2e20fde37801e83c891a2dc4ebd3b81f0da4d1fb67a9e0a2a3b921e2536a58ee""checksum serde_derive 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)" = "633e97856567e518b59ffb2ad7c7a4fd4c5d91d9c7f32dd38a27b2bf7e8114ea""checksum serde_json 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "27dce848e7467aa0e2fcaf0a413641499c0b745452aaca1194d24dedde9e13c9" - replacement in Cargo.lock at line 2050
"checksum signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "97a47ae722318beceb0294e6f3d601205a1e6abaa4437d9d33e3a212233e3021""checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4" - replacement in Cargo.lock at line 2053
"checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be""checksum smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "88aea073965ab29f6edb5493faf96ad662fb18aa9eeb186a3b7057951605ed15" - replacement in Cargo.lock at line 2063
"checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec""checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9" - replacement in Cargo.lock at line 2066
"checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a""checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff" - replacement in Cargo.lock at line 2073
"checksum tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcaabb3cec70485d0df6e9454fe514393ad1c4070dee8915f11041e95630b230""checksum tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "e0500b88064f08bebddd0c0bed39e19f5c567a5f30975bee52b0c0d3e2eeb38c" - replacement in Cargo.lock at line 2076
"checksum tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3""checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6" - replacement in Cargo.lock at line 2078
"checksum tokio-fs 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe6dc22b08d6993916647d108a1a7d15b9cd29c4f4496c62b92c45b5041b7af""checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926""checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce""checksum tokio-fs 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0e9cbbc8a3698b7ab652340f46633364f9eaa928ddaaee79d8b8f356dd79a09d""checksum tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b53aeb9d3f5ccf2ebb29e19788f96987fa1355f8fe45ea193928eaaaf3ae820f""checksum tokio-reactor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afbcdb0f0d2a1e4c440af82d7bbf0bf91a8a8c0575bcd20c05d15be7e9d3a02f" - replacement in Cargo.lock at line 2082
"checksum tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1bf2b9dac2a0509b5cfd1df5aa25eafacb616a42a491a13604d6bbeab4486363""checksum tokio-sync 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3742b64166c1ee9121f1921aea5a726098458926a6b732d906ef23b1f3ef6f4f" - replacement in Cargo.lock at line 2084
"checksum tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801""checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb" - edit in Cargo.lock at line 2102
"checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56" - edit in Cargo.lock at line 2108
"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"