Answer to ping requests

[?]
Mar 9, 2019, 6:42 AM
TPVUBB3FQ5HT2M2QHDMGKUEV2C6VIDMZDS3BA6LAITU2BIQDIN5QC

Dependencies

  • [2] FCPF2FV6 Break connection on iq error
  • [3] OGMBXBKP Move online to XmppConnection
  • [4] L3D22A5J Prepare to check incoming presence
  • [5] IK3YDPTY Update deps
  • [6] ALP2YJIU Rename XmppState to XmppProcessState
  • [7] AYQZ2UIA Update deps
  • [8] DISBBP3I Update dependencies
  • [9] VS6AHRWI Move XMPP to separate dir
  • [10] ZI4GJ72V Add message to xmpp command
  • [11] 2VZBEEXA Messages fixed
  • [12] 37OMJ4CK Send MUC message
  • [13] BWDUANCV Second part of processing result is only about stop_future
  • [14] 5OBTKGDL Update deps
  • [15] 77USPY5I Sending messages works!
  • [16] RGOSS73U Convert self-presence to xmpp_parser's type
  • [17] X6L47BHQ Use different structure for established xmpp connection
  • [18] ACXUIS63 Update dependecies
  • [19] 5GINRCKL Send ping XEP-0199
  • [20] 5IKA4GO7 Rename xmpp client field from "inner" to "client"
  • [21] XGP44R5H Rework stopping xmpp connection
  • [22] HU3NZX5Z Process self-presence via new processing code
  • [23] QTCUURXN Add additional requirement for command stream
  • [24] J7VX56FW ToDo
  • [25] FV6BJ5K6 Send self-presence and store account info in Rc so it willbe used in some future in parallel
  • [26] AA2ZWGRL Enter to MUC
  • [27] QYY3KRGL Use failure instead Box<dyn Error>
  • [28] FWJDW3G5 Allow process xmpp incoming stanzas with futures
  • [29] OANBCLN5 Move xmpp client into XmppState
  • [30] YZVEEOYT Update dependencies
  • [31] 5Y6YJ6UH Add shutdown function to make actions before offline
  • [32] V5HDBSZM Use jid for receiver address
  • [33] EOHEZXX3 Move request processing to structure
  • [34] OB3HA2MD Use Client::new_with_jid to parse jid only once
  • [35] VW7NVWAG Leave MUC properly
  • [36] NDDQQP2P Update deps
  • [37] WBU7UOQW Read chatroom from config
  • [38] EBETRYK7 Add counter for id. Check for jid in roster
  • [39] XOAM22TT Simplify xmpp incoming stanzas processing without futures
  • [40] UMTLHH77 Process commands in the separate function
  • [*] FVVPKFTL Initial commit
  • [*] HKSQO7JZ Enable hyper http server and configuration

