diff --git a/AUTHORS b/AUTHORS index f7dad660..997dc887 100644 --- a/AUTHORS +++ b/AUTHORS @@ -20,3 +20,4 @@ bbb651 Julius Rüberg janbrummer Alisson Lauffer +Riley Smith diff --git a/Cargo.lock b/Cargo.lock index 38e02650..ddb337e9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -17,17 +17,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "aes" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", -] - [[package]] name = "aes" version = "0.7.5" @@ -41,35 +30,14 @@ dependencies = [ ] [[package]] -name = "aes-ctr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7729c3cde54d67063be556aeac75a81330d802f0259500ca40cb52967f975763" -dependencies = [ - "aes-soft", - "aesni", - "cipher 0.2.5", - "ctr", -] - -[[package]] -name = "aes-soft" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" -dependencies = [ - "cipher 0.2.5", - "opaque-debug", -] - -[[package]] -name = "aesni" -version = "0.10.0" +name = "aes" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ - "cipher 0.2.5", - "opaque-debug", + "cfg-if", + "cipher 0.4.4", + "cpufeatures", ] [[package]] @@ -83,14 +51,14 @@ dependencies = [ [[package]] name = "alsa" -version = "0.6.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b" +checksum = "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43" dependencies = [ "alsa-sys", - "bitflags 1.3.2", + "bitflags 2.6.0", + "cfg-if", "libc", - "nix 0.23.2", ] [[package]] @@ -118,17 +86,66 @@ dependencies = [ "libc", ] +[[package]] +name = "anstream" +version = "0.6.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56" + +[[package]] +name = "anstyle-parse" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125" +dependencies = [ + "anstyle", + "windows-sys 0.59.0", +] + [[package]] name = "anyhow" -version = "1.0.75" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" [[package]] -name = "array-init" -version = "2.1.0" +name = "arrayvec" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-broadcast" @@ -229,7 +246,7 @@ dependencies = [ "slab", "tracing", "waker-fn", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -255,7 +272,7 @@ dependencies = [ "event-listener 3.0.1", "futures-lite", "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -266,7 +283,7 @@ checksum = "5fd55a5ba1179988837d24ab4c7cc8ed6efdeff578ede0416b4225a5fca35bd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -284,7 +301,7 @@ dependencies = [ "rustix 0.38.21", "signal-hook-registry", "slab", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -327,7 +344,7 @@ checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -337,15 +354,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] -name = "atty" -version = "0.2.14" +name = "atomic_refcell" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] +checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c" [[package]] name = "autocfg" @@ -353,6 +365,33 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +[[package]] +name = "aws-lc-rs" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d" +dependencies = [ + "aws-lc-sys", + "mirai-annotations", + "paste", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972" +dependencies = [ + "bindgen 0.69.5", + "cc", + "cmake", + "dunce", + "fs_extra", + "libc", + "paste", +] + [[package]] name = "backtrace" version = "0.3.69" @@ -380,13 +419,25 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + [[package]] name = "bindgen" version = "0.68.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "726e4313eb6ec35d2730258ad4e15b547ee75d6afaa1361a922e78e59b7d8078" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "cexpr", "clang-sys", "lazy_static", @@ -397,7 +448,30 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.38", + "syn 2.0.85", +] + +[[package]] +name = "bindgen" +version = "0.69.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088" +dependencies = [ + "bitflags 2.6.0", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.85", + "which", ] [[package]] @@ -408,9 +482,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.4.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block" @@ -418,15 +492,6 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "generic-array", -] - [[package]] name = "block-buffer" version = "0.10.4" @@ -474,6 +539,12 @@ version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +[[package]] +name = "bytemuck" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d" + [[package]] name = "byteorder" version = "1.5.0" @@ -508,7 +579,7 @@ checksum = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1" dependencies = [ "glib-sys 0.17.10", "libc", - "system-deps", + "system-deps 6.2.0", ] [[package]] @@ -519,9 +590,9 @@ checksum = "a2698f953def977c68f935bb0dfa959375ad4638570e969e2f1e9f433cbf1af6" [[package]] name = "cc" -version = "1.0.83" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292" dependencies = [ "jobserver", "libc", @@ -552,6 +623,16 @@ dependencies = [ "target-lexicon", ] +[[package]] +name = "cfg-expr" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0890061c4d3223e7267f3bad2ec40b997d64faac1c2815a4a9d95018e2b9e9c" +dependencies = [ + "smallvec", + "target-lexicon", +] + [[package]] name = "cfg-if" version = "1.0.0" @@ -568,26 +649,28 @@ dependencies = [ "iana-time-zone", "js-sys", "num-traits", + "serde", "wasm-bindgen", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] name = "cipher" -version = "0.2.5" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ "generic-array", ] [[package]] name = "cipher" -version = "0.3.0" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ - "generic-array", + "crypto-common", + "inout", ] [[package]] @@ -601,6 +684,21 @@ dependencies = [ "libloading", ] +[[package]] +name = "cmake" +version = "0.1.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a" +dependencies = [ + "cc", +] + +[[package]] +name = "colorchoice" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990" + [[package]] name = "combine" version = "4.6.6" @@ -620,6 +718,22 @@ dependencies = [ "crossbeam-utils", ] +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "core-foundation-sys" version = "0.8.4" @@ -628,11 +742,12 @@ checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "coreaudio-rs" -version = "0.10.0" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88" +checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace" dependencies = [ "bitflags 1.3.2", + "core-foundation-sys", "coreaudio-sys", ] @@ -642,32 +757,30 @@ version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8478e5bdad14dce236b9898ea002eabfa87cbe14f0aa538dbe3b6a4bec4332d" dependencies = [ - "bindgen", + "bindgen 0.68.1", ] [[package]] name = "cpal" -version = "0.13.5" +version = "0.15.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74117836a5124f3629e4b474eed03e479abaf98988b4bb317e29f08cfe0e4116" +checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779" dependencies = [ "alsa", "core-foundation-sys", "coreaudio-rs", + "dasp_sample", "jni", "js-sys", - "lazy_static", "libc", - "mach", + "mach2", "ndk", - "ndk-glue", - "nix 0.23.2", + "ndk-context", "oboe", - "parking_lot 0.11.2", - "stdweb", - "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", "web-sys", - "winapi", + "windows 0.54.0", ] [[package]] @@ -698,23 +811,13 @@ dependencies = [ "typenum", ] -[[package]] -name = "crypto-mac" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" -dependencies = [ - "generic-array", - "subtle", -] - [[package]] name = "ctr" -version = "0.6.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher 0.2.5", + "cipher 0.4.4", ] [[package]] @@ -745,14 +848,14 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] name = "darling" -version = "0.13.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ "darling_core", "darling_macro", @@ -760,27 +863,59 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", "strsim", - "syn 1.0.109", + "syn 2.0.85", ] [[package]] name = "darling_macro" -version = "0.13.4" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 1.0.109", + "syn 2.0.85", +] + +[[package]] +name = "dasp_sample" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f" + +[[package]] +name = "data-encoding" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "pem-rfc7468", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" +dependencies = [ + "powerfmt", ] [[package]] @@ -795,12 +930,34 @@ dependencies = [ ] [[package]] -name = "digest" -version = "0.9.0" +name = "derive_builder" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +checksum = "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947" dependencies = [ - "generic-array", + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "derive_builder_macro" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" +dependencies = [ + "derive_builder_core", + "syn 2.0.85", ] [[package]] @@ -809,11 +966,24 @@ version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.4", + "block-buffer", + "const-oid", "crypto-common", "subtle", ] +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "either" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + [[package]] name = "encoding_rs" version = "0.8.33" @@ -841,19 +1011,16 @@ checksum = "f95e2801cd355d4a1a3e3953ce6ee5ae9603a5c833455343a8bfe3f44d418246" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] -name = "env_logger" -version = "0.9.3" +name = "env_filter" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +checksum = "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab" dependencies = [ - "atty", - "humantime", "log", - "termcolor", ] [[package]] @@ -869,6 +1036,19 @@ dependencies = [ "termcolor", ] +[[package]] +name = "env_logger" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "humantime", + "log", +] + [[package]] name = "equivalent" version = "1.0.1" @@ -882,7 +1062,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -948,6 +1128,12 @@ dependencies = [ "percent-encoding", ] +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + [[package]] name = "futures" version = "0.3.29" @@ -965,9 +1151,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" dependencies = [ "futures-core", "futures-sink", @@ -975,9 +1161,9 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" @@ -992,9 +1178,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" +checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" [[package]] name = "futures-lite" @@ -1013,32 +1199,38 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] name = "futures-sink" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.29" +version = "0.3.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" + +[[package]] +name = "futures-timer" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-channel", "futures-core", @@ -1072,11 +1264,11 @@ version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb" dependencies = [ - "gio-sys", + "gio-sys 0.17.10", "glib-sys 0.17.10", "gobject-sys 0.17.10", "libc", - "system-deps", + "system-deps 6.2.0", ] [[package]] @@ -1103,13 +1295,13 @@ checksum = "1bc92aa1608c089c49393d014c38ac0390d01e4841e1fedaa75dbcef77aaed64" dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", - "gio-sys", + "gio-sys 0.17.10", "glib-sys 0.17.10", "gobject-sys 0.17.10", "libc", "pango-sys", "pkg-config", - "system-deps", + "system-deps 6.2.0", ] [[package]] @@ -1138,8 +1330,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -1179,7 +1373,7 @@ dependencies = [ "futures-core", "futures-io", "futures-util", - "gio-sys", + "gio-sys 0.17.10", "glib 0.17.10", "libc", "once_cell", @@ -1197,28 +1391,21 @@ dependencies = [ "glib-sys 0.17.10", "gobject-sys 0.17.10", "libc", - "system-deps", + "system-deps 6.2.0", "winapi", ] [[package]] -name = "glib" -version = "0.15.12" +name = "gio-sys" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d" +checksum = "4f7efc368de04755344f0084104835b6bb71df2c1d41e37d863947392a894779" dependencies = [ - "bitflags 1.3.2", - "futures-channel", - "futures-core", - "futures-executor", - "futures-task", - "glib-macros 0.15.13", - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys 0.20.4", + "gobject-sys 0.20.4", "libc", - "once_cell", - "smallvec", - "thiserror", + "system-deps 7.0.3", + "windows-sys 0.52.0", ] [[package]] @@ -1233,7 +1420,7 @@ dependencies = [ "futures-executor", "futures-task", "futures-util", - "gio-sys", + "gio-sys 0.17.10", "glib-macros 0.17.10", "glib-sys 0.17.10", "gobject-sys 0.17.10", @@ -1245,18 +1432,24 @@ dependencies = [ ] [[package]] -name = "glib-macros" -version = "0.15.13" +name = "glib" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a" +checksum = "adcf1ec6d3650bf9fdbc6cee242d4fcebc6f6bfd9bea5b929b6a8b7344eb85ff" dependencies = [ - "anyhow", - "heck", - "proc-macro-crate", - "proc-macro-error", - "proc-macro2", - "quote", - "syn 1.0.109", + "bitflags 2.6.0", + "futures-channel", + "futures-core", + "futures-executor", + "futures-task", + "futures-util", + "gio-sys 0.20.4", + "glib-macros 0.20.4", + "glib-sys 0.20.4", + "gobject-sys 0.20.4", + "libc", + "memchr", + "smallvec", ] [[package]] @@ -1266,8 +1459,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26" dependencies = [ "anyhow", - "heck", - "proc-macro-crate", + "heck 0.4.1", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", @@ -1275,13 +1468,16 @@ dependencies = [ ] [[package]] -name = "glib-sys" -version = "0.15.10" +name = "glib-macros" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4" +checksum = "a6bf88f70cd5720a6197639dcabcb378dd528d0cb68cb1f45e3b358bcb841cd7" dependencies = [ - "libc", - "system-deps", + "heck 0.5.0", + "proc-macro-crate 3.2.0", + "proc-macro2", + "quote", + "syn 2.0.85", ] [[package]] @@ -1291,7 +1487,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0" dependencies = [ "libc", - "system-deps", + "system-deps 6.2.0", +] + +[[package]] +name = "glib-sys" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f9eca5d88cfa6a453b00d203287c34a2b7cac3a7831779aa2bb0b3c7233752b" +dependencies = [ + "libc", + "system-deps 7.0.3", ] [[package]] @@ -1314,24 +1520,42 @@ dependencies = [ [[package]] name = "gobject-sys" -version = "0.15.10" +version = "0.17.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a" +checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062" dependencies = [ - "glib-sys 0.15.10", + "glib-sys 0.17.10", "libc", - "system-deps", + "system-deps 6.2.0", ] [[package]] name = "gobject-sys" -version = "0.17.10" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062" +checksum = "a4c674d2ff8478cf0ec29d2be730ed779fef54415a2fb4b565c52def62696462" dependencies = [ - "glib-sys 0.17.10", + "glib-sys 0.20.4", "libc", - "system-deps", + "system-deps 7.0.3", +] + +[[package]] +name = "governor" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b" +dependencies = [ + "cfg-if", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot", + "portable-atomic", + "rand", + "smallvec", + "spinning_top", ] [[package]] @@ -1354,7 +1578,7 @@ dependencies = [ "glib-sys 0.17.10", "libc", "pkg-config", - "system-deps", + "system-deps 6.2.0", ] [[package]] @@ -1386,22 +1610,22 @@ dependencies = [ "graphene-sys", "libc", "pango-sys", - "system-deps", + "system-deps 6.2.0", ] [[package]] name = "gstreamer" -version = "0.18.8" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d66363bacf5e4f6eb281564adc2902e44c52ae5c45082423e7439e9012b75456" +checksum = "49ecf3bcfc2ceb82ce02437f53ff2fcaee5e7d45ae697ab64a018408749779b9" dependencies = [ - "bitflags 1.3.2", "cfg-if", "futures-channel", "futures-core", "futures-util", - "glib 0.15.12", + "glib 0.20.4", "gstreamer-sys", + "itertools 0.13.0", "libc", "muldiv", "num-integer", @@ -1409,80 +1633,78 @@ dependencies = [ "once_cell", "option-operations", "paste", - "pretty-hex", + "pin-project-lite", + "smallvec", "thiserror", ] [[package]] name = "gstreamer-app" -version = "0.18.7" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "664adf6abc6546c1ad54492a067dcbc605032c9c789ce8f6f78cb9ddeef4b684" +checksum = "54a4ec9f0d2037349c82f589c1cbfe788a62f4941851924bb7c3929a6a790007" dependencies = [ - "bitflags 1.3.2", "futures-core", "futures-sink", - "glib 0.15.12", + "glib 0.20.4", "gstreamer", "gstreamer-app-sys", "gstreamer-base", "libc", - "once_cell", ] [[package]] name = "gstreamer-app-sys" -version = "0.18.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3b401f21d731b3e5de802487f25507fabd34de2dd007d582f440fb1c66a4fbb" +checksum = "08d5cac633c1ab7030c777c8c58c682a0c763bbc4127bccc370dabe39c01a12d" dependencies = [ - "glib-sys 0.15.10", + "glib-sys 0.20.4", "gstreamer-base-sys", "gstreamer-sys", "libc", - "system-deps", + "system-deps 7.0.3", ] [[package]] name = "gstreamer-audio" -version = "0.18.7" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ceb43e669be4c33c38b273fd4ca0511c0a7748987835233c529fc3c805c807e" +checksum = "36d39b07213f83055fc705a384fa32ad581776b8e5b04c86f3a419ec5dfc0f81" dependencies = [ - "array-init", - "bitflags 1.3.2", "cfg-if", - "glib 0.15.12", + "glib 0.20.4", "gstreamer", "gstreamer-audio-sys", "gstreamer-base", "libc", "once_cell", + "smallvec", ] [[package]] name = "gstreamer-audio-sys" -version = "0.18.3" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34258fb53c558c0f41dad194037cbeaabf49d347570df11b8bd1c4897cf7d7c" +checksum = "d84744e7ac8f8bc0cf76b7be40f2d5be12e6cf197e4c6ca9d3438109c21e2f51" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys 0.20.4", + "gobject-sys 0.20.4", "gstreamer-base-sys", "gstreamer-sys", "libc", - "system-deps", + "system-deps 7.0.3", ] [[package]] name = "gstreamer-base" -version = "0.18.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f" +checksum = "46ce7330d2995138a77192ea20961422ddee1578e1a47480acb820c43ceb0e2d" dependencies = [ - "bitflags 1.3.2", + "atomic_refcell", "cfg-if", - "glib 0.15.12", + "glib 0.20.4", "gstreamer", "gstreamer-base-sys", "libc", @@ -1490,27 +1712,27 @@ dependencies = [ [[package]] name = "gstreamer-base-sys" -version = "0.18.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e" +checksum = "7796e694c21c215447811c9cff694dce1fc6e02b0bbafb75cd8583b6aefe9e5f" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys 0.20.4", + "gobject-sys 0.20.4", "gstreamer-sys", "libc", - "system-deps", + "system-deps 7.0.3", ] [[package]] name = "gstreamer-sys" -version = "0.18.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2" +checksum = "cb3859929db32f26a35818d0d9ed82f0887c9221ca402ddefaea2bb99833d535" dependencies = [ - "glib-sys 0.15.10", - "gobject-sys 0.15.10", + "glib-sys 0.20.4", + "gobject-sys 0.20.4", "libc", - "system-deps", + "system-deps 7.0.3", ] [[package]] @@ -1543,7 +1765,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a4d6b61570f76d3ee542d984da443b1cd69b6105264c61afec3abed08c2500f" dependencies = [ "anyhow", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro-error", "proc-macro2", "quote", @@ -1559,38 +1781,70 @@ dependencies = [ "cairo-sys-rs", "gdk-pixbuf-sys", "gdk4-sys", - "gio-sys", + "gio-sys 0.17.10", "glib-sys 0.17.10", "gobject-sys 0.17.10", "graphene-sys", "gsk4-sys", "libc", "pango-sys", - "system-deps", + "system-deps 6.2.0", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "h2" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.9", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.1.0", + "indexmap", + "slab", + "tokio", + "tokio-util", + "tracing", +] [[package]] name = "hashbrown" -version = "0.14.2" +version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" +checksum = "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb" [[package]] name = "headers" -version = "0.3.9" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270" +checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9" dependencies = [ "base64 0.21.5", "bytes", "headers-core", - "http", + "http 1.1.0", "httpdate", "mime", "sha1", @@ -1598,11 +1852,11 @@ dependencies = [ [[package]] name = "headers-core" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4" dependencies = [ - "http", + "http 1.1.0", ] [[package]] @@ -1612,19 +1866,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] -name = "hermit-abi" -version = "0.1.19" +name = "heck" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -1638,37 +1889,36 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" dependencies = [ - "hmac 0.12.1", + "hmac", ] [[package]] name = "hmac" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" dependencies = [ - "crypto-mac", - "digest 0.9.0", + "digest", ] [[package]] -name = "hmac" -version = "0.12.1" +name = "home" +version = "0.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" dependencies = [ - "digest 0.10.7", + "windows-sys 0.52.0", ] [[package]] name = "hostname" -version = "0.3.1" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +checksum = "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba" dependencies = [ + "cfg-if", "libc", - "match_cfg", - "winapi", + "windows 0.52.0", ] [[package]] @@ -1682,6 +1932,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -1689,7 +1950,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.9", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", "pin-project-lite", ] @@ -1721,8 +2005,9 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "http", - "http-body", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", @@ -1735,18 +2020,117 @@ dependencies = [ ] [[package]] -name = "hyper-proxy" -version = "0.9.1" +name = "hyper" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc" +checksum = "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a" dependencies = [ "bytes", - "futures", + "futures-channel", + "futures-util", + "h2 0.4.6", + "http 1.1.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-proxy2" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9043b7b23fb0bc4a1c7014c27b50a4fc42cc76206f71d34fc0dfe5b28ddc3faf" +dependencies = [ + "bytes", + "futures-util", "headers", - "http", - "hyper", + "http 1.1.0", + "hyper 1.5.0", + "hyper-rustls 0.26.0", + "hyper-util", + "pin-project-lite", + "rustls-native-certs 0.7.3", + "tokio", + "tokio-rustls 0.25.0", + "tower-service", + "webpki", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.9", + "hyper 0.14.27", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.5.0", + "hyper-util", + "log", + "rustls 0.22.4", + "rustls-native-certs 0.7.3", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.25.0", + "tower-service", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" +dependencies = [ + "futures-util", + "http 1.1.0", + "hyper 1.5.0", + "hyper-util", + "log", + "rustls 0.23.15", + "rustls-native-certs 0.8.0", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body 1.0.1", + "hyper 1.5.0", + "pin-project-lite", + "socket2 0.5.5", "tokio", + "tower", "tower-service", + "tracing", ] [[package]] @@ -1760,7 +2144,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core", + "windows-core 0.51.1", ] [[package]] @@ -1790,32 +2174,31 @@ dependencies = [ [[package]] name = "if-addrs" -version = "0.7.0" +version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9" +checksum = "bb2a33e9c38988ecbda730c85b0fd9ddcdf83c0305ac7fd21c8bb9f57f2f0cc8" dependencies = [ "libc", - "winapi", + "windows-sys 0.52.0", ] [[package]] name = "indexmap" -version = "1.9.3" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "equivalent", + "hashbrown", ] [[package]] -name = "indexmap" -version = "2.1.0" +name = "inout" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" dependencies = [ - "equivalent", - "hashbrown 0.14.2", + "generic-array", ] [[package]] @@ -1833,9 +2216,24 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi", "libc", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708" + +[[package]] +name = "is-docker" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3" +dependencies = [ + "once_cell", ] [[package]] @@ -1844,11 +2242,27 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.3", + "hermit-abi", "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "is-wsl" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5" +dependencies = [ + "is-docker", + "once_cell", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf" + [[package]] name = "isahc" version = "1.7.2" @@ -1863,7 +2277,7 @@ dependencies = [ "encoding_rs", "event-listener 2.5.3", "futures-lite", - "http", + "http 0.2.9", "log", "mime", "once_cell", @@ -1878,6 +2292,24 @@ dependencies = [ "waker-fn", ] +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.9" @@ -1886,16 +2318,18 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" [[package]] name = "jni" -version = "0.19.0" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" dependencies = [ "cesu8", + "cfg-if", "combine", "jni-sys", "log", "thiserror", "walkdir", + "windows-sys 0.45.0", ] [[package]] @@ -1906,9 +2340,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "jobserver" -version = "0.1.27" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" dependencies = [ "libc", ] @@ -1936,6 +2370,9 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin 0.5.2", +] [[package]] name = "lazycell" @@ -1943,17 +2380,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" -[[package]] -name = "lewton" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030" -dependencies = [ - "byteorder", - "ogg", - "tinyvec", -] - [[package]] name = "libadwaita" version = "0.4.4" @@ -1978,20 +2404,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4231cb2499a9f0c4cdfa4885414b33e39901ddcac61150bc0bb4ff8a57ede404" dependencies = [ "gdk4-sys", - "gio-sys", + "gio-sys 0.17.10", "glib-sys 0.17.10", "gobject-sys 0.17.10", "gtk4-sys", "libc", "pango-sys", - "system-deps", + "system-deps 6.2.0", ] [[package]] name = "libc" -version = "0.2.149" +version = "0.2.161" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" [[package]] name = "libloading" @@ -2011,9 +2437,9 @@ checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" [[package]] name = "libmdns" -version = "0.7.5" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b04ae6b56b3b19ade26f0e7e7c1360a1713514f326c5ed0797cf2c109c9e010" +checksum = "48854699e11b111433431b69cee2365fcab0b29b06993f48c257dfbaf6395862" dependencies = [ "byteorder", "futures-util", @@ -2021,12 +2447,10 @@ dependencies = [ "if-addrs", "log", "multimap", - "nix 0.23.2", "rand", - "socket2 0.4.10", + "socket2 0.5.5", "thiserror", "tokio", - "winapi", ] [[package]] @@ -2048,7 +2472,7 @@ dependencies = [ "bitflags 1.3.2", "libc", "libpulse-sys", - "num-derive", + "num-derive 0.3.3", "num-traits", "winapi", ] @@ -2081,7 +2505,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc19e110fbf42c17260d30f6d3dc545f58491c7830d38ecb9aaca96e26067a9b" dependencies = [ "libc", - "num-derive", + "num-derive 0.3.3", "num-traits", "pkg-config", "winapi", @@ -2089,26 +2513,25 @@ dependencies = [ [[package]] name = "librespot" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4c9952ef48968f8184a4a87f8576982426ebe623342d5a28f7d9c4978e4a44" +checksum = "96e4b1f97b2767e35327b8443dcc1d2360a83c1c09a8686bf824ff61ab50f04c" dependencies = [ - "base64 0.13.1", - "env_logger 0.9.3", + "data-encoding", + "env_logger 0.11.5", "futures-util", "getopts", - "hex", - "hyper", "librespot-audio", "librespot-connect", "librespot-core", "librespot-discovery", "librespot-metadata", + "librespot-oauth", "librespot-playback", "librespot-protocol", "log", - "rpassword", - "sha-1", + "sha1", + "sysinfo", "thiserror", "tokio", "url", @@ -2116,30 +2539,34 @@ dependencies = [ [[package]] name = "librespot-audio" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c176a31355e1ea8e0b9c4ced19df4947bfe4770661c25c142b6fba2365940d9d" +checksum = "7e07566fe7553042936c61bbdd9bedb524114a904aa7f9738e266c641468bab8" dependencies = [ - "aes-ctr", - "byteorder", + "aes 0.8.4", "bytes", + "ctr", "futures-util", + "http-body-util", + "hyper 1.5.0", + "hyper-util", "librespot-core", "log", + "parking_lot", "tempfile", + "thiserror", "tokio", ] [[package]] name = "librespot-connect" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ffafb6a443e9445ccb3d5d591573b5b1da3c89a9b8846c63ba2c3710210d3ec" +checksum = "67ce3a5634669ce051a425cff5437a474831111df045fd5a2bb37fabe316fa60" dependencies = [ "form_urlencoded", "futures-util", "librespot-core", - "librespot-discovery", "librespot-playback", "librespot-protocol", "log", @@ -2147,115 +2574,149 @@ dependencies = [ "rand", "serde", "serde_json", + "thiserror", "tokio", "tokio-stream", ] [[package]] name = "librespot-core" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "046349f25888e644bf02d9c5de0164b2a493d29aa4ce18e1ad0b756da9b55d6d" +checksum = "c4c76303efcf949a59f9380220ca420c4d72fa32dbb3641a0079f429cc5e44e7" dependencies = [ - "aes 0.6.0", - "base64 0.13.1", + "aes 0.8.4", + "base64 0.22.1", "byteorder", "bytes", + "data-encoding", "form_urlencoded", "futures-core", "futures-util", - "hmac 0.11.0", - "http", + "governor", + "hmac", + "http 1.1.0", + "http-body-util", "httparse", - "hyper", - "hyper-proxy", + "hyper 1.5.0", + "hyper-proxy2", + "hyper-rustls 0.27.3", + "hyper-util", + "librespot-oauth", "librespot-protocol", "log", + "nonzero_ext", "num-bigint", + "num-derive 0.4.2", "num-integer", "num-traits", "once_cell", + "parking_lot", "pbkdf2", + "pin-project-lite", "priority-queue", "protobuf", + "quick-xml", "rand", + "rsa", "serde", "serde_json", - "sha-1", + "sha1", "shannon", + "sysinfo", "thiserror", + "time", "tokio", "tokio-stream", + "tokio-tungstenite", "tokio-util", "url", "uuid", - "vergen", + "vergen-gitcl", ] [[package]] name = "librespot-discovery" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aa877d18f6150364012cb4be5682d62d7c712c88bae2d0d01720fd7c15e2f06" +checksum = "94a952d28c775562b9b6039102c0e3a834cb31157fccb2f2a68a26dc4397fea8" dependencies = [ - "aes-ctr", - "base64 0.13.1", + "aes 0.8.4", + "base64 0.22.1", + "bytes", + "ctr", "form_urlencoded", "futures-core", - "hmac 0.11.0", - "hyper", + "futures-util", + "hmac", + "http-body-util", + "hyper 1.5.0", + "hyper-util", "libmdns", "librespot-core", "log", "rand", "serde_json", - "sha-1", + "serde_repr", + "sha1", "thiserror", "tokio", ] [[package]] name = "librespot-metadata" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b80361fcbcb5092056fd47c08c34d5d51b08385d8efb6941c0d3e46d032c21c" +checksum = "7cf6d5c46a401b1dd3e062ebdce959aa694bbae1039841756545d2e9c4f8be5f" dependencies = [ "async-trait", - "byteorder", + "bytes", "librespot-core", "librespot-protocol", "log", "protobuf", + "serde", + "serde_json", + "thiserror", + "uuid", +] + +[[package]] +name = "librespot-oauth" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00dcad779aa6c3b442e493e2a40ca83a5c5fcf38a65c05b026c3587bd4f8d14f" +dependencies = [ + "log", + "oauth2", + "thiserror", + "url", ] [[package]] name = "librespot-playback" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5190a0b9bcc7f70ee4196a6b4a1c731d405ca130d4a6fcd4c561cfdde8b7cfb7" +checksum = "4ed1f776a04c8c9275407f8d4df034f2615ea729ec6c6d0fa69f423fc571df64" dependencies = [ "alsa", - "byteorder", "cpal", - "futures-executor", "futures-util", - "glib 0.15.12", "gstreamer", "gstreamer-app", "gstreamer-audio", - "lewton", "libpulse-binding", "libpulse-simple-binding", "librespot-audio", "librespot-core", "librespot-metadata", "log", - "ogg", - "parking_lot 0.12.1", + "parking_lot", "rand", "rand_distr", "rodio", "shell-words", + "symphonia", "thiserror", "tokio", "zerocopy", @@ -2263,13 +2724,12 @@ dependencies = [ [[package]] name = "librespot-protocol" -version = "0.4.2" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d3ac6196ac0ea67bbe039f56d6730a5d8b31502ef9bce0f504ed729dcb39f" +checksum = "80802f52b5a1b3a2157454e6aca483a627fbf7b942e0a5fea037ebf3ed8b0546" dependencies = [ - "glob", "protobuf", - "protobuf-codegen-pure", + "protobuf-codegen", ] [[package]] @@ -2321,18 +2781,18 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" dependencies = [ "value-bag", ] [[package]] -name = "mach" -version = "0.3.2" +name = "mach2" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709" dependencies = [ "libc", ] @@ -2346,26 +2806,11 @@ dependencies = [ "libc", ] -[[package]] -name = "match_cfg" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" - [[package]] name = "memchr" -version = "2.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" - -[[package]] -name = "memoffset" -version = "0.6.5" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memoffset" @@ -2408,15 +2853,22 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.9" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi", "libc", "wasi", - "windows-sys", + "windows-sys 0.52.0", ] +[[package]] +name = "mirai-annotations" +version = "1.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1" + [[package]] name = "muldiv" version = "1.0.1" @@ -2425,21 +2877,22 @@ checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0" [[package]] name = "multimap" -version = "0.8.3" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" +checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03" dependencies = [ "serde", ] [[package]] name = "ndk" -version = "0.6.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4" +checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.6.0", "jni-sys", + "log", "ndk-sys", "num_enum", "thiserror", @@ -2451,56 +2904,15 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b" -[[package]] -name = "ndk-glue" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f" -dependencies = [ - "lazy_static", - "libc", - "log", - "ndk", - "ndk-context", - "ndk-macro", - "ndk-sys", -] - -[[package]] -name = "ndk-macro" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c" -dependencies = [ - "darling", - "proc-macro-crate", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "ndk-sys" -version = "0.3.0" +version = "0.5.0+25.2.9519653" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97" +checksum = "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691" dependencies = [ "jni-sys", ] -[[package]] -name = "nix" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" -dependencies = [ - "bitflags 1.3.2", - "cc", - "cfg-if", - "libc", - "memoffset 0.6.5", -] - [[package]] name = "nix" version = "0.26.4" @@ -2513,6 +2925,12 @@ dependencies = [ "memoffset 0.7.1", ] +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + [[package]] name = "nom" version = "7.1.3" @@ -2523,6 +2941,21 @@ dependencies = [ "minimal-lexical", ] +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + [[package]] name = "num" version = "0.4.1" @@ -2549,6 +2982,23 @@ dependencies = [ "rand", ] +[[package]] +name = "num-bigint-dig" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151" +dependencies = [ + "byteorder", + "lazy_static", + "libm", + "num-integer", + "num-iter", + "num-traits", + "rand", + "smallvec", + "zeroize", +] + [[package]] name = "num-complex" version = "0.4.4" @@ -2558,6 +3008,12 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-conv" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" + [[package]] name = "num-derive" version = "0.3.3" @@ -2569,6 +3025,17 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "num-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + [[package]] name = "num-integer" version = "0.1.45" @@ -2612,35 +3079,54 @@ dependencies = [ "libm", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi 0.3.3", - "libc", -] - [[package]] name = "num_enum" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9" +checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179" dependencies = [ "num_enum_derive", ] [[package]] name = "num_enum_derive" -version = "0.5.11" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799" +checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.2.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.85", +] + +[[package]] +name = "num_threads" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9" +dependencies = [ + "libc", +] + +[[package]] +name = "oauth2" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f" +dependencies = [ + "base64 0.13.1", + "chrono", + "getrandom", + "http 0.2.9", + "rand", + "reqwest", + "serde", + "serde_json", + "serde_path_to_error", + "sha2", + "thiserror", + "url", ] [[package]] @@ -2683,36 +3169,27 @@ dependencies = [ [[package]] name = "oboe" -version = "0.4.6" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1" +checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb" dependencies = [ "jni", "ndk", "ndk-context", - "num-derive", + "num-derive 0.4.2", "num-traits", "oboe-sys", ] [[package]] name = "oboe-sys" -version = "0.4.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd" +checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d" dependencies = [ "cc", ] -[[package]] -name = "ogg" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e" -dependencies = [ - "byteorder", -] - [[package]] name = "once_cell" version = "1.18.0" @@ -2725,6 +3202,17 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +[[package]] +name = "open" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3" +dependencies = [ + "is-wsl", + "libc", + "pathdiff", +] + [[package]] name = "openssl-probe" version = "0.1.5" @@ -2745,9 +3233,9 @@ dependencies = [ [[package]] name = "option-operations" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42b01597916c91a493b1e8a2fde64fec1764be3259abc1f06efc99c274f150a2" +checksum = "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0" dependencies = [ "paste", ] @@ -2785,7 +3273,7 @@ dependencies = [ "glib-sys 0.17.10", "gobject-sys 0.17.10", "libc", - "system-deps", + "system-deps 6.2.0", ] [[package]] @@ -2794,17 +3282,6 @@ version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -2812,21 +3289,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.9", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", + "parking_lot_core", ] [[package]] @@ -2839,10 +3302,10 @@ dependencies = [ "cfg-if", "libc", "petgraph", - "redox_syscall 0.4.1", + "redox_syscall", "smallvec", "thread-id", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] @@ -2851,14 +3314,20 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +[[package]] +name = "pathdiff" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361" + [[package]] name = "pbkdf2" -version = "0.8.0" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ - "crypto-mac", - "hmac 0.11.0", + "digest", + "hmac", ] [[package]] @@ -2867,6 +3336,15 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + [[package]] name = "percent-encoding" version = "2.3.0" @@ -2880,7 +3358,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ "fixedbitset", - "indexmap 2.1.0", + "indexmap", ] [[package]] @@ -2900,7 +3378,7 @@ checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -2926,6 +3404,27 @@ dependencies = [ "futures-io", ] +[[package]] +name = "pkcs1" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f" +dependencies = [ + "der", + "pkcs8", + "spki", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + [[package]] name = "pkg-config" version = "0.3.27" @@ -2945,7 +3444,7 @@ dependencies = [ "libc", "log", "pin-project-lite", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -2959,9 +3458,21 @@ dependencies = [ "pin-project-lite", "rustix 0.38.21", "tracing", - "windows-sys", + "windows-sys 0.48.0", ] +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -2969,19 +3480,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] -name = "pretty-hex" -version = "0.3.0" +name = "prettyplease" +version = "0.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5" +checksum = "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033" +dependencies = [ + "proc-macro2", + "syn 2.0.85", +] [[package]] name = "priority-queue" -version = "1.3.2" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff39edfcaec0d64e8d0da38564fad195d2d51b680940295fcc307366e101e61" +checksum = "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d" dependencies = [ "autocfg", - "indexmap 1.9.3", + "equivalent", + "indexmap", ] [[package]] @@ -2994,6 +3510,15 @@ dependencies = [ "toml_edit 0.19.15", ] +[[package]] +name = "proc-macro-crate" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b" +dependencies = [ + "toml_edit 0.22.22", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -3020,43 +3545,79 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.69" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +checksum = "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e" dependencies = [ "unicode-ident", ] [[package]] name = "protobuf" -version = "2.28.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +checksum = "a3a7c64d9bf75b1b8d981124c14c179074e8caa7dfe7b6a12e6222ddcd0c8f72" +dependencies = [ + "once_cell", + "protobuf-support", + "thiserror", +] [[package]] name = "protobuf-codegen" -version = "2.28.0" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033460afb75cf755fcfc16dfaed20b86468082a2ea24e05ac35ab4a099a017d6" +checksum = "e26b833f144769a30e04b1db0146b2aaa53fd2fd83acf10a6b5f996606c18144" dependencies = [ + "anyhow", + "once_cell", "protobuf", + "protobuf-parse", + "regex", + "tempfile", + "thiserror", ] [[package]] -name = "protobuf-codegen-pure" -version = "2.28.0" +name = "protobuf-parse" +version = "3.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a29399fc94bcd3eeaa951c715f7bea69409b2445356b00519740bcd6ddd865" +checksum = "322330e133eab455718444b4e033ebfac7c6528972c784fcde28d2cc783c6257" dependencies = [ + "anyhow", + "indexmap", + "log", "protobuf", - "protobuf-codegen", + "protobuf-support", + "tempfile", + "thiserror", + "which", +] + +[[package]] +name = "protobuf-support" +version = "3.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b088fd20b938a875ea00843b6faf48579462630015c3788d397ad6a786663252" +dependencies = [ + "thiserror", +] + +[[package]] +name = "quick-xml" +version = "0.36.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe" +dependencies = [ + "memchr", + "serde", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] @@ -3101,15 +3662,6 @@ dependencies = [ "rand", ] -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags 1.3.2", -] - [[package]] name = "redox_syscall" version = "0.4.1" @@ -3154,25 +3706,90 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.5", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.26", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.27", + "hyper-rustls 0.24.2", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-pemfile 1.0.4", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper", + "system-configuration", + "tokio", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" +dependencies = [ + "cc", + "cfg-if", + "getrandom", + "libc", + "spin 0.9.8", + "untrusted", + "windows-sys 0.52.0", +] + [[package]] name = "rodio" -version = "0.15.0" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0939e9f626e6c6f1989adb6226a039c855ca483053f0ee7c98b90e41cf731e" +checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb" dependencies = [ "cpal", + "thiserror", ] [[package]] -name = "rpassword" -version = "6.0.1" +name = "rsa" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956" +checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" dependencies = [ - "libc", - "serde", - "serde_json", - "winapi", + "const-oid", + "digest", + "num-bigint-dig", + "num-integer", + "num-traits", + "pkcs1", + "pkcs8", + "rand_core", + "signature", + "spki", + "subtle", + "zeroize", ] [[package]] @@ -3207,7 +3824,7 @@ dependencies = [ "io-lifetimes", "libc", "linux-raw-sys 0.3.8", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3216,13 +3833,132 @@ version = "0.38.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b426b0506e5d50a7d8dafcf2e81471400deb602392c7dd110815afb4eaf02a3" dependencies = [ - "bitflags 2.4.1", + "bitflags 2.6.0", "errno", "libc", "linux-raw-sys 0.4.10", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +dependencies = [ + "log", + "ring", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls" +version = "0.23.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993" +dependencies = [ + "aws-lc-rs", + "log", + "once_cell", + "rustls-pki-types", + "rustls-webpki 0.102.8", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a" +dependencies = [ + "openssl-probe", + "rustls-pemfile 2.2.0", + "rustls-pki-types", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.5", +] + +[[package]] +name = "rustls-pemfile" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" +dependencies = [ + "rustls-pki-types", ] +[[package]] +name = "rustls-pki-types" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.102.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" +dependencies = [ + "aws-lc-rs", + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248" + [[package]] name = "ryu" version = "1.0.15" @@ -3244,7 +3980,7 @@ version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" dependencies = [ - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3253,6 +3989,16 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + [[package]] name = "secret-service" version = "3.0.1" @@ -3272,6 +4018,29 @@ dependencies = [ "zbus", ] +[[package]] +name = "security-framework" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "semver" version = "1.0.20" @@ -3280,22 +4049,22 @@ checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] name = "serde" -version = "1.0.190" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7" +checksum = "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.190" +version = "1.0.213" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3" +checksum = "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -3309,6 +4078,16 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_path_to_error" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6" +dependencies = [ + "itoa", + "serde", +] + [[package]] name = "serde_repr" version = "0.1.17" @@ -3317,7 +4096,7 @@ checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -3330,16 +4109,15 @@ dependencies = [ ] [[package]] -name = "sha-1" -version = "0.9.8" +name = "serde_urlencoded" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "form_urlencoded", + "itoa", + "ryu", + "serde", ] [[package]] @@ -3350,7 +4128,7 @@ checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -3361,7 +4139,7 @@ checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", - "digest 0.10.7", + "digest", ] [[package]] @@ -3394,6 +4172,16 @@ dependencies = [ "libc", ] +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest", + "rand_core", +] + [[package]] name = "slab" version = "0.4.9" @@ -3416,9 +4204,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "socket2" @@ -3437,12 +4225,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.48.0", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spinning_top" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300" +dependencies = [ + "lock_api", +] + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", ] [[package]] name = "spot" -version = "0.4.0" +version = "0.6.0" dependencies = [ "async-std", "env_logger 0.10.0", @@ -3459,6 +4278,8 @@ dependencies = [ "libadwaita", "librespot", "log", + "oauth2", + "open", "percent-encoding", "rand", "ref_filter_map", @@ -3468,6 +4289,7 @@ dependencies = [ "serde_json", "thiserror", "tokio", + "url", "zbus", "zvariant", ] @@ -3479,22 +4301,100 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "stdweb" -version = "0.1.3" +name = "strsim" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] -name = "strsim" -version = "0.10.0" +name = "subtle" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] -name = "subtle" -version = "2.4.1" +name = "symphonia" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9" +dependencies = [ + "lazy_static", + "symphonia-bundle-mp3", + "symphonia-codec-vorbis", + "symphonia-core", + "symphonia-format-ogg", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-bundle-mp3" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4" +dependencies = [ + "lazy_static", + "log", + "symphonia-core", + "symphonia-metadata", +] + +[[package]] +name = "symphonia-codec-vorbis" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30" +dependencies = [ + "log", + "symphonia-core", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-core" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3" +dependencies = [ + "arrayvec", + "bitflags 1.3.2", + "bytemuck", + "lazy_static", + "log", +] + +[[package]] +name = "symphonia-format-ogg" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ada3505789516bcf00fc1157c67729eded428b455c27ca370e41f4d785bfa931" +dependencies = [ + "log", + "symphonia-core", + "symphonia-metadata", + "symphonia-utils-xiph", +] + +[[package]] +name = "symphonia-metadata" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c" +dependencies = [ + "encoding_rs", + "lazy_static", + "log", + "symphonia-core", +] + +[[package]] +name = "symphonia-utils-xiph" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe" +dependencies = [ + "symphonia-core", + "symphonia-metadata", +] [[package]] name = "syn" @@ -3509,33 +4409,86 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.38" +version = "2.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56" dependencies = [ "proc-macro2", "quote", "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sysinfo" +version = "0.31.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be" +dependencies = [ + "core-foundation-sys", + "libc", + "memchr", + "ntapi", + "windows 0.57.0", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "system-configuration-sys", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + [[package]] name = "system-deps" version = "6.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331" dependencies = [ - "cfg-expr", - "heck", + "cfg-expr 0.15.5", + "heck 0.4.1", + "pkg-config", + "toml", + "version-compare 0.1.1", +] + +[[package]] +name = "system-deps" +version = "7.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005" +dependencies = [ + "cfg-expr 0.17.0", + "heck 0.5.0", "pkg-config", "toml", - "version-compare", + "version-compare 0.2.0", ] [[package]] name = "target-lexicon" -version = "0.12.12" +version = "0.12.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "temp-dir" @@ -3551,9 +4504,9 @@ checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", "fastrand 2.0.1", - "redox_syscall 0.4.1", + "redox_syscall", "rustix 0.38.21", - "windows-sys", + "windows-sys 0.48.0", ] [[package]] @@ -3582,7 +4535,7 @@ checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -3595,6 +4548,39 @@ dependencies = [ "winapi", ] +[[package]] +name = "time" +version = "0.3.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" +dependencies = [ + "deranged", + "itoa", + "libc", + "num-conv", + "num_threads", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tinyvec" version = "1.6.0" @@ -3612,32 +4598,63 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.33.0" +version = "1.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653" +checksum = "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", - "parking_lot 0.12.1", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2 0.5.5", "tokio-macros", - "windows-sys", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.1.0" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" +dependencies = [ + "rustls 0.22.4", + "rustls-pki-types", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.38", + "rustls 0.23.15", + "rustls-pki-types", + "tokio", ] [[package]] @@ -3651,6 +4668,22 @@ dependencies = [ "tokio", ] +[[package]] +name = "tokio-tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9" +dependencies = [ + "futures-util", + "log", + "rustls 0.23.15", + "rustls-native-certs 0.8.0", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.0", + "tungstenite", +] + [[package]] name = "tokio-util" version = "0.7.10" @@ -3679,9 +4712,9 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.5" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" dependencies = [ "serde", ] @@ -3692,9 +4725,9 @@ version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.1.0", + "indexmap", "toml_datetime", - "winnow", + "winnow 0.5.18", ] [[package]] @@ -3703,13 +4736,45 @@ version = "0.20.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" dependencies = [ - "indexmap 2.1.0", + "indexmap", "serde", "serde_spanned", "toml_datetime", - "winnow", + "winnow 0.5.18", +] + +[[package]] +name = "toml_edit" +version = "0.22.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow 0.6.20", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", ] +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + [[package]] name = "tower-service" version = "0.3.2" @@ -3736,7 +4801,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] [[package]] @@ -3764,6 +4829,26 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +[[package]] +name = "tungstenite" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a" +dependencies = [ + "byteorder", + "bytes", + "data-encoding", + "http 1.1.0", + "httparse", + "log", + "rand", + "rustls 0.23.15", + "rustls-pki-types", + "sha1", + "thiserror", + "utf-8", +] + [[package]] name = "typenum" version = "1.17.0" @@ -3807,6 +4892,12 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + [[package]] name = "url" version = "2.4.1" @@ -3816,8 +4907,21 @@ dependencies = [ "form_urlencoded", "idna", "percent-encoding", + "serde", ] +[[package]] +name = "utf-8" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + [[package]] name = "uuid" version = "1.5.0" @@ -3825,13 +4929,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc" dependencies = [ "getrandom", + "rand", ] [[package]] name = "value-bag" -version = "1.4.2" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe" +checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2" [[package]] name = "vcpkg" @@ -3841,13 +4946,40 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "vergen" -version = "3.2.0" +version = "9.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7141e445af09c8919f1d5f8a20dae0b20c3b57a45dee0d5823c6ed5d237f15a" +checksum = "349ed9e45296a581f455bc18039878f409992999bc1d5da12a6800eb18c8752f" dependencies = [ - "bitflags 1.3.2", - "chrono", - "rustc_version", + "anyhow", + "derive_builder", + "rustversion", + "time", + "vergen-lib", +] + +[[package]] +name = "vergen-gitcl" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a3a7f91caabecefc3c249fd864b11d4abe315c166fbdb568964421bccfd2b7a" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", + "time", + "vergen", + "vergen-lib", +] + +[[package]] +name = "vergen-lib" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "229eaddb0050920816cf051e619affaf18caa3dd512de8de5839ccbc8e53abb0" +dependencies = [ + "anyhow", + "derive_builder", + "rustversion", ] [[package]] @@ -3856,6 +4988,12 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29" +[[package]] +name = "version-compare" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b" + [[package]] name = "version_check" version = "0.9.4" @@ -3895,26 +5033,27 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.88" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.88" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", "wasm-bindgen-shared", ] @@ -3932,9 +5071,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.88" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3942,22 +5081,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.88" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.88" +version = "0.2.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" +checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" [[package]] name = "web-sys" @@ -3969,6 +5108,34 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix 0.38.21", +] + [[package]] name = "winapi" version = "0.3.9" @@ -4000,13 +5167,114 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +[[package]] +name = "windows" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be" +dependencies = [ + "windows-core 0.52.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49" +dependencies = [ + "windows-core 0.54.0", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143" +dependencies = [ + "windows-core 0.57.0", + "windows-targets 0.52.6", +] + [[package]] name = "windows-core" version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.54.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65" +dependencies = [ + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-core" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-result", + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-implement" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-interface" +version = "0.57.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.85", +] + +[[package]] +name = "windows-result" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", ] [[package]] @@ -4015,7 +5283,40 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets", + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", ] [[package]] @@ -4024,57 +5325,163 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + [[package]] name = "winnow" version = "0.5.18" @@ -4084,13 +5491,32 @@ dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + [[package]] name = "xdg-home" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2769203cd13a0c6015d515be729c526d041e9cf2c0cc478d57faee85f40c6dcd" dependencies = [ - "nix 0.26.4", + "nix", "winapi", ] @@ -4118,7 +5544,7 @@ dependencies = [ "futures-sink", "futures-util", "hex", - "nix 0.26.4", + "nix", "once_cell", "ordered-stream", "rand", @@ -4141,7 +5567,7 @@ version = "3.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1794a946878c0e807f55a397187c11fc7a038ba5d868e7db4f3bd7760bc9d" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "regex", @@ -4162,9 +5588,9 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.6.5" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96f8f25c15a0edc9b07eb66e7e6e97d124c0505435c382fde1ab7ceb188aa956" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ "byteorder", "zerocopy-derive", @@ -4172,15 +5598,21 @@ dependencies = [ [[package]] name = "zerocopy-derive" -version = "0.6.5" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "855e0f6af9cd72b87d8a6c586f3cb583f5cdcc62c2c80869d8cd7e96fdf7ee20" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn 2.0.85", ] +[[package]] +name = "zeroize" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" + [[package]] name = "zvariant" version = "3.15.0" @@ -4201,7 +5633,7 @@ version = "3.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "934d7a7dfc310d6ee06c87ffe88ef4eca7d3e37bb251dece2ef93da8f17d8ecd" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", diff --git a/Cargo.toml b/Cargo.toml index 8a750eda..0235ff83 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "spot" -version = "0.4.0" +version = "0.6.0" edition = "2018" license = "MIT" @@ -26,7 +26,7 @@ version = "^0.17.9" features = ["v2_60"] [dependencies.librespot] -version = "0.4.2" +version = "0.6.0" features = ["alsa-backend", "pulseaudio-backend", "gstreamer-backend"] [dependencies.tokio] @@ -73,3 +73,6 @@ lazy_static = "1.4.0" log = "0.4.17" env_logger = "0.10.0" percent-encoding = "2.2.0" +oauth2 = "4.4" +url = "2.4.1" +open = "5.3.0" \ No newline at end of file diff --git a/README.md b/README.md index c9ee930a..0dd4739e 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ Join the discussion on [Matrix](https://matrix.to/#/#spot-devel:matrix.org). Download on Flathub +[![Packaging status](https://repology.org/badge/vertical-allrepos/spot-client.svg)](https://repology.org/project/spot-client/versions) + ## Usage notes ### Credentials diff --git a/TRANSLATORS b/TRANSLATORS index d8162103..e4e80063 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -23,3 +23,4 @@ Seioo Inoue Dmitry Julius Rüberg Francesco Babetto +Walther Smith diff --git a/cargo-sources.json b/cargo-sources.json index 4abe75a5..d801040e 100644 --- a/cargo-sources.json +++ b/cargo-sources.json @@ -25,19 +25,6 @@ "dest": "cargo/vendor/adler-1.0.2", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/aes/aes-0.6.0.crate", - "sha256": "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561", - "dest": "cargo/vendor/aes-0.6.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561\", \"files\": {}}", - "dest": "cargo/vendor/aes-0.6.0", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -54,40 +41,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/aes-ctr/aes-ctr-0.6.0.crate", - "sha256": "7729c3cde54d67063be556aeac75a81330d802f0259500ca40cb52967f975763", - "dest": "cargo/vendor/aes-ctr-0.6.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"7729c3cde54d67063be556aeac75a81330d802f0259500ca40cb52967f975763\", \"files\": {}}", - "dest": "cargo/vendor/aes-ctr-0.6.0", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/aes-soft/aes-soft-0.6.4.crate", - "sha256": "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072", - "dest": "cargo/vendor/aes-soft-0.6.4" + "url": "https://static.crates.io/crates/aes/aes-0.8.4.crate", + "sha256": "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0", + "dest": "cargo/vendor/aes-0.8.4" }, { "type": "inline", - "contents": "{\"package\": \"be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072\", \"files\": {}}", - "dest": "cargo/vendor/aes-soft-0.6.4", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/aesni/aesni-0.10.0.crate", - "sha256": "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce", - "dest": "cargo/vendor/aesni-0.10.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce\", \"files\": {}}", - "dest": "cargo/vendor/aesni-0.10.0", + "contents": "{\"package\": \"b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0\", \"files\": {}}", + "dest": "cargo/vendor/aes-0.8.4", "dest-filename": ".cargo-checksum.json" }, { @@ -106,14 +67,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/alsa/alsa-0.6.0.crate", - "sha256": "5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b", - "dest": "cargo/vendor/alsa-0.6.0" + "url": "https://static.crates.io/crates/alsa/alsa-0.9.1.crate", + "sha256": "ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43", + "dest": "cargo/vendor/alsa-0.9.1" }, { "type": "inline", - "contents": "{\"package\": \"5915f52fe2cf65e83924d037b6c5290b7cee097c6b5c8700746e6168a343fd6b\", \"files\": {}}", - "dest": "cargo/vendor/alsa-0.6.0", + "contents": "{\"package\": \"ed7572b7ba83a31e20d1b48970ee402d2e3e0537dcfe0a3ff4d6eb7508617d43\", \"files\": {}}", + "dest": "cargo/vendor/alsa-0.9.1", "dest-filename": ".cargo-checksum.json" }, { @@ -158,27 +119,92 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/anyhow/anyhow-1.0.75.crate", - "sha256": "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6", - "dest": "cargo/vendor/anyhow-1.0.75" + "url": "https://static.crates.io/crates/anstream/anstream-0.6.17.crate", + "sha256": "23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338", + "dest": "cargo/vendor/anstream-0.6.17" + }, + { + "type": "inline", + "contents": "{\"package\": \"23a1e53f0f5d86382dafe1cf314783b2044280f406e7e1506368220ad11b1338\", \"files\": {}}", + "dest": "cargo/vendor/anstream-0.6.17", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/anstyle/anstyle-1.0.9.crate", + "sha256": "8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56", + "dest": "cargo/vendor/anstyle-1.0.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"8365de52b16c035ff4fcafe0092ba9390540e3e352870ac09933bebcaa2c8c56\", \"files\": {}}", + "dest": "cargo/vendor/anstyle-1.0.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/anstyle-parse/anstyle-parse-0.2.6.crate", + "sha256": "3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9", + "dest": "cargo/vendor/anstyle-parse-0.2.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"3b2d16507662817a6a20a9ea92df6652ee4f94f914589377d69f3b21bc5798a9\", \"files\": {}}", + "dest": "cargo/vendor/anstyle-parse-0.2.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/anstyle-query/anstyle-query-1.1.2.crate", + "sha256": "79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c", + "dest": "cargo/vendor/anstyle-query-1.1.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"79947af37f4177cfead1110013d678905c37501914fba0efea834c3fe9a8d60c\", \"files\": {}}", + "dest": "cargo/vendor/anstyle-query-1.1.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/anstyle-wincon/anstyle-wincon-3.0.6.crate", + "sha256": "2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125", + "dest": "cargo/vendor/anstyle-wincon-3.0.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"2109dbce0e72be3ec00bed26e6a7479ca384ad226efdd66db8fa2e3a38c83125\", \"files\": {}}", + "dest": "cargo/vendor/anstyle-wincon-3.0.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/anyhow/anyhow-1.0.91.crate", + "sha256": "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8", + "dest": "cargo/vendor/anyhow-1.0.91" }, { "type": "inline", - "contents": "{\"package\": \"a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6\", \"files\": {}}", - "dest": "cargo/vendor/anyhow-1.0.75", + "contents": "{\"package\": \"c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8\", \"files\": {}}", + "dest": "cargo/vendor/anyhow-1.0.91", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/array-init/array-init-2.1.0.crate", - "sha256": "3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc", - "dest": "cargo/vendor/array-init-2.1.0" + "url": "https://static.crates.io/crates/arrayvec/arrayvec-0.7.6.crate", + "sha256": "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50", + "dest": "cargo/vendor/arrayvec-0.7.6" }, { "type": "inline", - "contents": "{\"package\": \"3d62b7694a562cdf5a74227903507c56ab2cc8bdd1f781ed5cb4cf9c9f810bfc\", \"files\": {}}", - "dest": "cargo/vendor/array-init-2.1.0", + "contents": "{\"package\": \"7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50\", \"files\": {}}", + "dest": "cargo/vendor/arrayvec-0.7.6", "dest-filename": ".cargo-checksum.json" }, { @@ -379,14 +405,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/atty/atty-0.2.14.crate", - "sha256": "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8", - "dest": "cargo/vendor/atty-0.2.14" + "url": "https://static.crates.io/crates/atomic_refcell/atomic_refcell-0.1.13.crate", + "sha256": "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c", + "dest": "cargo/vendor/atomic_refcell-0.1.13" }, { "type": "inline", - "contents": "{\"package\": \"d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8\", \"files\": {}}", - "dest": "cargo/vendor/atty-0.2.14", + "contents": "{\"package\": \"41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c\", \"files\": {}}", + "dest": "cargo/vendor/atomic_refcell-0.1.13", "dest-filename": ".cargo-checksum.json" }, { @@ -402,6 +428,32 @@ "dest": "cargo/vendor/autocfg-1.1.0", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/aws-lc-rs/aws-lc-rs-1.10.0.crate", + "sha256": "cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d", + "dest": "cargo/vendor/aws-lc-rs-1.10.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"cdd82dba44d209fddb11c190e0a94b78651f95299598e472215667417a03ff1d\", \"files\": {}}", + "dest": "cargo/vendor/aws-lc-rs-1.10.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/aws-lc-sys/aws-lc-sys-0.22.0.crate", + "sha256": "df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972", + "dest": "cargo/vendor/aws-lc-sys-0.22.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"df7a4168111d7eb622a31b214057b8509c0a7e1794f44c546d742330dc793972\", \"files\": {}}", + "dest": "cargo/vendor/aws-lc-sys-0.22.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -441,6 +493,32 @@ "dest": "cargo/vendor/base64-0.21.5", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/base64/base64-0.22.1.crate", + "sha256": "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6", + "dest": "cargo/vendor/base64-0.22.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6\", \"files\": {}}", + "dest": "cargo/vendor/base64-0.22.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/base64ct/base64ct-1.6.0.crate", + "sha256": "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b", + "dest": "cargo/vendor/base64ct-1.6.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b\", \"files\": {}}", + "dest": "cargo/vendor/base64ct-1.6.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -454,6 +532,19 @@ "dest": "cargo/vendor/bindgen-0.68.1", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/bindgen/bindgen-0.69.5.crate", + "sha256": "271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088", + "dest": "cargo/vendor/bindgen-0.69.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"271383c67ccabffb7381723dea0672a673f292304fcb45c01cc648c7a8d58088\", \"files\": {}}", + "dest": "cargo/vendor/bindgen-0.69.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -470,14 +561,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/bitflags/bitflags-2.4.1.crate", - "sha256": "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07", - "dest": "cargo/vendor/bitflags-2.4.1" + "url": "https://static.crates.io/crates/bitflags/bitflags-2.6.0.crate", + "sha256": "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de", + "dest": "cargo/vendor/bitflags-2.6.0" }, { "type": "inline", - "contents": "{\"package\": \"327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07\", \"files\": {}}", - "dest": "cargo/vendor/bitflags-2.4.1", + "contents": "{\"package\": \"b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de\", \"files\": {}}", + "dest": "cargo/vendor/bitflags-2.6.0", "dest-filename": ".cargo-checksum.json" }, { @@ -493,19 +584,6 @@ "dest": "cargo/vendor/block-0.1.6", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/block-buffer/block-buffer-0.9.0.crate", - "sha256": "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4", - "dest": "cargo/vendor/block-buffer-0.9.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4\", \"files\": {}}", - "dest": "cargo/vendor/block-buffer-0.9.0", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -571,6 +649,19 @@ "dest": "cargo/vendor/bumpalo-3.14.0", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/bytemuck/bytemuck-1.19.0.crate", + "sha256": "8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d", + "dest": "cargo/vendor/bytemuck-1.19.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"8334215b81e418a0a7bdb8ef0849474f40bb10c8b71f1c4ed315cff49f32494d\", \"files\": {}}", + "dest": "cargo/vendor/bytemuck-1.19.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -639,14 +730,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cc/cc-1.0.83.crate", - "sha256": "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0", - "dest": "cargo/vendor/cc-1.0.83" + "url": "https://static.crates.io/crates/cc/cc-1.1.10.crate", + "sha256": "e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292", + "dest": "cargo/vendor/cc-1.1.10" }, { "type": "inline", - "contents": "{\"package\": \"f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0\", \"files\": {}}", - "dest": "cargo/vendor/cc-1.0.83", + "contents": "{\"package\": \"e9e8aabfac534be767c909e0690571677d49f41bd8465ae876fe043d52ba5292\", \"files\": {}}", + "dest": "cargo/vendor/cc-1.1.10", "dest-filename": ".cargo-checksum.json" }, { @@ -688,6 +779,19 @@ "dest": "cargo/vendor/cfg-expr-0.15.5", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cfg-expr/cfg-expr-0.17.0.crate", + "sha256": "d0890061c4d3223e7267f3bad2ec40b997d64faac1c2815a4a9d95018e2b9e9c", + "dest": "cargo/vendor/cfg-expr-0.17.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"d0890061c4d3223e7267f3bad2ec40b997d64faac1c2815a4a9d95018e2b9e9c\", \"files\": {}}", + "dest": "cargo/vendor/cfg-expr-0.17.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -717,27 +821,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cipher/cipher-0.2.5.crate", - "sha256": "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801", - "dest": "cargo/vendor/cipher-0.2.5" + "url": "https://static.crates.io/crates/cipher/cipher-0.3.0.crate", + "sha256": "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7", + "dest": "cargo/vendor/cipher-0.3.0" }, { "type": "inline", - "contents": "{\"package\": \"12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801\", \"files\": {}}", - "dest": "cargo/vendor/cipher-0.2.5", + "contents": "{\"package\": \"7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7\", \"files\": {}}", + "dest": "cargo/vendor/cipher-0.3.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cipher/cipher-0.3.0.crate", - "sha256": "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7", - "dest": "cargo/vendor/cipher-0.3.0" + "url": "https://static.crates.io/crates/cipher/cipher-0.4.4.crate", + "sha256": "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad", + "dest": "cargo/vendor/cipher-0.4.4" }, { "type": "inline", - "contents": "{\"package\": \"7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7\", \"files\": {}}", - "dest": "cargo/vendor/cipher-0.3.0", + "contents": "{\"package\": \"773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad\", \"files\": {}}", + "dest": "cargo/vendor/cipher-0.4.4", "dest-filename": ".cargo-checksum.json" }, { @@ -753,6 +857,32 @@ "dest": "cargo/vendor/clang-sys-1.6.1", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/cmake/cmake-0.1.51.crate", + "sha256": "fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a", + "dest": "cargo/vendor/cmake-0.1.51" + }, + { + "type": "inline", + "contents": "{\"package\": \"fb1e43aa7fd152b1f968787f7dbcdeb306d1867ff373c69955211876c053f91a\", \"files\": {}}", + "dest": "cargo/vendor/cmake-0.1.51", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/colorchoice/colorchoice-1.0.3.crate", + "sha256": "5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990", + "dest": "cargo/vendor/colorchoice-1.0.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"5b63caa9aa9397e2d9480a9b13673856c78d8ac123288526c37d7839f2a86990\", \"files\": {}}", + "dest": "cargo/vendor/colorchoice-1.0.3", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -779,6 +909,32 @@ "dest": "cargo/vendor/concurrent-queue-2.3.0", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/const-oid/const-oid-0.9.6.crate", + "sha256": "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8", + "dest": "cargo/vendor/const-oid-0.9.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8\", \"files\": {}}", + "dest": "cargo/vendor/const-oid-0.9.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/core-foundation/core-foundation-0.9.3.crate", + "sha256": "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146", + "dest": "cargo/vendor/core-foundation-0.9.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146\", \"files\": {}}", + "dest": "cargo/vendor/core-foundation-0.9.3", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -795,14 +951,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/coreaudio-rs/coreaudio-rs-0.10.0.crate", - "sha256": "11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88", - "dest": "cargo/vendor/coreaudio-rs-0.10.0" + "url": "https://static.crates.io/crates/coreaudio-rs/coreaudio-rs-0.11.3.crate", + "sha256": "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace", + "dest": "cargo/vendor/coreaudio-rs-0.11.3" }, { "type": "inline", - "contents": "{\"package\": \"11894b20ebfe1ff903cbdc52259693389eea03b94918a2def2c30c3bf227ad88\", \"files\": {}}", - "dest": "cargo/vendor/coreaudio-rs-0.10.0", + "contents": "{\"package\": \"321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace\", \"files\": {}}", + "dest": "cargo/vendor/coreaudio-rs-0.11.3", "dest-filename": ".cargo-checksum.json" }, { @@ -821,14 +977,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/cpal/cpal-0.13.5.crate", - "sha256": "74117836a5124f3629e4b474eed03e479abaf98988b4bb317e29f08cfe0e4116", - "dest": "cargo/vendor/cpal-0.13.5" + "url": "https://static.crates.io/crates/cpal/cpal-0.15.3.crate", + "sha256": "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779", + "dest": "cargo/vendor/cpal-0.15.3" }, { "type": "inline", - "contents": "{\"package\": \"74117836a5124f3629e4b474eed03e479abaf98988b4bb317e29f08cfe0e4116\", \"files\": {}}", - "dest": "cargo/vendor/cpal-0.13.5", + "contents": "{\"package\": \"873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779\", \"files\": {}}", + "dest": "cargo/vendor/cpal-0.15.3", "dest-filename": ".cargo-checksum.json" }, { @@ -873,27 +1029,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/crypto-mac/crypto-mac-0.11.1.crate", - "sha256": "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714", - "dest": "cargo/vendor/crypto-mac-0.11.1" - }, - { - "type": "inline", - "contents": "{\"package\": \"b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714\", \"files\": {}}", - "dest": "cargo/vendor/crypto-mac-0.11.1", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ctr/ctr-0.6.0.crate", - "sha256": "fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f", - "dest": "cargo/vendor/ctr-0.6.0" + "url": "https://static.crates.io/crates/ctr/ctr-0.9.2.crate", + "sha256": "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835", + "dest": "cargo/vendor/ctr-0.9.2" }, { "type": "inline", - "contents": "{\"package\": \"fb4a30d54f7443bf3d6191dcd486aca19e67cb3c49fa7a06a319966346707e7f\", \"files\": {}}", - "dest": "cargo/vendor/ctr-0.6.0", + "contents": "{\"package\": \"0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835\", \"files\": {}}", + "dest": "cargo/vendor/ctr-0.9.2", "dest-filename": ".cargo-checksum.json" }, { @@ -925,40 +1068,92 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/darling/darling-0.13.4.crate", - "sha256": "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c", - "dest": "cargo/vendor/darling-0.13.4" + "url": "https://static.crates.io/crates/darling/darling-0.20.10.crate", + "sha256": "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989", + "dest": "cargo/vendor/darling-0.20.10" + }, + { + "type": "inline", + "contents": "{\"package\": \"6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989\", \"files\": {}}", + "dest": "cargo/vendor/darling-0.20.10", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/darling_core/darling_core-0.20.10.crate", + "sha256": "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5", + "dest": "cargo/vendor/darling_core-0.20.10" + }, + { + "type": "inline", + "contents": "{\"package\": \"95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5\", \"files\": {}}", + "dest": "cargo/vendor/darling_core-0.20.10", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/darling_macro/darling_macro-0.20.10.crate", + "sha256": "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806", + "dest": "cargo/vendor/darling_macro-0.20.10" + }, + { + "type": "inline", + "contents": "{\"package\": \"d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806\", \"files\": {}}", + "dest": "cargo/vendor/darling_macro-0.20.10", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dasp_sample/dasp_sample-0.11.0.crate", + "sha256": "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f", + "dest": "cargo/vendor/dasp_sample-0.11.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f\", \"files\": {}}", + "dest": "cargo/vendor/dasp_sample-0.11.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/data-encoding/data-encoding-2.6.0.crate", + "sha256": "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2", + "dest": "cargo/vendor/data-encoding-2.6.0" }, { "type": "inline", - "contents": "{\"package\": \"a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c\", \"files\": {}}", - "dest": "cargo/vendor/darling-0.13.4", + "contents": "{\"package\": \"e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2\", \"files\": {}}", + "dest": "cargo/vendor/data-encoding-2.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/darling_core/darling_core-0.13.4.crate", - "sha256": "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610", - "dest": "cargo/vendor/darling_core-0.13.4" + "url": "https://static.crates.io/crates/der/der-0.7.9.crate", + "sha256": "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0", + "dest": "cargo/vendor/der-0.7.9" }, { "type": "inline", - "contents": "{\"package\": \"859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610\", \"files\": {}}", - "dest": "cargo/vendor/darling_core-0.13.4", + "contents": "{\"package\": \"f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0\", \"files\": {}}", + "dest": "cargo/vendor/der-0.7.9", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/darling_macro/darling_macro-0.13.4.crate", - "sha256": "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835", - "dest": "cargo/vendor/darling_macro-0.13.4" + "url": "https://static.crates.io/crates/deranged/deranged-0.3.11.crate", + "sha256": "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4", + "dest": "cargo/vendor/deranged-0.3.11" }, { "type": "inline", - "contents": "{\"package\": \"9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835\", \"files\": {}}", - "dest": "cargo/vendor/darling_macro-0.13.4", + "contents": "{\"package\": \"b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4\", \"files\": {}}", + "dest": "cargo/vendor/deranged-0.3.11", "dest-filename": ".cargo-checksum.json" }, { @@ -977,14 +1172,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/digest/digest-0.9.0.crate", - "sha256": "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066", - "dest": "cargo/vendor/digest-0.9.0" + "url": "https://static.crates.io/crates/derive_builder/derive_builder-0.20.2.crate", + "sha256": "507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947", + "dest": "cargo/vendor/derive_builder-0.20.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"507dfb09ea8b7fa618fcf76e953f4f5e192547945816d5358edffe39f6f94947\", \"files\": {}}", + "dest": "cargo/vendor/derive_builder-0.20.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/derive_builder_core/derive_builder_core-0.20.2.crate", + "sha256": "2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8", + "dest": "cargo/vendor/derive_builder_core-0.20.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"2d5bcf7b024d6835cfb3d473887cd966994907effbe9227e8c8219824d06c4e8\", \"files\": {}}", + "dest": "cargo/vendor/derive_builder_core-0.20.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/derive_builder_macro/derive_builder_macro-0.20.2.crate", + "sha256": "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c", + "dest": "cargo/vendor/derive_builder_macro-0.20.2" }, { "type": "inline", - "contents": "{\"package\": \"d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066\", \"files\": {}}", - "dest": "cargo/vendor/digest-0.9.0", + "contents": "{\"package\": \"ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c\", \"files\": {}}", + "dest": "cargo/vendor/derive_builder_macro-0.20.2", "dest-filename": ".cargo-checksum.json" }, { @@ -1000,6 +1221,32 @@ "dest": "cargo/vendor/digest-0.10.7", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/dunce/dunce-1.0.5.crate", + "sha256": "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813", + "dest": "cargo/vendor/dunce-1.0.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813\", \"files\": {}}", + "dest": "cargo/vendor/dunce-1.0.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/either/either-1.13.0.crate", + "sha256": "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0", + "dest": "cargo/vendor/either-1.13.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0\", \"files\": {}}", + "dest": "cargo/vendor/either-1.13.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1042,14 +1289,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/env_logger/env_logger-0.9.3.crate", - "sha256": "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7", - "dest": "cargo/vendor/env_logger-0.9.3" + "url": "https://static.crates.io/crates/env_filter/env_filter-0.1.2.crate", + "sha256": "4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab", + "dest": "cargo/vendor/env_filter-0.1.2" }, { "type": "inline", - "contents": "{\"package\": \"a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7\", \"files\": {}}", - "dest": "cargo/vendor/env_logger-0.9.3", + "contents": "{\"package\": \"4f2c92ceda6ceec50f43169f9ee8424fe2db276791afde7b2cd8bc084cb376ab\", \"files\": {}}", + "dest": "cargo/vendor/env_filter-0.1.2", "dest-filename": ".cargo-checksum.json" }, { @@ -1065,6 +1312,19 @@ "dest": "cargo/vendor/env_logger-0.10.0", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/env_logger/env_logger-0.11.5.crate", + "sha256": "e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d", + "dest": "cargo/vendor/env_logger-0.11.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"e13fa619b91fb2381732789fc5de83b45675e882f66623b7d8cb4f643017018d\", \"files\": {}}", + "dest": "cargo/vendor/env_logger-0.11.5", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1198,40 +1458,53 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures/futures-0.3.29.crate", - "sha256": "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335", - "dest": "cargo/vendor/futures-0.3.29" + "url": "https://static.crates.io/crates/fs_extra/fs_extra-1.3.0.crate", + "sha256": "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c", + "dest": "cargo/vendor/fs_extra-1.3.0" }, { "type": "inline", - "contents": "{\"package\": \"da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335\", \"files\": {}}", - "dest": "cargo/vendor/futures-0.3.29", + "contents": "{\"package\": \"42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c\", \"files\": {}}", + "dest": "cargo/vendor/fs_extra-1.3.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.29.crate", - "sha256": "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb", - "dest": "cargo/vendor/futures-channel-0.3.29" - }, + "url": "https://static.crates.io/crates/futures/futures-0.3.29.crate", + "sha256": "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335", + "dest": "cargo/vendor/futures-0.3.29" + }, + { + "type": "inline", + "contents": "{\"package\": \"da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335\", \"files\": {}}", + "dest": "cargo/vendor/futures-0.3.29", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-channel/futures-channel-0.3.31.crate", + "sha256": "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10", + "dest": "cargo/vendor/futures-channel-0.3.31" + }, { "type": "inline", - "contents": "{\"package\": \"ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb\", \"files\": {}}", - "dest": "cargo/vendor/futures-channel-0.3.29", + "contents": "{\"package\": \"2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10\", \"files\": {}}", + "dest": "cargo/vendor/futures-channel-0.3.31", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.29.crate", - "sha256": "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c", - "dest": "cargo/vendor/futures-core-0.3.29" + "url": "https://static.crates.io/crates/futures-core/futures-core-0.3.31.crate", + "sha256": "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e", + "dest": "cargo/vendor/futures-core-0.3.31" }, { "type": "inline", - "contents": "{\"package\": \"eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c\", \"files\": {}}", - "dest": "cargo/vendor/futures-core-0.3.29", + "contents": "{\"package\": \"05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e\", \"files\": {}}", + "dest": "cargo/vendor/futures-core-0.3.31", "dest-filename": ".cargo-checksum.json" }, { @@ -1250,14 +1523,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.29.crate", - "sha256": "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa", - "dest": "cargo/vendor/futures-io-0.3.29" + "url": "https://static.crates.io/crates/futures-io/futures-io-0.3.31.crate", + "sha256": "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6", + "dest": "cargo/vendor/futures-io-0.3.31" }, { "type": "inline", - "contents": "{\"package\": \"8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa\", \"files\": {}}", - "dest": "cargo/vendor/futures-io-0.3.29", + "contents": "{\"package\": \"9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6\", \"files\": {}}", + "dest": "cargo/vendor/futures-io-0.3.31", "dest-filename": ".cargo-checksum.json" }, { @@ -1276,53 +1549,66 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.29.crate", - "sha256": "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb", - "dest": "cargo/vendor/futures-macro-0.3.29" + "url": "https://static.crates.io/crates/futures-macro/futures-macro-0.3.31.crate", + "sha256": "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650", + "dest": "cargo/vendor/futures-macro-0.3.31" + }, + { + "type": "inline", + "contents": "{\"package\": \"162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650\", \"files\": {}}", + "dest": "cargo/vendor/futures-macro-0.3.31", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.31.crate", + "sha256": "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7", + "dest": "cargo/vendor/futures-sink-0.3.31" }, { "type": "inline", - "contents": "{\"package\": \"53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb\", \"files\": {}}", - "dest": "cargo/vendor/futures-macro-0.3.29", + "contents": "{\"package\": \"e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7\", \"files\": {}}", + "dest": "cargo/vendor/futures-sink-0.3.31", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-sink/futures-sink-0.3.29.crate", - "sha256": "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817", - "dest": "cargo/vendor/futures-sink-0.3.29" + "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.31.crate", + "sha256": "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988", + "dest": "cargo/vendor/futures-task-0.3.31" }, { "type": "inline", - "contents": "{\"package\": \"e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817\", \"files\": {}}", - "dest": "cargo/vendor/futures-sink-0.3.29", + "contents": "{\"package\": \"f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988\", \"files\": {}}", + "dest": "cargo/vendor/futures-task-0.3.31", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-task/futures-task-0.3.29.crate", - "sha256": "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2", - "dest": "cargo/vendor/futures-task-0.3.29" + "url": "https://static.crates.io/crates/futures-timer/futures-timer-3.0.3.crate", + "sha256": "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24", + "dest": "cargo/vendor/futures-timer-3.0.3" }, { "type": "inline", - "contents": "{\"package\": \"efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2\", \"files\": {}}", - "dest": "cargo/vendor/futures-task-0.3.29", + "contents": "{\"package\": \"f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24\", \"files\": {}}", + "dest": "cargo/vendor/futures-timer-3.0.3", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.29.crate", - "sha256": "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104", - "dest": "cargo/vendor/futures-util-0.3.29" + "url": "https://static.crates.io/crates/futures-util/futures-util-0.3.31.crate", + "sha256": "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81", + "dest": "cargo/vendor/futures-util-0.3.31" }, { "type": "inline", - "contents": "{\"package\": \"a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104\", \"files\": {}}", - "dest": "cargo/vendor/futures-util-0.3.29", + "contents": "{\"package\": \"9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81\", \"files\": {}}", + "dest": "cargo/vendor/futures-util-0.3.31", "dest-filename": ".cargo-checksum.json" }, { @@ -1484,14 +1770,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib/glib-0.15.12.crate", - "sha256": "edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d", - "dest": "cargo/vendor/glib-0.15.12" + "url": "https://static.crates.io/crates/gio-sys/gio-sys-0.20.4.crate", + "sha256": "4f7efc368de04755344f0084104835b6bb71df2c1d41e37d863947392a894779", + "dest": "cargo/vendor/gio-sys-0.20.4" }, { "type": "inline", - "contents": "{\"package\": \"edb0306fbad0ab5428b0ca674a23893db909a98582969c9b537be4ced78c505d\", \"files\": {}}", - "dest": "cargo/vendor/glib-0.15.12", + "contents": "{\"package\": \"4f7efc368de04755344f0084104835b6bb71df2c1d41e37d863947392a894779\", \"files\": {}}", + "dest": "cargo/vendor/gio-sys-0.20.4", "dest-filename": ".cargo-checksum.json" }, { @@ -1510,14 +1796,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.15.13.crate", - "sha256": "10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a", - "dest": "cargo/vendor/glib-macros-0.15.13" + "url": "https://static.crates.io/crates/glib/glib-0.20.4.crate", + "sha256": "adcf1ec6d3650bf9fdbc6cee242d4fcebc6f6bfd9bea5b929b6a8b7344eb85ff", + "dest": "cargo/vendor/glib-0.20.4" }, { "type": "inline", - "contents": "{\"package\": \"10c6ae9f6fa26f4fb2ac16b528d138d971ead56141de489f8111e259b9df3c4a\", \"files\": {}}", - "dest": "cargo/vendor/glib-macros-0.15.13", + "contents": "{\"package\": \"adcf1ec6d3650bf9fdbc6cee242d4fcebc6f6bfd9bea5b929b6a8b7344eb85ff\", \"files\": {}}", + "dest": "cargo/vendor/glib-0.20.4", "dest-filename": ".cargo-checksum.json" }, { @@ -1536,14 +1822,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.15.10.crate", - "sha256": "ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4", - "dest": "cargo/vendor/glib-sys-0.15.10" + "url": "https://static.crates.io/crates/glib-macros/glib-macros-0.20.4.crate", + "sha256": "a6bf88f70cd5720a6197639dcabcb378dd528d0cb68cb1f45e3b358bcb841cd7", + "dest": "cargo/vendor/glib-macros-0.20.4" }, { "type": "inline", - "contents": "{\"package\": \"ef4b192f8e65e9cf76cbf4ea71fa8e3be4a0e18ffe3d68b8da6836974cc5bad4\", \"files\": {}}", - "dest": "cargo/vendor/glib-sys-0.15.10", + "contents": "{\"package\": \"a6bf88f70cd5720a6197639dcabcb378dd528d0cb68cb1f45e3b358bcb841cd7\", \"files\": {}}", + "dest": "cargo/vendor/glib-macros-0.20.4", "dest-filename": ".cargo-checksum.json" }, { @@ -1559,6 +1845,19 @@ "dest": "cargo/vendor/glib-sys-0.17.10", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/glib-sys/glib-sys-0.20.4.crate", + "sha256": "5f9eca5d88cfa6a453b00d203287c34a2b7cac3a7831779aa2bb0b3c7233752b", + "dest": "cargo/vendor/glib-sys-0.20.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"5f9eca5d88cfa6a453b00d203287c34a2b7cac3a7831779aa2bb0b3c7233752b\", \"files\": {}}", + "dest": "cargo/vendor/glib-sys-0.20.4", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1588,27 +1887,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.15.10.crate", - "sha256": "0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a", - "dest": "cargo/vendor/gobject-sys-0.15.10" + "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.17.10.crate", + "sha256": "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062", + "dest": "cargo/vendor/gobject-sys-0.17.10" + }, + { + "type": "inline", + "contents": "{\"package\": \"cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062\", \"files\": {}}", + "dest": "cargo/vendor/gobject-sys-0.17.10", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.20.4.crate", + "sha256": "a4c674d2ff8478cf0ec29d2be730ed779fef54415a2fb4b565c52def62696462", + "dest": "cargo/vendor/gobject-sys-0.20.4" }, { "type": "inline", - "contents": "{\"package\": \"0d57ce44246becd17153bd035ab4d32cfee096a657fc01f2231c9278378d1e0a\", \"files\": {}}", - "dest": "cargo/vendor/gobject-sys-0.15.10", + "contents": "{\"package\": \"a4c674d2ff8478cf0ec29d2be730ed779fef54415a2fb4b565c52def62696462\", \"files\": {}}", + "dest": "cargo/vendor/gobject-sys-0.20.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gobject-sys/gobject-sys-0.17.10.crate", - "sha256": "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062", - "dest": "cargo/vendor/gobject-sys-0.17.10" + "url": "https://static.crates.io/crates/governor/governor-0.6.3.crate", + "sha256": "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b", + "dest": "cargo/vendor/governor-0.6.3" }, { "type": "inline", - "contents": "{\"package\": \"cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062\", \"files\": {}}", - "dest": "cargo/vendor/gobject-sys-0.17.10", + "contents": "{\"package\": \"68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b\", \"files\": {}}", + "dest": "cargo/vendor/governor-0.6.3", "dest-filename": ".cargo-checksum.json" }, { @@ -1666,105 +1978,105 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer/gstreamer-0.18.8.crate", - "sha256": "d66363bacf5e4f6eb281564adc2902e44c52ae5c45082423e7439e9012b75456", - "dest": "cargo/vendor/gstreamer-0.18.8" + "url": "https://static.crates.io/crates/gstreamer/gstreamer-0.23.2.crate", + "sha256": "49ecf3bcfc2ceb82ce02437f53ff2fcaee5e7d45ae697ab64a018408749779b9", + "dest": "cargo/vendor/gstreamer-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"d66363bacf5e4f6eb281564adc2902e44c52ae5c45082423e7439e9012b75456\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-0.18.8", + "contents": "{\"package\": \"49ecf3bcfc2ceb82ce02437f53ff2fcaee5e7d45ae697ab64a018408749779b9\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-app/gstreamer-app-0.18.7.crate", - "sha256": "664adf6abc6546c1ad54492a067dcbc605032c9c789ce8f6f78cb9ddeef4b684", - "dest": "cargo/vendor/gstreamer-app-0.18.7" + "url": "https://static.crates.io/crates/gstreamer-app/gstreamer-app-0.23.2.crate", + "sha256": "54a4ec9f0d2037349c82f589c1cbfe788a62f4941851924bb7c3929a6a790007", + "dest": "cargo/vendor/gstreamer-app-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"664adf6abc6546c1ad54492a067dcbc605032c9c789ce8f6f78cb9ddeef4b684\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-app-0.18.7", + "contents": "{\"package\": \"54a4ec9f0d2037349c82f589c1cbfe788a62f4941851924bb7c3929a6a790007\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-app-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-app-sys/gstreamer-app-sys-0.18.0.crate", - "sha256": "c3b401f21d731b3e5de802487f25507fabd34de2dd007d582f440fb1c66a4fbb", - "dest": "cargo/vendor/gstreamer-app-sys-0.18.0" + "url": "https://static.crates.io/crates/gstreamer-app-sys/gstreamer-app-sys-0.23.2.crate", + "sha256": "08d5cac633c1ab7030c777c8c58c682a0c763bbc4127bccc370dabe39c01a12d", + "dest": "cargo/vendor/gstreamer-app-sys-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"c3b401f21d731b3e5de802487f25507fabd34de2dd007d582f440fb1c66a4fbb\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-app-sys-0.18.0", + "contents": "{\"package\": \"08d5cac633c1ab7030c777c8c58c682a0c763bbc4127bccc370dabe39c01a12d\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-app-sys-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-audio/gstreamer-audio-0.18.7.crate", - "sha256": "9ceb43e669be4c33c38b273fd4ca0511c0a7748987835233c529fc3c805c807e", - "dest": "cargo/vendor/gstreamer-audio-0.18.7" + "url": "https://static.crates.io/crates/gstreamer-audio/gstreamer-audio-0.23.2.crate", + "sha256": "36d39b07213f83055fc705a384fa32ad581776b8e5b04c86f3a419ec5dfc0f81", + "dest": "cargo/vendor/gstreamer-audio-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"9ceb43e669be4c33c38b273fd4ca0511c0a7748987835233c529fc3c805c807e\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-audio-0.18.7", + "contents": "{\"package\": \"36d39b07213f83055fc705a384fa32ad581776b8e5b04c86f3a419ec5dfc0f81\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-audio-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-audio-sys/gstreamer-audio-sys-0.18.3.crate", - "sha256": "a34258fb53c558c0f41dad194037cbeaabf49d347570df11b8bd1c4897cf7d7c", - "dest": "cargo/vendor/gstreamer-audio-sys-0.18.3" + "url": "https://static.crates.io/crates/gstreamer-audio-sys/gstreamer-audio-sys-0.23.2.crate", + "sha256": "d84744e7ac8f8bc0cf76b7be40f2d5be12e6cf197e4c6ca9d3438109c21e2f51", + "dest": "cargo/vendor/gstreamer-audio-sys-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"a34258fb53c558c0f41dad194037cbeaabf49d347570df11b8bd1c4897cf7d7c\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-audio-sys-0.18.3", + "contents": "{\"package\": \"d84744e7ac8f8bc0cf76b7be40f2d5be12e6cf197e4c6ca9d3438109c21e2f51\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-audio-sys-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-base/gstreamer-base-0.18.0.crate", - "sha256": "224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f", - "dest": "cargo/vendor/gstreamer-base-0.18.0" + "url": "https://static.crates.io/crates/gstreamer-base/gstreamer-base-0.23.2.crate", + "sha256": "46ce7330d2995138a77192ea20961422ddee1578e1a47480acb820c43ceb0e2d", + "dest": "cargo/vendor/gstreamer-base-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"224f35f36582407caf58ded74854526beeecc23d0cf64b8d1c3e00584ed6863f\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-base-0.18.0", + "contents": "{\"package\": \"46ce7330d2995138a77192ea20961422ddee1578e1a47480acb820c43ceb0e2d\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-base-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-base-sys/gstreamer-base-sys-0.18.0.crate", - "sha256": "a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e", - "dest": "cargo/vendor/gstreamer-base-sys-0.18.0" + "url": "https://static.crates.io/crates/gstreamer-base-sys/gstreamer-base-sys-0.23.2.crate", + "sha256": "7796e694c21c215447811c9cff694dce1fc6e02b0bbafb75cd8583b6aefe9e5f", + "dest": "cargo/vendor/gstreamer-base-sys-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"a083493c3c340e71fa7c66eebda016e9fafc03eb1b4804cf9b2bad61994b078e\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-base-sys-0.18.0", + "contents": "{\"package\": \"7796e694c21c215447811c9cff694dce1fc6e02b0bbafb75cd8583b6aefe9e5f\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-base-sys-0.23.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/gstreamer-sys/gstreamer-sys-0.18.0.crate", - "sha256": "e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2", - "dest": "cargo/vendor/gstreamer-sys-0.18.0" + "url": "https://static.crates.io/crates/gstreamer-sys/gstreamer-sys-0.23.2.crate", + "sha256": "cb3859929db32f26a35818d0d9ed82f0887c9221ca402ddefaea2bb99833d535", + "dest": "cargo/vendor/gstreamer-sys-0.23.2" }, { "type": "inline", - "contents": "{\"package\": \"e3517a65d3c2e6f8905b456eba5d53bda158d664863aef960b44f651cb7d33e2\", \"files\": {}}", - "dest": "cargo/vendor/gstreamer-sys-0.18.0", + "contents": "{\"package\": \"cb3859929db32f26a35818d0d9ed82f0887c9221ca402ddefaea2bb99833d535\", \"files\": {}}", + "dest": "cargo/vendor/gstreamer-sys-0.23.2", "dest-filename": ".cargo-checksum.json" }, { @@ -1809,53 +2121,66 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.12.3.crate", - "sha256": "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888", - "dest": "cargo/vendor/hashbrown-0.12.3" + "url": "https://static.crates.io/crates/h2/h2-0.3.26.crate", + "sha256": "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8", + "dest": "cargo/vendor/h2-0.3.26" }, { "type": "inline", - "contents": "{\"package\": \"8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888\", \"files\": {}}", - "dest": "cargo/vendor/hashbrown-0.12.3", + "contents": "{\"package\": \"81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8\", \"files\": {}}", + "dest": "cargo/vendor/h2-0.3.26", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.14.2.crate", - "sha256": "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156", - "dest": "cargo/vendor/hashbrown-0.14.2" + "url": "https://static.crates.io/crates/h2/h2-0.4.6.crate", + "sha256": "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205", + "dest": "cargo/vendor/h2-0.4.6" }, { "type": "inline", - "contents": "{\"package\": \"f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156\", \"files\": {}}", - "dest": "cargo/vendor/hashbrown-0.14.2", + "contents": "{\"package\": \"524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205\", \"files\": {}}", + "dest": "cargo/vendor/h2-0.4.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/headers/headers-0.3.9.crate", - "sha256": "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270", - "dest": "cargo/vendor/headers-0.3.9" + "url": "https://static.crates.io/crates/hashbrown/hashbrown-0.15.0.crate", + "sha256": "1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb", + "dest": "cargo/vendor/hashbrown-0.15.0" }, { "type": "inline", - "contents": "{\"package\": \"06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270\", \"files\": {}}", - "dest": "cargo/vendor/headers-0.3.9", + "contents": "{\"package\": \"1e087f84d4f86bf4b218b927129862374b72199ae7d8657835f1e89000eea4fb\", \"files\": {}}", + "dest": "cargo/vendor/hashbrown-0.15.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/headers-core/headers-core-0.2.0.crate", - "sha256": "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429", - "dest": "cargo/vendor/headers-core-0.2.0" + "url": "https://static.crates.io/crates/headers/headers-0.4.0.crate", + "sha256": "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9", + "dest": "cargo/vendor/headers-0.4.0" }, { "type": "inline", - "contents": "{\"package\": \"e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429\", \"files\": {}}", - "dest": "cargo/vendor/headers-core-0.2.0", + "contents": "{\"package\": \"322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9\", \"files\": {}}", + "dest": "cargo/vendor/headers-0.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/headers-core/headers-core-0.3.0.crate", + "sha256": "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4", + "dest": "cargo/vendor/headers-core-0.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4\", \"files\": {}}", + "dest": "cargo/vendor/headers-core-0.3.0", "dest-filename": ".cargo-checksum.json" }, { @@ -1874,27 +2199,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hermit-abi/hermit-abi-0.1.19.crate", - "sha256": "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33", - "dest": "cargo/vendor/hermit-abi-0.1.19" + "url": "https://static.crates.io/crates/heck/heck-0.5.0.crate", + "sha256": "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea", + "dest": "cargo/vendor/heck-0.5.0" }, { "type": "inline", - "contents": "{\"package\": \"62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33\", \"files\": {}}", - "dest": "cargo/vendor/hermit-abi-0.1.19", + "contents": "{\"package\": \"2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea\", \"files\": {}}", + "dest": "cargo/vendor/heck-0.5.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hermit-abi/hermit-abi-0.3.3.crate", - "sha256": "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7", - "dest": "cargo/vendor/hermit-abi-0.3.3" + "url": "https://static.crates.io/crates/hermit-abi/hermit-abi-0.3.9.crate", + "sha256": "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024", + "dest": "cargo/vendor/hermit-abi-0.3.9" }, { "type": "inline", - "contents": "{\"package\": \"d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7\", \"files\": {}}", - "dest": "cargo/vendor/hermit-abi-0.3.3", + "contents": "{\"package\": \"d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024\", \"files\": {}}", + "dest": "cargo/vendor/hermit-abi-0.3.9", "dest-filename": ".cargo-checksum.json" }, { @@ -1926,40 +2251,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hmac/hmac-0.11.0.crate", - "sha256": "2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b", - "dest": "cargo/vendor/hmac-0.11.0" + "url": "https://static.crates.io/crates/hmac/hmac-0.12.1.crate", + "sha256": "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e", + "dest": "cargo/vendor/hmac-0.12.1" }, { "type": "inline", - "contents": "{\"package\": \"2a2a2320eb7ec0ebe8da8f744d7812d9fc4cb4d09344ac01898dbcb6a20ae69b\", \"files\": {}}", - "dest": "cargo/vendor/hmac-0.11.0", + "contents": "{\"package\": \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\", \"files\": {}}", + "dest": "cargo/vendor/hmac-0.12.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hmac/hmac-0.12.1.crate", - "sha256": "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e", - "dest": "cargo/vendor/hmac-0.12.1" + "url": "https://static.crates.io/crates/home/home-0.5.9.crate", + "sha256": "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5", + "dest": "cargo/vendor/home-0.5.9" }, { "type": "inline", - "contents": "{\"package\": \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\", \"files\": {}}", - "dest": "cargo/vendor/hmac-0.12.1", + "contents": "{\"package\": \"e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5\", \"files\": {}}", + "dest": "cargo/vendor/home-0.5.9", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hostname/hostname-0.3.1.crate", - "sha256": "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867", - "dest": "cargo/vendor/hostname-0.3.1" + "url": "https://static.crates.io/crates/hostname/hostname-0.4.0.crate", + "sha256": "f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba", + "dest": "cargo/vendor/hostname-0.4.0" }, { "type": "inline", - "contents": "{\"package\": \"3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867\", \"files\": {}}", - "dest": "cargo/vendor/hostname-0.3.1", + "contents": "{\"package\": \"f9c7c7c8ac16c798734b8a24560c1362120597c40d5e1459f09498f8f6c8f2ba\", \"files\": {}}", + "dest": "cargo/vendor/hostname-0.4.0", "dest-filename": ".cargo-checksum.json" }, { @@ -1975,6 +2300,19 @@ "dest": "cargo/vendor/http-0.2.9", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/http/http-1.1.0.crate", + "sha256": "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258", + "dest": "cargo/vendor/http-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258\", \"files\": {}}", + "dest": "cargo/vendor/http-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -1988,6 +2326,32 @@ "dest": "cargo/vendor/http-body-0.4.5", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/http-body/http-body-1.0.1.crate", + "sha256": "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184", + "dest": "cargo/vendor/http-body-1.0.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184\", \"files\": {}}", + "dest": "cargo/vendor/http-body-1.0.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/http-body-util/http-body-util-0.1.2.crate", + "sha256": "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f", + "dest": "cargo/vendor/http-body-util-0.1.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f\", \"files\": {}}", + "dest": "cargo/vendor/http-body-util-0.1.2", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -2043,14 +2407,79 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/hyper-proxy/hyper-proxy-0.9.1.crate", - "sha256": "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc", - "dest": "cargo/vendor/hyper-proxy-0.9.1" + "url": "https://static.crates.io/crates/hyper/hyper-1.5.0.crate", + "sha256": "bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a", + "dest": "cargo/vendor/hyper-1.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"bbbff0a806a4728c99295b254c8838933b5b082d75e3cb70c8dab21fdfbcfa9a\", \"files\": {}}", + "dest": "cargo/vendor/hyper-1.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hyper-proxy2/hyper-proxy2-0.1.0.crate", + "sha256": "9043b7b23fb0bc4a1c7014c27b50a4fc42cc76206f71d34fc0dfe5b28ddc3faf", + "dest": "cargo/vendor/hyper-proxy2-0.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"9043b7b23fb0bc4a1c7014c27b50a4fc42cc76206f71d34fc0dfe5b28ddc3faf\", \"files\": {}}", + "dest": "cargo/vendor/hyper-proxy2-0.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hyper-rustls/hyper-rustls-0.24.2.crate", + "sha256": "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590", + "dest": "cargo/vendor/hyper-rustls-0.24.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590\", \"files\": {}}", + "dest": "cargo/vendor/hyper-rustls-0.24.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hyper-rustls/hyper-rustls-0.26.0.crate", + "sha256": "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c", + "dest": "cargo/vendor/hyper-rustls-0.26.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c\", \"files\": {}}", + "dest": "cargo/vendor/hyper-rustls-0.26.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hyper-rustls/hyper-rustls-0.27.3.crate", + "sha256": "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333", + "dest": "cargo/vendor/hyper-rustls-0.27.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333\", \"files\": {}}", + "dest": "cargo/vendor/hyper-rustls-0.27.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/hyper-util/hyper-util-0.1.7.crate", + "sha256": "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9", + "dest": "cargo/vendor/hyper-util-0.1.7" }, { "type": "inline", - "contents": "{\"package\": \"ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc\", \"files\": {}}", - "dest": "cargo/vendor/hyper-proxy-0.9.1", + "contents": "{\"package\": \"cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9\", \"files\": {}}", + "dest": "cargo/vendor/hyper-util-0.1.7", "dest-filename": ".cargo-checksum.json" }, { @@ -2108,40 +2537,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/if-addrs/if-addrs-0.7.0.crate", - "sha256": "cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9", - "dest": "cargo/vendor/if-addrs-0.7.0" + "url": "https://static.crates.io/crates/if-addrs/if-addrs-0.12.0.crate", + "sha256": "bb2a33e9c38988ecbda730c85b0fd9ddcdf83c0305ac7fd21c8bb9f57f2f0cc8", + "dest": "cargo/vendor/if-addrs-0.12.0" }, { "type": "inline", - "contents": "{\"package\": \"cbc0fa01ffc752e9dbc72818cdb072cd028b86be5e09dd04c5a643704fe101a9\", \"files\": {}}", - "dest": "cargo/vendor/if-addrs-0.7.0", + "contents": "{\"package\": \"bb2a33e9c38988ecbda730c85b0fd9ddcdf83c0305ac7fd21c8bb9f57f2f0cc8\", \"files\": {}}", + "dest": "cargo/vendor/if-addrs-0.12.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/indexmap/indexmap-1.9.3.crate", - "sha256": "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99", - "dest": "cargo/vendor/indexmap-1.9.3" + "url": "https://static.crates.io/crates/indexmap/indexmap-2.6.0.crate", + "sha256": "707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da", + "dest": "cargo/vendor/indexmap-2.6.0" }, { "type": "inline", - "contents": "{\"package\": \"bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99\", \"files\": {}}", - "dest": "cargo/vendor/indexmap-1.9.3", + "contents": "{\"package\": \"707907fe3c25f5424cce2cb7e1cbcafee6bdbe735ca90ef77c29e84591e5b9da\", \"files\": {}}", + "dest": "cargo/vendor/indexmap-2.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/indexmap/indexmap-2.1.0.crate", - "sha256": "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f", - "dest": "cargo/vendor/indexmap-2.1.0" + "url": "https://static.crates.io/crates/inout/inout-0.1.3.crate", + "sha256": "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5", + "dest": "cargo/vendor/inout-0.1.3" }, { "type": "inline", - "contents": "{\"package\": \"d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f\", \"files\": {}}", - "dest": "cargo/vendor/indexmap-2.1.0", + "contents": "{\"package\": \"a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5\", \"files\": {}}", + "dest": "cargo/vendor/inout-0.1.3", "dest-filename": ".cargo-checksum.json" }, { @@ -2170,6 +2599,32 @@ "dest": "cargo/vendor/io-lifetimes-1.0.11", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/ipnet/ipnet-2.10.1.crate", + "sha256": "ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708", + "dest": "cargo/vendor/ipnet-2.10.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"ddc24109865250148c2e0f3d25d4f0f479571723792d3802153c60922a4fb708\", \"files\": {}}", + "dest": "cargo/vendor/ipnet-2.10.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/is-docker/is-docker-0.2.0.crate", + "sha256": "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3", + "dest": "cargo/vendor/is-docker-0.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3\", \"files\": {}}", + "dest": "cargo/vendor/is-docker-0.2.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -2183,6 +2638,32 @@ "dest": "cargo/vendor/is-terminal-0.4.9", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/is-wsl/is-wsl-0.4.0.crate", + "sha256": "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5", + "dest": "cargo/vendor/is-wsl-0.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5\", \"files\": {}}", + "dest": "cargo/vendor/is-wsl-0.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/is_terminal_polyfill/is_terminal_polyfill-1.70.1.crate", + "sha256": "7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf", + "dest": "cargo/vendor/is_terminal_polyfill-1.70.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"7943c866cc5cd64cbc25b2e01621d07fa8eb2a1a23160ee81ce38704e97b8ecf\", \"files\": {}}", + "dest": "cargo/vendor/is_terminal_polyfill-1.70.1", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -2196,6 +2677,32 @@ "dest": "cargo/vendor/isahc-1.7.2", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/itertools/itertools-0.12.1.crate", + "sha256": "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569", + "dest": "cargo/vendor/itertools-0.12.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569\", \"files\": {}}", + "dest": "cargo/vendor/itertools-0.12.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/itertools/itertools-0.13.0.crate", + "sha256": "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186", + "dest": "cargo/vendor/itertools-0.13.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186\", \"files\": {}}", + "dest": "cargo/vendor/itertools-0.13.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -2212,14 +2719,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/jni/jni-0.19.0.crate", - "sha256": "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec", - "dest": "cargo/vendor/jni-0.19.0" + "url": "https://static.crates.io/crates/jni/jni-0.21.1.crate", + "sha256": "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97", + "dest": "cargo/vendor/jni-0.21.1" }, { "type": "inline", - "contents": "{\"package\": \"c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec\", \"files\": {}}", - "dest": "cargo/vendor/jni-0.19.0", + "contents": "{\"package\": \"1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97\", \"files\": {}}", + "dest": "cargo/vendor/jni-0.21.1", "dest-filename": ".cargo-checksum.json" }, { @@ -2238,14 +2745,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/jobserver/jobserver-0.1.27.crate", - "sha256": "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d", - "dest": "cargo/vendor/jobserver-0.1.27" + "url": "https://static.crates.io/crates/jobserver/jobserver-0.1.32.crate", + "sha256": "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0", + "dest": "cargo/vendor/jobserver-0.1.32" }, { "type": "inline", - "contents": "{\"package\": \"8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d\", \"files\": {}}", - "dest": "cargo/vendor/jobserver-0.1.27", + "contents": "{\"package\": \"48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0\", \"files\": {}}", + "dest": "cargo/vendor/jobserver-0.1.32", "dest-filename": ".cargo-checksum.json" }, { @@ -2300,19 +2807,6 @@ "dest": "cargo/vendor/lazycell-1.3.0", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/lewton/lewton-0.10.2.crate", - "sha256": "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030", - "dest": "cargo/vendor/lewton-0.10.2" - }, - { - "type": "inline", - "contents": "{\"package\": \"777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030\", \"files\": {}}", - "dest": "cargo/vendor/lewton-0.10.2", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -2342,14 +2836,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/libc/libc-0.2.149.crate", - "sha256": "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b", - "dest": "cargo/vendor/libc-0.2.149" + "url": "https://static.crates.io/crates/libc/libc-0.2.161.crate", + "sha256": "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1", + "dest": "cargo/vendor/libc-0.2.161" }, { "type": "inline", - "contents": "{\"package\": \"a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b\", \"files\": {}}", - "dest": "cargo/vendor/libc-0.2.149", + "contents": "{\"package\": \"8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1\", \"files\": {}}", + "dest": "cargo/vendor/libc-0.2.161", "dest-filename": ".cargo-checksum.json" }, { @@ -2381,14 +2875,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/libmdns/libmdns-0.7.5.crate", - "sha256": "0b04ae6b56b3b19ade26f0e7e7c1360a1713514f326c5ed0797cf2c109c9e010", - "dest": "cargo/vendor/libmdns-0.7.5" + "url": "https://static.crates.io/crates/libmdns/libmdns-0.9.1.crate", + "sha256": "48854699e11b111433431b69cee2365fcab0b29b06993f48c257dfbaf6395862", + "dest": "cargo/vendor/libmdns-0.9.1" }, { "type": "inline", - "contents": "{\"package\": \"0b04ae6b56b3b19ade26f0e7e7c1360a1713514f326c5ed0797cf2c109c9e010\", \"files\": {}}", - "dest": "cargo/vendor/libmdns-0.7.5", + "contents": "{\"package\": \"48854699e11b111433431b69cee2365fcab0b29b06993f48c257dfbaf6395862\", \"files\": {}}", + "dest": "cargo/vendor/libmdns-0.9.1", "dest-filename": ".cargo-checksum.json" }, { @@ -2459,105 +2953,118 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot/librespot-0.4.2.crate", - "sha256": "ea4c9952ef48968f8184a4a87f8576982426ebe623342d5a28f7d9c4978e4a44", - "dest": "cargo/vendor/librespot-0.4.2" + "url": "https://static.crates.io/crates/librespot/librespot-0.6.0.crate", + "sha256": "96e4b1f97b2767e35327b8443dcc1d2360a83c1c09a8686bf824ff61ab50f04c", + "dest": "cargo/vendor/librespot-0.6.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"96e4b1f97b2767e35327b8443dcc1d2360a83c1c09a8686bf824ff61ab50f04c\", \"files\": {}}", + "dest": "cargo/vendor/librespot-0.6.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/librespot-audio/librespot-audio-0.6.0.crate", + "sha256": "7e07566fe7553042936c61bbdd9bedb524114a904aa7f9738e266c641468bab8", + "dest": "cargo/vendor/librespot-audio-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"ea4c9952ef48968f8184a4a87f8576982426ebe623342d5a28f7d9c4978e4a44\", \"files\": {}}", - "dest": "cargo/vendor/librespot-0.4.2", + "contents": "{\"package\": \"7e07566fe7553042936c61bbdd9bedb524114a904aa7f9738e266c641468bab8\", \"files\": {}}", + "dest": "cargo/vendor/librespot-audio-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-audio/librespot-audio-0.4.2.crate", - "sha256": "c176a31355e1ea8e0b9c4ced19df4947bfe4770661c25c142b6fba2365940d9d", - "dest": "cargo/vendor/librespot-audio-0.4.2" + "url": "https://static.crates.io/crates/librespot-connect/librespot-connect-0.6.0.crate", + "sha256": "67ce3a5634669ce051a425cff5437a474831111df045fd5a2bb37fabe316fa60", + "dest": "cargo/vendor/librespot-connect-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"c176a31355e1ea8e0b9c4ced19df4947bfe4770661c25c142b6fba2365940d9d\", \"files\": {}}", - "dest": "cargo/vendor/librespot-audio-0.4.2", + "contents": "{\"package\": \"67ce3a5634669ce051a425cff5437a474831111df045fd5a2bb37fabe316fa60\", \"files\": {}}", + "dest": "cargo/vendor/librespot-connect-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-connect/librespot-connect-0.4.2.crate", - "sha256": "4ffafb6a443e9445ccb3d5d591573b5b1da3c89a9b8846c63ba2c3710210d3ec", - "dest": "cargo/vendor/librespot-connect-0.4.2" + "url": "https://static.crates.io/crates/librespot-core/librespot-core-0.6.0.crate", + "sha256": "c4c76303efcf949a59f9380220ca420c4d72fa32dbb3641a0079f429cc5e44e7", + "dest": "cargo/vendor/librespot-core-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"4ffafb6a443e9445ccb3d5d591573b5b1da3c89a9b8846c63ba2c3710210d3ec\", \"files\": {}}", - "dest": "cargo/vendor/librespot-connect-0.4.2", + "contents": "{\"package\": \"c4c76303efcf949a59f9380220ca420c4d72fa32dbb3641a0079f429cc5e44e7\", \"files\": {}}", + "dest": "cargo/vendor/librespot-core-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-core/librespot-core-0.4.2.crate", - "sha256": "046349f25888e644bf02d9c5de0164b2a493d29aa4ce18e1ad0b756da9b55d6d", - "dest": "cargo/vendor/librespot-core-0.4.2" + "url": "https://static.crates.io/crates/librespot-discovery/librespot-discovery-0.6.0.crate", + "sha256": "94a952d28c775562b9b6039102c0e3a834cb31157fccb2f2a68a26dc4397fea8", + "dest": "cargo/vendor/librespot-discovery-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"046349f25888e644bf02d9c5de0164b2a493d29aa4ce18e1ad0b756da9b55d6d\", \"files\": {}}", - "dest": "cargo/vendor/librespot-core-0.4.2", + "contents": "{\"package\": \"94a952d28c775562b9b6039102c0e3a834cb31157fccb2f2a68a26dc4397fea8\", \"files\": {}}", + "dest": "cargo/vendor/librespot-discovery-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-discovery/librespot-discovery-0.4.2.crate", - "sha256": "2aa877d18f6150364012cb4be5682d62d7c712c88bae2d0d01720fd7c15e2f06", - "dest": "cargo/vendor/librespot-discovery-0.4.2" + "url": "https://static.crates.io/crates/librespot-metadata/librespot-metadata-0.6.0.crate", + "sha256": "7cf6d5c46a401b1dd3e062ebdce959aa694bbae1039841756545d2e9c4f8be5f", + "dest": "cargo/vendor/librespot-metadata-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"2aa877d18f6150364012cb4be5682d62d7c712c88bae2d0d01720fd7c15e2f06\", \"files\": {}}", - "dest": "cargo/vendor/librespot-discovery-0.4.2", + "contents": "{\"package\": \"7cf6d5c46a401b1dd3e062ebdce959aa694bbae1039841756545d2e9c4f8be5f\", \"files\": {}}", + "dest": "cargo/vendor/librespot-metadata-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-metadata/librespot-metadata-0.4.2.crate", - "sha256": "6b80361fcbcb5092056fd47c08c34d5d51b08385d8efb6941c0d3e46d032c21c", - "dest": "cargo/vendor/librespot-metadata-0.4.2" + "url": "https://static.crates.io/crates/librespot-oauth/librespot-oauth-0.6.0.crate", + "sha256": "00dcad779aa6c3b442e493e2a40ca83a5c5fcf38a65c05b026c3587bd4f8d14f", + "dest": "cargo/vendor/librespot-oauth-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"6b80361fcbcb5092056fd47c08c34d5d51b08385d8efb6941c0d3e46d032c21c\", \"files\": {}}", - "dest": "cargo/vendor/librespot-metadata-0.4.2", + "contents": "{\"package\": \"00dcad779aa6c3b442e493e2a40ca83a5c5fcf38a65c05b026c3587bd4f8d14f\", \"files\": {}}", + "dest": "cargo/vendor/librespot-oauth-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-playback/librespot-playback-0.4.2.crate", - "sha256": "5190a0b9bcc7f70ee4196a6b4a1c731d405ca130d4a6fcd4c561cfdde8b7cfb7", - "dest": "cargo/vendor/librespot-playback-0.4.2" + "url": "https://static.crates.io/crates/librespot-playback/librespot-playback-0.6.0.crate", + "sha256": "4ed1f776a04c8c9275407f8d4df034f2615ea729ec6c6d0fa69f423fc571df64", + "dest": "cargo/vendor/librespot-playback-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"5190a0b9bcc7f70ee4196a6b4a1c731d405ca130d4a6fcd4c561cfdde8b7cfb7\", \"files\": {}}", - "dest": "cargo/vendor/librespot-playback-0.4.2", + "contents": "{\"package\": \"4ed1f776a04c8c9275407f8d4df034f2615ea729ec6c6d0fa69f423fc571df64\", \"files\": {}}", + "dest": "cargo/vendor/librespot-playback-0.6.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/librespot-protocol/librespot-protocol-0.4.2.crate", - "sha256": "5d6d3ac6196ac0ea67bbe039f56d6730a5d8b31502ef9bce0f504ed729dcb39f", - "dest": "cargo/vendor/librespot-protocol-0.4.2" + "url": "https://static.crates.io/crates/librespot-protocol/librespot-protocol-0.6.0.crate", + "sha256": "80802f52b5a1b3a2157454e6aca483a627fbf7b942e0a5fea037ebf3ed8b0546", + "dest": "cargo/vendor/librespot-protocol-0.6.0" }, { "type": "inline", - "contents": "{\"package\": \"5d6d3ac6196ac0ea67bbe039f56d6730a5d8b31502ef9bce0f504ed729dcb39f\", \"files\": {}}", - "dest": "cargo/vendor/librespot-protocol-0.4.2", + "contents": "{\"package\": \"80802f52b5a1b3a2157454e6aca483a627fbf7b942e0a5fea037ebf3ed8b0546\", \"files\": {}}", + "dest": "cargo/vendor/librespot-protocol-0.6.0", "dest-filename": ".cargo-checksum.json" }, { @@ -2628,27 +3135,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/log/log-0.4.20.crate", - "sha256": "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f", - "dest": "cargo/vendor/log-0.4.20" + "url": "https://static.crates.io/crates/log/log-0.4.22.crate", + "sha256": "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24", + "dest": "cargo/vendor/log-0.4.22" }, { "type": "inline", - "contents": "{\"package\": \"b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f\", \"files\": {}}", - "dest": "cargo/vendor/log-0.4.20", + "contents": "{\"package\": \"a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24\", \"files\": {}}", + "dest": "cargo/vendor/log-0.4.22", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/mach/mach-0.3.2.crate", - "sha256": "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa", - "dest": "cargo/vendor/mach-0.3.2" + "url": "https://static.crates.io/crates/mach2/mach2-0.4.2.crate", + "sha256": "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709", + "dest": "cargo/vendor/mach2-0.4.2" }, { "type": "inline", - "contents": "{\"package\": \"b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa\", \"files\": {}}", - "dest": "cargo/vendor/mach-0.3.2", + "contents": "{\"package\": \"19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709\", \"files\": {}}", + "dest": "cargo/vendor/mach2-0.4.2", "dest-filename": ".cargo-checksum.json" }, { @@ -2667,40 +3174,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/match_cfg/match_cfg-0.1.0.crate", - "sha256": "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4", - "dest": "cargo/vendor/match_cfg-0.1.0" - }, - { - "type": "inline", - "contents": "{\"package\": \"ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4\", \"files\": {}}", - "dest": "cargo/vendor/match_cfg-0.1.0", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/memchr/memchr-2.6.4.crate", - "sha256": "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167", - "dest": "cargo/vendor/memchr-2.6.4" - }, - { - "type": "inline", - "contents": "{\"package\": \"f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167\", \"files\": {}}", - "dest": "cargo/vendor/memchr-2.6.4", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/memoffset/memoffset-0.6.5.crate", - "sha256": "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce", - "dest": "cargo/vendor/memoffset-0.6.5" + "url": "https://static.crates.io/crates/memchr/memchr-2.7.4.crate", + "sha256": "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3", + "dest": "cargo/vendor/memchr-2.7.4" }, { "type": "inline", - "contents": "{\"package\": \"5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce\", \"files\": {}}", - "dest": "cargo/vendor/memoffset-0.6.5", + "contents": "{\"package\": \"78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3\", \"files\": {}}", + "dest": "cargo/vendor/memchr-2.7.4", "dest-filename": ".cargo-checksum.json" }, { @@ -2771,14 +3252,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/mio/mio-0.8.9.crate", - "sha256": "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0", - "dest": "cargo/vendor/mio-0.8.9" + "url": "https://static.crates.io/crates/mio/mio-1.0.2.crate", + "sha256": "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec", + "dest": "cargo/vendor/mio-1.0.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec\", \"files\": {}}", + "dest": "cargo/vendor/mio-1.0.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/mirai-annotations/mirai-annotations-1.12.0.crate", + "sha256": "c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1", + "dest": "cargo/vendor/mirai-annotations-1.12.0" }, { "type": "inline", - "contents": "{\"package\": \"3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0\", \"files\": {}}", - "dest": "cargo/vendor/mio-0.8.9", + "contents": "{\"package\": \"c9be0862c1b3f26a88803c4a49de6889c10e608b3ee9344e6ef5b45fb37ad3d1\", \"files\": {}}", + "dest": "cargo/vendor/mirai-annotations-1.12.0", "dest-filename": ".cargo-checksum.json" }, { @@ -2797,27 +3291,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/multimap/multimap-0.8.3.crate", - "sha256": "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a", - "dest": "cargo/vendor/multimap-0.8.3" + "url": "https://static.crates.io/crates/multimap/multimap-0.10.0.crate", + "sha256": "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03", + "dest": "cargo/vendor/multimap-0.10.0" }, { "type": "inline", - "contents": "{\"package\": \"e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a\", \"files\": {}}", - "dest": "cargo/vendor/multimap-0.8.3", + "contents": "{\"package\": \"defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03\", \"files\": {}}", + "dest": "cargo/vendor/multimap-0.10.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ndk/ndk-0.6.0.crate", - "sha256": "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4", - "dest": "cargo/vendor/ndk-0.6.0" + "url": "https://static.crates.io/crates/ndk/ndk-0.8.0.crate", + "sha256": "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7", + "dest": "cargo/vendor/ndk-0.8.0" }, { "type": "inline", - "contents": "{\"package\": \"2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4\", \"files\": {}}", - "dest": "cargo/vendor/ndk-0.6.0", + "contents": "{\"package\": \"2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7\", \"files\": {}}", + "dest": "cargo/vendor/ndk-0.8.0", "dest-filename": ".cargo-checksum.json" }, { @@ -2836,79 +3330,79 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ndk-glue/ndk-glue-0.6.2.crate", - "sha256": "0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f", - "dest": "cargo/vendor/ndk-glue-0.6.2" + "url": "https://static.crates.io/crates/ndk-sys/ndk-sys-0.5.0+25.2.9519653.crate", + "sha256": "8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691", + "dest": "cargo/vendor/ndk-sys-0.5.0+25.2.9519653" }, { "type": "inline", - "contents": "{\"package\": \"0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f\", \"files\": {}}", - "dest": "cargo/vendor/ndk-glue-0.6.2", + "contents": "{\"package\": \"8c196769dd60fd4f363e11d948139556a344e79d451aeb2fa2fd040738ef7691\", \"files\": {}}", + "dest": "cargo/vendor/ndk-sys-0.5.0+25.2.9519653", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ndk-macro/ndk-macro-0.3.0.crate", - "sha256": "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c", - "dest": "cargo/vendor/ndk-macro-0.3.0" + "url": "https://static.crates.io/crates/nix/nix-0.26.4.crate", + "sha256": "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b", + "dest": "cargo/vendor/nix-0.26.4" }, { "type": "inline", - "contents": "{\"package\": \"0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c\", \"files\": {}}", - "dest": "cargo/vendor/ndk-macro-0.3.0", + "contents": "{\"package\": \"598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b\", \"files\": {}}", + "dest": "cargo/vendor/nix-0.26.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ndk-sys/ndk-sys-0.3.0.crate", - "sha256": "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97", - "dest": "cargo/vendor/ndk-sys-0.3.0" + "url": "https://static.crates.io/crates/no-std-compat/no-std-compat-0.4.1.crate", + "sha256": "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c", + "dest": "cargo/vendor/no-std-compat-0.4.1" }, { "type": "inline", - "contents": "{\"package\": \"6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97\", \"files\": {}}", - "dest": "cargo/vendor/ndk-sys-0.3.0", + "contents": "{\"package\": \"b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c\", \"files\": {}}", + "dest": "cargo/vendor/no-std-compat-0.4.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/nix/nix-0.23.2.crate", - "sha256": "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c", - "dest": "cargo/vendor/nix-0.23.2" + "url": "https://static.crates.io/crates/nom/nom-7.1.3.crate", + "sha256": "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a", + "dest": "cargo/vendor/nom-7.1.3" }, { "type": "inline", - "contents": "{\"package\": \"8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c\", \"files\": {}}", - "dest": "cargo/vendor/nix-0.23.2", + "contents": "{\"package\": \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\", \"files\": {}}", + "dest": "cargo/vendor/nom-7.1.3", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/nix/nix-0.26.4.crate", - "sha256": "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b", - "dest": "cargo/vendor/nix-0.26.4" + "url": "https://static.crates.io/crates/nonzero_ext/nonzero_ext-0.3.0.crate", + "sha256": "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21", + "dest": "cargo/vendor/nonzero_ext-0.3.0" }, { "type": "inline", - "contents": "{\"package\": \"598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b\", \"files\": {}}", - "dest": "cargo/vendor/nix-0.26.4", + "contents": "{\"package\": \"38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21\", \"files\": {}}", + "dest": "cargo/vendor/nonzero_ext-0.3.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/nom/nom-7.1.3.crate", - "sha256": "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a", - "dest": "cargo/vendor/nom-7.1.3" + "url": "https://static.crates.io/crates/ntapi/ntapi-0.4.1.crate", + "sha256": "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4", + "dest": "cargo/vendor/ntapi-0.4.1" }, { "type": "inline", - "contents": "{\"package\": \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\", \"files\": {}}", - "dest": "cargo/vendor/nom-7.1.3", + "contents": "{\"package\": \"e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4\", \"files\": {}}", + "dest": "cargo/vendor/ntapi-0.4.1", "dest-filename": ".cargo-checksum.json" }, { @@ -2937,6 +3431,19 @@ "dest": "cargo/vendor/num-bigint-0.4.4", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num-bigint-dig/num-bigint-dig-0.8.4.crate", + "sha256": "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151", + "dest": "cargo/vendor/num-bigint-dig-0.8.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151\", \"files\": {}}", + "dest": "cargo/vendor/num-bigint-dig-0.8.4", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -2950,6 +3457,19 @@ "dest": "cargo/vendor/num-complex-0.4.4", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num-conv/num-conv-0.1.0.crate", + "sha256": "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9", + "dest": "cargo/vendor/num-conv-0.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9\", \"files\": {}}", + "dest": "cargo/vendor/num-conv-0.1.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -2966,8 +3486,21 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/num-integer/num-integer-0.1.45.crate", - "sha256": "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9", + "url": "https://static.crates.io/crates/num-derive/num-derive-0.4.2.crate", + "sha256": "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202", + "dest": "cargo/vendor/num-derive-0.4.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202\", \"files\": {}}", + "dest": "cargo/vendor/num-derive-0.4.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num-integer/num-integer-0.1.45.crate", + "sha256": "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9", "dest": "cargo/vendor/num-integer-0.1.45" }, { @@ -3018,40 +3551,53 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/num_cpus/num_cpus-1.16.0.crate", - "sha256": "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43", - "dest": "cargo/vendor/num_cpus-1.16.0" + "url": "https://static.crates.io/crates/num_enum/num_enum-0.7.3.crate", + "sha256": "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179", + "dest": "cargo/vendor/num_enum-0.7.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179\", \"files\": {}}", + "dest": "cargo/vendor/num_enum-0.7.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.7.3.crate", + "sha256": "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56", + "dest": "cargo/vendor/num_enum_derive-0.7.3" }, { "type": "inline", - "contents": "{\"package\": \"4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43\", \"files\": {}}", - "dest": "cargo/vendor/num_cpus-1.16.0", + "contents": "{\"package\": \"af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56\", \"files\": {}}", + "dest": "cargo/vendor/num_enum_derive-0.7.3", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/num_enum/num_enum-0.5.11.crate", - "sha256": "1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9", - "dest": "cargo/vendor/num_enum-0.5.11" + "url": "https://static.crates.io/crates/num_threads/num_threads-0.1.7.crate", + "sha256": "5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9", + "dest": "cargo/vendor/num_threads-0.1.7" }, { "type": "inline", - "contents": "{\"package\": \"1f646caf906c20226733ed5b1374287eb97e3c2a5c227ce668c1f2ce20ae57c9\", \"files\": {}}", - "dest": "cargo/vendor/num_enum-0.5.11", + "contents": "{\"package\": \"5c7398b9c8b70908f6371f47ed36737907c87c52af34c268fed0bf0ceb92ead9\", \"files\": {}}", + "dest": "cargo/vendor/num_threads-0.1.7", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/num_enum_derive/num_enum_derive-0.5.11.crate", - "sha256": "dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799", - "dest": "cargo/vendor/num_enum_derive-0.5.11" + "url": "https://static.crates.io/crates/oauth2/oauth2-4.4.2.crate", + "sha256": "c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f", + "dest": "cargo/vendor/oauth2-4.4.2" }, { "type": "inline", - "contents": "{\"package\": \"dcbff9bc912032c62bf65ef1d5aea88983b420f4f839db1e9b0c281a25c9c799\", \"files\": {}}", - "dest": "cargo/vendor/num_enum_derive-0.5.11", + "contents": "{\"package\": \"c38841cdd844847e3e7c8d29cef9dcfed8877f8f56f9071f77843ecf3baf937f\", \"files\": {}}", + "dest": "cargo/vendor/oauth2-4.4.2", "dest-filename": ".cargo-checksum.json" }, { @@ -3109,40 +3655,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/oboe/oboe-0.4.6.crate", - "sha256": "27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1", - "dest": "cargo/vendor/oboe-0.4.6" - }, - { - "type": "inline", - "contents": "{\"package\": \"27f63c358b4fa0fbcfefd7c8be5cfc39c08ce2389f5325687e7762a48d30a5c1\", \"files\": {}}", - "dest": "cargo/vendor/oboe-0.4.6", - "dest-filename": ".cargo-checksum.json" - }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/oboe-sys/oboe-sys-0.4.5.crate", - "sha256": "3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd", - "dest": "cargo/vendor/oboe-sys-0.4.5" + "url": "https://static.crates.io/crates/oboe/oboe-0.6.1.crate", + "sha256": "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb", + "dest": "cargo/vendor/oboe-0.6.1" }, { "type": "inline", - "contents": "{\"package\": \"3370abb7372ed744232c12954d920d1a40f1c4686de9e79e800021ef492294bd\", \"files\": {}}", - "dest": "cargo/vendor/oboe-sys-0.4.5", + "contents": "{\"package\": \"e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb\", \"files\": {}}", + "dest": "cargo/vendor/oboe-0.6.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ogg/ogg-0.8.0.crate", - "sha256": "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e", - "dest": "cargo/vendor/ogg-0.8.0" + "url": "https://static.crates.io/crates/oboe-sys/oboe-sys-0.6.1.crate", + "sha256": "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d", + "dest": "cargo/vendor/oboe-sys-0.6.1" }, { "type": "inline", - "contents": "{\"package\": \"6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e\", \"files\": {}}", - "dest": "cargo/vendor/ogg-0.8.0", + "contents": "{\"package\": \"6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d\", \"files\": {}}", + "dest": "cargo/vendor/oboe-sys-0.6.1", "dest-filename": ".cargo-checksum.json" }, { @@ -3171,6 +3704,19 @@ "dest": "cargo/vendor/opaque-debug-0.3.0", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/open/open-5.3.0.crate", + "sha256": "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3", + "dest": "cargo/vendor/open-5.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3\", \"files\": {}}", + "dest": "cargo/vendor/open-5.3.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -3200,14 +3746,14 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/option-operations/option-operations-0.4.1.crate", - "sha256": "42b01597916c91a493b1e8a2fde64fec1764be3259abc1f06efc99c274f150a2", - "dest": "cargo/vendor/option-operations-0.4.1" + "url": "https://static.crates.io/crates/option-operations/option-operations-0.5.0.crate", + "sha256": "7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0", + "dest": "cargo/vendor/option-operations-0.5.0" }, { "type": "inline", - "contents": "{\"package\": \"42b01597916c91a493b1e8a2fde64fec1764be3259abc1f06efc99c274f150a2\", \"files\": {}}", - "dest": "cargo/vendor/option-operations-0.4.1", + "contents": "{\"package\": \"7c26d27bb1aeab65138e4bf7666045169d1717febcc9ff870166be8348b223d0\", \"files\": {}}", + "dest": "cargo/vendor/option-operations-0.5.0", "dest-filename": ".cargo-checksum.json" }, { @@ -3262,19 +3808,6 @@ "dest": "cargo/vendor/parking-2.2.0", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/parking_lot/parking_lot-0.11.2.crate", - "sha256": "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99", - "dest": "cargo/vendor/parking_lot-0.11.2" - }, - { - "type": "inline", - "contents": "{\"package\": \"7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99\", \"files\": {}}", - "dest": "cargo/vendor/parking_lot-0.11.2", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -3288,19 +3821,6 @@ "dest": "cargo/vendor/parking_lot-0.12.1", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/parking_lot_core/parking_lot_core-0.8.6.crate", - "sha256": "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc", - "dest": "cargo/vendor/parking_lot_core-0.8.6" - }, - { - "type": "inline", - "contents": "{\"package\": \"60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc\", \"files\": {}}", - "dest": "cargo/vendor/parking_lot_core-0.8.6", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -3330,14 +3850,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/pbkdf2/pbkdf2-0.8.0.crate", - "sha256": "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa", - "dest": "cargo/vendor/pbkdf2-0.8.0" + "url": "https://static.crates.io/crates/pathdiff/pathdiff-0.2.2.crate", + "sha256": "d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361", + "dest": "cargo/vendor/pathdiff-0.2.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"d61c5ce1153ab5b689d0c074c4e7fc613e942dfb7dd9eea5ab202d2ad91fe361\", \"files\": {}}", + "dest": "cargo/vendor/pathdiff-0.2.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pbkdf2/pbkdf2-0.12.2.crate", + "sha256": "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2", + "dest": "cargo/vendor/pbkdf2-0.12.2" }, { "type": "inline", - "contents": "{\"package\": \"d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa\", \"files\": {}}", - "dest": "cargo/vendor/pbkdf2-0.8.0", + "contents": "{\"package\": \"f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2\", \"files\": {}}", + "dest": "cargo/vendor/pbkdf2-0.12.2", "dest-filename": ".cargo-checksum.json" }, { @@ -3353,6 +3886,19 @@ "dest": "cargo/vendor/peeking_take_while-0.1.2", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pem-rfc7468/pem-rfc7468-0.7.0.crate", + "sha256": "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412", + "dest": "cargo/vendor/pem-rfc7468-0.7.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412\", \"files\": {}}", + "dest": "cargo/vendor/pem-rfc7468-0.7.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -3444,6 +3990,32 @@ "dest": "cargo/vendor/piper-0.2.1", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pkcs1/pkcs1-0.7.5.crate", + "sha256": "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f", + "dest": "cargo/vendor/pkcs1-0.7.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f\", \"files\": {}}", + "dest": "cargo/vendor/pkcs1-0.7.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/pkcs8/pkcs8-0.10.2.crate", + "sha256": "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7", + "dest": "cargo/vendor/pkcs8-0.10.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7\", \"files\": {}}", + "dest": "cargo/vendor/pkcs8-0.10.2", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -3483,6 +4055,32 @@ "dest": "cargo/vendor/polling-3.3.0", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/portable-atomic/portable-atomic-1.9.0.crate", + "sha256": "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2", + "dest": "cargo/vendor/portable-atomic-1.9.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2\", \"files\": {}}", + "dest": "cargo/vendor/portable-atomic-1.9.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/powerfmt/powerfmt-0.2.0.crate", + "sha256": "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391", + "dest": "cargo/vendor/powerfmt-0.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391\", \"files\": {}}", + "dest": "cargo/vendor/powerfmt-0.2.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -3499,27 +4097,27 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/pretty-hex/pretty-hex-0.3.0.crate", - "sha256": "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5", - "dest": "cargo/vendor/pretty-hex-0.3.0" + "url": "https://static.crates.io/crates/prettyplease/prettyplease-0.2.25.crate", + "sha256": "64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033", + "dest": "cargo/vendor/prettyplease-0.2.25" }, { "type": "inline", - "contents": "{\"package\": \"c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5\", \"files\": {}}", - "dest": "cargo/vendor/pretty-hex-0.3.0", + "contents": "{\"package\": \"64d1ec885c64d0457d564db4ec299b2dae3f9c02808b8ad9c3a089c591b18033\", \"files\": {}}", + "dest": "cargo/vendor/prettyplease-0.2.25", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/priority-queue/priority-queue-1.3.2.crate", - "sha256": "fff39edfcaec0d64e8d0da38564fad195d2d51b680940295fcc307366e101e61", - "dest": "cargo/vendor/priority-queue-1.3.2" + "url": "https://static.crates.io/crates/priority-queue/priority-queue-2.1.1.crate", + "sha256": "714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d", + "dest": "cargo/vendor/priority-queue-2.1.1" }, { "type": "inline", - "contents": "{\"package\": \"fff39edfcaec0d64e8d0da38564fad195d2d51b680940295fcc307366e101e61\", \"files\": {}}", - "dest": "cargo/vendor/priority-queue-1.3.2", + "contents": "{\"package\": \"714c75db297bc88a63783ffc6ab9f830698a6705aa0201416931759ef4c8183d\", \"files\": {}}", + "dest": "cargo/vendor/priority-queue-2.1.1", "dest-filename": ".cargo-checksum.json" }, { @@ -3535,6 +4133,19 @@ "dest": "cargo/vendor/proc-macro-crate-1.3.1", "dest-filename": ".cargo-checksum.json" }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/proc-macro-crate/proc-macro-crate-3.2.0.crate", + "sha256": "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b", + "dest": "cargo/vendor/proc-macro-crate-3.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro-crate-3.2.0", + "dest-filename": ".cargo-checksum.json" + }, { "type": "archive", "archive-type": "tar-gzip", @@ -3564,66 +4175,92 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.69.crate", - "sha256": "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da", - "dest": "cargo/vendor/proc-macro2-1.0.69" + "url": "https://static.crates.io/crates/proc-macro2/proc-macro2-1.0.89.crate", + "sha256": "f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e", + "dest": "cargo/vendor/proc-macro2-1.0.89" + }, + { + "type": "inline", + "contents": "{\"package\": \"f139b0662de085916d1fb67d2b4169d1addddda1919e696f3252b740b629986e\", \"files\": {}}", + "dest": "cargo/vendor/proc-macro2-1.0.89", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/protobuf/protobuf-3.7.1.crate", + "sha256": "a3a7c64d9bf75b1b8d981124c14c179074e8caa7dfe7b6a12e6222ddcd0c8f72", + "dest": "cargo/vendor/protobuf-3.7.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"a3a7c64d9bf75b1b8d981124c14c179074e8caa7dfe7b6a12e6222ddcd0c8f72\", \"files\": {}}", + "dest": "cargo/vendor/protobuf-3.7.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-3.7.1.crate", + "sha256": "e26b833f144769a30e04b1db0146b2aaa53fd2fd83acf10a6b5f996606c18144", + "dest": "cargo/vendor/protobuf-codegen-3.7.1" }, { "type": "inline", - "contents": "{\"package\": \"134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da\", \"files\": {}}", - "dest": "cargo/vendor/proc-macro2-1.0.69", + "contents": "{\"package\": \"e26b833f144769a30e04b1db0146b2aaa53fd2fd83acf10a6b5f996606c18144\", \"files\": {}}", + "dest": "cargo/vendor/protobuf-codegen-3.7.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/protobuf/protobuf-2.28.0.crate", - "sha256": "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94", - "dest": "cargo/vendor/protobuf-2.28.0" + "url": "https://static.crates.io/crates/protobuf-parse/protobuf-parse-3.7.1.crate", + "sha256": "322330e133eab455718444b4e033ebfac7c6528972c784fcde28d2cc783c6257", + "dest": "cargo/vendor/protobuf-parse-3.7.1" }, { "type": "inline", - "contents": "{\"package\": \"106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94\", \"files\": {}}", - "dest": "cargo/vendor/protobuf-2.28.0", + "contents": "{\"package\": \"322330e133eab455718444b4e033ebfac7c6528972c784fcde28d2cc783c6257\", \"files\": {}}", + "dest": "cargo/vendor/protobuf-parse-3.7.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/protobuf-codegen/protobuf-codegen-2.28.0.crate", - "sha256": "033460afb75cf755fcfc16dfaed20b86468082a2ea24e05ac35ab4a099a017d6", - "dest": "cargo/vendor/protobuf-codegen-2.28.0" + "url": "https://static.crates.io/crates/protobuf-support/protobuf-support-3.7.1.crate", + "sha256": "b088fd20b938a875ea00843b6faf48579462630015c3788d397ad6a786663252", + "dest": "cargo/vendor/protobuf-support-3.7.1" }, { "type": "inline", - "contents": "{\"package\": \"033460afb75cf755fcfc16dfaed20b86468082a2ea24e05ac35ab4a099a017d6\", \"files\": {}}", - "dest": "cargo/vendor/protobuf-codegen-2.28.0", + "contents": "{\"package\": \"b088fd20b938a875ea00843b6faf48579462630015c3788d397ad6a786663252\", \"files\": {}}", + "dest": "cargo/vendor/protobuf-support-3.7.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/protobuf-codegen-pure/protobuf-codegen-pure-2.28.0.crate", - "sha256": "95a29399fc94bcd3eeaa951c715f7bea69409b2445356b00519740bcd6ddd865", - "dest": "cargo/vendor/protobuf-codegen-pure-2.28.0" + "url": "https://static.crates.io/crates/quick-xml/quick-xml-0.36.2.crate", + "sha256": "f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe", + "dest": "cargo/vendor/quick-xml-0.36.2" }, { "type": "inline", - "contents": "{\"package\": \"95a29399fc94bcd3eeaa951c715f7bea69409b2445356b00519740bcd6ddd865\", \"files\": {}}", - "dest": "cargo/vendor/protobuf-codegen-pure-2.28.0", + "contents": "{\"package\": \"f7649a7b4df05aed9ea7ec6f628c67c9953a43869b8bc50929569b2999d443fe\", \"files\": {}}", + "dest": "cargo/vendor/quick-xml-0.36.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/quote/quote-1.0.33.crate", - "sha256": "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae", - "dest": "cargo/vendor/quote-1.0.33" + "url": "https://static.crates.io/crates/quote/quote-1.0.37.crate", + "sha256": "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af", + "dest": "cargo/vendor/quote-1.0.37" }, { "type": "inline", - "contents": "{\"package\": \"5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae\", \"files\": {}}", - "dest": "cargo/vendor/quote-1.0.33", + "contents": "{\"package\": \"b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af\", \"files\": {}}", + "dest": "cargo/vendor/quote-1.0.37", "dest-filename": ".cargo-checksum.json" }, { @@ -3678,19 +4315,6 @@ "dest": "cargo/vendor/rand_distr-0.4.3", "dest-filename": ".cargo-checksum.json" }, - { - "type": "archive", - "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/redox_syscall/redox_syscall-0.2.16.crate", - "sha256": "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a", - "dest": "cargo/vendor/redox_syscall-0.2.16" - }, - { - "type": "inline", - "contents": "{\"package\": \"fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a\", \"files\": {}}", - "dest": "cargo/vendor/redox_syscall-0.2.16", - "dest-filename": ".cargo-checksum.json" - }, { "type": "archive", "archive-type": "tar-gzip", @@ -3759,27 +4383,53 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/rodio/rodio-0.15.0.crate", - "sha256": "ec0939e9f626e6c6f1989adb6226a039c855ca483053f0ee7c98b90e41cf731e", - "dest": "cargo/vendor/rodio-0.15.0" + "url": "https://static.crates.io/crates/reqwest/reqwest-0.11.27.crate", + "sha256": "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62", + "dest": "cargo/vendor/reqwest-0.11.27" + }, + { + "type": "inline", + "contents": "{\"package\": \"dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62\", \"files\": {}}", + "dest": "cargo/vendor/reqwest-0.11.27", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/ring/ring-0.17.8.crate", + "sha256": "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d", + "dest": "cargo/vendor/ring-0.17.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d\", \"files\": {}}", + "dest": "cargo/vendor/ring-0.17.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/rodio/rodio-0.19.0.crate", + "sha256": "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb", + "dest": "cargo/vendor/rodio-0.19.0" }, { "type": "inline", - "contents": "{\"package\": \"ec0939e9f626e6c6f1989adb6226a039c855ca483053f0ee7c98b90e41cf731e\", \"files\": {}}", - "dest": "cargo/vendor/rodio-0.15.0", + "contents": "{\"package\": \"6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb\", \"files\": {}}", + "dest": "cargo/vendor/rodio-0.19.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/rpassword/rpassword-6.0.1.crate", - "sha256": "2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956", - "dest": "cargo/vendor/rpassword-6.0.1" + "url": "https://static.crates.io/crates/rsa/rsa-0.9.6.crate", + "sha256": "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc", + "dest": "cargo/vendor/rsa-0.9.6" }, { "type": "inline", - "contents": "{\"package\": \"2bf099a1888612545b683d2661a1940089f6c2e5a8e38979b2159da876bfd956\", \"files\": {}}", - "dest": "cargo/vendor/rpassword-6.0.1", + "contents": "{\"package\": \"5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc\", \"files\": {}}", + "dest": "cargo/vendor/rsa-0.9.6", "dest-filename": ".cargo-checksum.json" }, { @@ -3850,1197 +4500,2263 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/ryu/ryu-1.0.15.crate", - "sha256": "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741", - "dest": "cargo/vendor/ryu-1.0.15" + "url": "https://static.crates.io/crates/rustls/rustls-0.21.12.crate", + "sha256": "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e", + "dest": "cargo/vendor/rustls-0.21.12" }, { "type": "inline", - "contents": "{\"package\": \"1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741\", \"files\": {}}", - "dest": "cargo/vendor/ryu-1.0.15", + "contents": "{\"package\": \"3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e\", \"files\": {}}", + "dest": "cargo/vendor/rustls-0.21.12", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/same-file/same-file-1.0.6.crate", - "sha256": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502", - "dest": "cargo/vendor/same-file-1.0.6" + "url": "https://static.crates.io/crates/rustls/rustls-0.22.4.crate", + "sha256": "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432", + "dest": "cargo/vendor/rustls-0.22.4" }, { "type": "inline", - "contents": "{\"package\": \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\", \"files\": {}}", - "dest": "cargo/vendor/same-file-1.0.6", + "contents": "{\"package\": \"bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432\", \"files\": {}}", + "dest": "cargo/vendor/rustls-0.22.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/schannel/schannel-0.1.22.crate", - "sha256": "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88", - "dest": "cargo/vendor/schannel-0.1.22" + "url": "https://static.crates.io/crates/rustls/rustls-0.23.15.crate", + "sha256": "5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993", + "dest": "cargo/vendor/rustls-0.23.15" }, { "type": "inline", - "contents": "{\"package\": \"0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88\", \"files\": {}}", - "dest": "cargo/vendor/schannel-0.1.22", + "contents": "{\"package\": \"5fbb44d7acc4e873d613422379f69f237a1b141928c02f6bc6ccfddddc2d7993\", \"files\": {}}", + "dest": "cargo/vendor/rustls-0.23.15", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/scopeguard/scopeguard-1.2.0.crate", - "sha256": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49", - "dest": "cargo/vendor/scopeguard-1.2.0" + "url": "https://static.crates.io/crates/rustls-native-certs/rustls-native-certs-0.7.3.crate", + "sha256": "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5", + "dest": "cargo/vendor/rustls-native-certs-0.7.3" }, { "type": "inline", - "contents": "{\"package\": \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\", \"files\": {}}", - "dest": "cargo/vendor/scopeguard-1.2.0", + "contents": "{\"package\": \"e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5\", \"files\": {}}", + "dest": "cargo/vendor/rustls-native-certs-0.7.3", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/secret-service/secret-service-3.0.1.crate", - "sha256": "5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95", - "dest": "cargo/vendor/secret-service-3.0.1" + "url": "https://static.crates.io/crates/rustls-native-certs/rustls-native-certs-0.8.0.crate", + "sha256": "fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a", + "dest": "cargo/vendor/rustls-native-certs-0.8.0" }, { "type": "inline", - "contents": "{\"package\": \"5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95\", \"files\": {}}", - "dest": "cargo/vendor/secret-service-3.0.1", + "contents": "{\"package\": \"fcaf18a4f2be7326cd874a5fa579fae794320a0f388d365dca7e480e55f83f8a\", \"files\": {}}", + "dest": "cargo/vendor/rustls-native-certs-0.8.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/semver/semver-1.0.20.crate", - "sha256": "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090", - "dest": "cargo/vendor/semver-1.0.20" + "url": "https://static.crates.io/crates/rustls-pemfile/rustls-pemfile-1.0.4.crate", + "sha256": "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c", + "dest": "cargo/vendor/rustls-pemfile-1.0.4" }, { "type": "inline", - "contents": "{\"package\": \"836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090\", \"files\": {}}", - "dest": "cargo/vendor/semver-1.0.20", + "contents": "{\"package\": \"1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c\", \"files\": {}}", + "dest": "cargo/vendor/rustls-pemfile-1.0.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde/serde-1.0.190.crate", - "sha256": "91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7", - "dest": "cargo/vendor/serde-1.0.190" + "url": "https://static.crates.io/crates/rustls-pemfile/rustls-pemfile-2.2.0.crate", + "sha256": "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50", + "dest": "cargo/vendor/rustls-pemfile-2.2.0" }, { "type": "inline", - "contents": "{\"package\": \"91d3c334ca1ee894a2c6f6ad698fe8c435b76d504b13d436f0685d648d6d96f7\", \"files\": {}}", - "dest": "cargo/vendor/serde-1.0.190", + "contents": "{\"package\": \"dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50\", \"files\": {}}", + "dest": "cargo/vendor/rustls-pemfile-2.2.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.190.crate", - "sha256": "67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3", - "dest": "cargo/vendor/serde_derive-1.0.190" + "url": "https://static.crates.io/crates/rustls-pki-types/rustls-pki-types-1.10.0.crate", + "sha256": "16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b", + "dest": "cargo/vendor/rustls-pki-types-1.10.0" }, { "type": "inline", - "contents": "{\"package\": \"67c5609f394e5c2bd7fc51efda478004ea80ef42fee983d5c67a65e34f32c0e3\", \"files\": {}}", - "dest": "cargo/vendor/serde_derive-1.0.190", + "contents": "{\"package\": \"16f1201b3c9a7ee8039bcadc17b7e605e2945b27eee7631788c1bd2b0643674b\", \"files\": {}}", + "dest": "cargo/vendor/rustls-pki-types-1.10.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_json/serde_json-1.0.108.crate", - "sha256": "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b", - "dest": "cargo/vendor/serde_json-1.0.108" + "url": "https://static.crates.io/crates/rustls-webpki/rustls-webpki-0.101.7.crate", + "sha256": "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765", + "dest": "cargo/vendor/rustls-webpki-0.101.7" }, { "type": "inline", - "contents": "{\"package\": \"3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b\", \"files\": {}}", - "dest": "cargo/vendor/serde_json-1.0.108", + "contents": "{\"package\": \"8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765\", \"files\": {}}", + "dest": "cargo/vendor/rustls-webpki-0.101.7", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_repr/serde_repr-0.1.17.crate", - "sha256": "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145", - "dest": "cargo/vendor/serde_repr-0.1.17" + "url": "https://static.crates.io/crates/rustls-webpki/rustls-webpki-0.102.8.crate", + "sha256": "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9", + "dest": "cargo/vendor/rustls-webpki-0.102.8" }, { "type": "inline", - "contents": "{\"package\": \"3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145\", \"files\": {}}", - "dest": "cargo/vendor/serde_repr-0.1.17", + "contents": "{\"package\": \"64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9\", \"files\": {}}", + "dest": "cargo/vendor/rustls-webpki-0.102.8", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.4.crate", - "sha256": "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80", - "dest": "cargo/vendor/serde_spanned-0.6.4" + "url": "https://static.crates.io/crates/rustversion/rustversion-1.0.18.crate", + "sha256": "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248", + "dest": "cargo/vendor/rustversion-1.0.18" }, { "type": "inline", - "contents": "{\"package\": \"12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80\", \"files\": {}}", - "dest": "cargo/vendor/serde_spanned-0.6.4", + "contents": "{\"package\": \"0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248\", \"files\": {}}", + "dest": "cargo/vendor/rustversion-1.0.18", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/sha-1/sha-1-0.9.8.crate", - "sha256": "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6", - "dest": "cargo/vendor/sha-1-0.9.8" + "url": "https://static.crates.io/crates/ryu/ryu-1.0.15.crate", + "sha256": "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741", + "dest": "cargo/vendor/ryu-1.0.15" }, { "type": "inline", - "contents": "{\"package\": \"99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6\", \"files\": {}}", - "dest": "cargo/vendor/sha-1-0.9.8", + "contents": "{\"package\": \"1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741\", \"files\": {}}", + "dest": "cargo/vendor/ryu-1.0.15", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/sha1/sha1-0.10.6.crate", - "sha256": "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba", - "dest": "cargo/vendor/sha1-0.10.6" + "url": "https://static.crates.io/crates/same-file/same-file-1.0.6.crate", + "sha256": "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502", + "dest": "cargo/vendor/same-file-1.0.6" }, { "type": "inline", - "contents": "{\"package\": \"e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba\", \"files\": {}}", - "dest": "cargo/vendor/sha1-0.10.6", + "contents": "{\"package\": \"93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502\", \"files\": {}}", + "dest": "cargo/vendor/same-file-1.0.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/sha2/sha2-0.10.8.crate", - "sha256": "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8", - "dest": "cargo/vendor/sha2-0.10.8" + "url": "https://static.crates.io/crates/schannel/schannel-0.1.22.crate", + "sha256": "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88", + "dest": "cargo/vendor/schannel-0.1.22" }, { "type": "inline", - "contents": "{\"package\": \"793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8\", \"files\": {}}", - "dest": "cargo/vendor/sha2-0.10.8", + "contents": "{\"package\": \"0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88\", \"files\": {}}", + "dest": "cargo/vendor/schannel-0.1.22", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/shannon/shannon-0.2.0.crate", - "sha256": "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561", - "dest": "cargo/vendor/shannon-0.2.0" + "url": "https://static.crates.io/crates/scopeguard/scopeguard-1.2.0.crate", + "sha256": "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49", + "dest": "cargo/vendor/scopeguard-1.2.0" }, { "type": "inline", - "contents": "{\"package\": \"7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561\", \"files\": {}}", - "dest": "cargo/vendor/shannon-0.2.0", + "contents": "{\"package\": \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\", \"files\": {}}", + "dest": "cargo/vendor/scopeguard-1.2.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/shell-words/shell-words-1.1.0.crate", - "sha256": "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde", - "dest": "cargo/vendor/shell-words-1.1.0" + "url": "https://static.crates.io/crates/sct/sct-0.7.1.crate", + "sha256": "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414", + "dest": "cargo/vendor/sct-0.7.1" }, { "type": "inline", - "contents": "{\"package\": \"24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde\", \"files\": {}}", - "dest": "cargo/vendor/shell-words-1.1.0", + "contents": "{\"package\": \"da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414\", \"files\": {}}", + "dest": "cargo/vendor/sct-0.7.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/shlex/shlex-1.2.0.crate", - "sha256": "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380", - "dest": "cargo/vendor/shlex-1.2.0" + "url": "https://static.crates.io/crates/secret-service/secret-service-3.0.1.crate", + "sha256": "5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95", + "dest": "cargo/vendor/secret-service-3.0.1" }, { "type": "inline", - "contents": "{\"package\": \"a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380\", \"files\": {}}", - "dest": "cargo/vendor/shlex-1.2.0", + "contents": "{\"package\": \"5da1a5ad4d28c03536f82f77d9f36603f5e37d8869ac98f0a750d5b5686d8d95\", \"files\": {}}", + "dest": "cargo/vendor/secret-service-3.0.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate", - "sha256": "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1", - "dest": "cargo/vendor/signal-hook-registry-1.4.1" + "url": "https://static.crates.io/crates/security-framework/security-framework-2.10.0.crate", + "sha256": "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6", + "dest": "cargo/vendor/security-framework-2.10.0" }, { "type": "inline", - "contents": "{\"package\": \"d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1\", \"files\": {}}", - "dest": "cargo/vendor/signal-hook-registry-1.4.1", + "contents": "{\"package\": \"770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6\", \"files\": {}}", + "dest": "cargo/vendor/security-framework-2.10.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/slab/slab-0.4.9.crate", - "sha256": "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67", - "dest": "cargo/vendor/slab-0.4.9" + "url": "https://static.crates.io/crates/security-framework-sys/security-framework-sys-2.11.0.crate", + "sha256": "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7", + "dest": "cargo/vendor/security-framework-sys-2.11.0" }, { "type": "inline", - "contents": "{\"package\": \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\", \"files\": {}}", - "dest": "cargo/vendor/slab-0.4.9", + "contents": "{\"package\": \"317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7\", \"files\": {}}", + "dest": "cargo/vendor/security-framework-sys-2.11.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/sluice/sluice-0.5.5.crate", - "sha256": "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5", - "dest": "cargo/vendor/sluice-0.5.5" - }, - { + "url": "https://static.crates.io/crates/semver/semver-1.0.20.crate", + "sha256": "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090", + "dest": "cargo/vendor/semver-1.0.20" + }, + { + "type": "inline", + "contents": "{\"package\": \"836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090\", \"files\": {}}", + "dest": "cargo/vendor/semver-1.0.20", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde/serde-1.0.213.crate", + "sha256": "3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1", + "dest": "cargo/vendor/serde-1.0.213" + }, + { + "type": "inline", + "contents": "{\"package\": \"3ea7893ff5e2466df8d720bb615088341b295f849602c6956047f8f80f0e9bc1\", \"files\": {}}", + "dest": "cargo/vendor/serde-1.0.213", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_derive/serde_derive-1.0.213.crate", + "sha256": "7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5", + "dest": "cargo/vendor/serde_derive-1.0.213" + }, + { + "type": "inline", + "contents": "{\"package\": \"7e85ad2009c50b58e87caa8cd6dac16bdf511bbfb7af6c33df902396aa480fa5\", \"files\": {}}", + "dest": "cargo/vendor/serde_derive-1.0.213", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_json/serde_json-1.0.108.crate", + "sha256": "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b", + "dest": "cargo/vendor/serde_json-1.0.108" + }, + { + "type": "inline", + "contents": "{\"package\": \"3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b\", \"files\": {}}", + "dest": "cargo/vendor/serde_json-1.0.108", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_path_to_error/serde_path_to_error-0.1.16.crate", + "sha256": "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6", + "dest": "cargo/vendor/serde_path_to_error-0.1.16" + }, + { + "type": "inline", + "contents": "{\"package\": \"af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6\", \"files\": {}}", + "dest": "cargo/vendor/serde_path_to_error-0.1.16", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_repr/serde_repr-0.1.17.crate", + "sha256": "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145", + "dest": "cargo/vendor/serde_repr-0.1.17" + }, + { + "type": "inline", + "contents": "{\"package\": \"3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145\", \"files\": {}}", + "dest": "cargo/vendor/serde_repr-0.1.17", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_spanned/serde_spanned-0.6.4.crate", + "sha256": "12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80", + "dest": "cargo/vendor/serde_spanned-0.6.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"12022b835073e5b11e90a14f86838ceb1c8fb0325b72416845c487ac0fa95e80\", \"files\": {}}", + "dest": "cargo/vendor/serde_spanned-0.6.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/serde_urlencoded/serde_urlencoded-0.7.1.crate", + "sha256": "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd", + "dest": "cargo/vendor/serde_urlencoded-0.7.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd\", \"files\": {}}", + "dest": "cargo/vendor/serde_urlencoded-0.7.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sha1/sha1-0.10.6.crate", + "sha256": "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba", + "dest": "cargo/vendor/sha1-0.10.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba\", \"files\": {}}", + "dest": "cargo/vendor/sha1-0.10.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sha2/sha2-0.10.8.crate", + "sha256": "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8", + "dest": "cargo/vendor/sha2-0.10.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8\", \"files\": {}}", + "dest": "cargo/vendor/sha2-0.10.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/shannon/shannon-0.2.0.crate", + "sha256": "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561", + "dest": "cargo/vendor/shannon-0.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561\", \"files\": {}}", + "dest": "cargo/vendor/shannon-0.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/shell-words/shell-words-1.1.0.crate", + "sha256": "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde", + "dest": "cargo/vendor/shell-words-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde\", \"files\": {}}", + "dest": "cargo/vendor/shell-words-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/shlex/shlex-1.2.0.crate", + "sha256": "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380", + "dest": "cargo/vendor/shlex-1.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380\", \"files\": {}}", + "dest": "cargo/vendor/shlex-1.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/signal-hook-registry/signal-hook-registry-1.4.1.crate", + "sha256": "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1", + "dest": "cargo/vendor/signal-hook-registry-1.4.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1\", \"files\": {}}", + "dest": "cargo/vendor/signal-hook-registry-1.4.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/signature/signature-2.2.0.crate", + "sha256": "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de", + "dest": "cargo/vendor/signature-2.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de\", \"files\": {}}", + "dest": "cargo/vendor/signature-2.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/slab/slab-0.4.9.crate", + "sha256": "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67", + "dest": "cargo/vendor/slab-0.4.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\", \"files\": {}}", + "dest": "cargo/vendor/slab-0.4.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sluice/sluice-0.5.5.crate", + "sha256": "6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5", + "dest": "cargo/vendor/sluice-0.5.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5\", \"files\": {}}", + "dest": "cargo/vendor/sluice-0.5.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/smallvec/smallvec-1.13.2.crate", + "sha256": "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67", + "dest": "cargo/vendor/smallvec-1.13.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67\", \"files\": {}}", + "dest": "cargo/vendor/smallvec-1.13.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/socket2/socket2-0.4.10.crate", + "sha256": "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d", + "dest": "cargo/vendor/socket2-0.4.10" + }, + { + "type": "inline", + "contents": "{\"package\": \"9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d\", \"files\": {}}", + "dest": "cargo/vendor/socket2-0.4.10", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/socket2/socket2-0.5.5.crate", + "sha256": "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9", + "dest": "cargo/vendor/socket2-0.5.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9\", \"files\": {}}", + "dest": "cargo/vendor/socket2-0.5.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/spin/spin-0.5.2.crate", + "sha256": "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d", + "dest": "cargo/vendor/spin-0.5.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d\", \"files\": {}}", + "dest": "cargo/vendor/spin-0.5.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/spin/spin-0.9.8.crate", + "sha256": "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67", + "dest": "cargo/vendor/spin-0.9.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\", \"files\": {}}", + "dest": "cargo/vendor/spin-0.9.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/spinning_top/spinning_top-0.3.0.crate", + "sha256": "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300", + "dest": "cargo/vendor/spinning_top-0.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300\", \"files\": {}}", + "dest": "cargo/vendor/spinning_top-0.3.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/spki/spki-0.7.3.crate", + "sha256": "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d", + "dest": "cargo/vendor/spki-0.7.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d\", \"files\": {}}", + "dest": "cargo/vendor/spki-0.7.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/static_assertions/static_assertions-1.1.0.crate", + "sha256": "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f", + "dest": "cargo/vendor/static_assertions-1.1.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\", \"files\": {}}", + "dest": "cargo/vendor/static_assertions-1.1.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/strsim/strsim-0.11.1.crate", + "sha256": "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f", + "dest": "cargo/vendor/strsim-0.11.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f\", \"files\": {}}", + "dest": "cargo/vendor/strsim-0.11.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/subtle/subtle-2.6.1.crate", + "sha256": "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292", + "dest": "cargo/vendor/subtle-2.6.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292\", \"files\": {}}", + "dest": "cargo/vendor/subtle-2.6.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia/symphonia-0.5.4.crate", + "sha256": "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9", + "dest": "cargo/vendor/symphonia-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia-bundle-mp3/symphonia-bundle-mp3-0.5.4.crate", + "sha256": "c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4", + "dest": "cargo/vendor/symphonia-bundle-mp3-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-bundle-mp3-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia-codec-vorbis/symphonia-codec-vorbis-0.5.4.crate", + "sha256": "5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30", + "dest": "cargo/vendor/symphonia-codec-vorbis-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"5a98765fb46a0a6732b007f7e2870c2129b6f78d87db7987e6533c8f164a9f30\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-codec-vorbis-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia-core/symphonia-core-0.5.4.crate", + "sha256": "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3", + "dest": "cargo/vendor/symphonia-core-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-core-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia-format-ogg/symphonia-format-ogg-0.5.4.crate", + "sha256": "ada3505789516bcf00fc1157c67729eded428b455c27ca370e41f4d785bfa931", + "dest": "cargo/vendor/symphonia-format-ogg-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"ada3505789516bcf00fc1157c67729eded428b455c27ca370e41f4d785bfa931\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-format-ogg-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia-metadata/symphonia-metadata-0.5.4.crate", + "sha256": "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c", + "dest": "cargo/vendor/symphonia-metadata-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-metadata-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/symphonia-utils-xiph/symphonia-utils-xiph-0.5.4.crate", + "sha256": "484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe", + "dest": "cargo/vendor/symphonia-utils-xiph-0.5.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"484472580fa49991afda5f6550ece662237b00c6f562c7d9638d1b086ed010fe\", \"files\": {}}", + "dest": "cargo/vendor/symphonia-utils-xiph-0.5.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/syn/syn-1.0.109.crate", + "sha256": "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237", + "dest": "cargo/vendor/syn-1.0.109" + }, + { + "type": "inline", + "contents": "{\"package\": \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\", \"files\": {}}", + "dest": "cargo/vendor/syn-1.0.109", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/syn/syn-2.0.85.crate", + "sha256": "5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56", + "dest": "cargo/vendor/syn-2.0.85" + }, + { + "type": "inline", + "contents": "{\"package\": \"5023162dfcd14ef8f32034d8bcd4cc5ddc61ef7a247c024a33e24e1f24d21b56\", \"files\": {}}", + "dest": "cargo/vendor/syn-2.0.85", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sync_wrapper/sync_wrapper-0.1.2.crate", + "sha256": "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160", + "dest": "cargo/vendor/sync_wrapper-0.1.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160\", \"files\": {}}", + "dest": "cargo/vendor/sync_wrapper-0.1.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/sysinfo/sysinfo-0.31.4.crate", + "sha256": "355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be", + "dest": "cargo/vendor/sysinfo-0.31.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"355dbe4f8799b304b05e1b0f05fc59b2a18d36645cf169607da45bde2f69a1be\", \"files\": {}}", + "dest": "cargo/vendor/sysinfo-0.31.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/system-configuration/system-configuration-0.5.1.crate", + "sha256": "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7", + "dest": "cargo/vendor/system-configuration-0.5.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7\", \"files\": {}}", + "dest": "cargo/vendor/system-configuration-0.5.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/system-configuration-sys/system-configuration-sys-0.5.0.crate", + "sha256": "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9", + "dest": "cargo/vendor/system-configuration-sys-0.5.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9\", \"files\": {}}", + "dest": "cargo/vendor/system-configuration-sys-0.5.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/system-deps/system-deps-6.2.0.crate", + "sha256": "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331", + "dest": "cargo/vendor/system-deps-6.2.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331\", \"files\": {}}", + "dest": "cargo/vendor/system-deps-6.2.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/system-deps/system-deps-7.0.3.crate", + "sha256": "66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005", + "dest": "cargo/vendor/system-deps-7.0.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"66d23aaf9f331227789a99e8de4c91bf46703add012bdfd45fdecdfb2975a005\", \"files\": {}}", + "dest": "cargo/vendor/system-deps-7.0.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.12.16.crate", + "sha256": "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1", + "dest": "cargo/vendor/target-lexicon-0.12.16" + }, + { + "type": "inline", + "contents": "{\"package\": \"61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1\", \"files\": {}}", + "dest": "cargo/vendor/target-lexicon-0.12.16", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/temp-dir/temp-dir-0.1.11.crate", + "sha256": "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab", + "dest": "cargo/vendor/temp-dir-0.1.11" + }, + { + "type": "inline", + "contents": "{\"package\": \"af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab\", \"files\": {}}", + "dest": "cargo/vendor/temp-dir-0.1.11", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tempfile/tempfile-3.8.1.crate", + "sha256": "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5", + "dest": "cargo/vendor/tempfile-3.8.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5\", \"files\": {}}", + "dest": "cargo/vendor/tempfile-3.8.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/termcolor/termcolor-1.3.0.crate", + "sha256": "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64", + "dest": "cargo/vendor/termcolor-1.3.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64\", \"files\": {}}", + "dest": "cargo/vendor/termcolor-1.3.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.50.crate", + "sha256": "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2", + "dest": "cargo/vendor/thiserror-1.0.50" + }, + { + "type": "inline", + "contents": "{\"package\": \"f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-1.0.50", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.50.crate", + "sha256": "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8", + "dest": "cargo/vendor/thiserror-impl-1.0.50" + }, + { + "type": "inline", + "contents": "{\"package\": \"266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8\", \"files\": {}}", + "dest": "cargo/vendor/thiserror-impl-1.0.50", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/thread-id/thread-id-4.2.1.crate", + "sha256": "f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b", + "dest": "cargo/vendor/thread-id-4.2.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b\", \"files\": {}}", + "dest": "cargo/vendor/thread-id-4.2.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/time/time-0.3.36.crate", + "sha256": "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885", + "dest": "cargo/vendor/time-0.3.36" + }, + { + "type": "inline", + "contents": "{\"package\": \"5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885\", \"files\": {}}", + "dest": "cargo/vendor/time-0.3.36", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/time-core/time-core-0.1.2.crate", + "sha256": "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3", + "dest": "cargo/vendor/time-core-0.1.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3\", \"files\": {}}", + "dest": "cargo/vendor/time-core-0.1.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/time-macros/time-macros-0.2.18.crate", + "sha256": "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf", + "dest": "cargo/vendor/time-macros-0.2.18" + }, + { + "type": "inline", + "contents": "{\"package\": \"3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf\", \"files\": {}}", + "dest": "cargo/vendor/time-macros-0.2.18", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tinyvec/tinyvec-1.6.0.crate", + "sha256": "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50", + "dest": "cargo/vendor/tinyvec-1.6.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50\", \"files\": {}}", + "dest": "cargo/vendor/tinyvec-1.6.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.1.crate", + "sha256": "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20", + "dest": "cargo/vendor/tinyvec_macros-0.1.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\", \"files\": {}}", + "dest": "cargo/vendor/tinyvec_macros-0.1.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio/tokio-1.41.0.crate", + "sha256": "145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb", + "dest": "cargo/vendor/tokio-1.41.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"145f3413504347a2be84393cc8a7d2fb4d863b375909ea59f2158261aa258bbb\", \"files\": {}}", + "dest": "cargo/vendor/tokio-1.41.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-macros/tokio-macros-2.4.0.crate", + "sha256": "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752", + "dest": "cargo/vendor/tokio-macros-2.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752\", \"files\": {}}", + "dest": "cargo/vendor/tokio-macros-2.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-rustls/tokio-rustls-0.24.1.crate", + "sha256": "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081", + "dest": "cargo/vendor/tokio-rustls-0.24.1" + }, + { + "type": "inline", + "contents": "{\"package\": \"c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081\", \"files\": {}}", + "dest": "cargo/vendor/tokio-rustls-0.24.1", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-rustls/tokio-rustls-0.25.0.crate", + "sha256": "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f", + "dest": "cargo/vendor/tokio-rustls-0.25.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f\", \"files\": {}}", + "dest": "cargo/vendor/tokio-rustls-0.25.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-rustls/tokio-rustls-0.26.0.crate", + "sha256": "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4", + "dest": "cargo/vendor/tokio-rustls-0.26.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4\", \"files\": {}}", + "dest": "cargo/vendor/tokio-rustls-0.26.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-stream/tokio-stream-0.1.14.crate", + "sha256": "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842", + "dest": "cargo/vendor/tokio-stream-0.1.14" + }, + { + "type": "inline", + "contents": "{\"package\": \"397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842\", \"files\": {}}", + "dest": "cargo/vendor/tokio-stream-0.1.14", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-tungstenite/tokio-tungstenite-0.24.0.crate", + "sha256": "edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9", + "dest": "cargo/vendor/tokio-tungstenite-0.24.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"edc5f74e248dc973e0dbb7b74c7e0d6fcc301c694ff50049504004ef4d0cdcd9\", \"files\": {}}", + "dest": "cargo/vendor/tokio-tungstenite-0.24.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tokio-util/tokio-util-0.7.10.crate", + "sha256": "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15", + "dest": "cargo/vendor/tokio-util-0.7.10" + }, + { + "type": "inline", + "contents": "{\"package\": \"5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15\", \"files\": {}}", + "dest": "cargo/vendor/tokio-util-0.7.10", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml/toml-0.8.6.crate", + "sha256": "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc", + "dest": "cargo/vendor/toml-0.8.6" + }, + { + "type": "inline", + "contents": "{\"package\": \"8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc\", \"files\": {}}", + "dest": "cargo/vendor/toml-0.8.6", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.8.crate", + "sha256": "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41", + "dest": "cargo/vendor/toml_datetime-0.6.8" + }, + { + "type": "inline", + "contents": "{\"package\": \"0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41\", \"files\": {}}", + "dest": "cargo/vendor/toml_datetime-0.6.8", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.19.15.crate", + "sha256": "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421", + "dest": "cargo/vendor/toml_edit-0.19.15" + }, + { + "type": "inline", + "contents": "{\"package\": \"1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.19.15", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.20.7.crate", + "sha256": "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81", + "dest": "cargo/vendor/toml_edit-0.20.7" + }, + { + "type": "inline", + "contents": "{\"package\": \"70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.20.7", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.22.22.crate", + "sha256": "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5", + "dest": "cargo/vendor/toml_edit-0.22.22" + }, + { + "type": "inline", + "contents": "{\"package\": \"4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5\", \"files\": {}}", + "dest": "cargo/vendor/toml_edit-0.22.22", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tower/tower-0.4.13.crate", + "sha256": "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c", + "dest": "cargo/vendor/tower-0.4.13" + }, + { + "type": "inline", + "contents": "{\"package\": \"b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c\", \"files\": {}}", + "dest": "cargo/vendor/tower-0.4.13", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tower-layer/tower-layer-0.3.3.crate", + "sha256": "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e", + "dest": "cargo/vendor/tower-layer-0.3.3" + }, + { + "type": "inline", + "contents": "{\"package\": \"121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e\", \"files\": {}}", + "dest": "cargo/vendor/tower-layer-0.3.3", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tower-service/tower-service-0.3.2.crate", + "sha256": "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52", + "dest": "cargo/vendor/tower-service-0.3.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52\", \"files\": {}}", + "dest": "cargo/vendor/tower-service-0.3.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing/tracing-0.1.40.crate", + "sha256": "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef", + "dest": "cargo/vendor/tracing-0.1.40" + }, + { + "type": "inline", + "contents": "{\"package\": \"c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef\", \"files\": {}}", + "dest": "cargo/vendor/tracing-0.1.40", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.27.crate", + "sha256": "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7", + "dest": "cargo/vendor/tracing-attributes-0.1.27" + }, + { + "type": "inline", + "contents": "{\"package\": \"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7\", \"files\": {}}", + "dest": "cargo/vendor/tracing-attributes-0.1.27", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing-core/tracing-core-0.1.32.crate", + "sha256": "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54", + "dest": "cargo/vendor/tracing-core-0.1.32" + }, + { + "type": "inline", + "contents": "{\"package\": \"c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54\", \"files\": {}}", + "dest": "cargo/vendor/tracing-core-0.1.32", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tracing-futures/tracing-futures-0.2.5.crate", + "sha256": "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2", + "dest": "cargo/vendor/tracing-futures-0.2.5" + }, + { + "type": "inline", + "contents": "{\"package\": \"97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2\", \"files\": {}}", + "dest": "cargo/vendor/tracing-futures-0.2.5", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/try-lock/try-lock-0.2.4.crate", + "sha256": "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed", + "dest": "cargo/vendor/try-lock-0.2.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed\", \"files\": {}}", + "dest": "cargo/vendor/try-lock-0.2.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/tungstenite/tungstenite-0.24.0.crate", + "sha256": "18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a", + "dest": "cargo/vendor/tungstenite-0.24.0" + }, + { "type": "inline", - "contents": "{\"package\": \"6d7400c0eff44aa2fcb5e31a5f24ba9716ed90138769e4977a2ba6014ae63eb5\", \"files\": {}}", - "dest": "cargo/vendor/sluice-0.5.5", + "contents": "{\"package\": \"18e5b8366ee7a95b16d32197d0b2604b43a0be89dc5fac9f8e96ccafbaedda8a\", \"files\": {}}", + "dest": "cargo/vendor/tungstenite-0.24.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/smallvec/smallvec-1.11.1.crate", - "sha256": "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a", - "dest": "cargo/vendor/smallvec-1.11.1" + "url": "https://static.crates.io/crates/typenum/typenum-1.17.0.crate", + "sha256": "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825", + "dest": "cargo/vendor/typenum-1.17.0" }, { "type": "inline", - "contents": "{\"package\": \"942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a\", \"files\": {}}", - "dest": "cargo/vendor/smallvec-1.11.1", + "contents": "{\"package\": \"42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825\", \"files\": {}}", + "dest": "cargo/vendor/typenum-1.17.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/socket2/socket2-0.4.10.crate", - "sha256": "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d", - "dest": "cargo/vendor/socket2-0.4.10" + "url": "https://static.crates.io/crates/uds_windows/uds_windows-1.0.2.crate", + "sha256": "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d", + "dest": "cargo/vendor/uds_windows-1.0.2" }, { "type": "inline", - "contents": "{\"package\": \"9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d\", \"files\": {}}", - "dest": "cargo/vendor/socket2-0.4.10", + "contents": "{\"package\": \"ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d\", \"files\": {}}", + "dest": "cargo/vendor/uds_windows-1.0.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/socket2/socket2-0.5.5.crate", - "sha256": "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9", - "dest": "cargo/vendor/socket2-0.5.5" + "url": "https://static.crates.io/crates/unicode-bidi/unicode-bidi-0.3.13.crate", + "sha256": "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460", + "dest": "cargo/vendor/unicode-bidi-0.3.13" }, { "type": "inline", - "contents": "{\"package\": \"7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9\", \"files\": {}}", - "dest": "cargo/vendor/socket2-0.5.5", + "contents": "{\"package\": \"92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460\", \"files\": {}}", + "dest": "cargo/vendor/unicode-bidi-0.3.13", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/static_assertions/static_assertions-1.1.0.crate", - "sha256": "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f", - "dest": "cargo/vendor/static_assertions-1.1.0" + "url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.12.crate", + "sha256": "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b", + "dest": "cargo/vendor/unicode-ident-1.0.12" }, { "type": "inline", - "contents": "{\"package\": \"a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f\", \"files\": {}}", - "dest": "cargo/vendor/static_assertions-1.1.0", + "contents": "{\"package\": \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\", \"files\": {}}", + "dest": "cargo/vendor/unicode-ident-1.0.12", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/stdweb/stdweb-0.1.3.crate", - "sha256": "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e", - "dest": "cargo/vendor/stdweb-0.1.3" + "url": "https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.22.crate", + "sha256": "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921", + "dest": "cargo/vendor/unicode-normalization-0.1.22" }, { "type": "inline", - "contents": "{\"package\": \"ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e\", \"files\": {}}", - "dest": "cargo/vendor/stdweb-0.1.3", + "contents": "{\"package\": \"5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921\", \"files\": {}}", + "dest": "cargo/vendor/unicode-normalization-0.1.22", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/strsim/strsim-0.10.0.crate", - "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623", - "dest": "cargo/vendor/strsim-0.10.0" + "url": "https://static.crates.io/crates/unicode-width/unicode-width-0.1.11.crate", + "sha256": "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85", + "dest": "cargo/vendor/unicode-width-0.1.11" }, { "type": "inline", - "contents": "{\"package\": \"73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623\", \"files\": {}}", - "dest": "cargo/vendor/strsim-0.10.0", + "contents": "{\"package\": \"e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85\", \"files\": {}}", + "dest": "cargo/vendor/unicode-width-0.1.11", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/subtle/subtle-2.4.1.crate", - "sha256": "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601", - "dest": "cargo/vendor/subtle-2.4.1" + "url": "https://static.crates.io/crates/untrusted/untrusted-0.9.0.crate", + "sha256": "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1", + "dest": "cargo/vendor/untrusted-0.9.0" }, { "type": "inline", - "contents": "{\"package\": \"6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601\", \"files\": {}}", - "dest": "cargo/vendor/subtle-2.4.1", + "contents": "{\"package\": \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\", \"files\": {}}", + "dest": "cargo/vendor/untrusted-0.9.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/syn/syn-1.0.109.crate", - "sha256": "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237", - "dest": "cargo/vendor/syn-1.0.109" + "url": "https://static.crates.io/crates/url/url-2.4.1.crate", + "sha256": "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5", + "dest": "cargo/vendor/url-2.4.1" }, { "type": "inline", - "contents": "{\"package\": \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\", \"files\": {}}", - "dest": "cargo/vendor/syn-1.0.109", + "contents": "{\"package\": \"143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5\", \"files\": {}}", + "dest": "cargo/vendor/url-2.4.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/syn/syn-2.0.38.crate", - "sha256": "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b", - "dest": "cargo/vendor/syn-2.0.38" + "url": "https://static.crates.io/crates/utf-8/utf-8-0.7.6.crate", + "sha256": "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9", + "dest": "cargo/vendor/utf-8-0.7.6" }, { "type": "inline", - "contents": "{\"package\": \"e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b\", \"files\": {}}", - "dest": "cargo/vendor/syn-2.0.38", + "contents": "{\"package\": \"09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9\", \"files\": {}}", + "dest": "cargo/vendor/utf-8-0.7.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/system-deps/system-deps-6.2.0.crate", - "sha256": "2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331", - "dest": "cargo/vendor/system-deps-6.2.0" + "url": "https://static.crates.io/crates/utf8parse/utf8parse-0.2.2.crate", + "sha256": "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821", + "dest": "cargo/vendor/utf8parse-0.2.2" }, { "type": "inline", - "contents": "{\"package\": \"2a2d580ff6a20c55dfb86be5f9c238f67835d0e81cbdea8bf5680e0897320331\", \"files\": {}}", - "dest": "cargo/vendor/system-deps-6.2.0", + "contents": "{\"package\": \"06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821\", \"files\": {}}", + "dest": "cargo/vendor/utf8parse-0.2.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/target-lexicon/target-lexicon-0.12.12.crate", - "sha256": "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a", - "dest": "cargo/vendor/target-lexicon-0.12.12" + "url": "https://static.crates.io/crates/uuid/uuid-1.5.0.crate", + "sha256": "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc", + "dest": "cargo/vendor/uuid-1.5.0" }, { "type": "inline", - "contents": "{\"package\": \"14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a\", \"files\": {}}", - "dest": "cargo/vendor/target-lexicon-0.12.12", + "contents": "{\"package\": \"88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc\", \"files\": {}}", + "dest": "cargo/vendor/uuid-1.5.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/temp-dir/temp-dir-0.1.11.crate", - "sha256": "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab", - "dest": "cargo/vendor/temp-dir-0.1.11" + "url": "https://static.crates.io/crates/value-bag/value-bag-1.10.0.crate", + "sha256": "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2", + "dest": "cargo/vendor/value-bag-1.10.0" }, { "type": "inline", - "contents": "{\"package\": \"af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab\", \"files\": {}}", - "dest": "cargo/vendor/temp-dir-0.1.11", + "contents": "{\"package\": \"3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2\", \"files\": {}}", + "dest": "cargo/vendor/value-bag-1.10.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tempfile/tempfile-3.8.1.crate", - "sha256": "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5", - "dest": "cargo/vendor/tempfile-3.8.1" + "url": "https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate", + "sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426", + "dest": "cargo/vendor/vcpkg-0.2.15" }, { "type": "inline", - "contents": "{\"package\": \"7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5\", \"files\": {}}", - "dest": "cargo/vendor/tempfile-3.8.1", + "contents": "{\"package\": \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\", \"files\": {}}", + "dest": "cargo/vendor/vcpkg-0.2.15", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/termcolor/termcolor-1.3.0.crate", - "sha256": "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64", - "dest": "cargo/vendor/termcolor-1.3.0" + "url": "https://static.crates.io/crates/vergen/vergen-9.0.1.crate", + "sha256": "349ed9e45296a581f455bc18039878f409992999bc1d5da12a6800eb18c8752f", + "dest": "cargo/vendor/vergen-9.0.1" }, { "type": "inline", - "contents": "{\"package\": \"6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64\", \"files\": {}}", - "dest": "cargo/vendor/termcolor-1.3.0", + "contents": "{\"package\": \"349ed9e45296a581f455bc18039878f409992999bc1d5da12a6800eb18c8752f\", \"files\": {}}", + "dest": "cargo/vendor/vergen-9.0.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/thiserror/thiserror-1.0.50.crate", - "sha256": "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2", - "dest": "cargo/vendor/thiserror-1.0.50" + "url": "https://static.crates.io/crates/vergen-gitcl/vergen-gitcl-1.0.1.crate", + "sha256": "2a3a7f91caabecefc3c249fd864b11d4abe315c166fbdb568964421bccfd2b7a", + "dest": "cargo/vendor/vergen-gitcl-1.0.1" }, { "type": "inline", - "contents": "{\"package\": \"f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2\", \"files\": {}}", - "dest": "cargo/vendor/thiserror-1.0.50", + "contents": "{\"package\": \"2a3a7f91caabecefc3c249fd864b11d4abe315c166fbdb568964421bccfd2b7a\", \"files\": {}}", + "dest": "cargo/vendor/vergen-gitcl-1.0.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/thiserror-impl/thiserror-impl-1.0.50.crate", - "sha256": "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8", - "dest": "cargo/vendor/thiserror-impl-1.0.50" + "url": "https://static.crates.io/crates/vergen-lib/vergen-lib-0.1.4.crate", + "sha256": "229eaddb0050920816cf051e619affaf18caa3dd512de8de5839ccbc8e53abb0", + "dest": "cargo/vendor/vergen-lib-0.1.4" }, { "type": "inline", - "contents": "{\"package\": \"266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8\", \"files\": {}}", - "dest": "cargo/vendor/thiserror-impl-1.0.50", + "contents": "{\"package\": \"229eaddb0050920816cf051e619affaf18caa3dd512de8de5839ccbc8e53abb0\", \"files\": {}}", + "dest": "cargo/vendor/vergen-lib-0.1.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/thread-id/thread-id-4.2.1.crate", - "sha256": "f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b", - "dest": "cargo/vendor/thread-id-4.2.1" + "url": "https://static.crates.io/crates/version-compare/version-compare-0.1.1.crate", + "sha256": "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29", + "dest": "cargo/vendor/version-compare-0.1.1" }, { "type": "inline", - "contents": "{\"package\": \"f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b\", \"files\": {}}", - "dest": "cargo/vendor/thread-id-4.2.1", + "contents": "{\"package\": \"579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29\", \"files\": {}}", + "dest": "cargo/vendor/version-compare-0.1.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tinyvec/tinyvec-1.6.0.crate", - "sha256": "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50", - "dest": "cargo/vendor/tinyvec-1.6.0" + "url": "https://static.crates.io/crates/version-compare/version-compare-0.2.0.crate", + "sha256": "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b", + "dest": "cargo/vendor/version-compare-0.2.0" }, { "type": "inline", - "contents": "{\"package\": \"87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50\", \"files\": {}}", - "dest": "cargo/vendor/tinyvec-1.6.0", + "contents": "{\"package\": \"852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b\", \"files\": {}}", + "dest": "cargo/vendor/version-compare-0.2.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tinyvec_macros/tinyvec_macros-0.1.1.crate", - "sha256": "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20", - "dest": "cargo/vendor/tinyvec_macros-0.1.1" + "url": "https://static.crates.io/crates/version_check/version_check-0.9.4.crate", + "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f", + "dest": "cargo/vendor/version_check-0.9.4" }, { "type": "inline", - "contents": "{\"package\": \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\", \"files\": {}}", - "dest": "cargo/vendor/tinyvec_macros-0.1.1", + "contents": "{\"package\": \"49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f\", \"files\": {}}", + "dest": "cargo/vendor/version_check-0.9.4", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tokio/tokio-1.33.0.crate", - "sha256": "4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653", - "dest": "cargo/vendor/tokio-1.33.0" + "url": "https://static.crates.io/crates/waker-fn/waker-fn-1.1.1.crate", + "sha256": "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690", + "dest": "cargo/vendor/waker-fn-1.1.1" }, { "type": "inline", - "contents": "{\"package\": \"4f38200e3ef7995e5ef13baec2f432a6da0aa9ac495b2c0e8f3b7eec2c92d653\", \"files\": {}}", - "dest": "cargo/vendor/tokio-1.33.0", + "contents": "{\"package\": \"f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690\", \"files\": {}}", + "dest": "cargo/vendor/waker-fn-1.1.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tokio-macros/tokio-macros-2.1.0.crate", - "sha256": "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e", - "dest": "cargo/vendor/tokio-macros-2.1.0" + "url": "https://static.crates.io/crates/walkdir/walkdir-2.4.0.crate", + "sha256": "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee", + "dest": "cargo/vendor/walkdir-2.4.0" }, { "type": "inline", - "contents": "{\"package\": \"630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e\", \"files\": {}}", - "dest": "cargo/vendor/tokio-macros-2.1.0", + "contents": "{\"package\": \"d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee\", \"files\": {}}", + "dest": "cargo/vendor/walkdir-2.4.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tokio-stream/tokio-stream-0.1.14.crate", - "sha256": "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842", - "dest": "cargo/vendor/tokio-stream-0.1.14" + "url": "https://static.crates.io/crates/want/want-0.3.1.crate", + "sha256": "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e", + "dest": "cargo/vendor/want-0.3.1" }, { "type": "inline", - "contents": "{\"package\": \"397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842\", \"files\": {}}", - "dest": "cargo/vendor/tokio-stream-0.1.14", + "contents": "{\"package\": \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\", \"files\": {}}", + "dest": "cargo/vendor/want-0.3.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tokio-util/tokio-util-0.7.10.crate", - "sha256": "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15", - "dest": "cargo/vendor/tokio-util-0.7.10" + "url": "https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate", + "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423", + "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1" }, { "type": "inline", - "contents": "{\"package\": \"5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15\", \"files\": {}}", - "dest": "cargo/vendor/tokio-util-0.7.10", + "contents": "{\"package\": \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\", \"files\": {}}", + "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml/toml-0.8.6.crate", - "sha256": "8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc", - "dest": "cargo/vendor/toml-0.8.6" + "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.95.crate", + "sha256": "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e", + "dest": "cargo/vendor/wasm-bindgen-0.2.95" }, { "type": "inline", - "contents": "{\"package\": \"8ff9e3abce27ee2c9a37f9ad37238c1bdd4e789c84ba37df76aa4d528f5072cc\", \"files\": {}}", - "dest": "cargo/vendor/toml-0.8.6", + "contents": "{\"package\": \"128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-0.2.95", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_datetime/toml_datetime-0.6.5.crate", - "sha256": "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1", - "dest": "cargo/vendor/toml_datetime-0.6.5" + "url": "https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.95.crate", + "sha256": "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358", + "dest": "cargo/vendor/wasm-bindgen-backend-0.2.95" }, { "type": "inline", - "contents": "{\"package\": \"3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1\", \"files\": {}}", - "dest": "cargo/vendor/toml_datetime-0.6.5", + "contents": "{\"package\": \"cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-backend-0.2.95", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.19.15.crate", - "sha256": "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421", - "dest": "cargo/vendor/toml_edit-0.19.15" + "url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.38.crate", + "sha256": "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02", + "dest": "cargo/vendor/wasm-bindgen-futures-0.4.38" }, { "type": "inline", - "contents": "{\"package\": \"1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421\", \"files\": {}}", - "dest": "cargo/vendor/toml_edit-0.19.15", + "contents": "{\"package\": \"9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-futures-0.4.38", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/toml_edit/toml_edit-0.20.7.crate", - "sha256": "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81", - "dest": "cargo/vendor/toml_edit-0.20.7" + "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.95.crate", + "sha256": "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56", + "dest": "cargo/vendor/wasm-bindgen-macro-0.2.95" }, { "type": "inline", - "contents": "{\"package\": \"70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81\", \"files\": {}}", - "dest": "cargo/vendor/toml_edit-0.20.7", + "contents": "{\"package\": \"e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-macro-0.2.95", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tower-service/tower-service-0.3.2.crate", - "sha256": "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52", - "dest": "cargo/vendor/tower-service-0.3.2" + "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.95.crate", + "sha256": "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68", + "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.95" }, { "type": "inline", - "contents": "{\"package\": \"b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52\", \"files\": {}}", - "dest": "cargo/vendor/tower-service-0.3.2", + "contents": "{\"package\": \"26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.95", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tracing/tracing-0.1.40.crate", - "sha256": "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef", - "dest": "cargo/vendor/tracing-0.1.40" + "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.95.crate", + "sha256": "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d", + "dest": "cargo/vendor/wasm-bindgen-shared-0.2.95" + }, + { + "type": "inline", + "contents": "{\"package\": \"65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d\", \"files\": {}}", + "dest": "cargo/vendor/wasm-bindgen-shared-0.2.95", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/web-sys/web-sys-0.3.65.crate", + "sha256": "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85", + "dest": "cargo/vendor/web-sys-0.3.65" + }, + { + "type": "inline", + "contents": "{\"package\": \"5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85\", \"files\": {}}", + "dest": "cargo/vendor/web-sys-0.3.65", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/webpki/webpki-0.22.4.crate", + "sha256": "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53", + "dest": "cargo/vendor/webpki-0.22.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53\", \"files\": {}}", + "dest": "cargo/vendor/webpki-0.22.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/webpki-roots/webpki-roots-0.25.4.crate", + "sha256": "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1", + "dest": "cargo/vendor/webpki-roots-0.25.4" + }, + { + "type": "inline", + "contents": "{\"package\": \"5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1\", \"files\": {}}", + "dest": "cargo/vendor/webpki-roots-0.25.4", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/which/which-4.4.2.crate", + "sha256": "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7", + "dest": "cargo/vendor/which-4.4.2" + }, + { + "type": "inline", + "contents": "{\"package\": \"87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7\", \"files\": {}}", + "dest": "cargo/vendor/which-4.4.2", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi/winapi-0.3.9.crate", + "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419", + "dest": "cargo/vendor/winapi-0.3.9" + }, + { + "type": "inline", + "contents": "{\"package\": \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\", \"files\": {}}", + "dest": "cargo/vendor/winapi-0.3.9", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate", + "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6", + "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0" + }, + { + "type": "inline", + "contents": "{\"package\": \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\", \"files\": {}}", + "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/winapi-util/winapi-util-0.1.6.crate", + "sha256": "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596", + "dest": "cargo/vendor/winapi-util-0.1.6" }, { "type": "inline", - "contents": "{\"package\": \"c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef\", \"files\": {}}", - "dest": "cargo/vendor/tracing-0.1.40", + "contents": "{\"package\": \"f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596\", \"files\": {}}", + "dest": "cargo/vendor/winapi-util-0.1.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tracing-attributes/tracing-attributes-0.1.27.crate", - "sha256": "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7", - "dest": "cargo/vendor/tracing-attributes-0.1.27" + "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate", + "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f", + "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0" }, { "type": "inline", - "contents": "{\"package\": \"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7\", \"files\": {}}", - "dest": "cargo/vendor/tracing-attributes-0.1.27", + "contents": "{\"package\": \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\", \"files\": {}}", + "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tracing-core/tracing-core-0.1.32.crate", - "sha256": "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54", - "dest": "cargo/vendor/tracing-core-0.1.32" + "url": "https://static.crates.io/crates/windows/windows-0.52.0.crate", + "sha256": "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be", + "dest": "cargo/vendor/windows-0.52.0" }, { "type": "inline", - "contents": "{\"package\": \"c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54\", \"files\": {}}", - "dest": "cargo/vendor/tracing-core-0.1.32", + "contents": "{\"package\": \"e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be\", \"files\": {}}", + "dest": "cargo/vendor/windows-0.52.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/tracing-futures/tracing-futures-0.2.5.crate", - "sha256": "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2", - "dest": "cargo/vendor/tracing-futures-0.2.5" + "url": "https://static.crates.io/crates/windows/windows-0.54.0.crate", + "sha256": "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49", + "dest": "cargo/vendor/windows-0.54.0" }, { "type": "inline", - "contents": "{\"package\": \"97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2\", \"files\": {}}", - "dest": "cargo/vendor/tracing-futures-0.2.5", + "contents": "{\"package\": \"9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49\", \"files\": {}}", + "dest": "cargo/vendor/windows-0.54.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/try-lock/try-lock-0.2.4.crate", - "sha256": "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed", - "dest": "cargo/vendor/try-lock-0.2.4" + "url": "https://static.crates.io/crates/windows/windows-0.57.0.crate", + "sha256": "12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143", + "dest": "cargo/vendor/windows-0.57.0" }, { "type": "inline", - "contents": "{\"package\": \"3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed\", \"files\": {}}", - "dest": "cargo/vendor/try-lock-0.2.4", + "contents": "{\"package\": \"12342cb4d8e3b046f3d80effd474a7a02447231330ef77d71daa6fbc40681143\", \"files\": {}}", + "dest": "cargo/vendor/windows-0.57.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/typenum/typenum-1.17.0.crate", - "sha256": "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825", - "dest": "cargo/vendor/typenum-1.17.0" + "url": "https://static.crates.io/crates/windows-core/windows-core-0.51.1.crate", + "sha256": "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64", + "dest": "cargo/vendor/windows-core-0.51.1" }, { "type": "inline", - "contents": "{\"package\": \"42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825\", \"files\": {}}", - "dest": "cargo/vendor/typenum-1.17.0", + "contents": "{\"package\": \"f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64\", \"files\": {}}", + "dest": "cargo/vendor/windows-core-0.51.1", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/uds_windows/uds_windows-1.0.2.crate", - "sha256": "ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d", - "dest": "cargo/vendor/uds_windows-1.0.2" + "url": "https://static.crates.io/crates/windows-core/windows-core-0.52.0.crate", + "sha256": "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9", + "dest": "cargo/vendor/windows-core-0.52.0" }, { "type": "inline", - "contents": "{\"package\": \"ce65604324d3cce9b966701489fbd0cf318cb1f7bd9dd07ac9a4ee6fb791930d\", \"files\": {}}", - "dest": "cargo/vendor/uds_windows-1.0.2", + "contents": "{\"package\": \"33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9\", \"files\": {}}", + "dest": "cargo/vendor/windows-core-0.52.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/unicode-bidi/unicode-bidi-0.3.13.crate", - "sha256": "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460", - "dest": "cargo/vendor/unicode-bidi-0.3.13" + "url": "https://static.crates.io/crates/windows-core/windows-core-0.54.0.crate", + "sha256": "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65", + "dest": "cargo/vendor/windows-core-0.54.0" }, { "type": "inline", - "contents": "{\"package\": \"92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460\", \"files\": {}}", - "dest": "cargo/vendor/unicode-bidi-0.3.13", + "contents": "{\"package\": \"12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65\", \"files\": {}}", + "dest": "cargo/vendor/windows-core-0.54.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/unicode-ident/unicode-ident-1.0.12.crate", - "sha256": "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b", - "dest": "cargo/vendor/unicode-ident-1.0.12" + "url": "https://static.crates.io/crates/windows-core/windows-core-0.57.0.crate", + "sha256": "d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d", + "dest": "cargo/vendor/windows-core-0.57.0" }, { "type": "inline", - "contents": "{\"package\": \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\", \"files\": {}}", - "dest": "cargo/vendor/unicode-ident-1.0.12", + "contents": "{\"package\": \"d2ed2439a290666cd67ecce2b0ffaad89c2a56b976b736e6ece670297897832d\", \"files\": {}}", + "dest": "cargo/vendor/windows-core-0.57.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/unicode-normalization/unicode-normalization-0.1.22.crate", - "sha256": "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921", - "dest": "cargo/vendor/unicode-normalization-0.1.22" + "url": "https://static.crates.io/crates/windows-implement/windows-implement-0.57.0.crate", + "sha256": "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7", + "dest": "cargo/vendor/windows-implement-0.57.0" }, { "type": "inline", - "contents": "{\"package\": \"5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921\", \"files\": {}}", - "dest": "cargo/vendor/unicode-normalization-0.1.22", + "contents": "{\"package\": \"9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7\", \"files\": {}}", + "dest": "cargo/vendor/windows-implement-0.57.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/unicode-width/unicode-width-0.1.11.crate", - "sha256": "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85", - "dest": "cargo/vendor/unicode-width-0.1.11" + "url": "https://static.crates.io/crates/windows-interface/windows-interface-0.57.0.crate", + "sha256": "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7", + "dest": "cargo/vendor/windows-interface-0.57.0" }, { "type": "inline", - "contents": "{\"package\": \"e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85\", \"files\": {}}", - "dest": "cargo/vendor/unicode-width-0.1.11", + "contents": "{\"package\": \"29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7\", \"files\": {}}", + "dest": "cargo/vendor/windows-interface-0.57.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/url/url-2.4.1.crate", - "sha256": "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5", - "dest": "cargo/vendor/url-2.4.1" + "url": "https://static.crates.io/crates/windows-result/windows-result-0.1.2.crate", + "sha256": "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8", + "dest": "cargo/vendor/windows-result-0.1.2" }, { "type": "inline", - "contents": "{\"package\": \"143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5\", \"files\": {}}", - "dest": "cargo/vendor/url-2.4.1", + "contents": "{\"package\": \"5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8\", \"files\": {}}", + "dest": "cargo/vendor/windows-result-0.1.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/uuid/uuid-1.5.0.crate", - "sha256": "88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc", - "dest": "cargo/vendor/uuid-1.5.0" + "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.45.0.crate", + "sha256": "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0", + "dest": "cargo/vendor/windows-sys-0.45.0" }, { "type": "inline", - "contents": "{\"package\": \"88ad59a7560b41a70d191093a945f0b87bc1deeda46fb237479708a1d6b6cdfc\", \"files\": {}}", - "dest": "cargo/vendor/uuid-1.5.0", + "contents": "{\"package\": \"75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.45.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/value-bag/value-bag-1.4.2.crate", - "sha256": "4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe", - "dest": "cargo/vendor/value-bag-1.4.2" + "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate", + "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9", + "dest": "cargo/vendor/windows-sys-0.48.0" }, { "type": "inline", - "contents": "{\"package\": \"4a72e1902dde2bd6441347de2b70b7f5d59bf157c6c62f0c44572607a1d55bbe\", \"files\": {}}", - "dest": "cargo/vendor/value-bag-1.4.2", + "contents": "{\"package\": \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.48.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/vcpkg/vcpkg-0.2.15.crate", - "sha256": "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426", - "dest": "cargo/vendor/vcpkg-0.2.15" + "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.52.0.crate", + "sha256": "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d", + "dest": "cargo/vendor/windows-sys-0.52.0" }, { "type": "inline", - "contents": "{\"package\": \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\", \"files\": {}}", - "dest": "cargo/vendor/vcpkg-0.2.15", + "contents": "{\"package\": \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.52.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/vergen/vergen-3.2.0.crate", - "sha256": "e7141e445af09c8919f1d5f8a20dae0b20c3b57a45dee0d5823c6ed5d237f15a", - "dest": "cargo/vendor/vergen-3.2.0" + "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.59.0.crate", + "sha256": "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b", + "dest": "cargo/vendor/windows-sys-0.59.0" }, { "type": "inline", - "contents": "{\"package\": \"e7141e445af09c8919f1d5f8a20dae0b20c3b57a45dee0d5823c6ed5d237f15a\", \"files\": {}}", - "dest": "cargo/vendor/vergen-3.2.0", + "contents": "{\"package\": \"1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b\", \"files\": {}}", + "dest": "cargo/vendor/windows-sys-0.59.0", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/version-compare/version-compare-0.1.1.crate", - "sha256": "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29", - "dest": "cargo/vendor/version-compare-0.1.1" + "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.42.2.crate", + "sha256": "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071", + "dest": "cargo/vendor/windows-targets-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29\", \"files\": {}}", - "dest": "cargo/vendor/version-compare-0.1.1", + "contents": "{\"package\": \"8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071\", \"files\": {}}", + "dest": "cargo/vendor/windows-targets-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/version_check/version_check-0.9.4.crate", - "sha256": "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f", - "dest": "cargo/vendor/version_check-0.9.4" + "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.48.5.crate", + "sha256": "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c", + "dest": "cargo/vendor/windows-targets-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f\", \"files\": {}}", - "dest": "cargo/vendor/version_check-0.9.4", + "contents": "{\"package\": \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\", \"files\": {}}", + "dest": "cargo/vendor/windows-targets-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/waker-fn/waker-fn-1.1.1.crate", - "sha256": "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690", - "dest": "cargo/vendor/waker-fn-1.1.1" + "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.52.6.crate", + "sha256": "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973", + "dest": "cargo/vendor/windows-targets-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690\", \"files\": {}}", - "dest": "cargo/vendor/waker-fn-1.1.1", + "contents": "{\"package\": \"9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973\", \"files\": {}}", + "dest": "cargo/vendor/windows-targets-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/walkdir/walkdir-2.4.0.crate", - "sha256": "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee", - "dest": "cargo/vendor/walkdir-2.4.0" + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.42.2.crate", + "sha256": "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee\", \"files\": {}}", - "dest": "cargo/vendor/walkdir-2.4.0", + "contents": "{\"package\": \"597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/want/want-0.3.1.crate", - "sha256": "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e", - "dest": "cargo/vendor/want-0.3.1" + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.5.crate", + "sha256": "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e\", \"files\": {}}", - "dest": "cargo/vendor/want-0.3.1", + "contents": "{\"package\": \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasi/wasi-0.11.0+wasi-snapshot-preview1.crate", - "sha256": "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423", - "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1" + "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.52.6.crate", + "sha256": "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\", \"files\": {}}", - "dest": "cargo/vendor/wasi-0.11.0+wasi-snapshot-preview1", + "contents": "{\"package\": \"32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_gnullvm-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen/wasm-bindgen-0.2.88.crate", - "sha256": "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce", - "dest": "cargo/vendor/wasm-bindgen-0.2.88" + "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.42.2.crate", + "sha256": "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43", + "dest": "cargo/vendor/windows_aarch64_msvc-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-0.2.88", + "contents": "{\"package\": \"e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_msvc-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-backend/wasm-bindgen-backend-0.2.88.crate", - "sha256": "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217", - "dest": "cargo/vendor/wasm-bindgen-backend-0.2.88" + "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.5.crate", + "sha256": "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc", + "dest": "cargo/vendor/windows_aarch64_msvc-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-backend-0.2.88", + "contents": "{\"package\": \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_msvc-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-futures/wasm-bindgen-futures-0.4.38.crate", - "sha256": "9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02", - "dest": "cargo/vendor/wasm-bindgen-futures-0.4.38" + "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.52.6.crate", + "sha256": "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469", + "dest": "cargo/vendor/windows_aarch64_msvc-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"9afec9963e3d0994cac82455b2b3502b81a7f40f9a0d32181f7528d9f4b43e02\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-futures-0.4.38", + "contents": "{\"package\": \"09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469\", \"files\": {}}", + "dest": "cargo/vendor/windows_aarch64_msvc-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-macro/wasm-bindgen-macro-0.2.88.crate", - "sha256": "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2", - "dest": "cargo/vendor/wasm-bindgen-macro-0.2.88" + "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.42.2.crate", + "sha256": "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f", + "dest": "cargo/vendor/windows_i686_gnu-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-macro-0.2.88", + "contents": "{\"package\": \"c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnu-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-macro-support/wasm-bindgen-macro-support-0.2.88.crate", - "sha256": "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907", - "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.88" + "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.5.crate", + "sha256": "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e", + "dest": "cargo/vendor/windows_i686_gnu-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-macro-support-0.2.88", + "contents": "{\"package\": \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnu-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/wasm-bindgen-shared/wasm-bindgen-shared-0.2.88.crate", - "sha256": "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b", - "dest": "cargo/vendor/wasm-bindgen-shared-0.2.88" + "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.52.6.crate", + "sha256": "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b", + "dest": "cargo/vendor/windows_i686_gnu-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b\", \"files\": {}}", - "dest": "cargo/vendor/wasm-bindgen-shared-0.2.88", + "contents": "{\"package\": \"8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnu-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/web-sys/web-sys-0.3.65.crate", - "sha256": "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85", - "dest": "cargo/vendor/web-sys-0.3.65" + "url": "https://static.crates.io/crates/windows_i686_gnullvm/windows_i686_gnullvm-0.52.6.crate", + "sha256": "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66", + "dest": "cargo/vendor/windows_i686_gnullvm-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85\", \"files\": {}}", - "dest": "cargo/vendor/web-sys-0.3.65", + "contents": "{\"package\": \"0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_gnullvm-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winapi/winapi-0.3.9.crate", - "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419", - "dest": "cargo/vendor/winapi-0.3.9" + "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.42.2.crate", + "sha256": "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060", + "dest": "cargo/vendor/windows_i686_msvc-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\", \"files\": {}}", - "dest": "cargo/vendor/winapi-0.3.9", + "contents": "{\"package\": \"44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_msvc-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winapi-i686-pc-windows-gnu/winapi-i686-pc-windows-gnu-0.4.0.crate", - "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6", - "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0" + "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.5.crate", + "sha256": "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406", + "dest": "cargo/vendor/windows_i686_msvc-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\", \"files\": {}}", - "dest": "cargo/vendor/winapi-i686-pc-windows-gnu-0.4.0", + "contents": "{\"package\": \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_msvc-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winapi-util/winapi-util-0.1.6.crate", - "sha256": "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596", - "dest": "cargo/vendor/winapi-util-0.1.6" + "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.52.6.crate", + "sha256": "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66", + "dest": "cargo/vendor/windows_i686_msvc-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596\", \"files\": {}}", - "dest": "cargo/vendor/winapi-util-0.1.6", + "contents": "{\"package\": \"240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66\", \"files\": {}}", + "dest": "cargo/vendor/windows_i686_msvc-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/winapi-x86_64-pc-windows-gnu-0.4.0.crate", - "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f", - "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0" + "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.42.2.crate", + "sha256": "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36", + "dest": "cargo/vendor/windows_x86_64_gnu-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\", \"files\": {}}", - "dest": "cargo/vendor/winapi-x86_64-pc-windows-gnu-0.4.0", + "contents": "{\"package\": \"8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnu-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows-core/windows-core-0.51.1.crate", - "sha256": "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64", - "dest": "cargo/vendor/windows-core-0.51.1" + "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.5.crate", + "sha256": "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e", + "dest": "cargo/vendor/windows_x86_64_gnu-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64\", \"files\": {}}", - "dest": "cargo/vendor/windows-core-0.51.1", + "contents": "{\"package\": \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnu-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows-sys/windows-sys-0.48.0.crate", - "sha256": "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9", - "dest": "cargo/vendor/windows-sys-0.48.0" + "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.52.6.crate", + "sha256": "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78", + "dest": "cargo/vendor/windows_x86_64_gnu-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\", \"files\": {}}", - "dest": "cargo/vendor/windows-sys-0.48.0", + "contents": "{\"package\": \"147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnu-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows-targets/windows-targets-0.48.5.crate", - "sha256": "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c", - "dest": "cargo/vendor/windows-targets-0.48.5" + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.42.2.crate", + "sha256": "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\", \"files\": {}}", - "dest": "cargo/vendor/windows-targets-0.48.5", + "contents": "{\"package\": \"26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_aarch64_gnullvm/windows_aarch64_gnullvm-0.48.5.crate", - "sha256": "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8", - "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.5" + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate", + "sha256": "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\", \"files\": {}}", - "dest": "cargo/vendor/windows_aarch64_gnullvm-0.48.5", + "contents": "{\"package\": \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_aarch64_msvc/windows_aarch64_msvc-0.48.5.crate", - "sha256": "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc", - "dest": "cargo/vendor/windows_aarch64_msvc-0.48.5" + "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.52.6.crate", + "sha256": "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\", \"files\": {}}", - "dest": "cargo/vendor/windows_aarch64_msvc-0.48.5", + "contents": "{\"package\": \"24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_gnullvm-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_i686_gnu/windows_i686_gnu-0.48.5.crate", - "sha256": "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e", - "dest": "cargo/vendor/windows_i686_gnu-0.48.5" + "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.42.2.crate", + "sha256": "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0", + "dest": "cargo/vendor/windows_x86_64_msvc-0.42.2" }, { "type": "inline", - "contents": "{\"package\": \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\", \"files\": {}}", - "dest": "cargo/vendor/windows_i686_gnu-0.48.5", + "contents": "{\"package\": \"9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_msvc-0.42.2", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_i686_msvc/windows_i686_msvc-0.48.5.crate", - "sha256": "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406", - "dest": "cargo/vendor/windows_i686_msvc-0.48.5" + "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate", + "sha256": "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538", + "dest": "cargo/vendor/windows_x86_64_msvc-0.48.5" }, { "type": "inline", - "contents": "{\"package\": \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\", \"files\": {}}", - "dest": "cargo/vendor/windows_i686_msvc-0.48.5", + "contents": "{\"package\": \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_msvc-0.48.5", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_x86_64_gnu/windows_x86_64_gnu-0.48.5.crate", - "sha256": "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e", - "dest": "cargo/vendor/windows_x86_64_gnu-0.48.5" + "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.52.6.crate", + "sha256": "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec", + "dest": "cargo/vendor/windows_x86_64_msvc-0.52.6" }, { "type": "inline", - "contents": "{\"package\": \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\", \"files\": {}}", - "dest": "cargo/vendor/windows_x86_64_gnu-0.48.5", + "contents": "{\"package\": \"589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec\", \"files\": {}}", + "dest": "cargo/vendor/windows_x86_64_msvc-0.52.6", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_x86_64_gnullvm/windows_x86_64_gnullvm-0.48.5.crate", - "sha256": "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc", - "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.5" + "url": "https://static.crates.io/crates/winnow/winnow-0.5.18.crate", + "sha256": "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32", + "dest": "cargo/vendor/winnow-0.5.18" }, { "type": "inline", - "contents": "{\"package\": \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\", \"files\": {}}", - "dest": "cargo/vendor/windows_x86_64_gnullvm-0.48.5", + "contents": "{\"package\": \"176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.5.18", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/windows_x86_64_msvc/windows_x86_64_msvc-0.48.5.crate", - "sha256": "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538", - "dest": "cargo/vendor/windows_x86_64_msvc-0.48.5" + "url": "https://static.crates.io/crates/winnow/winnow-0.6.20.crate", + "sha256": "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b", + "dest": "cargo/vendor/winnow-0.6.20" }, { "type": "inline", - "contents": "{\"package\": \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\", \"files\": {}}", - "dest": "cargo/vendor/windows_x86_64_msvc-0.48.5", + "contents": "{\"package\": \"36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b\", \"files\": {}}", + "dest": "cargo/vendor/winnow-0.6.20", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/winnow/winnow-0.5.18.crate", - "sha256": "176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32", - "dest": "cargo/vendor/winnow-0.5.18" + "url": "https://static.crates.io/crates/winreg/winreg-0.50.0.crate", + "sha256": "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1", + "dest": "cargo/vendor/winreg-0.50.0" }, { "type": "inline", - "contents": "{\"package\": \"176b6138793677221d420fd2f0aeeced263f197688b36484660da767bca2fa32\", \"files\": {}}", - "dest": "cargo/vendor/winnow-0.5.18", + "contents": "{\"package\": \"524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1\", \"files\": {}}", + "dest": "cargo/vendor/winreg-0.50.0", "dest-filename": ".cargo-checksum.json" }, { @@ -5098,27 +6814,40 @@ { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/zerocopy/zerocopy-0.6.5.crate", - "sha256": "96f8f25c15a0edc9b07eb66e7e6e97d124c0505435c382fde1ab7ceb188aa956", - "dest": "cargo/vendor/zerocopy-0.6.5" + "url": "https://static.crates.io/crates/zerocopy/zerocopy-0.7.35.crate", + "sha256": "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0", + "dest": "cargo/vendor/zerocopy-0.7.35" + }, + { + "type": "inline", + "contents": "{\"package\": \"1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0\", \"files\": {}}", + "dest": "cargo/vendor/zerocopy-0.7.35", + "dest-filename": ".cargo-checksum.json" + }, + { + "type": "archive", + "archive-type": "tar-gzip", + "url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.7.35.crate", + "sha256": "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e", + "dest": "cargo/vendor/zerocopy-derive-0.7.35" }, { "type": "inline", - "contents": "{\"package\": \"96f8f25c15a0edc9b07eb66e7e6e97d124c0505435c382fde1ab7ceb188aa956\", \"files\": {}}", - "dest": "cargo/vendor/zerocopy-0.6.5", + "contents": "{\"package\": \"fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e\", \"files\": {}}", + "dest": "cargo/vendor/zerocopy-derive-0.7.35", "dest-filename": ".cargo-checksum.json" }, { "type": "archive", "archive-type": "tar-gzip", - "url": "https://static.crates.io/crates/zerocopy-derive/zerocopy-derive-0.6.5.crate", - "sha256": "855e0f6af9cd72b87d8a6c586f3cb583f5cdcc62c2c80869d8cd7e96fdf7ee20", - "dest": "cargo/vendor/zerocopy-derive-0.6.5" + "url": "https://static.crates.io/crates/zeroize/zeroize-1.8.1.crate", + "sha256": "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde", + "dest": "cargo/vendor/zeroize-1.8.1" }, { "type": "inline", - "contents": "{\"package\": \"855e0f6af9cd72b87d8a6c586f3cb583f5cdcc62c2c80869d8cd7e96fdf7ee20\", \"files\": {}}", - "dest": "cargo/vendor/zerocopy-derive-0.6.5", + "contents": "{\"package\": \"ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde\", \"files\": {}}", + "dest": "cargo/vendor/zeroize-1.8.1", "dest-filename": ".cargo-checksum.json" }, { diff --git a/data/dev.alextren.Spot.appdata.xml b/data/dev.alextren.Spot.appdata.xml index bd19894b..17a1c0c7 100644 --- a/data/dev.alextren.Spot.appdata.xml +++ b/data/dev.alextren.Spot.appdata.xml @@ -3,6 +3,7 @@ dev.alextren.Spot https://github.com/xou816/spot Spot + Alexandre Trendel Listen to music on Spotify dev.alextren.Spot.desktop CC0-1.0 @@ -16,16 +17,11 @@ pointing touch - - - workstation - mobile -

Listen to music on Spotify. - Requires a premium account.

+

Requires a premium account.

Current features:

- + https://raw.githubusercontent.com/xou816/spot/master/data/appstream/1.png @@ -50,53 +46,73 @@ https://raw.githubusercontent.com/xou816/spot/master/data/appstream/3.png - - -

- It's been a while, hasn't it? I'm back, but please allow everyone some time to work through the issues and pull requests :) -

- -

- Thanks to all the contributors who are somehow still around :) If you feel like you've been unjustly forgotten from the AUTHORS or TRANSLATORS file, feel free to open a PR. -

-
-
- - -

- What's new: -

- -
-
- - -

- New features: -

- -

- Thank you to everyone involved in this release! -

-
-
+ + +

+ Hello, everyone! I'm releasing this tiny version of Spot with just some minor features and fixes. +

+

+ This release includes a major fix for Spotify's API. +

+
    +
  • Port UI to Blueprint (made by @alissonlauffer)
  • +
  • Provide Application Name to PulseAudio (made by @XGZepto)
  • +
  • GStreamer backend (made by @xou816)
  • +
  • Add link to matrix rooms. (made by @knokelmaat)
  • +
  • Fix login screen according to #625 (made by @hegdenischay)
  • +
  • Use libadwaita::AboutWindow instead of gtk::AboutDialog (made by @hegdenischay)
  • +
  • Add play button to album and playlist view (made by @Zaedus)
  • +
  • Update subproject blueprint-compiler to v0.8.1 (made by @nmschulte)
  • +
+
+
+ + +

+ It's been a while, hasn't it? I'm back, but please allow everyone some time to work through the issues and pull requests :) +

+
    +
  • added an option for gapless playback (thanks @supremesnickers!)
  • +
  • fixed theme management (thanks @ctsk!)
  • +
  • fixed the behaviour of the "previous" button for consistency with other media players (thanks @SomewhereOutInSpace!)
  • +
  • the user will now be prompted to unlock the keyring if needed (thanks @rainDiX!)
  • +
  • added playlist creation and edition
  • +
  • more bug fixes
  • +
+

+ Thanks to all the contributors who are somehow still around :) If you feel like you've been unjustly forgotten from the AUTHORS or TRANSLATORS file, feel free to open a PR. +

+
+
+ + +

+ What's new: +

+
    +
  • login dialog now uses a password entry (thanks @Toorero!)
  • +
  • fix a startup crash with some locales
  • +
+
+
+ + +

+ New features: +

+
    +
  • save tracks to library
  • +
  • basic Spotify URI handling (thanks @bbb651!)
  • +
  • settings dialog (thanks @sei0o!)
  • +
  • brand new icon (thanks @bertob!)
  • +
  • bug fixes
  • +
+

+ Thank you to everyone involved in this release! +

+
+

Bugfix release:

@@ -186,7 +202,6 @@
  • MPRIS: the desktop entry for Spot is now properly referenced (thanks nicolasfella!)
  • quality: various clippy fixes (thanks nn1ks!)
  • new translations: Turkish, Indonesian and Brazilian Portuguese (thanks YusufOzmen01, cho2 and lucraraujo, as well as ondras12345 for the reviews!)
  • -
  • diff --git a/meson.build b/meson.build index 59c578f7..4f271dae 100644 --- a/meson.build +++ b/meson.build @@ -1,6 +1,6 @@ project( 'spot', - version: '0.4.0', + version: '0.6.0', meson_version: '>= 0.59.0', default_options: ['warning_level=2', 'buildtype=release'], ) diff --git a/src/api/api_models.rs b/src/api/api_models.rs index ab9ccaa7..a7de9ea5 100644 --- a/src/api/api_models.rs +++ b/src/api/api_models.rs @@ -199,7 +199,7 @@ pub struct PlaylistOwner { impl WithImages for Playlist { fn images(&self) -> &[Image] { - &self.images[..] + &self.images } } @@ -274,6 +274,7 @@ pub struct Artist { impl WithImages for Artist { fn images(&self) -> &[Image] { + #[allow(clippy::manual_unwrap_or_default)] if let Some(ref images) = self.images { images } else { diff --git a/src/api/cache.rs b/src/api/cache.rs index fd2fd54d..b7e38d5c 100644 --- a/src/api/cache.rs +++ b/src/api/cache.rs @@ -30,7 +30,7 @@ pub enum CacheError { pub type ETag = String; pub enum CacheFile { - Fresh(Vec, Option), + Fresh(Vec), Expired(Vec, Option), None, } @@ -138,7 +138,7 @@ impl CacheManager { let (file, expiry) = join!(fs::read(&path), self.read_expiry_file(resource)); match (file, policy) { - (Ok(buf), CachePolicy::IgnoreExpiry) => Ok(CacheFile::Fresh(buf, None)), + (Ok(buf), CachePolicy::IgnoreExpiry) => Ok(CacheFile::Fresh(buf)), (Ok(buf), CachePolicy::Revalidate) => { let expiry = expiry.unwrap_or(CacheExpiry::Never); let etag = expiry.etag().cloned(); @@ -150,7 +150,7 @@ impl CacheManager { Ok(if expiry.is_expired() { CacheFile::Expired(buf, etag) } else { - CacheFile::Fresh(buf, etag) + CacheFile::Fresh(buf) }) } (_, CachePolicy::IgnoreCached) => Ok(CacheFile::None), @@ -260,7 +260,7 @@ impl CacheManager { { let file = self.read_cache_file(resource, policy).await?; match file { - CacheFile::Fresh(buf, _) => Ok(buf), + CacheFile::Fresh(buf) => Ok(buf), CacheFile::Expired(buf, etag) => match fetch(etag).await? { FetchResult::NotModified(expiry) => { let meta = self.cache_meta_path(resource); diff --git a/src/api/cached_client.rs b/src/api/cached_client.rs index a63d9748..16b87ff2 100644 --- a/src/api/cached_client.rs +++ b/src/api/cached_client.rs @@ -100,6 +100,7 @@ pub trait SpotifyApiClient { fn player_resume(&self, device_id: String) -> BoxFuture>; + #[allow(dead_code)] fn player_next(&self, device_id: String) -> BoxFuture>; fn player_seek(&self, device_id: String, pos: usize) -> BoxFuture>; diff --git a/src/api/client.rs b/src/api/client.rs index b17d7373..72ff083b 100644 --- a/src/api/client.rs +++ b/src/api/client.rs @@ -387,10 +387,10 @@ impl SpotifyClient { pub(crate) fn get_playlist(&self, id: &str) -> SpotifyRequest<'_, (), Playlist> { let query = make_query_params() - .append_pair( - "fields", - "id,name,images,owner,tracks(total,items(is_local,track(name,id,uri,duration_ms,artists(name,id),album(name,id,images,artists))))", - ) + .append_pair("market", "from_token") + // why still grab the tracks field? + // the model still expects the appearance of a tracks field + .append_pair("fields", "id,name,images,owner,tracks(total)") .finish(); self.request() .method(Method::GET) @@ -404,6 +404,7 @@ impl SpotifyClient { limit: usize, ) -> SpotifyRequest<'_, (), Page> { let query = make_query_params() + .append_pair("market", "from_token") .append_pair("offset", &offset.to_string()[..]) .append_pair("limit", &limit.to_string()[..]) .finish(); diff --git a/src/api/login.html b/src/api/login.html new file mode 100644 index 00000000..23af9f39 --- /dev/null +++ b/src/api/login.html @@ -0,0 +1,49 @@ + + + + Spot + + + +
    + + + + + + + + + + + + +

    Spot connected

    +

    + Logged in successfully! You may close this window. +

    +
    + + \ No newline at end of file diff --git a/src/api/mod.rs b/src/api/mod.rs index bfd03a51..e2900d22 100644 --- a/src/api/mod.rs +++ b/src/api/mod.rs @@ -3,6 +3,7 @@ mod cached_client; mod client; pub mod cache; +pub(crate) mod oauth2; pub use cached_client::{CachedSpotifyClient, SpotifyApiClient, SpotifyResult}; pub use client::SpotifyApiError; diff --git a/src/api/oauth2.rs b/src/api/oauth2.rs new file mode 100644 index 00000000..28f7e526 --- /dev/null +++ b/src/api/oauth2.rs @@ -0,0 +1,339 @@ +//! Provides a Spotify access token using the OAuth authorization code flow +//! with PKCE. +//! +//! Assuming sufficient scopes, the returned access token may be used with Spotify's +//! Web API, and/or to establish a new Session with [`librespot_core`]. +//! +//! The authorization code flow is an interactive process which requires a web browser +//! to complete. The resulting code must then be provided back from the browser to this +//! library for exchange into an access token. Providing the code can be automatic via +//! a spawned http server (mimicking Spotify's client), or manually via stdin. The latter +//! is appropriate for headless systems. + +use log::{error, info, trace}; +use oauth2::reqwest::http_client; +use oauth2::{ + basic::BasicClient, AuthUrl, AuthorizationCode, ClientId, CsrfToken, PkceCodeChallenge, + RedirectUrl, Scope, TokenResponse, TokenUrl, +}; +use std::io; +use std::time::{Duration, Instant}; +use std::{ + io::{BufRead, BufReader, Write}, + net::{SocketAddr, TcpListener}, + sync::mpsc, +}; +use thiserror::Error; +use url::Url; + +#[derive(Debug, Error)] +pub enum OAuthError { + #[error("Unable to parse redirect URI {uri} ({e})")] + AuthCodeBadUri { uri: String, e: url::ParseError }, + + #[error("Auth code param not found in URI {uri}")] + AuthCodeNotFound { uri: String }, + + #[error("CSRF token param not found in URI {uri}")] + CsrfTokenNotFound { uri: String }, + + #[error("Failed to read redirect URI from stdin")] + AuthCodeStdinRead, + + #[error("Failed to bind server to {addr} ({e})")] + AuthCodeListenerBind { addr: SocketAddr, e: io::Error }, + + #[error("Listener terminated without accepting a connection")] + AuthCodeListenerTerminated, + + #[error("Failed to read redirect URI from HTTP request")] + AuthCodeListenerRead, + + #[error("Failed to parse redirect URI from HTTP request")] + AuthCodeListenerParse, + + #[error("Failed to write HTTP response")] + AuthCodeListenerWrite, + + #[error("Invalid Spotify OAuth URI")] + InvalidSpotifyUri, + + #[error("Invalid Redirect URI {uri} ({e})")] + InvalidRedirectUri { uri: String, e: url::ParseError }, + + #[error("Failed to receive code")] + Recv, + + #[error("Failed to exchange code for access token ({e})")] + ExchangeCode { e: String }, + + #[error("Spotify did not provide a refresh token")] + NoRefreshToken, + + #[error("Spotify did not return the token scopes")] + NoTokenScopes, +} + +#[derive(Debug)] +pub struct OAuthToken { + pub access_token: String, + #[allow(dead_code)] + pub refresh_token: String, + pub expires_at: Instant, + #[allow(dead_code)] + pub token_type: String, + #[allow(dead_code)] + pub scopes: Vec, +} + +/// Return state query-string parameter from the redirect URI (CSRF token). +fn get_state(redirect_url: &str) -> Result { + let url = Url::parse(redirect_url).map_err(|e| OAuthError::AuthCodeBadUri { + uri: redirect_url.to_string(), + e, + })?; + let code = url + .query_pairs() + .find(|(key, _)| key == "state") + .map(|(_, state)| state.into_owned()) + .ok_or(OAuthError::CsrfTokenNotFound { + uri: redirect_url.to_string(), + })?; + + Ok(code) +} + +/// Return code query-string parameter from the redirect URI. +fn get_code(redirect_url: &str) -> Result { + let url = Url::parse(redirect_url).map_err(|e| OAuthError::AuthCodeBadUri { + uri: redirect_url.to_string(), + e, + })?; + let code = url + .query_pairs() + .find(|(key, _)| key == "code") + .map(|(_, code)| AuthorizationCode::new(code.into_owned())) + .ok_or(OAuthError::AuthCodeNotFound { + uri: redirect_url.to_string(), + })?; + + Ok(code) +} + +/// Prompt for redirect URI on stdin and return auth code. +fn get_authcode_stdin() -> Result { + println!("Provide redirect URL"); + let mut buffer = String::new(); + let stdin = io::stdin(); + stdin + .read_line(&mut buffer) + .map_err(|_| OAuthError::AuthCodeStdinRead)?; + + get_code(buffer.trim()) +} + +/// Spawn HTTP server at provided socket address to accept OAuth callback and return auth code. +fn get_authcode_listener( + socket_address: SocketAddr, + csrf_token: CsrfToken, +) -> Result { + let listener = + TcpListener::bind(socket_address).map_err(|e| OAuthError::AuthCodeListenerBind { + addr: socket_address, + e, + })?; + info!("OAuth server listening on {:?}", socket_address); + + // The server will terminate itself after collecting the first code. + let mut stream = listener + .incoming() + .flatten() + .next() + .ok_or(OAuthError::AuthCodeListenerTerminated)?; + let mut reader = BufReader::new(&stream); + let mut request_line = String::new(); + reader + .read_line(&mut request_line) + .map_err(|_| OAuthError::AuthCodeListenerRead)?; + + let redirect_url = request_line + .split_whitespace() + .nth(1) + .ok_or(OAuthError::AuthCodeListenerParse)?; + + let token = get_state(&("http://localhost".to_string() + redirect_url)); + if token.is_err() { + return Err(token.err().unwrap()); + } + let token = token.ok().unwrap(); + if !token.eq(csrf_token.secret()) { + return Err(OAuthError::CsrfTokenNotFound { + uri: redirect_url.to_string(), + }); + } + let code = get_code(&("http://localhost".to_string() + redirect_url)); + + let message = include_str!("./login.html"); + let response = format!( + "HTTP/1.1 200 OK\r\ncontent-length: {}\r\n\r\n{}", + message.len(), + message + ); + stream + .write_all(response.as_bytes()) + .map_err(|_| OAuthError::AuthCodeListenerWrite)?; + + code +} + +// If the specified `redirect_uri` is HTTP, loopback, and contains a port, +// then the corresponding socket address is returned. +fn get_socket_address(redirect_uri: &str) -> Option { + let url = match Url::parse(redirect_uri) { + Ok(u) if u.scheme() == "http" && u.port().is_some() => u, + _ => return None, + }; + let socket_addr = match url.socket_addrs(|| None) { + Ok(mut addrs) => addrs.pop(), + _ => None, + }; + if let Some(s) = socket_addr { + if s.ip().is_loopback() { + return socket_addr; + } + } + None +} + +/// Obtain a Spotify access token using the authorization code with PKCE OAuth flow. +/// The redirect_uri must match what is registered to the client ID. +pub fn get_access_token( + client_id: &str, + redirect_uri: &str, + scopes: Vec<&str>, +) -> Result { + let auth_url = AuthUrl::new("https://accounts.spotify.com/authorize".to_string()) + .map_err(|_| OAuthError::InvalidSpotifyUri)?; + let token_url = TokenUrl::new("https://accounts.spotify.com/api/token".to_string()) + .map_err(|_| OAuthError::InvalidSpotifyUri)?; + let redirect_url = + RedirectUrl::new(redirect_uri.to_string()).map_err(|e| OAuthError::InvalidRedirectUri { + uri: redirect_uri.to_string(), + e, + })?; + let client = BasicClient::new( + ClientId::new(client_id.to_string()), + None, + auth_url, + Some(token_url), + ) + .set_redirect_uri(redirect_url); + + let (pkce_challenge, pkce_verifier) = PkceCodeChallenge::new_random_sha256(); + + // Generate the full authorization URL. + // Some of these scopes are unavailable for custom client IDs. Which? + let request_scopes: Vec = scopes + .clone() + .into_iter() + .map(|s| Scope::new(s.into())) + .collect(); + let (auth_url, csrf_token) = client + .authorize_url(CsrfToken::new_random) + .add_scopes(request_scopes) + .set_pkce_challenge(pkce_challenge) + .url(); + + println!("Browse to: {}", auth_url); + if let Err(err) = open::that(auth_url.to_string()) { + eprintln!("An error occurred when opening '{}': {}", auth_url, err) + } + + let code = match get_socket_address(redirect_uri) { + Some(addr) => get_authcode_listener(addr, csrf_token), + _ => get_authcode_stdin(), + }?; + trace!("Exchange {code:?} for access token"); + + // Do this sync in another thread because I am too stupid to make the async version work. + let (tx, rx) = mpsc::channel(); + std::thread::spawn(move || { + let resp = client + .exchange_code(code) + .set_pkce_verifier(pkce_verifier) + .request(http_client); + if let Err(e) = tx.send(resp) { + error!("OAuth channel send error: {e}"); + } + }); + let token_response = rx.recv().map_err(|_| OAuthError::Recv)?; + let token = token_response.map_err(|e| OAuthError::ExchangeCode { e: e.to_string() })?; + trace!("Obtained new access token: {token:?}"); + + let token_scopes: Vec = match token.scopes() { + Some(s) => s.iter().map(|s| s.to_string()).collect(), + None => { + error!("Spotify did not return the token scopes."); + return Err(OAuthError::NoTokenScopes); + } + }; + let refresh_token = match token.refresh_token() { + Some(t) => t.secret().to_string(), + None => { + error!("Spotify did not provide a refresh token."); + return Err(OAuthError::NoRefreshToken); + } + }; + Ok(OAuthToken { + access_token: token.access_token().secret().to_string(), + refresh_token, + expires_at: Instant::now() + + token + .expires_in() + .unwrap_or_else(|| Duration::from_secs(3600)), + token_type: format!("{:?}", token.token_type()).to_string(), // Urgh!? + scopes: token_scopes, + }) +} + +#[cfg(test)] +mod test { + use std::net::{IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr}; + + use super::*; + + #[test] + fn get_socket_address_none() { + // No port + assert_eq!(get_socket_address("http://127.0.0.1/foo"), None); + assert_eq!(get_socket_address("http://127.0.0.1:/foo"), None); + assert_eq!(get_socket_address("http://[::1]/foo"), None); + // Not localhost + assert_eq!(get_socket_address("http://56.0.0.1:1234/foo"), None); + assert_eq!( + get_socket_address("http://[3ffe:2a00:100:7031::1]:1234/foo"), + None + ); + // Not http + assert_eq!(get_socket_address("https://127.0.0.1/foo"), None); + } + + #[test] + fn get_socket_address_localhost() { + let localhost_v4 = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), 1234); + let localhost_v6 = SocketAddr::new(IpAddr::V6(Ipv6Addr::new(0, 0, 0, 0, 0, 0, 0, 1)), 8888); + + assert_eq!( + get_socket_address("http://127.0.0.1:1234/foo"), + Some(localhost_v4) + ); + assert_eq!( + get_socket_address("http://[0:0:0:0:0:0:0:1]:8888/foo"), + Some(localhost_v6) + ); + assert_eq!( + get_socket_address("http://[::1]:8888/foo"), + Some(localhost_v6) + ); + } +} diff --git a/src/app/components/album/album.blp b/src/app/components/album/album.blp index 661bbf78..ee156294 100644 --- a/src/app/components/album/album.blp +++ b/src/app/components/album/album.blp @@ -5,6 +5,7 @@ template $AlbumWidget : Adw.Bin { Button cover_btn { hexpand: false; halign: center; + valign: start; Box { halign: center; diff --git a/src/app/components/album/album.rs b/src/app/components/album/album.rs index 04dd0968..cc889535 100644 --- a/src/app/components/album/album.rs +++ b/src/app/components/album/album.rs @@ -55,6 +55,12 @@ glib::wrapper! { pub struct AlbumWidget(ObjectSubclass) @extends gtk::Widget, libadwaita::Bin; } +impl Default for AlbumWidget { + fn default() -> Self { + Self::new() + } +} + impl AlbumWidget { pub fn new() -> Self { display_add_css_provider(resource!("/components/album.css")); diff --git a/src/app/components/album/mod.rs b/src/app/components/album/mod.rs index fc74bceb..59a8a083 100644 --- a/src/app/components/album/mod.rs +++ b/src/app/components/album/mod.rs @@ -1,2 +1,3 @@ +#[allow(clippy::module_inception)] mod album; pub use album::AlbumWidget; diff --git a/src/app/components/artist/mod.rs b/src/app/components/artist/mod.rs index 46dd29c3..31e0c4cf 100644 --- a/src/app/components/artist/mod.rs +++ b/src/app/components/artist/mod.rs @@ -47,6 +47,12 @@ glib::wrapper! { pub struct ArtistWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; } +impl Default for ArtistWidget { + fn default() -> Self { + Self::new() + } +} + impl ArtistWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/artist_details/mod.rs b/src/app/components/artist_details/mod.rs index acf73d69..ec36bfdc 100644 --- a/src/app/components/artist_details/mod.rs +++ b/src/app/components/artist_details/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod artist_details; pub use artist_details::*; diff --git a/src/app/components/details/album_header.rs b/src/app/components/details/album_header.rs index f0a968e9..af6f8dd7 100644 --- a/src/app/components/details/album_header.rs +++ b/src/app/components/details/album_header.rs @@ -70,6 +70,12 @@ glib::wrapper! { pub struct AlbumHeaderWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; } +impl Default for AlbumHeaderWidget { + fn default() -> Self { + Self::new() + } +} + impl AlbumHeaderWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/details/mod.rs b/src/app/components/details/mod.rs index 5c7f36ef..00ced264 100644 --- a/src/app/components/details/mod.rs +++ b/src/app/components/details/mod.rs @@ -1,4 +1,5 @@ mod album_header; +#[allow(clippy::module_inception)] mod details; mod details_model; mod release_details; diff --git a/src/app/components/details/release_details.rs b/src/app/components/details/release_details.rs index ee54aea0..7ecbada4 100644 --- a/src/app/components/details/release_details.rs +++ b/src/app/components/details/release_details.rs @@ -57,6 +57,12 @@ glib::wrapper! { pub struct ReleaseDetailsWindow(ObjectSubclass) @extends gtk::Widget, libadwaita::Window, libadwaita::PreferencesWindow; } +impl Default for ReleaseDetailsWindow { + fn default() -> Self { + Self::new() + } +} + impl ReleaseDetailsWindow { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/device_selector/widget.rs b/src/app/components/device_selector/widget.rs index 345d8a70..8867f728 100644 --- a/src/app/components/device_selector/widget.rs +++ b/src/app/components/device_selector/widget.rs @@ -158,7 +158,7 @@ impl DeviceSelectorWidget { for device in devices { let check = gtk::CheckButton::builder() - .action_name(&format!("{}.{}", ACTIONS, CONNECT_ACTION)) + .action_name(format!("{}.{}", ACTIONS, CONNECT_ACTION)) .action_target(&Some(&device.id).to_variant()) .group(&*widget.this_device_button) .label(&device.label) diff --git a/src/app/components/headerbar/widget.rs b/src/app/components/headerbar/widget.rs index 47a3c0b5..d44d84ff 100644 --- a/src/app/components/headerbar/widget.rs +++ b/src/app/components/headerbar/widget.rs @@ -78,6 +78,12 @@ glib::wrapper! { pub struct HeaderBarWidget(ObjectSubclass) @extends gtk::Widget, libadwaita::Bin; } +impl Default for HeaderBarWidget { + fn default() -> Self { + Self::new() + } +} + impl HeaderBarWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/library/library.blp b/src/app/components/library/library.blp index 5e3d2a70..9b382055 100644 --- a/src/app/components/library/library.blp +++ b/src/app/components/library/library.blp @@ -5,7 +5,7 @@ template $LibraryWidget : Box { ScrolledWindow scrolled_window { hexpand: true; vexpand: true; - vscrollbar-policy: always; + vscrollbar-policy: automatic; min-content-width: 250; Overlay overlay { FlowBox flowbox { diff --git a/src/app/components/library/library.rs b/src/app/components/library/library.rs index 74923a54..d7adbf3e 100644 --- a/src/app/components/library/library.rs +++ b/src/app/components/library/library.rs @@ -52,6 +52,12 @@ glib::wrapper! { pub struct LibraryWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; } +impl Default for LibraryWidget { + fn default() -> Self { + Self::new() + } +} + impl LibraryWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/library/mod.rs b/src/app/components/library/mod.rs index b4861fab..ad8bb31d 100644 --- a/src/app/components/library/mod.rs +++ b/src/app/components/library/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod library; mod library_model; diff --git a/src/app/components/login/login.blp b/src/app/components/login/login.blp index f13c6f99..e473ae4c 100644 --- a/src/app/components/login/login.blp +++ b/src/app/components/login/login.blp @@ -58,21 +58,7 @@ template $LoginWindow : Adw.Window { styles ["body"] } } - - ListBox { - styles ["boxed-list"] - - Adw.EntryRow username { - /* Translators: Placeholder for the username field */ - title: _("Username or Email"); - } - - Adw.PasswordEntryRow password { - /* Translators: Placeholder for the password field */ - title: _("Password"); - } - } - + Revealer auth_error_container { vexpand: true; transition-type: slide_up; @@ -88,9 +74,9 @@ template $LoginWindow : Adw.Window { } } - Button login_button { + Button login_with_spotify_button { /* Translators: Log in button label */ - label: _("Log in"); + label: _("Log in with Spotify..."); halign: center; styles ["pill", "suggested-action"] } diff --git a/src/app/components/login/login.rs b/src/app/components/login/login.rs index 9bef2924..2a97ab05 100644 --- a/src/app/components/login/login.rs +++ b/src/app/components/login/login.rs @@ -19,13 +19,7 @@ mod imp { #[template(resource = "/dev/alextren/Spot/components/login.ui")] pub struct LoginWindow { #[template_child] - pub username: TemplateChild, - - #[template_child] - pub password: TemplateChild, - - #[template_child] - pub login_button: TemplateChild, + pub login_with_spotify_button: TemplateChild, #[template_child] pub auth_error_container: TemplateChild, @@ -56,6 +50,12 @@ glib::wrapper! { pub struct LoginWindow(ObjectSubclass) @extends gtk::Widget, libadwaita::Window; } +impl Default for LoginWindow { + fn default() -> Self { + Self::new() + } +} + impl LoginWindow { pub fn new() -> Self { glib::Object::new() @@ -72,64 +72,21 @@ impl LoginWindow { }); } - fn connect_submit(&self, on_submit: SubmitFn) + fn connect_login_oauth_spotify(&self, on_login_with_spotify_button: F) where - SubmitFn: Fn(&str, &str) + Clone + 'static, + F: Fn() + 'static, { - let on_submit_clone = on_submit.clone(); - let controller = gtk::EventControllerKey::new(); - controller.set_propagation_phase(gtk::PropagationPhase::Capture); - controller.connect_key_pressed( - clone!(@weak self as _self => @default-return gtk::Inhibit(false), move |_, key, _, _| { - if key == gdk::Key::Return { - _self.submit(&on_submit_clone); - gtk::Inhibit(true) - } else { - gtk::Inhibit(false) - } + self.imp().login_with_spotify_button.connect_clicked( + clone!(@weak self as _self => move |_| { + on_login_with_spotify_button() }), ); - self.add_controller(controller); - - self.imp() - .login_button - .connect_clicked(clone!(@weak self as _self => move |_| { - _self.submit(&on_submit); - })); } fn show_auth_error(&self, shown: bool) { - let error_class = "error"; let widget = self.imp(); - if shown { - widget.username.add_css_class(error_class); - widget.password.add_css_class(error_class); - } else { - widget.username.remove_css_class(error_class); - widget.password.remove_css_class(error_class); - } widget.auth_error_container.set_reveal_child(shown); } - - fn submit(&self, on_submit: &SubmitFn) - where - SubmitFn: Fn(&str, &str), - { - let widget = self.imp(); - - self.show_auth_error(false); - - let username_text = widget.username.text(); - let password_text = widget.password.text(); - - if username_text.is_empty() { - widget.username.grab_focus(); - } else if password_text.is_empty() { - widget.password.grab_focus(); - } else { - on_submit(username_text.as_str(), password_text.as_str()); - } - } } pub struct Login { @@ -150,8 +107,8 @@ impl Login { } })); - login_window.connect_submit(clone!(@weak model => move |username, password| { - model.login(username.to_string(), password.to_string()); + login_window.connect_login_oauth_spotify(clone!(@weak model => move || { + model.login_with_spotify(); })); Self { @@ -183,12 +140,16 @@ impl Login { impl EventListener for Login { fn on_event(&mut self, event: &AppEvent) { + info!("received login event {:?}", event); match event { AppEvent::LoginEvent(LoginEvent::LoginCompleted(LoginCompletedEvent::Password( creds, ))) => { self.hide_and_save_creds(creds.clone()); } + AppEvent::LoginEvent(LoginEvent::LoginCompleted(LoginCompletedEvent::Token(token))) => { + self.hide_and_save_creds(token.clone()); + } AppEvent::LoginEvent(LoginEvent::LoginFailed) => { self.model.clear_saved_credentials(); self.reveal_error(); diff --git a/src/app/components/login/login_model.rs b/src/app/components/login/login_model.rs index 033468f4..7e5b00e4 100644 --- a/src/app/components/login/login_model.rs +++ b/src/app/components/login/login_model.rs @@ -19,16 +19,9 @@ impl LoginModel { pub fn try_autologin(&self) { self.dispatcher.dispatch_async(Box::pin(async { let action = match Credentials::retrieve().await { - Ok(creds) => LoginAction::TryLogin(if creds.token_expired() { - TryLoginAction::Password { - username: creds.username, - password: creds.password, - } - } else { - TryLoginAction::Token { - username: creds.username, - token: creds.token, - } + Ok(creds) => LoginAction::TryLogin(TryLoginAction::Token { + username: creds.username, + token: creds.token, }), Err(err) => { warn!("Could not retrieve credentials: {}", err); @@ -70,8 +63,8 @@ impl LoginModel { })); } - pub fn login(&self, username: String, password: String) { + pub fn login_with_spotify(&self) { self.dispatcher - .dispatch(LoginAction::TryLogin(TryLoginAction::Password { username, password }).into()) + .dispatch(LoginAction::TryLogin(TryLoginAction::OAuthSpotify {}).into()) } } diff --git a/src/app/components/login/mod.rs b/src/app/components/login/mod.rs index e1edc737..66a4bb26 100644 --- a/src/app/components/login/mod.rs +++ b/src/app/components/login/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod login; mod login_model; diff --git a/src/app/components/navigation/mod.rs b/src/app/components/navigation/mod.rs index 10100d29..b6d9d54d 100644 --- a/src/app/components/navigation/mod.rs +++ b/src/app/components/navigation/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod navigation; pub use navigation::*; diff --git a/src/app/components/now_playing/mod.rs b/src/app/components/now_playing/mod.rs index 11db9643..d4472f47 100644 --- a/src/app/components/now_playing/mod.rs +++ b/src/app/components/now_playing/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod now_playing; pub use now_playing::*; diff --git a/src/app/components/player_notifier.rs b/src/app/components/player_notifier.rs index 47717852..42e368ee 100644 --- a/src/app/components/player_notifier.rs +++ b/src/app/components/player_notifier.rs @@ -2,7 +2,7 @@ use std::ops::Deref; use std::rc::Rc; use futures::channel::mpsc::UnboundedSender; -use librespot::core::spotify_id::SpotifyId; +use librespot::core::spotify_id::{SpotifyId, SpotifyItemType}; use crate::app::components::EventListener; use crate::app::state::{ @@ -83,19 +83,17 @@ impl PlayerNotifier { } fn notify_login(&self, event: &LoginEvent) { + info!("notify_login: {:?}", event); let command = match event { - LoginEvent::LoginStarted(LoginStartedEvent::Password { username, password }) => { - Some(Command::PasswordLogin { - username: username.to_owned(), - password: password.to_owned(), - }) - } LoginEvent::LoginStarted(LoginStartedEvent::Token { username, token }) => { Some(Command::TokenLogin { username: username.to_owned(), token: token.to_owned(), }) } + LoginEvent::LoginStarted(LoginStartedEvent::OAuthSpotify {}) => { + Some(Command::OAuthLogin) + } LoginEvent::FreshTokenRequested => Some(Command::RefreshToken), LoginEvent::LogoutCompleted => Some(Command::Logout), _ => None, @@ -154,23 +152,32 @@ impl PlayerNotifier { PlaybackEvent::PlaybackStopped => Some(Command::PlayerStop), PlaybackEvent::VolumeSet(volume) => Some(Command::PlayerSetVolume(*volume)), PlaybackEvent::TrackChanged(id) => { - SpotifyId::from_base62(id) - .ok() - .map(|track| Command::PlayerLoad { + info!("track changed: {}", id); + SpotifyId::from_base62(id).ok().map(|mut track| { + track.item_type = SpotifyItemType::Track; + Command::PlayerLoad { track, resume: true, - }) + } + }) } PlaybackEvent::SourceChanged => { let resume = self.is_playing(); self.currently_playing() .and_then(|c| SpotifyId::from_base62(c.song_id()).ok()) - .map(|track| Command::PlayerLoad { track, resume }) + .map(|mut track| { + track.item_type = SpotifyItemType::Track; + Command::PlayerLoad { track, resume } + }) } PlaybackEvent::TrackSeeked(position) => Some(Command::PlayerSeek(*position)), - PlaybackEvent::Preload(id) => { - SpotifyId::from_base62(id).ok().map(Command::PlayerPreload) - } + PlaybackEvent::Preload(id) => SpotifyId::from_base62(id) + .ok() + .map(|mut track| { + track.item_type = SpotifyItemType::Track; + track + }) + .map(Command::PlayerPreload), _ => None, }; diff --git a/src/app/components/playlist/mod.rs b/src/app/components/playlist/mod.rs index becf2d97..e319aa06 100644 --- a/src/app/components/playlist/mod.rs +++ b/src/app/components/playlist/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod playlist; pub use playlist::*; @@ -5,4 +6,3 @@ mod song; pub use song::*; mod song_actions; -pub use song_actions::*; diff --git a/src/app/components/playlist/song.rs b/src/app/components/playlist/song.rs index 3d5a1e7a..79b40b38 100644 --- a/src/app/components/playlist/song.rs +++ b/src/app/components/playlist/song.rs @@ -120,6 +120,12 @@ glib::wrapper! { pub struct SongWidget(ObjectSubclass) @extends gtk::Widget, gtk::Grid; } +impl Default for SongWidget { + fn default() -> Self { + Self::new() + } +} + impl SongWidget { pub fn new() -> Self { display_add_css_provider(resource!("/components/song.css")); diff --git a/src/app/components/playlist_details/mod.rs b/src/app/components/playlist_details/mod.rs index 9680fa6c..1bb90ba9 100644 --- a/src/app/components/playlist_details/mod.rs +++ b/src/app/components/playlist_details/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod playlist_details; mod playlist_details_model; mod playlist_header; diff --git a/src/app/components/playlist_details/playlist_details_model.rs b/src/app/components/playlist_details/playlist_details_model.rs index 231ced9c..5f0d762c 100644 --- a/src/app/components/playlist_details/playlist_details_model.rs +++ b/src/app/components/playlist_details/playlist_details_model.rs @@ -1,3 +1,4 @@ +use gettextrs::gettext; use gio::prelude::*; use gio::SimpleActionGroup; use std::cell::Ref; @@ -62,6 +63,17 @@ impl PlaylistDetailsModel { self.dispatcher .dispatch(AppAction::PlaybackAction(PlaybackAction::ToggleShuffle)); } + // The playlist has no songs and the user has still decided to click the play button, + // lets just do an early return and show an error... + if playlist.songs.songs.is_empty() { + error!("Unable to start playback because songs is empty"); + self.dispatcher + .dispatch(AppAction::ShowNotification(gettext( + "An error occured. Check logs for details!", + ))); + return; + } + let id_of_first_song = playlist.songs.songs[0].id.as_str(); self.play_song_at(0, id_of_first_song); return; @@ -82,10 +94,13 @@ impl PlaylistDetailsModel { self.dispatcher .call_spotify_and_dispatch(move || async move { let playlist = api.get_playlist(&id).await; + let playlist_tracks = api.get_playlist_tracks(&id, 0, 100).await?; match playlist { - Ok(playlist) => { - Ok(BrowserAction::SetPlaylistDetails(Box::new(playlist)).into()) - } + Ok(playlist) => Ok(BrowserAction::SetPlaylistDetails( + Box::new(playlist), + Box::new(playlist_tracks), + ) + .into()), Err(SpotifyApiError::BadStatus(400, _)) | Err(SpotifyApiError::BadStatus(404, _)) => { Ok(BrowserAction::NavigationPop.into()) diff --git a/src/app/components/playlist_details/playlist_header.rs b/src/app/components/playlist_details/playlist_header.rs index 7149e942..4db7e79a 100644 --- a/src/app/components/playlist_details/playlist_header.rs +++ b/src/app/components/playlist_details/playlist_header.rs @@ -84,6 +84,12 @@ glib::wrapper! { pub struct PlaylistHeaderWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; } +impl Default for PlaylistHeaderWidget { + fn default() -> Self { + Self::new() + } +} + impl PlaylistHeaderWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/playlist_details/playlist_headerbar.rs b/src/app/components/playlist_details/playlist_headerbar.rs index 41ee5c7f..9e6fd491 100644 --- a/src/app/components/playlist_details/playlist_headerbar.rs +++ b/src/app/components/playlist_details/playlist_headerbar.rs @@ -73,6 +73,12 @@ glib::wrapper! { pub struct PlaylistHeaderBarWidget(ObjectSubclass) @extends gtk::Widget, libadwaita::Bin; } +impl Default for PlaylistHeaderBarWidget { + fn default() -> Self { + Self::new() + } +} + impl PlaylistHeaderBarWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/saved_playlists/mod.rs b/src/app/components/saved_playlists/mod.rs index 70d7c7fd..771e4e16 100644 --- a/src/app/components/saved_playlists/mod.rs +++ b/src/app/components/saved_playlists/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod saved_playlists; mod saved_playlists_model; diff --git a/src/app/components/saved_playlists/saved_playlists.rs b/src/app/components/saved_playlists/saved_playlists.rs index 6b5fdcde..fd4aa585 100644 --- a/src/app/components/saved_playlists/saved_playlists.rs +++ b/src/app/components/saved_playlists/saved_playlists.rs @@ -50,6 +50,12 @@ glib::wrapper! { pub struct SavedPlaylistsWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; } +impl Default for SavedPlaylistsWidget { + fn default() -> Self { + Self::new() + } +} + impl SavedPlaylistsWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/saved_tracks/mod.rs b/src/app/components/saved_tracks/mod.rs index 2d863586..7fb28135 100644 --- a/src/app/components/saved_tracks/mod.rs +++ b/src/app/components/saved_tracks/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod saved_tracks; pub use saved_tracks::*; diff --git a/src/app/components/search/mod.rs b/src/app/components/search/mod.rs index 77f57295..4db3b9ab 100644 --- a/src/app/components/search/mod.rs +++ b/src/app/components/search/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod search; pub use search::*; diff --git a/src/app/components/search/search.rs b/src/app/components/search/search.rs index 7f2c6671..990e4c55 100644 --- a/src/app/components/search/search.rs +++ b/src/app/components/search/search.rs @@ -68,6 +68,12 @@ glib::wrapper! { pub struct SearchResultsWidget(ObjectSubclass) @extends gtk::Widget, gtk::Box; } +impl Default for SearchResultsWidget { + fn default() -> Self { + Self::new() + } +} + impl SearchResultsWidget { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/settings/mod.rs b/src/app/components/settings/mod.rs index 6d479c0b..d874084f 100644 --- a/src/app/components/settings/mod.rs +++ b/src/app/components/settings/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod settings; mod settings_model; diff --git a/src/app/components/settings/settings.rs b/src/app/components/settings/settings.rs index 43f43aab..cbf4bcf6 100644 --- a/src/app/components/settings/settings.rs +++ b/src/app/components/settings/settings.rs @@ -67,6 +67,12 @@ glib::wrapper! { pub struct SettingsWindow(ObjectSubclass) @extends gtk::Widget, gtk::Window, libadwaita::Window, libadwaita::PreferencesWindow; } +impl Default for SettingsWindow { + fn default() -> Self { + Self::new() + } +} + impl SettingsWindow { pub fn new() -> Self { let window: Self = glib::Object::new(); diff --git a/src/app/components/sidebar/create_playlist.rs b/src/app/components/sidebar/create_playlist.rs index 9829c465..27d42388 100644 --- a/src/app/components/sidebar/create_playlist.rs +++ b/src/app/components/sidebar/create_playlist.rs @@ -42,6 +42,12 @@ glib::wrapper! { pub struct CreatePlaylistPopover(ObjectSubclass) @extends gtk::Widget, gtk::Popover; } +impl Default for CreatePlaylistPopover { + fn default() -> Self { + Self::new() + } +} + impl CreatePlaylistPopover { pub fn new() -> Self { glib::Object::new() diff --git a/src/app/components/sidebar/mod.rs b/src/app/components/sidebar/mod.rs index 5cbd4dbd..95a4e2d2 100644 --- a/src/app/components/sidebar/mod.rs +++ b/src/app/components/sidebar/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod sidebar; pub use sidebar::*; diff --git a/src/app/components/sidebar/sidebar_item.rs b/src/app/components/sidebar/sidebar_item.rs index 76e6ae35..9dddf822 100644 --- a/src/app/components/sidebar/sidebar_item.rs +++ b/src/app/components/sidebar/sidebar_item.rs @@ -68,7 +68,7 @@ impl SidebarItem { }; glib::Object::builder() .property("id", id) - .property("data", &data.unwrap_or_default()) + .property("data", data.unwrap_or_default()) .property("title", &title) .property("navigatable", true) .build() @@ -77,8 +77,8 @@ impl SidebarItem { pub fn playlists_section() -> Self { glib::Object::builder() .property("id", SAVED_PLAYLISTS_SECTION) - .property("data", &String::new()) - .property("title", &gettext("All Playlists")) + .property("data", String::new()) + .property("title", gettext("All Playlists")) .property("navigatable", false) .build() } @@ -86,8 +86,8 @@ impl SidebarItem { pub fn create_playlist_item() -> Self { glib::Object::builder() .property("id", CREATE_PLAYLIST_ITEM) - .property("data", &String::new()) - .property("title", &gettext("New Playlist")) + .property("data", String::new()) + .property("title", gettext("New Playlist")) .property("navigatable", false) .build() } diff --git a/src/app/components/user_details/mod.rs b/src/app/components/user_details/mod.rs index 80f87a89..e648930c 100644 --- a/src/app/components/user_details/mod.rs +++ b/src/app/components/user_details/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod user_details; pub use user_details::*; diff --git a/src/app/components/user_menu/mod.rs b/src/app/components/user_menu/mod.rs index fdc53b7d..bf8b1a6a 100644 --- a/src/app/components/user_menu/mod.rs +++ b/src/app/components/user_menu/mod.rs @@ -1,3 +1,4 @@ +#[allow(clippy::module_inception)] mod user_menu; pub use user_menu::*; diff --git a/src/app/components/window/mod.rs b/src/app/components/window/mod.rs index 6e2eafab..04538b4c 100644 --- a/src/app/components/window/mod.rs +++ b/src/app/components/window/mod.rs @@ -7,9 +7,9 @@ use crate::app::{AppEvent, AppModel}; use crate::settings::WindowGeometry; thread_local! { - static WINDOW_GEOMETRY: RefCell = RefCell::new(WindowGeometry { + static WINDOW_GEOMETRY: RefCell = const { RefCell::new(WindowGeometry { width: 0, height: 0, is_maximized: false - }); + }) }; } pub struct MainWindow { diff --git a/src/app/credentials.rs b/src/app/credentials.rs index 93683e13..0d315b3f 100644 --- a/src/app/credentials.rs +++ b/src/app/credentials.rs @@ -18,7 +18,6 @@ pub struct Credentials { pub password: String, pub token: String, pub token_expiry_time: Option, - pub country: String, } impl Credentials { @@ -36,7 +35,7 @@ impl Credentials { collection.unlock().await?; } let items = collection.search_items(make_attributes()).await?; - let item = items.get(0).ok_or(Error::NoResult)?.get_secret().await?; + let item = items.first().ok_or(Error::NoResult)?.get_secret().await?; serde_json::from_slice(&item).map_err(|_| Error::Unavailable) } @@ -46,7 +45,7 @@ impl Credentials { let collection = service.get_default_collection().await?; if !collection.is_locked().await? { let result = collection.search_items(make_attributes()).await?; - let item = result.get(0).ok_or(Error::NoResult)?; + let item = result.first().ok_or(Error::NoResult)?; item.delete().await } else { warn!("Keyring is locked -- not clearing credentials"); @@ -61,6 +60,7 @@ impl Credentials { collection.unlock().await?; } // We simply write our stuct as JSON and send it + info!("Saving credentials"); let encoded = serde_json::to_vec(&self).unwrap(); collection .create_item( @@ -71,6 +71,7 @@ impl Credentials { "text/plain", ) .await?; + info!("Saved credentials"); Ok(()) } } diff --git a/src/app/loader.rs b/src/app/loader.rs index deeb24cf..eacaffac 100644 --- a/src/app/loader.rs +++ b/src/app/loader.rs @@ -74,7 +74,7 @@ impl ImageLoader { .await { // Write content of cache file to the pixbuf loader if the cache contained something - Ok(CacheFile::Fresh(buffer, _)) => { + Ok(CacheFile::Fresh(buffer)) => { loader.write_all(&buffer[..]).ok()?; } // Otherwise, get image over HTTP diff --git a/src/app/models/main.rs b/src/app/models/main.rs index cfdcf2a8..27da1515 100644 --- a/src/app/models/main.rs +++ b/src/app/models/main.rs @@ -256,6 +256,7 @@ pub enum RepeatMode { #[derive(Clone, Debug)] pub struct ConnectPlayerState { pub is_playing: bool, + #[allow(dead_code)] pub source: Option, pub current_song_id: Option, pub progress_ms: u32, diff --git a/src/app/state/app_model.rs b/src/app/state/app_model.rs index 41b5e525..5c777da4 100644 --- a/src/app/state/app_model.rs +++ b/src/app/state/app_model.rs @@ -61,10 +61,10 @@ impl AppModel { )) => { self.services.spotify_api.update_token(creds.token.clone()); } - AppAction::LoginAction(LoginAction::SetLoginSuccess( - SetLoginSuccessAction::Token { token, .. }, - )) => { - self.services.spotify_api.update_token(token.clone()); + AppAction::LoginAction(LoginAction::SetLoginSuccess(SetLoginSuccessAction::Token( + creds, + ))) => { + self.services.spotify_api.update_token(creds.token.clone()); } AppAction::LoginAction(LoginAction::SetRefreshedToken { token, .. }) => { self.services.spotify_api.update_token(token.clone()); diff --git a/src/app/state/browser_state.rs b/src/app/state/browser_state.rs index 34a47991..a6c747e8 100644 --- a/src/app/state/browser_state.rs +++ b/src/app/state/browser_state.rs @@ -19,7 +19,7 @@ pub enum BrowserAction { RemoveTracksFromPlaylist(String, Vec), SetAlbumDetails(Box), AppendAlbumTracks(String, Box), - SetPlaylistDetails(Box), + SetPlaylistDetails(Box, Box), UpdatePlaylistName(PlaylistSummary), AppendPlaylistTracks(String, Box), Search(String), diff --git a/src/app/state/login_state.rs b/src/app/state/login_state.rs index 1536f2e4..1a87bc6f 100644 --- a/src/app/state/login_state.rs +++ b/src/app/state/login_state.rs @@ -8,14 +8,14 @@ use crate::app::state::{AppAction, AppEvent, UpdatableState}; #[derive(Clone, Debug)] pub enum TryLoginAction { - Password { username: String, password: String }, Token { username: String, token: String }, + OAuthSpotify {}, } #[derive(Clone, Debug)] pub enum SetLoginSuccessAction { Password(Credentials), - Token { username: String, token: String }, + Token(Credentials), } #[derive(Clone, Debug)] @@ -43,14 +43,14 @@ impl From for AppAction { #[derive(Clone, Debug)] pub enum LoginStartedEvent { - Password { username: String, password: String }, Token { username: String, token: String }, + OAuthSpotify {}, } #[derive(Clone, Debug)] pub enum LoginCompletedEvent { Password(Credentials), - Token, + Token(Credentials), } #[derive(Clone, Debug)] @@ -88,14 +88,9 @@ impl UpdatableState for LoginState { // The login state has a lot of actions that just translate to events fn update_with(&mut self, action: Cow) -> Vec { + info!("update_with({:?})", action); match action.into_owned() { LoginAction::ShowLogin => vec![LoginEvent::LoginShown.into()], - LoginAction::TryLogin(TryLoginAction::Password { username, password }) => { - vec![ - LoginEvent::LoginStarted(LoginStartedEvent::Password { username, password }) - .into(), - ] - } LoginAction::TryLogin(TryLoginAction::Token { username, token }) => { vec![LoginEvent::LoginStarted(LoginStartedEvent::Token { username, token }).into()] } @@ -103,9 +98,9 @@ impl UpdatableState for LoginState { self.user = Some(creds.username.clone()); vec![LoginEvent::LoginCompleted(LoginCompletedEvent::Password(creds)).into()] } - LoginAction::SetLoginSuccess(SetLoginSuccessAction::Token { username, .. }) => { - self.user = Some(username); - vec![LoginEvent::LoginCompleted(LoginCompletedEvent::Token).into()] + LoginAction::SetLoginSuccess(SetLoginSuccessAction::Token(creds)) => { + self.user = Some(creds.username.clone()); + vec![LoginEvent::LoginCompleted(LoginCompletedEvent::Token(creds)).into()] } LoginAction::SetLoginFailure => vec![LoginEvent::LoginFailed.into()], LoginAction::RefreshToken => vec![LoginEvent::FreshTokenRequested.into()], @@ -142,6 +137,9 @@ impl UpdatableState for LoginState { self.playlists = summaries; vec![LoginEvent::UserPlaylistsLoaded.into()] } + LoginAction::TryLogin(TryLoginAction::OAuthSpotify { .. }) => { + vec![LoginEvent::LoginStarted(LoginStartedEvent::OAuthSpotify {}).into()] + } } } } diff --git a/src/app/state/mod.rs b/src/app/state/mod.rs index fb97ba2a..2c3d272c 100644 --- a/src/app/state/mod.rs +++ b/src/app/state/mod.rs @@ -12,7 +12,6 @@ pub use app_model::AppModel; pub use app_state::*; pub use browser_state::*; pub use login_state::*; -pub use pagination::*; pub use playback_state::*; pub use screen_states::*; pub use selection_state::*; diff --git a/src/app/state/screen_states.rs b/src/app/state/screen_states.rs index 55240ae5..b5441e88 100644 --- a/src/app/state/screen_states.rs +++ b/src/app/state/screen_states.rs @@ -119,9 +119,9 @@ impl UpdatableState for PlaylistDetailsState { fn update_with(&mut self, action: Cow) -> Vec { match action.as_ref() { - BrowserAction::SetPlaylistDetails(playlist) if playlist.id == self.id => { - let PlaylistDescription { id, songs, .. } = *playlist.clone(); - self.songs.add(songs).commit(); + BrowserAction::SetPlaylistDetails(playlist, song_batch) if playlist.id == self.id => { + let PlaylistDescription { id, .. } = *playlist.clone(); + self.songs.add(*song_batch.clone()).commit(); self.playlist = Some(*playlist.clone()); vec![BrowserEvent::PlaylistDetailsLoaded(id)] } diff --git a/src/dbus/listener.rs b/src/dbus/listener.rs index cea6c479..d9c12ecd 100644 --- a/src/dbus/listener.rs +++ b/src/dbus/listener.rs @@ -11,6 +11,7 @@ use crate::app::{ use super::types::{LoopStatus, PlaybackStatus, TrackMetadata}; #[derive(Debug)] +#[allow(clippy::enum_variant_names)] pub enum MprisStateUpdate { SetVolume(f64), SetCurrentTrack { diff --git a/src/player/mod.rs b/src/player/mod.rs index 95c062f2..4103bffd 100644 --- a/src/player/mod.rs +++ b/src/player/mod.rs @@ -8,14 +8,14 @@ use tokio::task; use crate::app::credentials::Credentials; use crate::app::state::{LoginAction, PlaybackAction, SetLoginSuccessAction}; use crate::app::AppAction; - +#[allow(clippy::module_inception)] mod player; pub use player::*; #[derive(Debug, Clone)] pub enum Command { - PasswordLogin { username: String, password: String }, TokenLogin { username: String, token: String }, + OAuthLogin, Logout, PlayerLoad { track: SpotifyId, resume: bool }, PlayerResume, @@ -47,21 +47,11 @@ impl SpotifyPlayerDelegate for AppPlayerDelegate { .unwrap(); } - fn password_login_successful(&self, credentials: Credentials) { - self.sender - .borrow_mut() - .unbounded_send( - LoginAction::SetLoginSuccess(SetLoginSuccessAction::Password(credentials)).into(), - ) - .unwrap(); - } - - fn token_login_successful(&self, username: String, token: String) { + fn token_login_successful(&self, credentials: Credentials) { self.sender .borrow_mut() .unbounded_send( - LoginAction::SetLoginSuccess(SetLoginSuccessAction::Token { username, token }) - .into(), + LoginAction::SetLoginSuccess(SetLoginSuccessAction::Token(credentials)).into(), ) .unwrap(); } diff --git a/src/player/player.rs b/src/player/player.rs index 420c194a..6e5ee66f 100644 --- a/src/player/player.rs +++ b/src/player/player.rs @@ -4,27 +4,26 @@ use futures::stream::StreamExt; use librespot::core::authentication::Credentials; use librespot::core::cache::Cache; use librespot::core::config::SessionConfig; -use librespot::core::keymaster; -use librespot::core::session::{Session, SessionError}; +use librespot::core::session::Session; use librespot::playback::mixer::softmixer::SoftMixer; use librespot::playback::mixer::{Mixer, MixerConfig}; -use librespot::protocol::authentication::AuthenticationType; use librespot::playback::audio_backend; use librespot::playback::config::{AudioFormat, Bitrate, PlayerConfig, VolumeCtrl}; use librespot::playback::player::{Player, PlayerEvent, PlayerEventChannel}; +use super::Command; +use crate::api::oauth2::get_access_token; +use crate::app::credentials; +use crate::settings::SpotSettings; use std::cell::RefCell; use std::env; use std::error::Error; use std::fmt; use std::rc::Rc; -use std::time::{Duration, SystemTime}; - -use super::Command; -use crate::app::credentials; -use crate::settings::SpotSettings; +use std::sync::Arc; +use std::time::{Instant, SystemTime}; #[derive(Debug)] pub enum SpotifyError { @@ -51,8 +50,7 @@ impl fmt::Display for SpotifyError { pub trait SpotifyPlayerDelegate { fn end_of_track_reached(&self); - fn password_login_successful(&self, credentials: credentials::Credentials); - fn token_login_successful(&self, username: String, token: String); + fn token_login_successful(&self, credentials: credentials::Credentials); fn refresh_successful(&self, token: String, token_expiry_time: SystemTime); fn report_error(&self, error: SpotifyError); fn notify_playback_state(&self, position: u32); @@ -87,7 +85,7 @@ impl Default for SpotifyPlayerSettings { pub struct SpotifyPlayer { settings: SpotifyPlayerSettings, - player: Option, + player: Option>, mixer: Option>, session: Option, delegate: Rc, @@ -168,39 +166,46 @@ impl SpotifyPlayer { let _ = self.player.take(); Ok(()) } - Command::PasswordLogin { username, password } => { - let credentials = Credentials::with_password(username, password.clone()); + Command::TokenLogin { username, token } => { + info!("Login with token, username {}", username); + let credentials = Credentials::with_access_token(token.clone()); let new_session = create_session(&credentials, self.settings.ap_port).await?; - let (token, token_expiry_time) = - get_access_token_and_expiry_time(&new_session).await?; let credentials = credentials::Credentials { username: new_session.username(), - password, + password: "".to_string(), token, - token_expiry_time: Some(token_expiry_time), - country: new_session.country(), + token_expiry_time: None, }; - self.delegate.password_login_successful(credentials); + self.delegate.token_login_successful(credentials); - let (new_player, channel) = self.create_player(new_session.clone()); - tokio::task::spawn_local(player_setup_delegate(channel, Rc::clone(&self.delegate))); + let new_player = self.create_player(new_session.clone()); + tokio::task::spawn_local(player_setup_delegate( + new_player.get_player_event_channel(), + Rc::clone(&self.delegate), + )); self.player.replace(new_player); self.session.replace(new_session); Ok(()) } - Command::TokenLogin { username, token } => { - let credentials = Credentials { - username, - auth_type: AuthenticationType::AUTHENTICATION_SPOTIFY_TOKEN, - auth_data: token.clone().into_bytes(), - }; + Command::OAuthLogin => { + let (token, token_expiry_time) = get_access_token_oauth()?; + info!("Login with OAuth2"); + let credentials = Credentials::with_access_token(token.clone()); let new_session = create_session(&credentials, self.settings.ap_port).await?; - self.delegate - .token_login_successful(new_session.username(), token); + let credentials = credentials::Credentials { + username: new_session.username(), + password: "".to_string(), + token, + token_expiry_time: Some(token_expiry_time), + }; + self.delegate.token_login_successful(credentials); - let (new_player, channel) = self.create_player(new_session.clone()); - tokio::task::spawn_local(player_setup_delegate(channel, Rc::clone(&self.delegate))); + let new_player = self.create_player(new_session.clone()); + tokio::task::spawn_local(player_setup_delegate( + new_player.get_player_event_channel(), + Rc::clone(&self.delegate), + )); self.player.replace(new_player); self.session.replace(new_session); @@ -211,8 +216,11 @@ impl SpotifyPlayer { self.settings = settings.player_settings; let session = self.session.take().ok_or(SpotifyError::PlayerNotReady)?; - let (new_player, channel) = self.create_player(session); - tokio::task::spawn_local(player_setup_delegate(channel, Rc::clone(&self.delegate))); + let new_player = self.create_player(session); + tokio::task::spawn_local(player_setup_delegate( + new_player.get_player_event_channel(), + Rc::clone(&self.delegate), + )); self.player.replace(new_player); Ok(()) @@ -220,7 +228,7 @@ impl SpotifyPlayer { } } - fn create_player(&mut self, session: Session) -> (Player, PlayerEventChannel) { + fn create_player(&mut self, session: Session) -> Arc { let backend = self.settings.backend.clone(); let player_config = PlayerConfig { @@ -263,6 +271,7 @@ impl SpotifyPlayer { }) } + #[allow(clippy::await_holding_refcell_ref)] pub async fn start(self, receiver: UnboundedReceiver) -> Result<(), ()> { let _self = RefCell::new(self); receiver @@ -278,7 +287,8 @@ impl SpotifyPlayer { } } -const CLIENT_ID: &str = "782ae96ea60f4cdf986a766049607005"; +const REDIRECT_URI: &str = "http://127.0.0.1:8898/login"; +const SPOTIFY_CLIENT_ID: &str = "782ae96ea60f4cdf986a766049607005"; const SCOPES: &str = "user-read-private,\ playlist-read-private,\ @@ -299,13 +309,30 @@ const KNOWN_AP_PORTS: [Option; 4] = [None, Some(80), Some(443), Some(4070)] async fn get_access_token_and_expiry_time( session: &Session, ) -> Result<(String, SystemTime), SpotifyError> { - let token = keymaster::get_token(session, CLIENT_ID, SCOPES) + let token = session + .token_provider() + .get_token(SCOPES) .await .map_err(|_e| SpotifyError::TokenFailed)?; - let expiry_time = SystemTime::now() + Duration::from_secs(token.expires_in.into()); + let expiry_time = SystemTime::now() + token.expires_in; Ok((token.access_token, expiry_time)) } +fn get_access_token_oauth() -> Result<(String, SystemTime), SpotifyError> { + let scopes = SCOPES.split(",").collect(); + match get_access_token(SPOTIFY_CLIENT_ID, REDIRECT_URI, scopes) { + Ok(token) => { + info!("Success: {token:#?}"); + let duration = token.expires_at.duration_since(Instant::now()); + Ok((token.access_token, SystemTime::now() + duration)) + } + Err(e) => { + error!("Failed: {e}"); + Err(SpotifyError::TokenFailed) + } + } +} + async fn create_session_with_port( credentials: &Credentials, ap_port: Option, @@ -323,10 +350,10 @@ async fn create_session_with_port( ) .map_err(|e| dbg!(e)) .ok(); - match Session::connect(session_config, credentials.clone(), cache, true).await { - Ok(r) => Ok(r.0), - Err(SessionError::IoError(_)) => Err(SpotifyError::TechnicalError), - Err(SessionError::AuthenticationError(err)) => { + let session = Session::new(session_config, cache); + match session.connect(credentials.clone(), true).await { + Ok(_) => Ok(session), + Err(err) => { warn!("Login failure: {}", err); Err(SpotifyError::LoginFailed) } @@ -369,7 +396,7 @@ async fn player_setup_delegate( delegate.notify_playback_state(position_ms); } PlayerEvent::TimeToPreloadNextTrack { .. } => { - debug!("Requestiong next track to be preloaded..."); + debug!("Requesting next track to be preloaded..."); delegate.preload_next_track(); } _ => {}