Change contents

  • edit in src/xmpp/stanzas.rs at line 4
    [3.57]
    [3.57]
    use xmpp_parsers::ping::Ping;
  • edit in src/xmpp/stanzas.rs at line 60
    [3.909]
    [3.909]
    presence.into()
    }
    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()
    }
    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);
  • edit in src/xmpp/stanzas.rs at line 76
    [3.33]
    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()
    }
    pub fn make_pong(
    id: Option<String>,
    from: xmpp_parsers::Jid,
    to: Option<xmpp_parsers::Jid>,
    ) -> Element {
    let mut pong = Iq::from_result(None as Option<Roster>);
    pong.id = id;
    pong.from = Some(from);
    pong.to = to;
    pong.into()
    }
  • edit in src/xmpp/mod.rs at line 30
    [3.378]
    [3.1786]
    /// muc id to muc jid
    mucs: HashMap<String, xmpp_parsers::Jid>,
  • replacement in src/xmpp/mod.rs at line 150
    [3.3788][3.3024:3163]()
    fn xmpp_processing(
    mut self,
    event: &Event,
    ) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>> {
    [3.3788]
    [3.4545]
    /// Returns false on error to disconnect
    fn xmpp_processing(&mut self, event: &Event) -> bool {
  • replacement in src/xmpp/mod.rs at line 158
    [3.4751][3.3164:3255](),[3.3255][3.4842:4888](),[3.495][3.4842:4888](),[3.4842][3.4842:4888]()
    if let Some(iq) = stanza.try_into().ok() as Option<xmpp_parsers::iq::Iq> {
    if let Some(id) = iq.id {
    [3.4751]
    [3.379]
    if let Some(iq) = stanza.clone().try_into().ok() as Option<xmpp_parsers::iq::Iq> {
    if let Some(id) = iq.id.clone() {
  • edit in src/xmpp/mod.rs at line 212
    [2.1376]
    [2.1376]
    xmpp_parsers::iq::IqType::Get(element) => {
    if let Some(_ping) =
    element.try_into().ok() as Option<xmpp_parsers::ping::Ping>
    {
    let pong = stanzas::make_pong(
    iq.id,
    self.state.client.jid.clone(),
    iq.from,
    );
    self.state.data.send_queue.push_back(pong);
    }
    }
  • edit in src/xmpp/mod.rs at line 226
    [3.8488]
    [3.8488]
    } else if let Some(_presence) =
    stanza.try_into().ok() as Option<xmpp_parsers::presence::Presence>
    {
    // to do something with presence
  • replacement in src/xmpp/mod.rs at line 231
    [3.8506][3.6215:6248]()
    future::ok(self)
    [3.8506]
    [3.8539]
    true
  • replacement in src/xmpp/mod.rs at line 233
    [3.8553][3.6249:6296]()
    Event::Online => future::ok(self),
    [3.8553]
    [3.8600]
    Event::Online => true,
  • replacement in src/xmpp/mod.rs at line 236
    [3.8670][3.6297:6339]()
    future::err(self.account)
    [3.8670]
    [3.8712]
    false
  • replacement in src/xmpp/mod.rs at line 328
    [3.12288][3.9028:9096]()
    let xmpp = XmppConnection {
    [3.12288]
    [3.12356]
    let mut xmpp = XmppConnection {
  • replacement in src/xmpp/mod.rs at line 332
    [3.12531][3.9097:10390]()
    Box::new(xmpp.xmpp_processing(&event).then(|r| match r {
    Ok(mut xmpp) => {
    match stop_condition(&mut xmpp, event) {
    Ok(true) => future::ok(future::Loop::Break((
    xmpp,
    Ok(Either::A(b)),
    ))),
    Ok(false) => {
    future::ok(future::Loop::Continue((
    xmpp,
    b,
    stop_condition,
    )))
    }
    Err(_e) => future::err((
    xmpp.account,
    Ok(Either::A(b)),
    )),
    [3.12531]
    [3.13824]
    if xmpp.xmpp_processing(&event) {
    match stop_condition(&mut xmpp, event) {
    Ok(true) => future::ok(future::Loop::Break((
    xmpp,
    Ok(Either::A(b)),
    ))),
    Ok(false) => future::ok(future::Loop::Continue((
    xmpp,
    b,
    stop_condition,
    ))),
    Err(_e) => {
    future::err((xmpp.account, Ok(Either::A(b))))
  • replacement in src/xmpp/mod.rs at line 348
    [3.13920][3.10391:10716]()
    Err(account) => {
    future::err((account, Ok(Either::A(b))))
    }
    }))
    as Box<dyn Future<Item = _, Error = _>>
    [3.13920]
    [3.14245]
    } else {
    future::err((xmpp.account, Ok(Either::A(b))))
    }
  • replacement in src/xmpp/mod.rs at line 352
    [3.14290][3.10717:10808]()
    Box::new(future::err((account, Ok(Either::A(b)))))
    [3.14290]
    [3.14381]
    future::err((account, Ok(Either::A(b))))
  • replacement in src/xmpp/mod.rs at line 356
    [3.14512][3.10809:10893]()
    Box::new(if let Some(client) = a.into_inner() {
    [3.14512]
    [3.14596]
    if let Some(client) = a.into_inner() {
  • replacement in src/xmpp/mod.rs at line 366
    [3.15149][3.10894:10933]()
    })
    [3.15149]
    [3.15188]
    }
  • replacement in src/xmpp/mod.rs at line 370
    [3.15348][3.10934:11021]()
    Box::new(future::err((account, Ok(Either::A(b)))))
    [3.15348]
    [3.15435]
    future::err((account, Ok(Either::A(b))))
  • replacement in src/xmpp/mod.rs at line 373
    [3.15529][3.11022:11106]()
    Box::new(if let Some(client) = a.into_inner() {
    [3.15529]
    [3.15613]
    if let Some(client) = a.into_inner() {
  • replacement in src/xmpp/mod.rs at line 383
    [3.16146][3.11107:11146]()
    })
    [3.16146]
    [3.16185]
    }
  • edit in src/xmpp/mod.rs at line 619
    [3.3902]
    [3.12344]
    }
    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);
    }
  • edit in src/xmpp/mod.rs at line 630
    [3.12358]
    [3.23186]
    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);
    }
  • replacement in src/xmpp/mod.rs at line 639
    [3.1233][3.12366:12601](),[3.12366][3.12366:12601]()
    fn enter_mucs<F, E>(
    self,
    _stop_future: F,
    ) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>>
    where
    F: Future<Error = E> + 'static,
    E: Into<failure::Error> + 'static,
    {
    [3.12366]
    [3.12601]
    fn shutdown(self) -> impl Future<Item = (), Error = failure::Error> {
    info!("Shutdown connection");
  • edit in src/xmpp/mod.rs at line 642
    [3.12655][3.12655:12737](),[3.12655][3.12655:12737]()
    let account2 = account.clone();
    let account3 = account.clone();
  • replacement in src/xmpp/mod.rs at line 643
    [2.1445][2.1445:1492]()
    account
    .chatrooms
    [2.1445]
    [2.1492]
    state
    .data
    .mucs
  • replacement in src/xmpp/mod.rs at line 650
    [2.1613][2.1613:1792]()
    .fold(state, move |XmppState { client, mut data }, muc_jid| {
    data.counter += 1;
    let id_muc_presence = format!("id_muc_presence{}", data.counter);
    [2.1613]
    [2.1792]
    .fold(state, move |XmppState { client, data }, muc_jid| {
  • replacement in src/xmpp/mod.rs at line 652
    [2.1823][2.1823:1916](),[3.1199][3.13233:13234](),[2.1916][3.13233:13234](),[3.13233][3.13233:13234](),[3.13234][2.1917:1982]()
    stanzas::make_muc_presence(&id_muc_presence, account2.jid.clone(), muc_jid);
    info!("Sending muc presence... {:?}", muc_presence);
    [2.1823]
    [3.13299]
    stanzas::make_muc_presence_leave(account.jid.clone(), muc_jid.clone());
  • replacement in src/xmpp/mod.rs at line 654
    [3.13300][2.1983:2028](),[3.1319][3.13345:13346](),[2.2028][3.13345:13346](),[3.13345][3.13345:13346]()
    let account4 = account2.clone();
    [3.13300]
    [2.2029]
    info!("Sending muc leave presence... {:?}", muc_presence);
  • replacement in src/xmpp/mod.rs at line 660
    [2.2234][2.2234:2263]()
    account4
    [2.2234]
    [2.2263]
    e
  • replacement in src/xmpp/mod.rs at line 664
    [2.2368][2.2368:2467]()
    .map(|state| XmppConnection {
    account: account3,
    state,
    })
    [2.2368]
    [3.12130]
    .map(|_| ())
    }
    fn enter_mucs<F, E>(
    self,
    _stop_future: F,
    ) -> impl Future<Item = Self, Error = std::rc::Rc<config::Account>>
    where
    F: Future<Error = E> + 'static,
    E: Into<failure::Error> + 'static,
    {
    let XmppConnection { account, state } = self;
    let account2 = account.clone();
    let account3 = account.clone();
    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(),
    );
    info!("Sending muc presence... {:?}", muc_presence);
    let account4 = account2.clone();
    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,
    })
  • edit in src/xmpp/mod.rs at line 719
    [3.4005]
    [3.13871]
    Chatroom {
    muc_id: String,
    message: String,
    },
    Ping,
  • replacement in src/xmpp/mod.rs at line 773
    [3.24278][2.2468:2553]()
    future::err(format_err!("Command receiver is gone"))
    [3.24278]
    [3.24363]
    error!("Command receiver is gone");
    future::ok(future::Loop::Break(Some(conn)))
  • replacement in src/xmpp/mod.rs at line 787
    [3.24895][2.2554:2622]()
    future::ok(future::Loop::Break(()))
    [3.24895]
    [3.24963]
    future::ok(future::Loop::Break(Some(conn)))
  • replacement in src/xmpp/mod.rs at line 790
    [3.2257][2.2623:2713]()
    Err(_) => future::err(format_err!("Command receiver is broken")),
    [3.2257]
    [3.25109]
    Err(_) => {
    error!("Command receiver is broken");
    future::ok(future::Loop::Break(Some(conn)))
    }
  • replacement in src/xmpp/mod.rs at line 816
    [3.26249][2.2714:2782]()
    future::ok(future::Loop::Break(()))
    [3.26249]
    [3.26317]
    future::ok(future::Loop::Break(None))
  • edit in src/xmpp/mod.rs at line 824
    [3.2545]
    [3.7379]
    .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.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 66
    [3.14630][2.2783:3020]()
    .map_err(|e| e.into())
    .and_then(|s| {
    std::str::FromStr::from_str(s)
    .map_err(|e: xmpp_parsers::JidParseError| e.into())
    })
    [3.14630]
    [3.14867]
    .map_err(std::convert::Into::into)
    .and_then(|s| std::str::FromStr::from_str(s).map_err(std::convert::Into::into))
  • replacement in src/main.rs at line 71
    [3.2459][2.3021:3075]()
    match xmpp_to_res {
    Err(err) => {
    [3.2459]
    [3.14948]
    let xmpp_muc_opt = req
    .headers()
    .get("X-XMPP-Muc")
    .map(|h| h.to_str().map(std::string::ToString::to_string));
    match (xmpp_muc_opt, xmpp_to_res) {
    (None, Err(err)) => {
  • replacement in src/main.rs at line 83
    [3.15247][2.3076:3124]()
    .map_err(|e| e.into()),
    [3.15247]
    [3.15295]
    .map_err(std::convert::Into::into),
  • replacement in src/main.rs at line 86
    [3.15385][2.3125:3154]()
    Ok(xmpp_to) => {
    [3.15385]
    [3.15414]
    (None, Ok(xmpp_to)) => {
  • replacement in src/main.rs at line 89
    [3.15523][2.3155:5760]()
    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>
    [3.15523]
    [3.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>
  • replacement in src/main.rs at line 229
    [3.5155][2.5761:5805]()
    .serve(MakeServiceCmd { cmd_send })
    [3.5155]
    [3.5935]
    .serve(MakeServiceCmd {
    cmd_send: cmd_send.clone(),
    })
  • edit in src/main.rs at line 237
    [3.6049]
    [3.5562]
    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
    [43.1396]
    [43.1397]
    use std::collections::HashMap;
  • edit in src/config.rs at line 10
    [43.1549]
    [43.1549]
    #[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 39
    [3.19119]
    [43.1943]
    }
    fn deserialize_jid_map<'de, D>(
    deserializer: D,
    ) -> Result<HashMap<String, xmpp_parsers::Jid>, D::Error>
    where
    D: 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
    [42.76]
    ### 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
    [42.12201]
    [3.6543]
    # This file is automatically @generated by Cargo.
    # It is not intended for manual editing.
  • replacement in Cargo.lock at line 7
    [3.19377][2.5806:5878]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19377]
    [3.19449]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 12
    [3.6577][2.5879:5897]()
    version = "0.6.9"
    [3.6577]
    [3.6595]
    version = "0.6.10"
  • replacement in Cargo.lock at line 15
    [3.6677][2.5898:5971]()
    "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.6677]
    [3.6750]
    "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 44
    [3.8093][2.5972:6044]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8093]
    [3.8165]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 56
    [3.9017][2.6045:6064]()
    version = "0.3.13"
    [3.9017]
    [3.9035]
    version = "0.3.14"
  • replacement in Cargo.lock at line 62
    [3.4692][2.6065:6137]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.4692]
    [3.19935]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 72
    [3.9636][2.6138:6280]()
    "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)",
    [3.9636]
    [3.9778]
    "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)",
  • replacement in Cargo.lock at line 102
    [3.10568][2.6281:6299]()
    version = "0.7.2"
    [3.10568]
    [3.15479]
    version = "0.7.0"
  • replacement in Cargo.lock at line 145
    [3.11467][2.6300:6319]()
    version = "1.0.29"
    [3.11467]
    [3.11486]
    version = "1.0.30"
  • replacement in Cargo.lock at line 191
    [3.13233][2.6320:6392]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.13233]
    [3.13305]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 199
    [3.16505][2.6393:6465]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16505]
    [2.6465]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 203
    [2.6480][2.6480:7532](),[3.5022][3.21506:21521](),[2.7532][3.21506:21521](),[3.1814][3.21506:21521](),[3.21506][3.21506:21521]()
    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)",
    ]
    [[package]]
  • replacement in Cargo.lock at line 204
    [3.13561][2.7533:7551]()
    version = "0.6.3"
    [3.13561]
    [3.13579]
    version = "0.7.1"
  • replacement in Cargo.lock at line 219
    [3.22936][2.7552:7630]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.22936]
    [3.14273]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 222
    [3.14426]
    [3.14426]
    ]
    [[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 238
    [3.5170][2.7631:7709]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.5170]
    [3.7874]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 270
    [3.15825][2.7710:7729]()
    version = "0.8.15"
    [3.15825]
    [3.15844]
    version = "0.8.17"
  • replacement in Cargo.lock at line 284
    [3.8250][2.7730:7802]()
    "regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.8250]
    [3.8322]
    "regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 293
    [3.16849][2.7803:7880]()
    "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16849]
    [3.16925]
    "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 301
    [3.17057][2.7881:7958]()
    "backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.17057]
    [3.23577]
    "backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 312
    [3.23830][2.7959:8031]()
    "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23830]
    [3.8623]
    "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 364
    [3.18854][2.8032:8120]()
    "new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.18854]
    [3.18942]
    "new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 378
    [3.19271][2.8121:8196]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19271]
    [3.19346]
    "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 398
    [3.19981][2.8197:8269]()
    "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.19981]
    [3.20053]
    "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 403
    [3.24433][2.8270:8346]()
    "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.24433]
    [3.24509]
    "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 420
    [3.20551][2.8347:8419]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20551]
    [3.20623]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 426
    [3.20726][2.8420:8439]()
    version = "0.1.15"
    [3.20726]
    [3.20745]
    version = "0.1.16"
  • replacement in Cargo.lock at line 449
    [3.21397][2.8440:8460]()
    version = "0.12.23"
    [3.21397]
    [3.21417]
    version = "0.12.25"
  • replacement in Cargo.lock at line 456
    [3.24973][2.8461:8533]()
    "http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.24973]
    [3.21871]
    "http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 462
    [3.22231]
    [3.25046]
    "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 464
    [3.25118][2.8534:8607]()
    "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.25118]
    [3.25191]
    "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 466
    [3.25272][2.8608:8764]()
    "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)",
    [3.25272]
    [3.25428]
    "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)",
  • replacement in Cargo.lock at line 469
    [3.25504][2.8765:8849]()
    "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.25504]
    [3.25588]
    "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 494
    [3.23535][2.8850:8922]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.23535]
    [3.23607]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 541
    [3.25092][2.8923:8941]()
    version = "1.2.0"
    [3.25092]
    [3.25110]
    version = "1.3.0"
  • replacement in Cargo.lock at line 551
    [3.25316][2.8942:8961]()
    version = "0.2.48"
    [3.25316]
    [3.25335]
    version = "0.2.49"
  • replacement in Cargo.lock at line 596
    [3.26269][2.8962:9193]()
    "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)",
    [3.26269]
    [3.26849]
    "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)",
  • replacement in Cargo.lock at line 611
    [3.27233][2.9194:9212]()
    version = "2.1.3"
    [3.27233]
    [3.27251]
    version = "2.2.0"
  • edit in Cargo.lock at line 613
    [3.27316][2.9213:9377]()
    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 626
    [3.26843][2.9378:9455]()
    "quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.26843]
    [3.28037]
    "quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 639
    [3.10535][2.9456:9528]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.10535]
    [3.10607]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 653
    [3.29191][2.9529:9601]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29191]
    [3.29263]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 673
    [3.29899][2.9602:9752]()
    "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)",
    [3.29899]
    [3.10901]
    "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)",
  • replacement in Cargo.lock at line 676
    [3.10971][2.9753:9829]()
    "openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.10971]
    [3.30195]
    "openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 678
    [3.30275][2.9830:9985]()
    "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)",
    [3.30275]
    [3.27369]
    "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)",
  • replacement in Cargo.lock at line 682
    [3.27543][2.9986:10061]()
    "tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.27543]
    [3.30679]
    "tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 691
    [3.6091][2.10062:10134]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.6091]
    [3.30954]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 697
    [3.31073][2.10135:10153]()
    version = "1.0.1"
    [3.31073]
    [3.31091]
    version = "1.0.3"
  • edit in Cargo.lock at line 699
    [3.31156][2.10154:10251]()
    dependencies = [
    "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 720
    [3.31727][2.10252:10270]()
    version = "1.9.0"
    [3.31727]
    [3.31745]
    version = "1.10.0"
  • replacement in Cargo.lock at line 723
    [3.31827][2.10271:10343]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31827]
    [3.31899]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 733
    [3.31931][2.10344:10364]()
    version = "0.10.16"
    [3.31931]
    [3.31951]
    version = "0.10.19"
  • replacement in Cargo.lock at line 739
    [3.32261][2.10365:10594]()
    "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)",
    [3.32261]
    [3.32490]
    "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)",
  • replacement in Cargo.lock at line 751
    [3.32645][2.10595:10614]()
    version = "0.9.40"
    [3.32645]
    [3.32664]
    version = "0.9.42"
  • replacement in Cargo.lock at line 754
    [3.32746][2.10615:10757]()
    "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)",
    [3.32746]
    [3.32888]
    "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)",
  • edit in Cargo.lock at line 757
    [3.32966]
    [3.32966]
    "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 783
    [3.33693][2.10758:10830]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33693]
    [3.28433]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 786
    [3.33916][2.10831:10906]()
    "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33916]
    [3.33991]
    "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 863
    [3.35794][2.10907:10926]()
    version = "0.13.2"
    [3.35794]
    [3.35813]
    version = "0.13.3"
  • replacement in Cargo.lock at line 866
    [3.35895][2.10927:11006]()
    "encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.35895]
    [3.29454]
    "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 869
    [3.11852][2.11007:11080]()
    "memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.11852]
    [3.36191]
    "memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 892
    [3.29802][2.11081:11153]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.29802]
    [3.29874]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 903
    [3.30044][2.11154:11226]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.30044]
    [3.30116]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 910
    [3.6750][2.11227:11302]()
    "rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.6750]
    [3.30424]
    "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 958
    [3.31079][2.11303:11375]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31079]
    [3.31151]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 970
    [3.31587][2.11376:11448]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.31587]
    [3.31659]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 978
    [3.13875][2.11449:11467]()
    version = "0.1.1"
    [3.13875]
    [3.13893]
    version = "0.1.2"
  • replacement in Cargo.lock at line 981
    [3.13975][2.11468:11624]()
    "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)",
    [3.13975]
    [3.14131]
    "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)",
  • replacement in Cargo.lock at line 1016
    [3.14574][2.11625:11643]()
    version = "1.1.0"
    [3.14574]
    [3.14592]
    version = "1.1.2"
  • replacement in Cargo.lock at line 1019
    [3.14674][2.11644:11796]()
    "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)",
    [3.14674]
    [3.32456]
    "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)",
  • replacement in Cargo.lock at line 1084
    [3.42306][2.11797:11816]()
    version = "0.1.14"
    [3.42306]
    [3.42325]
    version = "0.1.15"
  • replacement in Cargo.lock at line 1087
    [3.42407][2.11817:11895]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42407]
    [3.42485]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1103
    [3.42985][2.11896:11968]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42985]
    [3.33140]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1114
    [3.43379][2.11969:12041]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43379]
    [3.43451]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1137
    [3.33476][2.12042:12116]()
    "hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.33476]
    [3.15663]
    "hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1140
    [3.33626][2.12117:12343]()
    "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)",
    [3.33626]
    [3.15881]
    "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)",
  • replacement in Cargo.lock at line 1153
    [3.44917][2.12344:12363]()
    version = "1.0.87"
    [3.44917]
    [3.44936]
    version = "1.0.89"
  • replacement in Cargo.lock at line 1158
    [3.45036][2.12364:12383]()
    version = "1.0.87"
    [3.45036]
    [3.45055]
    version = "1.0.89"
  • replacement in Cargo.lock at line 1163
    [3.34279][2.12384:12456]()
    "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.34279]
    [3.45361]
    "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1168
    [3.45396][2.12457:12476]()
    version = "1.0.38"
    [3.45396]
    [3.45415]
    version = "1.0.39"
  • replacement in Cargo.lock at line 1173
    [3.16584][2.12477:12550]()
    "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.16584]
    [3.45711]
    "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1181
    [3.45841][2.12551:12630]()
    "block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.45841]
    [3.34544]
    "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1192
    [3.46275][2.12631:12710]()
    "block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.46275]
    [3.34796]
    "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1203
    [3.46709][2.12711:12790]()
    "block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.46709]
    [3.35048]
    "block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1212
    [3.47047][2.12791:12809]()
    version = "0.1.7"
    [3.47047]
    [3.47065]
    version = "0.1.8"
  • replacement in Cargo.lock at line 1216
    [3.35373][2.12810:12882]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.35373]
    [3.47294]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1231
    [3.47552][2.12883:12901]()
    version = "0.6.8"
    [3.47552]
    [3.47570]
    version = "0.6.9"
  • edit in Cargo.lock at line 1233
    [3.47635][2.12902:12999]()
    dependencies = [
    "unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
    ]
  • replacement in Cargo.lock at line 1240
    [3.7434][2.13000:13072]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.7434]
    [3.35556]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1260
    [3.48534][2.13073:13239]()
    "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)",
    [3.48534]
    [3.35657]
    "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)",
  • replacement in Cargo.lock at line 1264
    [3.48861][2.13240:13313]()
    "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.48861]
    [3.48934]
    "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1308
    [3.50268][2.13314:13334]()
    version = "0.15.26"
    [3.50268]
    [3.50288]
    version = "0.15.27"
  • replacement in Cargo.lock at line 1331
    [3.36561][2.13335:13407]()
    "syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.36561]
    [3.51171]
    "syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1337
    [3.51282][2.13408:13426]()
    version = "3.0.6"
    [3.51282]
    [3.51300]
    version = "3.0.7"
  • replacement in Cargo.lock at line 1341
    [3.7674][2.13427:13499]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.7674]
    [3.36725]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1371
    [3.52519][2.13500:13572]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.52519]
    [3.37042]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1389
    [3.18340][2.13573:13651]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.18340]
    [3.52966]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1397
    [3.53311][2.13652:13724]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53311]
    [3.37216]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1404
    [3.53567][2.13725:13744]()
    version = "0.1.15"
    [3.53567]
    [3.53586]
    version = "0.1.16"
  • replacement in Cargo.lock at line 1410
    [3.53887][2.13745:13820]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.53887]
    [3.53962]
    "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1412
    [3.54040][2.13821:13908]()
    "tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.54040]
    [3.37394]
    "tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1414
    [3.37475][2.13909:14217]()
    "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)",
    [3.37475]
    [3.37783]
    "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)",
  • replacement in Cargo.lock at line 1419
    [3.37859][2.14218:14302]()
    "tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.37859]
    [3.37943]
    "tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1440
    [3.55308][2.14303:14379]()
    "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.55308]
    [3.55384]
    "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1445
    [3.55429][2.14380:14398]()
    version = "0.1.4"
    [3.55429]
    [3.55447]
    version = "0.1.5"
  • replacement in Cargo.lock at line 1463
    [3.55932][2.14399:14417]()
    version = "0.1.5"
    [3.55932]
    [3.55950]
    version = "0.1.6"
  • replacement in Cargo.lock at line 1467
    [3.56107][2.14418:14578]()
    "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)",
    [3.56107]
    [3.56266]
    "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)",
  • replacement in Cargo.lock at line 1473
    [3.56299][2.14579:14598]()
    version = "0.1.11"
    [3.56299]
    [3.56318]
    version = "0.1.12"
  • replacement in Cargo.lock at line 1483
    [3.56656][2.14599:14617]()
    version = "0.1.8"
    [3.56656]
    [3.56674]
    version = "0.1.9"
  • replacement in Cargo.lock at line 1488
    [3.56913][2.14618:14696]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.56913]
    [3.19941]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1491
    [3.57132][2.14697:14772]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57132]
    [3.38738]
    "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1495
    [3.38968][2.14773:14849]()
    "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.38968]
    [3.57513]
    "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)",
  • replacement in Cargo.lock at line 1505
    [3.57725][2.14850:14922]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57725]
    [3.57797]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1508
    [3.57942][2.14923:15001]()
    "signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.57942]
    [3.39196]
    "signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1510
    [3.39277][2.15002:15158]()
    "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)",
    [3.39277]
    [3.58257]
    "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)",
  • replacement in Cargo.lock at line 1517
    [3.39469][2.15159:15177]()
    version = "0.1.1"
    [3.39469]
    [3.39487]
    version = "0.1.3"
  • edit in Cargo.lock at line 1520
    [3.39569]
    [3.39569]
    "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1533
    [3.58755][2.15178:15334]()
    "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)",
    [3.58755]
    [3.58911]
    "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)",
  • replacement in Cargo.lock at line 1539
    [3.58952][2.15335:15354]()
    version = "0.1.11"
    [3.58952]
    [3.58970]
    version = "0.1.12"
  • replacement in Cargo.lock at line 1542
    [3.59052][2.15355:15597]()
    "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)",
    [3.59052]
    [3.40083]
    "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)",
  • replacement in Cargo.lock at line 1547
    [3.20673][2.15598:15673]()
    "num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.20673]
    [3.40241]
    "num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1571
    [3.60319][2.15674:15750]()
    "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.60319]
    [3.60395]
    "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1584
    [3.60896][2.15751:15907]()
    "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)",
    [3.60896]
    [3.61052]
    "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)",
  • replacement in Cargo.lock at line 1596
    [3.61406][2.15908:15980]()
    "libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.61406]
    [3.21258]
    "libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1601
    [3.21407][2.15981:16137]()
    "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)",
    [3.21407]
    [3.61927]
    "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)",
  • replacement in Cargo.lock at line 1615
    [3.62581][2.16138:16215]()
    "quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.62581]
    [3.41319]
    "quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1617
    [3.41390][2.16216:16289]()
    "tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.41390]
    [3.62802]
    "tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1619
    [3.62880][2.16290:16366]()
    "tokio-io 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.62880]
    [3.41540]
    "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1632
    [3.63560][2.16367:16440]()
    "serde 1.0.87 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.63560]
    [3.63633]
    "serde 1.0.89 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1644
    [3.64074][2.16441:16519]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.64074]
    [3.21812]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1647
    [3.42181][2.16520:16595]()
    "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.42181]
    [3.64368]
    "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1650
    [3.42338][2.16596:16752]()
    "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)",
    [3.42338]
    [3.42494]
    "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)",
  • replacement in Cargo.lock at line 1667
    [3.22340][2.16753:16831]()
    "lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.22340]
    [3.22418]
    "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
  • replacement in Cargo.lock at line 1671
    [3.42823][2.16832:16980]()
    "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)",
    [3.42823]
    [3.42971]
    "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)",
  • replacement in Cargo.lock at line 1712
    [3.43202][2.16981:17056]()
    "smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)",
    [3.43202]
    [3.43277]
    "smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)",
  • edit in Cargo.lock at line 1731
    [3.7115][2.17057:17264]()
    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 1758
    [3.68055][2.17265:17375]()
    source = "registry+https://github.com/rust-lang/crates.io-index"
    [[package]]
    name = "void"
    version = "1.0.2"
  • replacement in Cargo.lock at line 1876
    [3.44379][2.17376:17531]()
    "checksum aho-corasick 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1e9a933f4e58658d7b12defcf96dc5c720f20832deebe3e0a19efd3b6aaeeb9e"
    [3.44379]
    [3.72272]
    "checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
  • replacement in Cargo.lock at line 1882
    [3.44834][2.17532:17685]()
    "checksum backtrace 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "b5b493b66e03090ebc4343eb02f94ff944e0cbc9ac6571491d170ba026741eb5"
    [3.44834]
    [3.44987]
    "checksum backtrace 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "cd5a90e2b463010cd0e0ce9a11d4a9d5d58d9f41d4a6ba3dcaf9e68b466e88b4"
  • replacement in Cargo.lock at line 1887
    [3.45444][2.17686:17841]()
    "checksum block-buffer 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "509de513cca6d92b6aacf9c61acfe7eaa160837323a81068d690cc1f8e5740da"
    [3.45444]
    [3.45599]
    "checksum block-buffer 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49665c62e0e700857531fa5d3763e91b539ff1abeebd56808d378b495870d60d"
  • replacement in Cargo.lock at line 1893
    [3.74692][2.17842:17988]()
    "checksum cc 1.0.29 (registry+https://github.com/rust-lang/crates.io-index)" = "4390a3b5f4f6bce9c1d0c00128379df433e53777fdd30e92f16a529332baec4e"
    [3.74692]
    [3.8855]
    "checksum cc 1.0.30 (registry+https://github.com/rust-lang/crates.io-index)" = "d01c69d08ff207f231f07196e30f84c70f1c815b04f980f8b7b01ff01f05eb92"
  • replacement in Cargo.lock at line 1900
    [3.75914][2.17989:18459]()
    "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"
    [3.75914]
    [3.46678]
    "checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
  • edit in Cargo.lock at line 1902
    [3.46836]
    [3.46836]
    "checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
  • replacement in Cargo.lock at line 1907
    [3.47297][2.18460:18615]()
    "checksum encoding_rs 0.8.15 (registry+https://github.com/rust-lang/crates.io-index)" = "fd251508d65030820f3a4317af2248180db337fdb25d89967956242580277813"
    [3.47297]
    [3.9005]
    "checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed"
  • replacement in Cargo.lock at line 1926
    [3.79767][2.18616:18764]()
    "checksum http 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "1a10e5b573b9a0146545010f50772b9e8b1dd0a256564cc4307694c68832a2f5"
    [3.79767]
    [3.79915]
    "checksum http 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fe67e3678f2827030e89cc4b9e7ecd16d52f132c0b940ab5005f88e821500f6a"
  • replacement in Cargo.lock at line 1929
    [3.25390][2.18765:18915]()
    "checksum hyper 0.12.23 (registry+https://github.com/rust-lang/crates.io-index)" = "860faf61a9957c9cb0e23e69f1c8290e92f6eb660fcdd1f2d6777043a2ae1a46"
    [3.25390]
    [3.80368]
    "checksum hyper 0.12.25 (registry+https://github.com/rust-lang/crates.io-index)" = "7d5b6658b016965ae301fa995306db965c93677880ea70765a84235a96eae896"
  • replacement in Cargo.lock at line 1938
    [3.81562][2.18916:19070]()
    "checksum lazy_static 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a374c89b9db55895453a74c1e38861d9deec0b01b405a82516e9d5de4820dea1"
    [3.81562]
    [3.25847]
    "checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
  • replacement in Cargo.lock at line 1940
    [3.25998][2.19071:19219]()
    "checksum libc 0.2.48 (registry+https://github.com/rust-lang/crates.io-index)" = "e962c7641008ac010fa60a7dfdc1712449f29c44ef2d4702394aea943ee75047"
    [3.25998]
    [3.82015]
    "checksum libc 0.2.49 (registry+https://github.com/rust-lang/crates.io-index)" = "413f3dfc802c5dc91dc570b05125b6cda9855edfaa9825c9849807876376e70e"
  • replacement in Cargo.lock at line 1948
    [3.83072][2.19220:19369]()
    "checksum memchr 2.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e1dd4eaac298c32ce07eb6ed9242eda7d82955b9170b7d6db59b2e02cc63fcb8"
    [3.83072]
    [3.83221]
    "checksum memchr 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2efc7bc57c883d4a4d6e3246905283d8dae951bb3bd32f49d6ef297f546e1c39"
  • replacement in Cargo.lock at line 1956
    [3.84268][2.19370:19534]()
    "checksum new_debug_unreachable 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0cdc457076c78ab54d5e0d6fa7c47981757f1e34dc39ff92787f217dede586c4"
    [3.84268]
    [3.26595]
    "checksum new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f40f005c60db6e03bae699e414c58bf9aa7ea02a2d0b9bfbcf19286cc4c82b30"
  • replacement in Cargo.lock at line 1960
    [3.84890][2.19535:19686]()
    "checksum num_cpus 1.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5a69d464bdc213aaaff628444e99578ede64e9c854025aa43b9796530afa9238"
    [3.84890]
    [3.49573]
    "checksum num_cpus 1.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1a23f0ed30a54abaa0c7e83b1d2d87ada7c3c23078d1d87815af3e3b6385fbba"
  • replacement in Cargo.lock at line 1962
    [3.49728][2.19687:19839]()
    "checksum openssl 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "ec7bd7ca4cce6dbdc77e7c1230682740d307d1218a87fb0349a571272be749f9"
    [3.49728]
    [3.85193]
    "checksum openssl 0.10.19 (registry+https://github.com/rust-lang/crates.io-index)" = "84321fb9004c3bce5611188a644d6171f895fa2889d155927d528782edb21c5d"
  • replacement in Cargo.lock at line 1964
    [3.85349][2.19840:19995]()
    "checksum openssl-sys 0.9.40 (registry+https://github.com/rust-lang/crates.io-index)" = "1bb974e77de925ef426b6bc82fce15fd45bdcbeb5728bffcfc7cdeeb7ce1c2d6"
    [3.85349]
    [3.26746]
    "checksum openssl-sys 0.9.42 (registry+https://github.com/rust-lang/crates.io-index)" = "cb534d752bf98cf363b473950659ac2546517f9c6be9723771614ab3f03bbc9e"
  • replacement in Cargo.lock at line 1978
    [3.87364][2.19996:20149]()
    "checksum quick-xml 0.13.2 (registry+https://github.com/rust-lang/crates.io-index)" = "98d8d2d671bd29c6122a98b45ce3106391e89ba378f731274de677f1eff06e5f"
    [3.87364]
    [3.87517]
    "checksum quick-xml 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "22fcc48ecef4609b243e8c01ff4695d08ee0fc9d5bdbc54630e1a5fe8bb40953"
  • replacement in Cargo.lock at line 1990
    [3.9458][2.20150:20301]()
    "checksum rand_pcg 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "086bd09a33c7044e56bb44d5bdde5a60e7f119a9e95b0775f545de759a32fe05"
    [3.9458]
    [3.52631]
    "checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
  • replacement in Cargo.lock at line 1995
    [3.89637][2.20302:20450]()
    "checksum regex 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "37e7cbbd370869ce2e8dff25c7018702d10b21a20ef7135316f8daecd6c25b7f"
    [3.89637]
    [3.53242]
    "checksum regex 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53ee8cfdddb2e0291adfb9f13d31d3bbe0a03c9a402c01b1e24188d86c35b24f"
  • replacement in Cargo.lock at line 2003
    [3.53858][2.20451:20603]()
    "checksum schannel 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "0e1a231dc10abf6749cfa5d7767f25888d484201accbd919b66ab5413c502d56"
    [3.53858]
    [3.91159]
    "checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339"
  • replacement in Cargo.lock at line 2009
    [3.91943][2.20604:21063]()
    "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"
    [3.91943]
    [3.54645]
    "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"
  • replacement in Cargo.lock at line 2015
    [3.55087][2.21064:21218]()
    "checksum signal-hook 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1f272d1b7586bec132ed427f532dd418d8beca1ca7f2caf7df35569b1415a4b4"
    [3.55087]
    [3.92998]
    "checksum signal-hook 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "97a47ae722318beceb0294e6f3d601205a1e6abaa4437d9d33e3a212233e3021"
  • replacement in Cargo.lock at line 2018
    [3.55389][2.21219:21370]()
    "checksum smallvec 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "88aea073965ab29f6edb5493faf96ad662fb18aa9eeb186a3b7057951605ed15"
    [3.55389]
    [3.93448]
    "checksum smallvec 0.6.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c4488ae950c49d403731982257768f48fada354a5203fe81f9bb6f43ca9002be"
  • replacement in Cargo.lock at line 2028
    [3.94685][2.21371:21519]()
    "checksum syn 0.15.26 (registry+https://github.com/rust-lang/crates.io-index)" = "f92e629aa1d9c827b2bb8297046c1ccffc57c99b947a680d3ccff1f136a3bee9"
    [3.94685]
    [3.94833]
    "checksum syn 0.15.27 (registry+https://github.com/rust-lang/crates.io-index)" = "525bd55255f03c816e5d7f615587bd13030c7103354fadb104993dcee6a788ec"
  • replacement in Cargo.lock at line 2031
    [3.29644][2.21520:21671]()
    "checksum tempfile 3.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "37daa55a7240c4931c84559f03b3cad7d19535840d1c4a0cc4e9b2fb0dcf70ff"
    [3.29644]
    [3.56141]
    "checksum tempfile 3.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b86c784c88d98c801132806dadd3819ed29d8600836c4088e855cdf3e178ed8a"
  • replacement in Cargo.lock at line 2038
    [3.56440][2.21672:21821]()
    "checksum tokio 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "e0500b88064f08bebddd0c0bed39e19f5c567a5f30975bee52b0c0d3e2eeb38c"
    [3.56440]
    [3.30254]
    "checksum tokio 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "fcaabb3cec70485d0df6e9454fe514393ad1c4070dee8915f11041e95630b230"
  • replacement in Cargo.lock at line 2041
    [3.96655][2.21822:21985]()
    "checksum tokio-current-thread 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "331c8acc267855ec06eb0c94618dcbbfea45bed2d20b77252940095273fb58f6"
    [3.96655]
    [3.56590]
    "checksum tokio-current-thread 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c756b04680eea21902a46fca4e9f410a2332c04995af590e07ff262e2193a9a3"
  • replacement in Cargo.lock at line 2043
    [3.56747][2.21986:22445]()
    "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"
    [3.56747]
    [3.30731]
    "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"
  • replacement in Cargo.lock at line 2047
    [3.30886][2.22446:22599]()
    "checksum tokio-sync 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3742b64166c1ee9121f1921aea5a726098458926a6b732d906ef23b1f3ef6f4f"
    [3.30886]
    [3.57360]
    "checksum tokio-sync 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1bf2b9dac2a0509b5cfd1df5aa25eafacb616a42a491a13604d6bbeab4486363"
  • replacement in Cargo.lock at line 2049
    [3.57512][2.22600:22760]()
    "checksum tokio-threadpool 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c3fd86cb15547d02daa2b21aadaf4e37dee3368df38a526178a5afa3c034d2fb"
    [3.57512]
    [3.57672]
    "checksum tokio-threadpool 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "742e511f6ce2298aeb86fc9ea0d8df81c2388c6ebae3dc8a7316e8c9df0df801"
  • edit in Cargo.lock at line 2067
    [3.100517][2.22761:22915]()
    "checksum unreachable 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "382810877fe448991dfc7f0dd6e3ae5d58088fd0ea5e35189655f84e6814fa56"
  • edit in Cargo.lock at line 2072
    [3.101417][2.22916:23063]()
    "checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"