From 5effdcba7215cd378f138ab77f27016024720c0e Mon Sep 17 00:00:00 2001 From: vms Date: Fri, 12 Mar 2021 20:04:47 +0300 Subject: [PATCH] Support versioning in CLI (#67) --- .circleci/config.yml | 10 +- Cargo.lock | 184 +++++++++++++----- Cargo.toml | 1 + crates/module-info-parser/Cargo.toml | 21 ++ .../src/custom_section_extractor.rs | 59 ++++++ crates/module-info-parser/src/errors.rs | 84 ++++++++ crates/module-info-parser/src/lib.rs | 49 +++++ crates/module-info-parser/src/manifest.rs | 145 ++++++++++++++ .../src/manifest_extractor.rs | 55 ++++++ crates/module-info-parser/src/tests.rs | 154 +++++++++++++++ .../src/version_extractor.rs | 64 ++++++ crates/wit-generator/Cargo.toml | 4 +- crates/wit-parser/Cargo.toml | 3 +- crates/wit-parser/src/custom.rs | 14 +- crates/wit-parser/src/deleter.rs | 4 +- crates/wit-parser/src/embedder.rs | 11 +- crates/wit-parser/src/errors.rs | 72 +++---- crates/wit-parser/src/extractor.rs | 4 +- crates/wit-parser/src/extractor/functions.rs | 2 +- crates/wit-parser/src/extractor/wit.rs | 37 ++-- examples/call_parameters/Cargo.toml | 2 +- .../artifacts/call_parameters.wasm | Bin 73469 -> 75253 bytes examples/greeting/Cargo.toml | 4 +- examples/greeting/artifacts/greeting.wasm | Bin 70471 -> 71836 bytes examples/greeting/src/main.rs | 3 + .../ipfs-node/artifacts/ipfs_effector.wasm | Bin 93953 -> 94149 bytes examples/ipfs-node/artifacts/ipfs_pure.wasm | Bin 92344 -> 93051 bytes examples/ipfs-node/effector/Cargo.toml | 2 +- examples/ipfs-node/effector/src/main.rs | 3 + examples/ipfs-node/pure/Cargo.toml | 2 +- examples/ipfs-node/pure/src/main.rs | 3 + .../records/artifacts/records_effector.wasm | Bin 72689 -> 74546 bytes examples/records/artifacts/records_pure.wasm | Bin 73624 -> 75481 bytes examples/records/effector/Cargo.toml | 2 +- examples/records/effector/src/main.rs | 4 + examples/records/pure/Cargo.toml | 2 +- examples/records/pure/src/main.rs | 4 + examples/records/test-record/Cargo.toml | 2 +- examples/sqlite/Cargo.toml | 2 +- examples/sqlite/src/main.rs | 4 + .../artifacts/curl_adapter.wasm | Bin 85046 -> 86206 bytes examples/url-downloader/artifacts/facade.wasm | Bin 83452 -> 84878 bytes .../artifacts/local_storage.wasm | Bin 89387 -> 91244 bytes .../url-downloader/curl_adapter/Cargo.toml | 2 +- .../url-downloader/curl_adapter/src/main.rs | 3 + examples/url-downloader/facade/Cargo.toml | 2 +- examples/url-downloader/facade/src/main.rs | 3 + .../url-downloader/local_storage/Cargo.toml | 2 +- .../url-downloader/local_storage/src/main.rs | 6 +- fluence-faas/Cargo.toml | 2 +- .../wasm_tests/arguments_passing/Cargo.toml | 2 +- .../wasm_tests/arrays_passing/Cargo.toml | 2 +- .../tests/wasm_tests/inner_records/Cargo.toml | 2 +- tools/cli/Cargo.toml | 3 +- tools/cli/src/args.rs | 17 +- tools/cli/src/build.rs | 4 +- tools/cli/src/main.rs | 142 ++++++++------ tools/repl/Cargo.toml | 2 +- 58 files changed, 993 insertions(+), 217 deletions(-) create mode 100644 crates/module-info-parser/Cargo.toml create mode 100644 crates/module-info-parser/src/custom_section_extractor.rs create mode 100644 crates/module-info-parser/src/errors.rs create mode 100644 crates/module-info-parser/src/lib.rs create mode 100644 crates/module-info-parser/src/manifest.rs create mode 100644 crates/module-info-parser/src/manifest_extractor.rs create mode 100644 crates/module-info-parser/src/tests.rs create mode 100644 crates/module-info-parser/src/version_extractor.rs diff --git a/.circleci/config.yml b/.circleci/config.yml index dc5afa57..4b1fe648 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,12 +13,12 @@ jobs: keys: - fce04-{{ checksum "Cargo.lock" }} - run: | - rustup toolchain install nightly-2020-12-15 - rustup default nightly-2020-12-15 - rustup override set nightly-2020-12-15 + rustup toolchain install nightly-2021-02-27 + rustup default nightly-2021-02-27 + rustup override set nightly-2021-02-27 - rustup component add rustfmt --toolchain nightly-2020-12-15 - rustup component add clippy --toolchain nightly-2020-12-15 + rustup component add rustfmt --toolchain nightly-2021-02-27 + rustup component add clippy --toolchain nightly-2021-02-27 rustup target add wasm32-wasi cargo install fcli diff --git a/Cargo.lock b/Cargo.lock index 2f3fd71b..e61a59e1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -69,7 +69,7 @@ dependencies = [ name = "arguments-passing-test" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "safe-transmute", ] @@ -83,7 +83,7 @@ checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" name = "arrays-passing-test" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "safe-transmute", ] @@ -186,9 +186,9 @@ checksum = "63396b8a4b9de3f4fdfb320ab6080762242f66a8ef174c49d8e19b674db4cdbe" [[package]] name = "byteorder" -version = "1.4.2" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae44d1a3d5a19df61dd0c8beb138458ac2a53a7ac09eba97d55592540004306b" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" @@ -206,7 +206,7 @@ checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" name = "call_parameters" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", ] [[package]] @@ -421,7 +421,7 @@ dependencies = [ name = "curl_adapter" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "log", ] @@ -626,7 +626,7 @@ name = "facade" version = "0.1.0" dependencies = [ "anyhow", - "fluence 0.4.2", + "fluence 0.5.0", "log", ] @@ -680,6 +680,18 @@ dependencies = [ "wasmer-wasi-fl", ] +[[package]] +name = "fce-module-manifest-parser" +version = "0.1.0" +dependencies = [ + "anyhow", + "fluence-sdk-main 0.5.0", + "semver 0.11.0", + "serde", + "thiserror", + "walrus", +] + [[package]] name = "fce-sqlite-connector" version = "0.2.0" @@ -698,7 +710,7 @@ name = "fce-wit-generator" version = "0.2.0" dependencies = [ "fce-wit-parser", - "fluence-sdk-wit 0.4.2", + "fluence-sdk-wit 0.5.0", "once_cell", "serde", "serde_json", @@ -721,6 +733,7 @@ dependencies = [ "anyhow", "fce-wit-interfaces", "serde", + "thiserror", "walrus", "wasmer-interface-types-fl", "wasmer-runtime-core-fl", @@ -728,11 +741,12 @@ dependencies = [ [[package]] name = "fcli" -version = "0.2.0" +version = "0.3.0" dependencies = [ "anyhow", "clap", "exitfailure", + "fce-module-manifest-parser", "fce-wit-generator", "fce-wit-parser", "serde", @@ -759,6 +773,16 @@ dependencies = [ "fluence-sdk-main 0.4.2", ] +[[package]] +name = "fluence" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "342831732a977f13220ecd6f25c7e6b6127af8d3794d42e3c880b05e457a0484" +dependencies = [ + "fluence-sdk-macro 0.5.0", + "fluence-sdk-main 0.5.0", +] + [[package]] name = "fluence-app-service" version = "0.5.2" @@ -781,7 +805,7 @@ dependencies = [ "env_logger 0.7.1", "fce", "fce-utils", - "fluence-sdk-main 0.4.2", + "fluence-sdk-main 0.5.0", "itertools", "log", "once_cell", @@ -828,6 +852,15 @@ dependencies = [ "fluence-sdk-wit 0.4.2", ] +[[package]] +name = "fluence-sdk-macro" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00c840552e5e58b62d4a272e3e4aabd548e1a4519df629a51d42157c7ecbe653" +dependencies = [ + "fluence-sdk-wit 0.5.0", +] + [[package]] name = "fluence-sdk-main" version = "0.2.18" @@ -850,6 +883,17 @@ dependencies = [ "serde", ] +[[package]] +name = "fluence-sdk-main" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f1d126f05a798c8f812fbe47a42145478ce8029e00411b04d1c5194ab368313" +dependencies = [ + "fluence-sdk-macro 0.5.0", + "log", + "serde", +] + [[package]] name = "fluence-sdk-wit" version = "0.2.18" @@ -878,6 +922,20 @@ dependencies = [ "uuid", ] +[[package]] +name = "fluence-sdk-wit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ac71e8d48a8e2bdaccf59572dc7a8e8a1ad0de512fc452107756e37ac0bf752" +dependencies = [ + "proc-macro2", + "quote", + "serde", + "serde_json", + "syn", + "uuid", +] + [[package]] name = "fnv" version = "1.0.7" @@ -917,7 +975,7 @@ dependencies = [ "clap", "env_logger 0.7.1", "fluence-app-service", - "fluence-sdk-main 0.4.2", + "fluence-sdk-main 0.5.0", "itertools", "log", "rustop", @@ -979,7 +1037,7 @@ checksum = "1812c7ab8aedf8d6f2701a43e1243acdbcc2b36ab26e2ad421eb99ac963d96d1" dependencies = [ "futures-core", "futures-task", - "pin-project-lite 0.2.5", + "pin-project-lite 0.2.6", "pin-utils", ] @@ -1230,9 +1288,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.6.1" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb1fa934250de4de8aef298d81c729a7d33d8c239daa3a7575e6b92bfc7313b" +checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" dependencies = [ "autocfg", "hashbrown", @@ -1243,7 +1301,7 @@ dependencies = [ name = "inner-records-test" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "safe-transmute", ] @@ -1291,7 +1349,7 @@ dependencies = [ name = "ipfs-effector" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "log", ] @@ -1299,7 +1357,7 @@ dependencies = [ name = "ipfs-pure" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "log", ] @@ -1376,15 +1434,15 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.87" +version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "265d751d31d6780a3f956bb5b8022feba2d94eeee5a84ba64f4212eedca42213" +checksum = "03b07a082330a35e43f63177cc01689da34fbffa0105e1246cf0311472cac73a" [[package]] name = "local_storage" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "log", ] @@ -1756,6 +1814,15 @@ version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +[[package]] +name = "pest" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10f4872ae94d7b90ae48754df22fd42ad52ce740b8f370b03da4835417403e53" +dependencies = [ + "ucd-trie", +] + [[package]] name = "pin-project" version = "1.0.5" @@ -1784,9 +1851,9 @@ checksum = "257b64915a082f7811703966789728173279bdebb956b143dbcd23f6f970a777" [[package]] name = "pin-project-lite" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cf491442e4b033ed1c722cb9f0df5fcfcf4de682466c46469c36bc47dc5548a" +checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" [[package]] name = "pin-utils" @@ -1933,7 +2000,7 @@ dependencies = [ name = "record-effector" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "test-record", ] @@ -1941,7 +2008,7 @@ dependencies = [ name = "record-pure" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", "test-record", ] @@ -1983,21 +2050,20 @@ dependencies = [ [[package]] name = "regex" -version = "1.4.3" +version = "1.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" +checksum = "54fd1046a3107eb58f42de31d656fee6853e5d276c455fd943742dce89fc3dd3" dependencies = [ "aho-corasick", "memchr", "regex-syntax", - "thread_local", ] [[package]] name = "regex-syntax" -version = "0.6.22" +version = "0.6.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" +checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" [[package]] name = "remove_dir_all" @@ -2031,7 +2097,7 @@ dependencies = [ "mime_guess", "native-tls", "percent-encoding", - "pin-project-lite 0.2.5", + "pin-project-lite 0.2.6", "serde", "serde_urlencoded", "tokio", @@ -2067,7 +2133,7 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" dependencies = [ - "semver", + "semver 0.9.0", ] [[package]] @@ -2136,9 +2202,9 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "security-framework" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dfd318104249865096c8da1dfabf09ddbb6d0330ea176812a62ec75e40c4166" +checksum = "d493c5f39e02dfb062cd8f33301f90f9b13b650e8c1b1d0fd75c19dd64bff69d" dependencies = [ "bitflags", "core-foundation", @@ -2163,7 +2229,16 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" dependencies = [ - "semver-parser", + "semver-parser 0.7.0", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser 0.10.2", ] [[package]] @@ -2172,6 +2247,15 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + [[package]] name = "serde" version = "1.0.118" @@ -2314,9 +2398,9 @@ checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" [[package]] name = "syn" -version = "1.0.60" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081" +checksum = "8fd9bc7ccc2688b3344c2f48b9b546648b25ce0b20fc717ee7fa7981a8ca9717" dependencies = [ "proc-macro2", "quote", @@ -2379,7 +2463,7 @@ dependencies = [ name = "test-record" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", ] [[package]] @@ -2530,7 +2614,7 @@ checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" dependencies = [ "cfg-if 1.0.0", "log", - "pin-project-lite 0.2.5", + "pin-project-lite 0.2.6", "tracing-core", ] @@ -2603,6 +2687,12 @@ dependencies = [ "syn", ] +[[package]] +name = "ucd-trie" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56dee185309b50d1f11bfedef0fe6d036842e3fb77413abef29f8f8d1c5d4c1c" + [[package]] name = "unicase" version = "2.6.0" @@ -2716,23 +2806,23 @@ dependencies = [ [[package]] name = "walrus" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f970863270179a4e0ca2bfb470931f883f7535ae8b9dac4271761fa1b77e253d" +checksum = "4d470d0583e65f4cab21a1ff3c1ba3dd23ae49e68f516f0afceaeb001b32af39" dependencies = [ "anyhow", "id-arena", "leb128", "log", "walrus-macro", - "wasmparser 0.55.0", + "wasmparser 0.59.0", ] [[package]] name = "walrus-macro" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80927fca8665132b48c7714bcec983d6e761c60b3a9877c6cd7df86417b13573" +checksum = "d7c2bb690b44cb1b0fdcc54d4998d21f8bdaf706b93775425e440b174f39ad16" dependencies = [ "heck", "proc-macro2", @@ -2834,7 +2924,7 @@ checksum = "7d6f8ec44822dd71f5f221a5847fb34acd9060535c1211b70a05844c0f6383b1" name = "wasm-greeting" version = "0.1.0" dependencies = [ - "fluence 0.4.2", + "fluence 0.5.0", ] [[package]] @@ -2842,7 +2932,7 @@ name = "wasm-sqlite-test" version = "0.1.0" dependencies = [ "fce-sqlite-connector", - "fluence 0.4.2", + "fluence 0.5.0", ] [[package]] @@ -3025,9 +3115,9 @@ checksum = "aeb1956b19469d1c5e63e459d29e7b5aa0f558d9f16fcef09736f8a265e6c10a" [[package]] name = "wasmparser" -version = "0.55.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af931e2e1960c53f4a28b063fec4cacd036f35acbec8ff3a4739125b17382a87" +checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9" [[package]] name = "wast" diff --git a/Cargo.toml b/Cargo.toml index f704bf5b..b206722f 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,7 @@ [workspace] members = [ "aquamarine-vm", + "crates/module-info-parser", "crates/utils", "crates/wit-generator", "crates/wit-interfaces", diff --git a/crates/module-info-parser/Cargo.toml b/crates/module-info-parser/Cargo.toml new file mode 100644 index 00000000..d2bd7681 --- /dev/null +++ b/crates/module-info-parser/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "fce-module-manifest-parser" +description = "Fluence FCE Wasm module manifest parser" +version = "0.1.0" +authors = ["Fluence Labs"] +license = "Apache-2.0" +edition = "2018" + +[lib] +name = "fce_module_manifest_parser" +path = "src/lib.rs" + +[dependencies] +fluence-sdk-main = "0.5.0" + +anyhow = "1.0.31" +walrus = "0.18.0" +semver = "0.11.0" + +serde = "=1.0.118" +thiserror = "1.0.24" diff --git a/crates/module-info-parser/src/custom_section_extractor.rs b/crates/module-info-parser/src/custom_section_extractor.rs new file mode 100644 index 00000000..272139ed --- /dev/null +++ b/crates/module-info-parser/src/custom_section_extractor.rs @@ -0,0 +1,59 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use crate::ModuleInfoResult; +use crate::ModuleInfoError; + +use walrus::IdsToIndices; +use walrus::Module; + +use std::borrow::Cow; + +pub(super) fn extract_custom_sections_by_name<'w>( + wasm_module: &'w Module, + section_name: &str, +) -> ModuleInfoResult>> { + let default_ids = IdsToIndices::default(); + + let sections = wasm_module + .customs + .iter() + .filter(|(_, section)| section.name() == section_name) + .map(|s| s.1.data(&default_ids)) + .collect::>(); + + Ok(sections) +} + +pub(super) fn try_as_one_section<'s>( + mut sections: Vec>, + section_name: &'static str, +) -> ModuleInfoResult> { + let sections_count = sections.len(); + + if sections_count > 1 { + return Err(ModuleInfoError::MultipleCustomSections( + section_name, + sections_count, + )); + } + + if sections_count == 0 { + return Err(ModuleInfoError::NoCustomSection(section_name)); + } + + Ok(sections.remove(0)) +} diff --git a/crates/module-info-parser/src/errors.rs b/crates/module-info-parser/src/errors.rs new file mode 100644 index 00000000..dda79e1b --- /dev/null +++ b/crates/module-info-parser/src/errors.rs @@ -0,0 +1,84 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use semver::SemVerError; +use thiserror::Error as ThisError; +use std::str::Utf8Error; + +#[derive(Debug, ThisError)] +pub enum ModuleInfoError { + /// Version section is absent. + #[error("the module doesn't contain section with '{0}', probably it's compiled with an old sdk version")] + NoCustomSection(&'static str), + + /// Multiple sections with the same name. + #[error("the module contains {1} sections with name '{0}' - it's corrupted")] + MultipleCustomSections(&'static str, usize), + + /// Errors related to corrupted version. + #[error("{0}")] + VersionError(#[from] SDKVersionError), + + /// Errors related to corrupted manifest. + #[error("{0}")] + ManifestError(#[from] ManifestError), + + /// An error occurred while parsing Wasm file. + #[error("provided Wasm file is corrupted: {0}")] + CorruptedWasmFile(anyhow::Error), +} + +#[derive(Debug, ThisError)] +pub enum SDKVersionError { + /// Version can't be parsed to Utf8 string. + #[error("embedded to the Wasm file version isn't valid UTF8 string: '{0}'")] + VersionNotValidUtf8(Utf8Error), + + /// Version can't be parsed with semver. + #[error("embedded to the Wasm file version is corrupted: '{0}'")] + VersionCorrupted(#[from] SemVerError), +} + +#[derive(Debug, ThisError, PartialEq)] +pub enum ManifestError { + /// Manifest of a Wasm file doesn't have enough bytes to read size of a field from its prefix. + #[error( + "{0} can't be read: embedded manifest doesn't contain enough bytes to read field size from prefix" + )] + NotEnoughBytesForPrefix(&'static str), + + /// Manifest of a Wasm file doesn't have enough bytes to read a field. + #[error( + "{0} can't be read: embedded manifest doesn't contain enough bytes to read field of size {1}" + )] + NotEnoughBytesForField(&'static str, usize), + + /// Manifest of a Wasm file doesn't have enough bytes to read field. + #[error("{0} is an invalid Utf8 string: {1}")] + FieldNotValidUtf8(&'static str, Utf8Error), + + /// Size inside prefix of a field is too big (it exceeds usize or overflows with prefix size). + #[error("{0} has too big size: {1}")] + TooBigFieldSize(&'static str, u64), + + /// Version can't be parsed with semver. + #[error("embedded to the Wasm file version is corrupted: '{0}'")] + ModuleVersionCorrupted(#[from] SemVerError), + + /// Manifest contains some trailing characters. + #[error("embedded manifest is corrupted: there are some trailing characters")] + ManifestRemainderNotEmpty, +} diff --git a/crates/module-info-parser/src/lib.rs b/crates/module-info-parser/src/lib.rs new file mode 100644 index 00000000..06b07ff5 --- /dev/null +++ b/crates/module-info-parser/src/lib.rs @@ -0,0 +1,49 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#![warn(rust_2018_idioms)] +#![deny( + dead_code, + nonstandard_style, + unused_imports, + unused_mut, + unused_variables, + unused_unsafe, + unreachable_patterns +)] + +mod custom_section_extractor; +mod errors; +mod manifest; +mod manifest_extractor; +mod version_extractor; +#[cfg(test)] +mod tests; + +pub use errors::ModuleInfoError; +pub use errors::ManifestError; +pub use errors::SDKVersionError; + +pub use version_extractor::extract_sdk_version_by_path; +pub use version_extractor::extract_sdk_version_by_module; + +pub use manifest::ModuleManifest; +pub use manifest_extractor::extract_manifest_by_path; +pub use manifest_extractor::extract_version_by_module; + +pub(crate) use custom_section_extractor::extract_custom_sections_by_name; +pub(crate) use custom_section_extractor::try_as_one_section; + +pub(crate) type ModuleInfoResult = std::result::Result; diff --git a/crates/module-info-parser/src/manifest.rs b/crates/module-info-parser/src/manifest.rs new file mode 100644 index 00000000..c8df9824 --- /dev/null +++ b/crates/module-info-parser/src/manifest.rs @@ -0,0 +1,145 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/// Describes manifest of a Wasm module in the Fluence network. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct ModuleManifest { + pub authors: String, + pub version: semver::Version, + pub description: String, + pub repository: String, +} + +use crate::ManifestError; + +use std::convert::TryFrom; +use std::str::FromStr; + +type Result = std::result::Result; + +impl TryFrom<&[u8]> for ModuleManifest { + type Error = ManifestError; + + #[rustfmt::skip] + fn try_from(value: &[u8]) -> Result { + let (authors, next_offset) = try_extract_field_as_string(value, 0, "authors")?; + let (version, next_offset) = try_extract_field_as_version(value, next_offset, "version")?; + let (description, next_offset) = try_extract_field_as_string(value, next_offset, "description")?; + let (repository, next_offset) = try_extract_field_as_string(value, next_offset, "repository")?; + + if next_offset != value.len() { + return Err(ManifestError::ManifestRemainderNotEmpty) + } + + let manifest = ModuleManifest { + authors, + version, + description, + repository, + }; + + Ok(manifest) + } +} + +fn try_extract_field_as_string( + raw_manifest: &[u8], + offset: usize, + field_name: &'static str, +) -> Result<(String, usize)> { + let raw_manifest = &raw_manifest[offset..]; + let (field_as_bytes, read_len) = try_extract_prefixed_field(raw_manifest, field_name)?; + let field_as_string = try_to_str(field_as_bytes, field_name)?.to_string(); + + Ok((field_as_string, offset + read_len)) +} + +fn try_extract_field_as_version( + raw_manifest: &[u8], + offset: usize, + field_name: &'static str, +) -> Result<(semver::Version, usize)> { + let raw_manifest = &raw_manifest[offset..]; + let (field_as_bytes, read_len) = try_extract_prefixed_field(raw_manifest, field_name)?; + let field_as_str = try_to_str(field_as_bytes, field_name)?; + let version = semver::Version::from_str(field_as_str)?; + + Ok((version, offset + read_len)) +} + +const PREFIX_SIZE: usize = std::mem::size_of::(); + +fn try_extract_prefixed_field<'a>( + array: &'a [u8], + field_name: &'static str, +) -> Result<(&'a [u8], usize)> { + let field_len = try_extract_field_len(array, field_name)?; + let field = try_extract_field(array, field_len, field_name)?; + + let read_size = PREFIX_SIZE + field.len(); + Ok((field, read_size)) +} + +fn try_extract_field_len(array: &[u8], field_name: &'static str) -> Result { + if array.len() < PREFIX_SIZE { + return Err(ManifestError::NotEnoughBytesForPrefix(field_name)); + } + + let mut field_len = [0u8; PREFIX_SIZE]; + field_len.copy_from_slice(&array[0..PREFIX_SIZE]); + + let field_len = u64::from_le_bytes(field_len); + // TODO: Until we use Wasm32 and compiles our node to x86_64, converting to usize is sound + if field_len.checked_add(PREFIX_SIZE as u64).is_none() + || usize::try_from(field_len + PREFIX_SIZE as u64).is_err() + { + return Err(ManifestError::TooBigFieldSize(field_name, field_len)); + } + + // it's safe to convert it to usize because it's been checked + Ok(field_len as usize) +} + +fn try_extract_field<'a>( + array: &'a [u8], + field_len: usize, + field_name: &'static str, +) -> Result<&'a [u8]> { + if array.len() < PREFIX_SIZE + field_len { + return Err(ManifestError::NotEnoughBytesForField(field_name, field_len)); + } + + let field = &array[PREFIX_SIZE..PREFIX_SIZE + field_len]; + Ok(field) +} + +fn try_to_str<'v>(value: &'v [u8], field_name: &'static str) -> Result<&'v str> { + match std::str::from_utf8(value) { + Ok(s) => Ok(s), + Err(e) => Err(ManifestError::FieldNotValidUtf8(field_name, e)), + } +} + +use std::fmt; + +impl fmt::Display for ModuleManifest { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + writeln!(f, "authors: {}", self.authors)?; + writeln!(f, "version: {}", self.version)?; + writeln!(f, "description: {}", self.description)?; + write!(f, "repository: {}", self.repository) + } +} diff --git a/crates/module-info-parser/src/manifest_extractor.rs b/crates/module-info-parser/src/manifest_extractor.rs new file mode 100644 index 00000000..312a3938 --- /dev/null +++ b/crates/module-info-parser/src/manifest_extractor.rs @@ -0,0 +1,55 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use crate::ModuleInfoResult; +use crate::ModuleInfoError; +use crate::extract_custom_sections_by_name; +use crate::try_as_one_section; +use crate::ModuleManifest; + +use fluence_sdk_main::MANIFEST_SECTION_NAME; +use walrus::ModuleConfig; +use walrus::Module; + +use std::borrow::Cow; +use std::path::Path; +use std::convert::TryInto; + +pub fn extract_manifest_by_path( + wasm_module_path: &Path, +) -> ModuleInfoResult> { + let module = ModuleConfig::new() + .parse_file(wasm_module_path) + .map_err(ModuleInfoError::CorruptedWasmFile)?; + + extract_version_by_module(&module) +} + +pub fn extract_version_by_module(wasm_module: &Module) -> ModuleInfoResult> { + let sections = extract_custom_sections_by_name(&wasm_module, MANIFEST_SECTION_NAME)?; + if sections.is_empty() { + return Ok(None); + } + + let section = try_as_one_section(sections, MANIFEST_SECTION_NAME)?; + + let manifest = match section { + Cow::Borrowed(bytes) => bytes.try_into(), + Cow::Owned(vec) => vec.as_slice().try_into(), + }?; + + Ok(Some(manifest)) +} diff --git a/crates/module-info-parser/src/tests.rs b/crates/module-info-parser/src/tests.rs new file mode 100644 index 00000000..946e9417 --- /dev/null +++ b/crates/module-info-parser/src/tests.rs @@ -0,0 +1,154 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use crate::ManifestError; +use crate::ModuleManifest; + +use std::convert::TryInto; +use std::str::FromStr; + +#[derive(Debug, Clone, Default, PartialEq, Eq)] +struct ByteEncoder { + buffer: Vec, +} + +impl ByteEncoder { + pub fn new() -> Self { + <_>::default() + } + + pub fn add_u64(&mut self, number: u64) { + use std::io::Write; + + let number_le_bytes = number.to_le_bytes(); + self.buffer + .write(&number_le_bytes) + .expect("writing to buffer should be successful"); + } + + pub fn add_utf8_string(&mut self, str: &str) { + use std::io::Write; + + let str_as_bytes = str.as_bytes(); + self.buffer + .write(&str_as_bytes) + .expect("writing to buffer should be successful"); + } + + pub fn add_utf8_field(&mut self, field: &str) { + let field_len = field.as_bytes().len(); + + self.add_u64(field_len as u64); + self.add_utf8_string(field); + } + + pub fn as_bytes(&self) -> &[u8] { + &self.buffer + } + + #[allow(dead_code)] + pub fn into_vec(self) -> Vec { + self.buffer + } +} + +#[test] +fn test_reading_simple_config() { + let authors = "authors".to_string(); + let version = semver::Version::from_str("0.1.0").unwrap(); + let description = "description".to_string(); + let repository = "repository".to_string(); + + let mut array = ByteEncoder::new(); + + array.add_utf8_field(&authors); + array.add_utf8_field(&version.to_string()); + array.add_utf8_field(&description); + array.add_utf8_field(&repository); + + let actual: ModuleManifest = array + .as_bytes() + .try_into() + .expect("module manifest should be deserialized correctly"); + + let expected = ModuleManifest { + authors, + version, + description, + repository, + }; + + assert_eq!(actual, expected); +} + +#[test] +fn test_too_big_field_len() { + let mut array = ByteEncoder::new(); + + array.add_utf8_field("authors"); + let incorrect_size = u64::MAX; + array.add_u64(incorrect_size); + array.add_utf8_string("version"); + array.add_utf8_field("description"); + array.add_utf8_field("repository"); + + let actual: Result = array.as_bytes().try_into(); + let expected = Err(ManifestError::TooBigFieldSize("version", incorrect_size)); + + assert_eq!(actual, expected); +} + +#[test] +fn test_without_one_field() { + let mut array = ByteEncoder::new(); + + array.add_utf8_field("authors"); + array.add_utf8_field("0.1.0"); + array.add_utf8_field("description"); + + let actual: Result = array.as_bytes().try_into(); + let expected = Err(ManifestError::NotEnoughBytesForPrefix("repository")); + + assert_eq!(actual, expected); +} + +#[test] +fn test_with_empty_slice() { + let actual: Result = vec![].as_slice().try_into(); + let expected = Err(ManifestError::NotEnoughBytesForPrefix("authors")); + + assert_eq!(actual, expected); +} + +#[test] +fn test_not_enough_data_for_field() { + let mut array = ByteEncoder::new(); + + array.add_utf8_field("authors"); + array.add_utf8_field("0.1.0"); + array.add_utf8_field("description"); + let too_big_size = 0xFF; + array.add_u64(too_big_size); + array.add_utf8_string("repository"); + + let actual: Result = array.as_bytes().try_into(); + let expected = Err(ManifestError::NotEnoughBytesForField( + "repository", + too_big_size as usize, + )); + + assert_eq!(actual, expected); +} diff --git a/crates/module-info-parser/src/version_extractor.rs b/crates/module-info-parser/src/version_extractor.rs new file mode 100644 index 00000000..32c67aed --- /dev/null +++ b/crates/module-info-parser/src/version_extractor.rs @@ -0,0 +1,64 @@ +/* + * Copyright 2020 Fluence Labs Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +use crate::ModuleInfoResult; +use crate::ModuleInfoError; +use crate::SDKVersionError; +use crate::extract_custom_sections_by_name; +use crate::try_as_one_section; + +use fluence_sdk_main::VERSION_SECTION_NAME; +use walrus::ModuleConfig; +use walrus::Module; + +use std::borrow::Cow; +use std::str::FromStr; +use std::path::Path; + +pub fn extract_sdk_version_by_path( + wasm_module_path: &Path, +) -> ModuleInfoResult> { + let module = ModuleConfig::new() + .parse_file(wasm_module_path) + .map_err(ModuleInfoError::CorruptedWasmFile)?; + + extract_sdk_version_by_module(&module) +} + +pub fn extract_sdk_version_by_module( + wasm_module: &Module, +) -> ModuleInfoResult> { + let sections = extract_custom_sections_by_name(&wasm_module, VERSION_SECTION_NAME)?; + + if sections.is_empty() { + return Ok(None); + } + let section = try_as_one_section(sections, VERSION_SECTION_NAME)?; + + let version = match section { + Cow::Borrowed(bytes) => as_semver(bytes), + Cow::Owned(vec) => as_semver(&vec), + }?; + + Ok(Some(version)) +} + +fn as_semver(version_as_bytes: &[u8]) -> Result { + match std::str::from_utf8(version_as_bytes) { + Ok(str) => Ok(semver::Version::from_str(str)?), + Err(e) => Err(SDKVersionError::VersionNotValidUtf8(e)), + } +} diff --git a/crates/wit-generator/Cargo.toml b/crates/wit-generator/Cargo.toml index bf62133a..48c6004c 100644 --- a/crates/wit-generator/Cargo.toml +++ b/crates/wit-generator/Cargo.toml @@ -12,9 +12,9 @@ path = "src/lib.rs" [dependencies] fce-wit-parser = { path = "../wit-parser", version = "0.2.0"} -fluence-sdk-wit = "=0.4.2" +fluence-sdk-wit = "=0.5.0" -walrus = "0.17.0" +walrus = "0.18.0" wasmer-wit = { package = "wasmer-interface-types-fl", version = "=0.17.24" } once_cell = "1.4.0" serde = { version = "=1.0.118", features = ["derive"] } diff --git a/crates/wit-parser/Cargo.toml b/crates/wit-parser/Cargo.toml index c1f6fc69..b4bee0e2 100644 --- a/crates/wit-parser/Cargo.toml +++ b/crates/wit-parser/Cargo.toml @@ -14,8 +14,9 @@ path = "src/lib.rs" fce-wit-interfaces = { path = "../wit-interfaces", version = "0.1.29" } anyhow = "1.0.31" -walrus = "0.17.0" +walrus = "0.18.0" wasmer-core = { package = "wasmer-runtime-core-fl", version = "0.17.0"} wasmer-wit = { package = "wasmer-interface-types-fl", version = "=0.17.24" } serde = "=1.0.118" +thiserror = "1.0.24" diff --git a/crates/wit-parser/src/custom.rs b/crates/wit-parser/src/custom.rs index 8d318725..854459cf 100644 --- a/crates/wit-parser/src/custom.rs +++ b/crates/wit-parser/src/custom.rs @@ -14,17 +14,19 @@ * limitations under the License. */ -use std::borrow::Cow; -use walrus::{CustomSection, IdsToIndices}; +use walrus::CustomSection; +use walrus::IdsToIndices; -pub const WIT_SECTION_NAME: &str = "interface-types"; +use std::borrow::Cow; + +pub const IT_SECTION_NAME: &str = "interface-types"; #[derive(Debug, Clone)] -pub(super) struct WITCustom(pub Vec); +pub(super) struct ITCustomSection(pub Vec); -impl CustomSection for WITCustom { +impl CustomSection for ITCustomSection { fn name(&self) -> &str { - WIT_SECTION_NAME + IT_SECTION_NAME } fn data(&self, _ids_to_indices: &IdsToIndices) -> Cow<'_, [u8]> { diff --git a/crates/wit-parser/src/deleter.rs b/crates/wit-parser/src/deleter.rs index b252db4f..060f46e1 100644 --- a/crates/wit-parser/src/deleter.rs +++ b/crates/wit-parser/src/deleter.rs @@ -15,7 +15,7 @@ */ use super::errors::WITParserError; -use super::custom::WIT_SECTION_NAME; +use super::custom::IT_SECTION_NAME; use walrus::ModuleConfig; @@ -45,7 +45,7 @@ pub fn delete_wit_section(mut wasm_module: walrus::Module) -> walrus::Module { .customs .iter() .filter_map(|(id, section)| { - if section.name() == WIT_SECTION_NAME { + if section.name() == IT_SECTION_NAME { Some(id) } else { None diff --git a/crates/wit-parser/src/embedder.rs b/crates/wit-parser/src/embedder.rs index c00003cf..ee48a447 100644 --- a/crates/wit-parser/src/embedder.rs +++ b/crates/wit-parser/src/embedder.rs @@ -14,8 +14,9 @@ * limitations under the License. */ -use super::custom::WITCustom; +use super::custom::ITCustomSection; use super::errors::WITParserError; +use crate::Result; use walrus::ModuleConfig; use wasmer_wit::{ @@ -27,11 +28,7 @@ use wasmer_wit::ToBytes; use std::path::PathBuf; /// Embed provided WIT to a Wasm file by path. -pub fn embed_text_wit( - in_wasm_path: PathBuf, - out_wasm_path: PathBuf, - wit: &str, -) -> Result<(), WITParserError> { +pub fn embed_text_wit(in_wasm_path: PathBuf, out_wasm_path: PathBuf, wit: &str) -> Result<()> { let module = ModuleConfig::new() .parse_file(&in_wasm_path) .map_err(WITParserError::CorruptedWasmFile)?; @@ -53,7 +50,7 @@ pub fn embed_wit(mut wasm_module: walrus::Module, interfaces: &Interfaces<'_>) - // TODO: think about possible errors here interfaces.to_bytes(&mut bytes).unwrap(); - let custom = WITCustom(bytes); + let custom = ITCustomSection(bytes); wasm_module.customs.add(custom); wasm_module diff --git a/crates/wit-parser/src/errors.rs b/crates/wit-parser/src/errors.rs index dbe158f6..df246e25 100644 --- a/crates/wit-parser/src/errors.rs +++ b/crates/wit-parser/src/errors.rs @@ -15,77 +15,57 @@ */ use wasmer_wit::decoders::wat::Error as WATError; -use std::io::Error as StdIOError; -use std::error::Error; +use thiserror::Error as ThisError; -#[derive(Debug)] +use std::io::Error as IOError; + +#[derive(Debug, ThisError)] pub enum WITParserError { /// WIT section is absent. - NoWITSection, + #[error("the module doesn't contain IT section")] + NoITSection, /// Multiple WIT sections. - MultipleWITSections, + #[error("the module contains multiple IT sections that is unsupported")] + MultipleITSections, /// WIT section remainder isn't empty. - WITRemainderNotEmpty, + #[error("IT section is corrupted: IT section remainder isn't empty")] + ITRemainderNotEmpty, /// An error occurred while parsing WIT section. - CorruptedWITSection, + #[error("IT section is corrupted")] + CorruptedITSection, - // An error related to incorrect wit section. - IncorrectWIT(String), + /// An error related to incorrect data of wit section. + #[error("{0}")] + IncorrectITFormat(String), /// An error occurred while parsing file in Wat format. - CorruptedWATFile(WATError), + #[error("provided file with IT definitions is corrupted: {0}")] + CorruptedITFile(WATError), - /// An error occurred while parsing Wasm file + /// An error occurred while parsing Wasm file. + #[error("provided Wasm file is corrupted: {0}")] CorruptedWasmFile(anyhow::Error), /// An error occurred while manipulating with converting ast to bytes. - AstToBytesError(StdIOError), + #[error("Convertation Wast to AST failed with: {0}")] + AstToBytesError(IOError), - // Wasm emittig file error. + /// Wasm emitting file error. + #[error("Emitting resulted Wasm file failed with: {0}")] WasmEmitError(anyhow::Error), } -impl Error for WITParserError {} - -impl std::fmt::Display for WITParserError { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { - match self { - WITParserError::NoWITSection => write!(f, "Loaded module doesn't contain WIT section"), - WITParserError::MultipleWITSections => write!( - f, - "Loaded module contains multiple WIT sections that is unsupported now" - ), - WITParserError::WITRemainderNotEmpty => write!( - f, - "WIT section remainder isn't empty - WIT section possibly corrupted" - ), - WITParserError::IncorrectWIT(err_msg) => write!(f, "{}", err_msg), - WITParserError::CorruptedWITSection => write!(f, "WIT section is corrupted"), - WITParserError::CorruptedWATFile(err) => { - write!(f, "an error occurred while parsing wat file: {}", err) - } - WITParserError::CorruptedWasmFile(err) => { - write!(f, "Failed to parse the Wasm module: {}", err) - } - WITParserError::AstToBytesError(err) => { - write!(f, "Wasm AST converting to bytes failed with: {}", err) - } - WITParserError::WasmEmitError(err) => write!(f, "Failed to emit Wasm file: {}", err), - } - } -} - impl From for WITParserError { fn from(err: WATError) -> Self { - WITParserError::CorruptedWATFile(err) + WITParserError::CorruptedITFile(err) } } -impl From for WITParserError { - fn from(err: StdIOError) -> Self { +impl From for WITParserError { + fn from(err: IOError) -> Self { WITParserError::AstToBytesError(err) } } diff --git a/crates/wit-parser/src/extractor.rs b/crates/wit-parser/src/extractor.rs index 64ab4724..74269701 100644 --- a/crates/wit-parser/src/extractor.rs +++ b/crates/wit-parser/src/extractor.rs @@ -26,8 +26,8 @@ use std::path::Path; pub fn module_interface(module_path: &Path) -> Result { use fce_wit_interfaces::FCEWITInterfaces; - let wit_section_bytes = extract_wit_section_bytes(module_path)?; - let wit = extract_wit_with_fn(&wit_section_bytes)?; + let wit_section_bytes = extract_custom_section(module_path)?; + let wit = extract_wit_from_bytes(&wit_section_bytes)?; let fce_interface = FCEWITInterfaces::new(wit); get_interface(&fce_interface) diff --git a/crates/wit-parser/src/extractor/functions.rs b/crates/wit-parser/src/extractor/functions.rs index be154948..76644d8c 100644 --- a/crates/wit-parser/src/extractor/functions.rs +++ b/crates/wit-parser/src/extractor/functions.rs @@ -88,7 +88,7 @@ fn get_exports(wit: &FCEWITInterfaces<'_>) -> Result> }; Ok(signature) } - _ => Err(WITParserError::IncorrectWIT(format!( + _ => Err(WITParserError::IncorrectITFormat(format!( "type with idx = {} isn't a function type", adapter_function_type ))), diff --git a/crates/wit-parser/src/extractor/wit.rs b/crates/wit-parser/src/extractor/wit.rs index ccca43bc..9eabaec8 100644 --- a/crates/wit-parser/src/extractor/wit.rs +++ b/crates/wit-parser/src/extractor/wit.rs @@ -14,8 +14,9 @@ * limitations under the License. */ -use crate::custom::WIT_SECTION_NAME; +use crate::custom::IT_SECTION_NAME; use crate::errors::WITParserError; +use crate::Result; use walrus::{IdsToIndices, ModuleConfig}; use wasmer_wit::ast::Interfaces; @@ -24,36 +25,34 @@ use wasmer_core::Module as WasmerModule; use std::path::Path; /// Extracts WIT section of provided Wasm binary and converts it to a string. -pub fn extract_text_wit(wasm_file_path: &Path) -> Result { - let wit_section_bytes = extract_wit_section_bytes(&wasm_file_path)?; - let wit = extract_wit_with_fn(&wit_section_bytes)?; +pub fn extract_text_wit(wasm_file_path: &Path) -> Result { + let wit_section_bytes = extract_custom_section(&wasm_file_path)?; + let wit = extract_wit_from_bytes(&wit_section_bytes)?; Ok((&wit).to_string()) } /// Extracts WIT section of provided Wasm binary and converts it to a FCEWITInterfaces. -pub fn extract_wit(wasmer_module: &WasmerModule) -> Result, WITParserError> { +pub fn extract_wit(wasmer_module: &WasmerModule) -> Result> { let wit_sections = wasmer_module - .custom_sections(WIT_SECTION_NAME) - .ok_or(WITParserError::NoWITSection)?; + .custom_sections(IT_SECTION_NAME) + .ok_or(WITParserError::NoITSection)?; if wit_sections.len() > 1 { - return Err(WITParserError::MultipleWITSections); + return Err(WITParserError::MultipleITSections); } - extract_wit_with_fn(&wit_sections[0]) + extract_wit_from_bytes(&wit_sections[0]) } -pub(crate) fn extract_wit_with_fn( - wit_section_bytes: &[u8], -) -> Result, WITParserError> { - match wasmer_wit::decoders::binary::parse::<()>(&wit_section_bytes) { +pub(crate) fn extract_wit_from_bytes(wit_section_bytes: &[u8]) -> Result> { + match wasmer_wit::decoders::binary::parse::<()>(wit_section_bytes) { Ok((remainder, wit)) if remainder.is_empty() => Ok(wit), - Ok(_) => Err(WITParserError::WITRemainderNotEmpty), - Err(_) => Err(WITParserError::CorruptedWITSection), + Ok(_) => Err(WITParserError::ITRemainderNotEmpty), + Err(_) => Err(WITParserError::CorruptedITSection), } } -pub(crate) fn extract_wit_section_bytes(wasm_file_path: &Path) -> Result, WITParserError> { +pub(crate) fn extract_custom_section(wasm_file_path: &Path) -> Result> { let module = ModuleConfig::new() .parse_file(wasm_file_path) .map_err(WITParserError::CorruptedWasmFile)?; @@ -61,14 +60,14 @@ pub(crate) fn extract_wit_section_bytes(wasm_file_path: &Path) -> Result let sections = module .customs .iter() - .filter(|(_, section)| section.name() == WIT_SECTION_NAME) + .filter(|(_, section)| section.name() == IT_SECTION_NAME) .collect::>(); if sections.is_empty() { - return Err(WITParserError::NoWITSection); + return Err(WITParserError::NoITSection); } if sections.len() > 1 { - return Err(WITParserError::MultipleWITSections); + return Err(WITParserError::MultipleITSections); } let default_ids = IdsToIndices::default(); diff --git a/examples/call_parameters/Cargo.toml b/examples/call_parameters/Cargo.toml index cfe2047c..e8a115fd 100644 --- a/examples/call_parameters/Cargo.toml +++ b/examples/call_parameters/Cargo.toml @@ -10,4 +10,4 @@ name = "call_parameters" path = "src/main.rs" [dependencies] -fluence = "=0.4.2" +fluence = "=0.5.0" diff --git a/examples/call_parameters/artifacts/call_parameters.wasm b/examples/call_parameters/artifacts/call_parameters.wasm index 22c28f2d3dce163e42b4067ccbea6ba1d0757ce0..e7c48982680c671df91e325b1f789dfb7eea8005 100755 GIT binary patch delta 30071 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 NY+~D-9tZQ3{U2{Js2KnN delta 28797 zcmd6Q34B!Lx%YX`ESbq;WTjGsMYESF+^YnUWS><( zW()o^Ge!f`w7xg^P1F}wY`_glDVU=Ki1nXT~*%Ev9@>hC9At*T^(y;tGlHzpCh}nE6OiP z^>_59`qp>#cl53Pc1pUatZ$@cU4O51c6mXA81fBEtgCBnBG#XhmK7&c!<8jQvGN{P z+|iMY^~X9=-AMzpb#$ys#nyGiV|^)uY&}MJWs=Hli*IJx**CDq*oBu(x}JTH&A*kM z)i@{u|iZ{9xUuDSRccG`@GS)Fg?ZOr@4iFYv1ciG0RY!}PV&f#aP5;AR zz0Atp^UVAKV_Ej&Lv1cuwJVZZnNipE;Avaj;4-L&4KCvbm!ukcqNNgAS&w4uRaqZ( z^}9^!?w5z8Osg!pjH)H$6pJgyR@ve*D<*Y2b-GLoOC?oOWc4b=aA{9a##SZFrb?~y zrkC3k^OAbSq-4!O*`i=hP%g14Mn$Y{Rt>#D*@&t+e9Y30FHosrA&&ss z#hd|#44p3E3a}{#pjI*SHRjr^K(te!+&BrJ&nb_KeDdP4lCU>9q&lqpv9ShJm9h1>rw zYE`*k-F;YRFB1`eV-Jq+G%6;iS#C2BvCXZr-6dtgnr5|1@FDm>wkZHn9}ePzu!?c9 z%iMseIFN#ZNs*l963J#$uyC!j7)zm0;<6~F1;j^r?nEP~xrA6B-HK^pJt0ies09=O z9X7cw3vyS16-W*wjKwTK6)iQO-JWrpZ3aN<1XM1|sBsq2t60SFQpu(Ox1eoFu}#f7 z4dB%0vSMqohAa22x=_N0vPR>PNNOygnDamn&|*kfUMzs;#7)-l&e|SXdnyW4_r|z2#i7r zB;7KKG0|Aam=z&?wKvaO^abd^Ia1&wG&2e6#gG?b>ZK^aYhprGj#jF6zwbY-ULdQwbi z9#;G?A3)-;;s+Pvh(aGx0s08Tg|>vuXrNsSlVDN|X9Bb=Cf{nhM{rbOz1p)O`OPDk-###KEzJ6m6p~-3 zy28|w41`sEBm3aLJZS0*%9ySJ{%*eTI0^#;Mz9455y(Uq??oK8C<7}DkUCwq9w;LN z#2-`LLHXE`w&5f0J%Td}RM#ax1uw1W}djX)sN8K`A)XDQlqM{7^QqvOqTc z1@J#Oy%UEsWpF46X2uEKEE9E1@CQEs;)^eemXtzb2$KA%sH~ky*3V=nD3+9(F%_GF zeHNCok|J6Nivv%?D;dQAhyf0Ozp?;)0V!c2uR<~n>Pz4`nea3`3k%XYB&A4^J85?i z*(K=^<2*W;(3A=etqsL=oCQGOTym#9U0(tT$1)2`P0(*bYZlqEc$!K~dWVc=T3yfp ze1<1%Nq%*hYJpHft8^9&tAL3qK<5I~0AnW?J&Ye^lD;X)D` zHv$c6c@OP^9+VnDC~%vsE+Sr$gsmeP7MsqJkJ7GNgp>nIqr@FIdGfD2kG^qrR zAb0?FMhMYu_J%CHP8hjXnn!rHDdu7Q0fNA=W%4@}ZUlv|3*hH=vgaY1zE{bv%G#&Xv_#(D83wFp;NQMWa15ftoYou5cYF&<@;mH5N zkp-q{bs&(ij(N2XCJBa9q*5rjk`!1~yIQ4Ku{ylq2B=A5 z44L=}=eGvsTJ6kmZLk}fa47k%W;Jii}(@ zY(hZ|b|6wfQ1QY}=3@5-vH=GXp5Pc_BVD2e8wuXB!2FXPoGo?)ADJ~i z!huxH$svf%>cHo75#xxQgM|I4VJ9_Q$Z^<0*fasR1niD*oKdYEcD?n}(Ai3iSt2~ede|PZ9)y8nJwQLgfhYpjP#%N?0LTG?Nhxu?x*3E)erH*#~um9d}_D;U4LpFGU8}fFc7N0c7{Vb)bow2?rdS z3D1WHdaxl}JYZDw%=w>d8?z!);leHwtP55YR@FqxRw;s>H6r-~#?>{gO=wyhX<7?u zT5YhZ8d+63Rnv11&Ul3<)~5Iu;2;1Xq-I)73H9Zdi^eW-3s} zI0(rR9x$2&K8&Tt4df$<{UAho4gyo5lED+{}6brsC9`+!#v4XEHO0mY*SXm^;h&urZ@im5#15wD=#N^aXY%RJ4Tt@#g7_f&7Xdyumlis9WgxMe~ia?yagq$=WB`8nD16HsV^00gN z5HL6nrDHp(q|nMo;f}~^_ViMSs=9;am8CvpJ6hXWNZvxd`^EfQsCWy@*fV5(My3Sw z%Z{2eGc1eRu+`cz~k=%f<v}^O2(dJDwKwL1Aoprw)lzduUxzL`JrEaB=Ps1wb?Mz z7y_eP7`OlkRku7aB-ziCZ1&As3$u$ZC|GEzpd1!fhNM8);nRo&8UYWEur?TtY7!}? z!-v{1)*hf(v4A^h8M}-B-ZeA313M}V@GkXZ@#HCboXtk}VA!;F9 z8bgFQ^+T+n;Ro%4HewFMRzszK1gl{b@6cKWQg2}nEU=pqPheAf3&nuEVf?HjAXs7c zZT$VQld{JSwK*xgVlyQaadZ^UR~Y;xjmk^|Cof=I9vmiZrAAuAObHyJ?J=6dL{)8j zl0|G!XcOBIT49l_yHtMLIM0PTJWObdY0_RDB#cE-VdOLvNbxC!c0d?biii`Ycd zmLy)os_>{-LlgMsN-6f~a&uR33n+?6b=XS0{|k z-gqy8RSO*ku1Mms{}45-gu#>4qXc~`3LjH&44>9M9(aZMO3SGj-#3#nF!P@&hb=}wB!fLsDd1XYIGKp#{nnBei!#ooW(mQHdSZ<*oFbH z@jE9rWT7%EqNT_=8B}+-)1j1;6XC2x7^>c~Ye-V3s4v|QOs$5}C`Y8`tfF3Zslrh5pX_dpy8VVWQ&RTl3I_v16IP2+A>ujKh-PuSFi?fLylCxPc*q3f&fVom} zkb~}kIf9GmSX^qOa=)tu;Rk+}&`WROb1iAu)9%)B8HFPRbEE8Xwupl}Km~qlYi*W} zE(yPioEm{RRmScDc&=Rl)w#<# z24qB93L*@(d&A^MVSgi2j%0NSX%stx6Eq1S^tb9w<3^hNdXsyksZDP>ZKUZ8y=l=% z)5R_#KCOB#@efXtan=|h4g9-P!+_-3skQY&G(n9-7K5zQ{1XYc zAUc?lvh1|r1tR@~!6jY!EifZFZLECkUVg*0>B^~efGS{l7&>JCA^xw^n&cbrqp@dx z_1FVY%H)m0KP?x;l$Bzgme}8@+46kBzL~F@zIY5Jt&NM}HzFyKaY}LG1snv2 z_>#;q1GFNg122YleYtHRxpgFYaJjVt8q0N+h+@H-!aJvFluXvL(NxmbwIQF=@%-d{UccYX=*?!XlEz@U`=k_^&(xwuzT}H{-zDyeA&`74M~`0&E;WA+Y&b zzVIY13IQ%PY+?%+l6i{U@6uxsY#?F~zSno4LgW~{$uzcZwDr^?fl+wi+vO= z+e!@lwXnj^4?Z|e%XW}zRYbl+OKK|S(aB|#PVDI+BKDrp6hUk){Z2R-MQrF}z%E`G zfXEuLLE!%yu}9V%MQm+NL3XhwKR;Xv8g+&P+5vTDm33x45+-K7E0U*O9{v|21+)W@ z1ANKMJndK^?I@9mi#n7c0F@DPYP5TJ=7DmJb|#I^Alap}1m%7(>lwC}pL^OAfHiR1 zlI+KOK{JDDM*_RTroN}uDp0fA)PK=x4%EtR>OYN)EVHSDBYmYdb*EM<#Yo)OxkJ?G zR>?J5do|io`}k3@mkl+mP5nL9It(gxBCdT^>!cdqaz3fmYEU!V)Q7ZM32F!n?$c^k z)Q|iaJ^BcEg^PsF9OF7|K{GIk159xhb-D}ZO1MikHGu_QQjyyX< zvH&p{g27&=Oq_olzPrJ|o%3o|5HMv%CK(Xxs(0@Ppp(^?@E|}*{fWVFT>uZIcsaEmP{pUbD5v#5C)aWVEVmKhLEW66)7!WNC{mZxb8e(O1k zs}Zk`kkSJR>2-hp53N0Ph)k#b+x+!&rUfp>+6ZPZP<4th;Q}9j0?X~7#g@XmKuk_i zX~E3kxihlrYa*UdOmI|9WEFu7xY}f)==6YBB{7FSGms9X`Ck!B+5?ng0j4nwC#H0u zVqBo(20D1AWCx^_FvG*BUeTi<9VT#qapWPgX_6gqidz??K`s2VbDL&?JcxO8Xz(f) z-GI&je0(iDeA)6w1Ky$WHOt3MZ^X?Xy!@a`35AHj%}RPf2Fr_=s(6?((PV z7g2-&*lAD|I5Lp+1Duq1!gACHWkjeeTv2!*2tz4hPNxR?ahO`d2Z;hW984-<9++Aj zn}Q9Tkd9wUu04?|!dSJnbb6BWcTr-wfj#vDPv?_y3rL;9QhMT$a%xrHBh5 zMLr#c5>n!)4L7V(7zJG5AoYM)-~t?uHYa&vSroAvh5yw0Iu(hL8SxDz90W86F;T=? z_d`C_H%L$->J~7w2rEXx{yvT&(k@Jk1erR7abR7nq`{Tn1}viP&kB%~VUPf=*fI|V zy~H9Q=)`Z(hKTs`am}$205pv0n4FrSm=iP<7}ld#T9yz==+k0X+W(C#)&;ILniIq$ zh@)+>&IoD&TON}~cj{-t7}7_J1lR(RKq?vu?p9F}D8&H@n0(ACW{Hqn#2QTfN|1^6 z8px-l{r?ffmk^aTkOiO`%!2kO!K|2ON?;>O!JSGG4G@z+5vjMJpw_6nsSZV|iTStA zZ*mDS*Hwqp04W$LLow~PF$;fjQK|+EXjJWVTMxJBD4a2>>!2RFZ}CM;=9?G0@b|vO zE`zMf+;e7qxr+N82H*$}vI4iA-c+w38B3SGkiwNTrK-qf1_?@-Pd|MkUI#+)We|@W z)vgR(0VSm&LkHrr5(SM=wi(=Y(Ck{VYUxL=rFH|{4ha)+Z_A34kenkY-LDjnbXlmY zM0A}vtAx6=i3r8H_(#tg4S(UZ(eOJ?f**kD@UI2@gO{IiH{+G_X2Mv)>YO<*(sK8Zlz~A} zuga7ekTnO#;|{^%Qo7%QYfn~w`Jy`h>^%RJokNmR)IcMLSdTg&3L7meU8C@#+KEEt5oxnXoL6EaDnZ_EiM69F(l>6CCKXF9ogd25`Y)fLAx*N zsi__XT9v-@E&S;GF?D!VNN_?BD+_n7wDIz2?TVAPhO33W=;bNyNsz0dn23>^LK{q_LS#;-N`!=XCq~sBJ6jZ2ZZ(+}Hg?e7g_rT}UDi`Pr6!ggI@xo!EB8I`u zE$oujf$cg7w4A8qm(zOq%0){nkLDL6IJFAe&vFzt4~YsNv($yFuYBfGZwt~7P74&S z8J___v2B9T(SOMgD~tchL`X)54Z+@jQi zOem~;kXe{D$WI&K-#u$nu?Qw9Eiu4rmYs!|@sedNdd#Tj0XSbqF=OoPe9R~=lOevl z>Fi%s(_2&tux{*8ad7}z)zH(>$uIv#J>Pl$eKIJ2`UQV15w9prfHHq}G>NHm@hJf~O>OCcW}_=IJ?cC3o(&vbq?-E?eu%q4S{FGMCbbp1g?1RiaU#|rb%BM&CnW~{;);Fab@)#{N{MzbI&&$%=b{yX5nl;OJtTl{ zvasSTg)eq`N3NX|E;uDeXiNC2@V$9MM;$Vd~bE-S-u0%W31QVky?lUyVJ)w(@VsAE7&Bye&~juhz=iasB6u z%`30LEpfcY9bBF$W*D_H>68C?AHO|0nU(UPJss#rI?s?qeenH6RE^K&Yp zBL)VbH+8jOx<5Ubz)zeg5%l!i%BGu;J&1Y!9rSQ&xX*{SbIlLp5<6 zg+B0O5VBIJgK!3n=>p}7z_lnNG!eNqup~6HtQ3JnW{}ma-oI%GIVWO9I6*j=5v0Bk zV{j`#eH?utzE~Nrx)>B}HcM8KRunOl;0D!Ut$O>3Z=Z zoDJ!&K7vt917J9sjyxTATd~}K7kAlF$UBCW3Xw-3J_<%B2Z#DjMBZ294(AxbowoES z+~qb8N%)dU{l}2^^lgMZ3nB08a7P5zaYwU=sAOAN54ex`V#lVTtYjw}L_9)OVIlKz z*^M}{2n_YH`Js=pFCDrGU$qMLD_*6lQy^0ZL3mR1xc=1RVhvEKNGw1Tk!xd8$ADuj zVgRmoPjeR81oxQv=bba4kfwKynLszN6l*6mCn0KB*=ec{8XF4CU|+@W?rNfId79I1 zRV<{P3VSD%nQ@05%7->HLYw`ft8t7zxfGn{WH5l1PFJzhzzu7hW)!VX3!l8kZ6Q!G zz{2Beq82UO!JtRiTo?!KGEOV4*hq#23Wl;jkOV8KSNa5yUKX{_R=WGk|T_bS+ek0wQN#>nLduZ~2U;c> zb|XDh)Sf-NR8|33JG&x8O(;p2Xf1qKv6{{)=$(*PE86``9HTYb2 zITOb5CwTXJ{|#mve0=>~jNLW3?9%_hgU`Ecg=?6AB+Qt8fEvmr+aV*f z5VS`n{`Pk#UihaGK1C7uB|asMK!3om;Ne#JeGH;&ss^=qL6B;c0G=sff*55ilT8xj z`6Z-V)fV*_WnEYEZ(X+%FCL$}t~&ewhJ(J8fu{ds9K=o6`{)Jl^-gj3gkJf^uAfqS zR7(u!rE|YHq-6VNzVoWtf^h$SRfC8v1&`Uu2_&@JiNVHX&jN+hS$Bw(B{d>RLf#cB zluWI{gLDTZW0+mU3dEvfg~Qodd6p|3a93_4C1|3txKp9RklSzJ%Lc}ph%4{s8wYNM zLsxwD-=@=c=JxCr!YM4j24(UJ*IjchzD1_|>}Y3^Pyf!EWj{19lV)!4{l0=9gqZZk zB%7gIs4`w$fYJ)y62NJ~D?VHqCHG&%m@qUdc&1Y!KNc(^z9Qr|T-$_9q8%R+P$TIV zy!6*H`dB`jQN;CDZDI6Xp?{l#?*#DiwE~5POEyqU_{bJ_1t_TwB?!#oO8`KIojY9y z@l`P_pIAxL{{#~-3PT4h*Ak}CE)0VBAer8A!UN~CzdMdDGDCgqu^CxDD-I&sTm~#j zI0VS}>JO;4<7+sKSIBpw51aLMDEt9T3NBkR{n97)N0yC%$S;kY6_&=CEg9QR19XNa zWP>}ulVy#|p=%B5V+h0Ug!E{&7WI}bRN>pNKhL)J;UO$Zx$;`hHch?|x*Pr`!BhnN zOp+ddfG!rIit-*&R!iuL3?mf}q_uAb<&PuVjbl@Q3A?U!V--pZ*k?+Jv($q-__doZ zEf(*LU=G3jrW^c~#8+bcNMZ1d8!8za$5(#u95EU=wAi-|KJ&e&8T$#}c%!cpo-L`c|Qnzm9_uk}WjK6S`^E~2UK@f?)9jR3Zpr7zE$)eq1z}HL_RtfGjASW{7 zwOI+hHlxoYWLQe_=L^@rm)6He#{AZ;Rn@|+p)Uhqd~5K4(b}<<|K-MS&a4CR#D{#^ zZg#5EM=bbIK;MA|;HHmyfEGl8rB(I|Sa|KtP1*fKHRw(SK|L8ua`E+OQEk=V))Bj4 zgrLby4-1;m?HnS@ck@;8ZHn~SLwYZC0eU~mS5f{qQO;8cUq2zs*1kJS!fPT5f`$bY zBpZ%B1qCHgkW4I58JdN7Rh}VPW=U|VR2x3AQi~}ehu1P1Vu|(XHn>zFOF%42;#(_1 zI$c3g=x?xvxLA@!G(oR&v@h|oR3iYVJ!IXk*D5l-1whhB{qRA80_hVhO1GzFN^sW_ zx&`SNE!3D_4@~Q%RlZ`qPqE${{oR?q7_dVAD+EUdzBT7XkYR*L3)%KlzHM`z@Pz>q z-Ad%oZLa0N+3ciiVyMH37IbQrUVor1C`lv}f-r~klBLn}E9XL_Y;CHug1(k;2 z@0>!=tXQ-xFK8N>n8Gi=r8Ns}3}&bAaG@sDqY!rCei`iNh-67Q-H2j{K@mKXQUkg$ z652-heGPk@_=JG+eWrHhI(nl=h66YO?ytqW`$qi*@(Dr={JbaA`(Qrn<{z=;{I@rc zuK+fT00Vg({gpGX*&IXgf7xaiTgsicf7D(~k*7hm($&xvgZD zc0U+`<8<`FI$m^_Z!Sp{R5V!`5=ihX^bt%9y#j|Gp-%@S=%hQafTpfAe@F!rjgxGz z^ULn?O`|tdpf8j?oM!_W6u7=H%0RPleQn#LdDr*6?aPr8e|Yr|SAxC()T z()%v;Fs@_cB7_Qg5??1!kR=wvrY`0X3qg!VmgSp&)D*|+=og&;K-fVU3jck00ctH; z;Cfv9Bb2w`FOd=0K{fL1(epT!4}NLS>!OF3?QB{OX%;tNWo$wDje7>$W=bUanrrie zLE+1g(IH>v=6qE%nb+m3==yvgjnrHlKCrX7Qd^nGg7ghi<>Z1swzF*-c^~=*O}J#P zT-Pp>A#U|3T+pdm)mqw%5d7s= zdLWlN1zeD1L3lx1kR2YiTuPtdk}Him(Mr$&+U`;rRk{PjfAT>6a* z!}Jlv+3^#dIFF;CPEg;ZI^IgC!^9GldS4&*pS)&wGsys6(JZ@1@%@pCWb%ozNi_1} zt~0j!ff%a|_*4wwH|<_9=OhuOZ#afUR1s2(1{@Mf%Sv7Mm?JA0>gG#{d4vWHd~8w1?fo?|5_;vMH}WYGR0RvX2!;IQ-4W z0=(-n$EiAY2o}t;7S0CeitGX1z+O1mHtjAZu4@1!3J8VLfF>Ykh`t%qu5#c=DubtU z3x9m@O59oWKJKf%i;N@OYV8X<22$uD;FXV`W_kYz^*(-xKmU0Byd6xt%q@ch&jlV} zVC_Ew1OH62->sQngIxp?)QnxI??tUo<6^AS{KQ*;{nIB#U~m8NTzYMI&5!-^n|t_E zKOQH)w1>a*Jda-gf);FWvET@>Vna~UIyB$ z1J7V7@$V&x5~CF`*GcSwIYuW?NL-I6T|^Tfw^HIBkXG66VYaIYLi;8PNC2cFsk7~~ z5XIxJB$+8i##-0~-1<0FzlfA5c5=!5*(Yn*BL2%K*VKtmP)+nT9X{(-kN;4^lL?}F z@%~A*c<*?b=K5(tBy9p}Oy+m*R|wP3?N>@DOro2kqWypEZ?iovkgebhWjy$ltA0FY z!B4CbwnRkfB&9;R^*$Anae4otr>0Ci)hHF4fl73DA4>?b@T;DhLU;HvrR6K995^)C z|Fn}Co%mNu_|XHi`0GFM;O#J#)C2j_BYLR|J!d|%0&&CcXQs{9K0P9%19dqS5AD;V zR-9de@2GvN0jo6p)zPRRl<c4_(~f_Z zOU=@&4b|R{$&c_$UTDEp_v>G1F8L9*q8y|7v~oE00{OTZv5F~+p(P*NV0tmzvpLDBmI&s1RNkV(*E&Kz`9>x z3|=cOKshSyGh^(mryXcDF?;OklFctLC~SZxsoG^>;c`0}?hOC=XAw4mx4zgcZ`sWk zz363Y`QyE0V5Z(j6{Fp5 z8;@bcrEickM!p=%_>?#bi!UJ~Lf=xu<-PQ!7Ep2hOHLmx?WCm%!MMpxJfNJ&8@2`< z#lDx>!%oS*lOKAiA^RaYoaDDRRG73`H3C3!H4a!X3Hmd8ldTa*A$#{a^p8rg7K9+f zo$pX**_U*_K|TYemq%vSO165jA5N&hrP__~4axq?51myEl}P^{nPgwcUq7@&KE8)L zU#?Ro*edYd&j8k{P!HlkZcPcqUIANxQ!n8wUT#=hM}uCcyOH(kas6&&u^42(9jMWZ zKS0r{wc?*3(iWK{OL!k3hn@xTvXcqXsNjSa0Oc zBbB9v8#WE9N6u%mzls0w)niu`c=aUDSzaFQaccVY@{L$ zw{1lm0iS=)Ovk$LPa^lOPbv6Mk`ALE56O!kCw}sEAIc7{zFF0nUeiA#zJ7IAGS%BR zy|?dEeZmS1FkwJ7Z~yg}ZxYxg_#rGd^_v%= zd~KOsB7~SM+W36^^CGNAU<@AmwT;E>cDvMsVc)?|9e(n40*2c2^%TmqRlc4%p}+rx z{>$?HJn-g>QB)d-o0MW=L~++TVt&+=}^w#PrWtK`Y~!% zqVG>{HCP)f>{7L;mA>8LnU7i-)pTaa+z3tChd? z&WzIhDt|)vWPbZQv!eNy-=n1h;|L6Jm)MuM+po9bA&^D<^GTgu@YOav3ASat=jal) zjz4p>V^TF}MDv^QEXQ*yo&pw~c6lir$D_YJ-}+{?UF>=-|Iu&PW!J7t^~U;FukBX4 z*Y+!Y>({MY+uNT?Dro3mwYpDP*A?qeukBsazp6JCODYp5D(hn1s}r3V66;5Gs!|-l zmU;37QAX4+h4Dkj%Clkw<(c@Ig`YR7w4=H2=i3p)Y z#?K$nM!InyFMV$c9L>mkDj#_72cM37wY_c`q`VhbA*x2xi!r*Vx zP?jI{0p?nclmC@3F@5d0^6La1a1GaHI(dpq2R9!T;@8rwlP&@u#5UU56&U zL_o59Xuj`H>N4nE$NX9H+^GwzX8YX54dw+)qM`D|W%z`;>9i@qmeZ#-GG+WET%M{P zaYF0F(#g$%qWVRZ){>n#|T8~&o$!|q@x;`0PNNslMsO}hEczl7|8xGw-G zQ=XLD;|ZnlM&>UI?D2r#8w$k2;dCnKO`~z%hwieVI}#51Jwd-al#B)W)gMlFqbAE1}nT2@yXLg6zmySeyes>W2rQH5# z&2V42BOHr_Jn>}Q9Z!bS=};(I%h!H1#u1CfJc)QL;P#+3=<`MEc-jD+0Ldd~mWZchXgp>W*oNk$ThSU4W%yZ-94C*qL^j-3v8Ly1(}ALsw`ui^1& zuiNj91ke&m`+{y?w5eisH*AvlWe=$}v98sZbT@PV-)1_3UT-8FNZ>s1utLc|w1vO- zw`K>tFHgjuiYGh)UpnlLMHTM;%vGO`1$}XNUvY0T=1l|wQ72IjzK@Ha^YK&%XyQ+% z0iWNS2>as6=vY4Eud5uXc-ox+NrCWS3f^3F9RJD3&5n>e6bXCMkwh{WcKh9Nd^2(D z$F+`_JC=;6LTQiJ7k7uep6CSr^d|}}5(~x>5jci%uP2#^PUJnGgzRt)6STb7?MwKA zF+X4XNd!v-<0-!f?qbO61p=d!XspAXcKbX&_?KSL&+kt~C-cC6F0D)@Js@(-?+$}s ziPTf#Jouky)|}Kn-Qx*Py@C&X(UF^JWhIVq!k>yH(_oooEENZtrtwSv-s*^i0wH(A z6Hj|X;h4uAj85l|{e6lfnDj;bzF5*10`J6wk?0HoRNU(aUA>WD-0KU50^z7Tx7N(& z)m4#m?6ZzvWB#KBGO zXn;Te**OlNF%|}XV&PN>Oz*|VBNINq&f$-Fg5XlfR?HI#`-0IBfA;gaE`IYH*N%`aM=p2FGlsgQO z3HZZauvIJ_jLyw5#$5GoU>tmwNckb+VX#x18QXNFy46DTrxM<nUT-oLgp<4ltMx;3Q&+bO5@<8=aq9F0&~P zKgi;bfu>$yE)nuaqXM8>Z!nTh1Dhd#$QN*X)6oTsX-PjV>B{|CW)%*IiZ1~j8&1Rm z3AZmEU6`vdu;$`LMF71!v1Z-kT*SayK}RSMAE6->@~1$s({p_Ww#Xfd`4eGuf(L#6 zR5BD@Qt-=K&ahw+VfD{6<5$3>x;HG%{no%HI%3{PA_B4lUx>ZHpl9Xkjcoa8U`L3N zhqxsi^oF9#hJOjn*(dzQm~Wi;3uDg7J!E7P>!DnNP`vT5&y#}o3q{X0lMB5zu{`&_ zkxh2^LeK*^Dh?gb?7LVq-&1`|gABuYtFb)1tDi-qlQqgaT;f_!O*z-i< z(4-M}7|OUqZ%25W#3bn6h}RwWMOWrJElhE^VRE5#Qz>XQU?32UY3->{+z+LS4LvcK z+F&%EyW7Gh*QEhY&;!LAhtQ-F@o3^oa8AV2k#pKvOYRE`Ti6uycv7Kc#GMGF{Qfj_ zLb5nd?vCEvRtuXlF%V7#u|p&fi=<$p($TcBFW%dENohw%Z?X%&5=f9{RqhEZ3$}UO zDHw-%5<1Q2^#|S2)l-RE6Ki`@5zWnB-F-)LP z#f3f|pM+?@Rsk~Df_TUiT~pDEAgv>w!ml~%Sl@l=>h5HBZotNr%81*aNV#Dg6LF6p zhA6uB%v?hmYtCIz!pJgtp<%+lL?jeWd((;Nx*T3RO{nw)-9fk8A4rBn>2M5cx2Is% zJWnzd!f`^RMdLp3W$)LV2C@vVC;?9*=!u6TiD+N$NDZ5x>nLSq4o?_%9Z-V(Baxs# z5$(@qOIe!(_Ai|F1RyZrCvPMcU7!0!DRZ?XpmT#jXFBO|hvGhebOSUe5l)cp(p-HR zn>#NV0ww%@cL1g!l7#Zv_%$HD|%UjTkp(w%_j`A+Vc3U;O=8H8IA1J?v_z(gzp!$nKEp$Od3?>{-dnweMyBqPuvT4 z#tkbPy(xEA4eNCH!ydpKkAwqpe<%SXa&zu*4LipXg#VrJ1=8f9xq-Rp=A5UNO&Xhy zM-qXcKNNPuxlX53(OXy<7?b2uS1GsVuB>HKDv|OFc~hxWEDWDF==DW!V}+*J9Z&no zN%90>*wXNXc+OD=BjJyDyxs()C>0L`5@Bz2OYZzS7{Ne11oag5Bz?gIeB(g$_S~&? ztg++=%!2JN=>YL_xu@!wvoaQjIQhWH@Rp&B645&Z(yQEYh*T1BMJSL=K^H~uWW!#T zy}}a?!@W+Y;0MS2DPQ!5xm)VlN+(?LIP3!i6ZR2)Q}ixYq90cX;?`V618ZIwgy~88 zuzENG?t}wzH#2oaH?Ho#hgmy1x)S}pvF^TY!4r`mR=D`UNWZ*D^a8}A5(VBAt6 zIJfSgKavPV@5}9JVD*kbH~`NDK^C-31VLN${@kw`*tDQG;tnEmLj;yg!cp``cQ7+z z0vO&OF=M(nmD3hk&_3mckLdG*)pqB)8=-!H z0)%6}cp?G-yn#^k0ah%CENsAoxknpW5W36bgZGB%K~OF3jXtEc!^rs}h-$nDxFVj2 zH~MgHZW9ZghCFb}n?#TZYYO>^?qT8=%00qNu{e@Fk1|to{hBqG?Hvtng1~(&x37uK z@ab^-Ocq|C7v@#=0=v?4IrkO?N-}mcphRYHqj&k#xBTz0$B?)A}!4m+F&>bFOhv e^FJNO9xO2<1V=uX70b+$+c=(WG+B+zYWd&Mr%Orz diff --git a/examples/greeting/Cargo.toml b/examples/greeting/Cargo.toml index c49273de..5159f292 100644 --- a/examples/greeting/Cargo.toml +++ b/examples/greeting/Cargo.toml @@ -2,6 +2,8 @@ name = "wasm-greeting" version = "0.1.0" authors = ["Fluence Labs"] +description = "The greeting module for the Fluence network" +repository = "https://github.com/fluencelabs/fce/tree/master/examples/greeting" edition = "2018" publish = false @@ -10,4 +12,4 @@ name = "greeting" path = "src/main.rs" [dependencies] -fluence = "=0.4.2" +fluence = "0.5.0" diff --git a/examples/greeting/artifacts/greeting.wasm b/examples/greeting/artifacts/greeting.wasm index 511bbf2b53da5299cc9109ac9a7aebfef02ae1f1..dd26f2638fde3dfdd3dfabcacfff67cad915849e 100755 GIT binary patch delta 25073 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 delta 23886 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 diff --git a/examples/greeting/src/main.rs b/examples/greeting/src/main.rs index dcf27182..bfee80eb 100644 --- a/examples/greeting/src/main.rs +++ b/examples/greeting/src/main.rs @@ -15,6 +15,9 @@ */ use fluence::fce; +use fluence::module_manifest; + +module_manifest!(); pub fn main() {} diff --git a/examples/ipfs-node/artifacts/ipfs_effector.wasm b/examples/ipfs-node/artifacts/ipfs_effector.wasm index 89842bd38352ab6e88b3a5c76871c59fa932bbc7..730598bddd3e92b2c0c5c152d1b62e753486f4db 100755 GIT binary patch delta 31934 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 LU|!}LQvUw{#J{hS diff --git a/examples/ipfs-node/artifacts/ipfs_pure.wasm b/examples/ipfs-node/artifacts/ipfs_pure.wasm index aa83539d166dcb1b5ed063bc1dca79071eeb7cfd..6dccb063adeb2d2844689668be675dba80786ef0 100755 GIT binary patch delta 34888 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
    M&dU$Z(FvA?>(*x$lj{Wo7RtiP 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 Z3SYrN<#-Tbq-rN#(#RQC$#OOU$5=n- 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 delta 27549 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 Bc2WQU diff --git a/examples/records/artifacts/records_pure.wasm b/examples/records/artifacts/records_pure.wasm index 68f235951c0d442cab95a4ddcfd316b6ef99170a..3d4579cd9f6bf4048f5b0fe21ccc2a035a0868da 100755 GIT binary patch delta 29048 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 TY)7u6l_kq6t@s_lHP!zI{>`;p delta 27815 zcmd6Q34B%6x$j>43^~cku#+%^BqaMBra%%n^AJF?BZol-=Xr={6apk<0Q6QpQK+Sg zh%W3wK|!TT1(iyzwAD6ktzeOATVHEmC)-l(eb=hoYOB4y^8Vji`y?kwYwvx(_kIsO z*=w!6hHw79^{sW1pB=aE_?ERoiTAHzilVUJ4-O70+T9gb-ravB`@}7%>}Qq|)n->M z#Ws6saj{*olw0g}6wqk56xoZ*>_xT;JN>hv75|vk&g?dOi3L@g!>$yos?B04wOdrx zVt3%5oiXZX#}vh?#p!gQ1OCH5yXvsxCqsi`tEMg%n_ZzN9!`6)!hg&bMBY9&q&TyR zA)ZA~5tL>2HR&}yeK)9zy|aHH-Z!9prlPa6r*GwTE4$;XJJ-Zlb}JFyu1?5aT5(-^ zptCRCzi#zFXaCB7Nh_C?_m8x!9q3b*R}?geF6TPpt5^3V;{$1BSxG8ATv=olGk=Md zbatlV1M$vucgn(?ot-Pv@wJ_acz@cW7QaC>Ws1R^^KWO}Pq0hYH*aL0WyYOsX+vwc zxa#aFYd5p@Cz+?_@qpw% zs-fwMQQc*%?Zwl%xXx`cEbHCY^=`$m^v22*w6b2^+GntSdNts-8Jmv|DP2vf;RTs0{4NG50wW4b8a^umYS`9`mrRZa!3ElwIMa#+<7F7VBSY6Sr1BQwp zfEp05>gzQNy+*dnO*oXUH#9T?GsCvtaP$J!tkOrz5T@#S!`kb%_UV|2>TJECo>phW z^)5Gn98Cv8UO5x;_6@ym^>p+VfxZ$Y^f5}JFGwk=kS74GV($WlEUVn06=2gXAgyla z*Vt>ag3vBOlDChvyR3o`s=;)}fZNe4$*(&w7ih0rTn^A*w*XL=!>K!TD^}Gl^gvm+ zP|d14Py>?)But3{Rt331dLsNUK=|TV8PkjLrZ~ImAJO)|OIkx6FgAbR6fYYw|N35_ z@3QJPmtAeQkf_<4RL!kqA)0n$jF3aff$G!&qS+nH1!HyVVz<2xLxGTvf=yRk_EN>^ z)G=|5s{~V_Q0jK*wgn_ddFezWxVeNxAFp-W!dfDjBDn<;fgDb?Jqvb^fhdq3DCmn( zfGSpILA%!FvO6t+)CH*Aj#2#_;;rrw-OCiG4%&jZr6o=y>#{&nzm*kBLnk4KYkMV! ziS|X1c0+MtZS-=KLQbin5o=iZAIH@&E4Pnt&O(UoeXB@@2f$y&7~8cT3fyPZce$Lz zTM!e3l>cGvLV8=p{IrG?7DF*6pbJ~S3O^ec)D5_7cqiTqMhN8;{Bf(g{ag@1b!9{20V+V(fSsbVGa=6K9*q zKA0wlL<$yB!wXP3D=n0?+2D+{ASg(if*uMinrY0WttZ2T=3&DR_W>df8-7S3P!#rv z3b04$F03VVMuK(%+F{cz%K%yy1K&dxP?7&YD*-1wh=c}xQGne;FR%qpN0?h^R2Srw zW|VUtJk~Dstw}w645$k4)sYRW&mF_~j={lA@ZdvASp5psb!L=yL0OI0vycCe$8G%~ z6~iUqFXRi`Q5YPwLM%v$z$Wr|M}TZm7rZb)TIF{3!Wdbg{ut^BsYj2s52Lv47;pkW z61dH%!Cb@q=vH72DO2DPX<~#x1!E1RRiSmQy=7LZ^29r$kCl+yfuPBy2wg_ALbH+W z!EB&@7gb1ah18KE8j6;L&}0{sK{8#c1O@oR*ucwz*oYS(|B&=mK+e_$q@b8xF4$(3 zxMM>+@bRfrr;3)8L1PG#JXTbeIH@L1c7kF_nH@v1D8y%B87nQKi7+|nG(3}4bbuNF z0sP1U@C9Uqg}w^Sv=~Prb1KnkcoZfiJQTf1S69*MV6s~=AqGAsn6Q*Okd|FB9Jl}o z;H9q8lC`DKa7?qX%m(`=tY(oji>IyBX1-9-OtT9fK+f=lFUijiS1kxiWL3_EV-+wl z9pqeq8em)n!)h@iU6Q#bl>mktiU4{Mbkw-zSUbr+@DF9FB7`_E$e-Xg*$l~TJgja9 z=ml$Fav7Kms{leZA#*eU;1S-?Vzd&nv>YOvT_oPryhF%&HXBkuBn>05paUWGZ?YCr z_a1Av5WFIK#8U=}P(*-jY@w);w2~^2YrIwwLJ}FT2N{ftURnijP^tr?AZ@C#h-5_( zzK(QQEIL~qqE+7)S`I3mC{%ZZ0bNFff=LP&T9r}+f{+3D8KFe{WJO&TVJEy?6AdIn zJ9Yc80Rczg*}C#e6|Mw}CRYL_$go&-r@0aXIRQClByu`n`crT6sZc!%_TZhcMvbeO*h0lpESHrbBiTAyUzkmJQZrfvI5Yt$D<`0F z6a)%iYaxk4&@)_vGO1Vvyr#&>0@GI56&tiJ#IP#4Weg?r0m^1kKrF80VXDX8EFa2= zi3Nov1klqmCUHj?nctD2NLo;AXvP@57_%b^u7jB*xll>0fPZmFt&un*w83g<0%97b z&7xn8Aj}x^4S<&VE3n49BJd5eV$+MdTx1W4QdZ+;Yz8Sdmpm1|Mv4d4QH)be#=f)z z9ptV)+Hc{6q>`hD6}+nOH~wnOJOnU}AO2 zC4yHPHX^VQhINz%!_N1Pos>P3?R83vNWrI}Ojq|DYY(eXO)A4@gjJMKbHE1S70QsT z)0_%exA#~(I!%T^fdYzAL{dtY#R@wEkr6xE1!a7}xN#(z;16IIK_8f`nqsAriJ+~! zG!di4ikM@^c3Vmn9L2Cy*~tQcg%0fLuqFhEq{>uqAyq=u9Eb+UEm8okl33ZLSOFnJ z#ykYE-5C6Mo)9ghAQY@eEpIf67Gxj*!5PI5sP+l*Q%L;atqa8u*jw{*SKpN-NmtM# zZw|;%7m6TO6<$xEqJZEdB4{;ghJ$kxK|+_}92Ev+0%oPnAhd-xgTQA*CQ%eJsUmct zJ(&liZ7B1!=g@2TUV0n5;MqVgz#(0He(zxJ zMnnv#K%8al&VOA~pB1?bH&#*Le=wtPyEZb%dJ!zK73m?!vT2K*!WKKp7CXom%g(|U z!}m&CoZrn6+W--gchn8$mNtE)@w7<*yJwEqk`-!nL}Wh-*G{~Q4yhl zM3w{|j!2}MOtnYV+$d2DMI?YxhU`j%4W&A>!A_FJ#`cRcbEd%tV}@0Wc2xxi8;Fo< z;Q_Zw;KQ9tX`moVtOva^vlJK#qYZBGt7>bQ!e4EMjRcehrW=|L(+!UI>6Uy-gp5W( zN(8ziR;t%+QiTfih8#o@V28q3C`?4K1GI^Am`>Vk0bUKJ5HOSL0MLXK_Vu4s7jpmP z5G?KR@~8-fk)a*w3#pCJ7upz_MjUQmk!~LwAClj~6^T5wFfEAb99fV<011u?NFWEG zBEg3T(Ui2AL`7(eh)hc$E;5K9|6C7dv@b693egv^$R_#sO| zEBgweb?7BhXfducwpmN6B0gTIt7)m3TuQ81;`a$3gpo-yOHfJ)>?A^sw4C3=c{1no>{ z!^z;}CIf!wz16BM%Wg)_{UAfoFd3Ys6zuUG|{0gN4=Y;;k6Jjf&e?mv$YwmXRT${IsLS92h-jfr5;o%K|k~1)4)g z_?r`To|>p-3s7Vu=rs{W1_D2+v>+@&_A!+e)aC2@`l~2wMfR6G?~0 zxQfV$tL;?L+)O)%?{7TIQ2|NHE-lme$;PooSPr07@G^Zm+sVUvOLhnA>bMI`djn{Z z3Sw@t1~@=#m#6tmPMMxbG z6TPR9=*UT5r}Fi>wGuNS#Sv21nk%j0@94(ZokDmR!Ubm77PytV5Xj2syJj-Z`(4e| z@RkIc-lcJ7z-JmCJj%c9a+f@_=h&u$-yZtO2MYhCt0o&kHbank8-qB2%EsVhLyC5x z;?(YtEld-yU}#~jLTW^~5>f}@Z08VPBv<#2$T%d9Y6=;s10toT1!>FJKJp(;qq+HO z?zZeUtf(^}um}L7*L*xc2^b6m3ILiB2dSpX+Ah>YjA-q!hKX{<8<;^72?CL4i7-QJXi9z*Vp$FPSoT7~ADjCYB9>4xMnyq$czEhA9o% z7toS0traW|R5nDG2d0WG6Wf%3Y@dTC0*DI4jM;=72HBaQ$QdD7}H@1lNy>PkTelZ0+K1F|lLB}NPnk0I6K?IZk-sm(<) zA*S*lwoVw2xCxH7D4(Q|i4R@nY-T+#p7t2q%)dOXu?%se3?j)L^IuN8+49DbcCI&% z;eAchvJ|9RWO@d|hZ>2EOl*nb8#7zw=hb#u^a!y_|y**~)B>b8@`?bl8Og?i&qb0J#=fol-1D7^Dh(9nrfb1Fn@${{& zGN7igNWcL)%CKm3h68c6Aj#Gl8_ESr6mScacy)7lx(ozBeTfv-cVqvos{?K`48ZCl z4B-9E&sB;gv8b)do%NVwV6nqoOv?{%zJ0e5G<9MEW&0KOPK)TgjkQ6 zELBXFeJV>w<{ZURIj3MQ#Dn#XrQ8h+ahFcktU_#`z?WH`z$k=NDYkr@hY-5Pdpbh5 zdkeUNnSfk{FV7WL$Q9a^;}D#}Z!i$?oa9Q6@3{)e6`SNBn9=4JJh|NeJUht82bxRX ze{u-XwlU6S#f1kqUu)QSf1oaVLN;s27F9ZpAIn-LYMRsdwyag52IRgx(zD!Y>>hbn z<}~h+wKDX?;rJ#|qa)mRpAd_VMLTLIWX*|MvD0{kYMmB?ULuVA`bbwCDLf);OgB1|xtOW`$b(;Zc0 zfK{WKFK(Ng+=59$ss~!EA`XG~$8KN3r~z&>=}B%23O|OP7L9zIY8-UPIQv8yv(wF% z_mHDvh`bTVAfoDXsU-QY!v9(L$@6M?#re)<$DaY*GmH=MAh@M5L>D(Qr@95P14`RN{j9-5Zy_*3tIf^}pPY{xhcBEs8w@~XU_ygq3%mw& z7SQQa;o-MmSZ_hXnLl>nBJj}*oELIy`tnOc{RXI+cr#3?_h0+l!Yshlo_nDO`&WOkpcVwb~XIUi|Vp9 z0y)CGtOQXOaUe1hhB5QZV`3Eo>0)&!?Tg=@UqljcO8qIwh zN|1Jv^c2`l`tEH$5ecciX^U#B!&WV0nPguCt{J^P)cL- zSBDfMYP^7lmLU`iVSgKFh<%BGixzzk{g6+>swQA4h;<+xCQkY=M1U5pQlY6t$z1}1 zFy2fuj)=(k8$u(a+1NpK2|yvmj21J#8%5wO%|?_Y`pMvq*8c=0M+isDg54ve1#Cn~ z!bwJUKnZ06c9AFvLQ0wv+)biUpsMRx0Zl%r6T?QBd}fgI5EJhu#AoFFKL>I4Q$ZGh zN|*)j!4#6v5s-CTn*!u%k9sB(bdZDuCde2bXGE=YZT*C1kQvx z5SnjV6PHEoK};J=XO4g7KW%GfbGT*pbUt%-45fGH*7B{h=b5D+%&Xvkne8!aE$tQj z{5f8;_Q0HWv-II`>B71BwkOTfm07V3#o-m1166KHQA6&spoZjKK@BFPpaxf1P=moJ zsF8UbnG+tvtaW5NKmyz@bE^EMvjQfZHS_Y&ZJk}gZ=ILN(yTVeCrF>|x6a zsH|#~gOvPayPkzWAVY}k2ObE~7tmD*obH4zYlYas*I6py31hfbkq3op{~XZbgl}XV zX((Awu|vd)Af40n+xwi%!7U5Z;{l!3(CCtqRUB8MwieeRc+bKsnaYnXbmQkc;%DWe z87R+LG_e-=AU0MFB&!tDSE}U}1-_DZEt-a_V(?jAt|Cmex{I#5k-b;pzHlj{3;qax zvI}RrRsmay;TXVXvSvL(K(f%dpHggsjqKZiUNZ8^L9a^BII5Ih$qQ#TxT=C-;+z%t zwSX0ppqe;TA~=Wxco3j)9J*tbu?FX{JiNG3z>g09Ec_b5ubmNoyh0*1|7sNcqem6O zpEU}HjfTJS6Yv926aH?%5A6i|NwnOs2c*MU=}*}|k59IS5OU<99>oy60>kpJMjWEEs0RogdiIZV9N@96teF4CSlU7sSud)iZbPis7!;NakpYni=|(Z2SPm%R=XQjup@Jlnh?{iV zk~((@Y&w6qBb*)YBnccaYSvMvbsQ?EFy9__ZrM1{8p`7^aLPw*PM~t8zC&hTbLh8_ z5gm(BA7jWn0BdaFn6V<@1J|G+fX89X%>z^QB@Ci995 z048z@|Hb@b&ly-noe&3#(|#5A4=IX4l!DwF;wau3o75n~DFn!QRtmgJB;L+E-cCUj z$}Zoygm0Zcllx_H1E^yZDiH^UWrGq~FvgJ@k=E;c79 zc%vG73cHDl=!Q*E;VW!;3j2vlemePv?^>|DdRx8|!6_?fKewt7$oE8rU$E4T8-{%S zQePvoQZ5H%)Q;QM5N@^z5?UlqBXD42UBZtn^{~VI!==gc_pl8rf{P+If8q#VxooP2 zCa43H1eet)r^I(J8%s%-;eOcOe`nd}oFcP8i38LxTE4thriO};7r`RMGAo3;)f0?=^4~3j=TIty|?ThTX2{)R)rb!aHSjK zXf*c1bI{#{UgOtv`T>zIGVBA`yNXL0dQ`ll(A8!%!FZz;3pjv93FgK!G%+HBE>{WN z22*HaakbyVPhIx(6p{WmQ6i6Nqay+eR!d|JfuiB$Ke_yhO5kY*6a=LU`F52(9cB5$44&50q zVHmk1;b-^omlMsbjDMIosb-h*e@ia0016&W{mri9>jSt$UwQ3VeqMST8^eE-ZmHUJ zkTyIzI0TWc$74Hh%rrGk00g)R3kD1SK(`lEt&H*$HEwJqX-9~naS!jwOk{WSJ2UI1 zJ2i+Ob}cj!I7Y`irD%9=4=vyz7SetOw{dy%brUB}Bjz@#DZ&)bYboIYBC4bkJ9zrK zL6+lhUUykQyr-cWWC4nYDM`7+VK5|-PAW0y8@Oi$Xi>tpd=Bqj;bz{Acr*Q z;iuPi8E*ON*xe|b-6OTZA3TjW$GQIl*@%|z0fX4{!$8(^o$a0Vj ziN3PyQ;1Y(yj50kSgyQ1NQ(; zg}F6aT}AL(7;NW9*UXx`0A7qRpiMvtZOTdn0(8qqFJ1+|L6j5yG2S6vKl~NqB#V~j z-tMMy2U+aGris`R%KxA$4*69<+OgXC&hGkg=Fl<-9+oWD9jn|WNX8!TcG*!Zb~*U_ z-5v*7D|B%1mY$eHrVP;OhMvn?ECg#YVN*{|l`i0_LfMK5dioj~K@9ki-Qyqkj6WOs z3>*!UEg&FD#M@zT33NL{kfP2I|3IynWZBg^p1*1GDDE7U6OIN%oycJ8*Tc6pKG z4du}7pDAYu81B1qc6KR9534IvM)0iKM7dvwju8XsE?BE_5OEc3F`Wsch!MypR_F>5 zWx8cEQqM&l+4IX(18{b*8^hFul5zn~;LPmUzAu_`0~){{P=JfHj$U*=T{I975FoJj zi;RyR8B&Z{=sW*ULv)EusKjxi5jNkJ-*4+5HIo@>4d3wi)RfJ-^fF=&)QxrP!l zb1lOSm+2RZ)EqD}Q*)BKO_)^&mI5=8NJJ5d)_mp@wnU`q=z?iJ&m}OUbkNTZeSU2P zYa?%|8hRJppmf8C_$jnfNgM#3PSzBRK#88X6hZ;C-lcW$ANF=wFcYubI_;h>+IUCb zYD$9fulF@f_{1Oz`^BKQ`WD$~dF>7!>~FFDz=m(51I7Zs5Ox1$>$W=;?KNfSz7IgRx@Xyx{^?eCXy4I~lwGQ0)!>jt4LM z%oXE?c}}{I(Qn@mA*kSM2AdH`-8Z-dS6+TUI14}jaLW>Y?JZ+bT7OHgs3-7q$*oiI zv+ve+^j@18TQwvl%K4I&Iq0C~4TTrqKJBcRMl=IOoe9m5)&vp+&7^SWWpsj0>lUMA zL5ONlC1}t~M|k(`wJgIwfBUsrIu4@X#*JW{92&m90_pgFBd(Cv`C;|{TwJ;54nK&N zy2B;HGAqKeEq656ydmSPyeasDnJE7e|KY83g%H(ltfS-tm;|}i@DvQwNNA0X=OWO% zd!t8mJif8vw2ma*qT^pS&dv*JWRs_QCz(|nO=<%f5h-X}_-8gvvXLx5!XMdmH=^<2 zXa6GNaC<=$_Z8xDOI7tf!0XoN`6HywUtB2JXS*yT%xbE|5Ch?LwCS3L~XULD7+^k>SJCz}eB|eAL3M zg8XXxp&#CsW%U=puv?5T+l=k^LBnOO(HP=X;m7W{#JTJ7Au^gc@|wU~w#;aPqd+7= zFcpD5)0I7si7R%D%J+$~QEFJV9KU%>L$&NonHa52!KT$X_%MHJ%Z3thdd>TmjJIiiB`A`RebqE`PY0EZV;V+ldq!uGf|ctWb~aLWQ#lY(eBz7 zhQLAOAlCWU6fgj0!CG8#eRwE~wv2?4k({lw=T5qpNh9SDHo38{+C3@>rOZ zt_!QQ=bb=&5G-aiQ+<9yNUe*e`Fj)M)gR=1(7gOyAd1-flgZW1NJ+3^+wxD!F@oHazHZqFtur27=1y&9r0u#ogfS1r|+8UJS)s(Ulpt{Z<-QJXi zEr;UJcT-_YjF({%L_lcK&J&5NiiKnkutmn+7IdZ@7ka`ZnV#74gbVlTDM4%N&~KxI zdvZGvWbkJbuGrL@DTLEZ07&J?GQJk0nC@$0uYhw28!o*-{K!Mf=+hvfpblNeG;EJGT**O$haj^$ zzt7o@i8CQY6v?|S_`M+{oseMBN$&*|)+ahnv5f|UeQko{Ql0#lU+CqPyXyI8axJ_y z*TA3OSyM%!v(*@c?Ym9V?f>4)Lj?1T(_seug)kSwd;I=x6W;MWyR#|}^97%P`D-e( zkOdlqr-2Ad!4*0-iah^cFI90GR{WX=uXnz^e~1h~6S=qFJQzj*)_q_C_wDwVlH$Q5 zkTcuHdw18>Y&sy70@5vwk1)^9AM?GtO>cyh(XcnVV;4WLr*1ZcL)tqyWZ`h=&+VSA$e$j3J@M(;7@UtGC(M;J#3gz%S5C-YKz$_OdLx!^%dV?~(*(Ton zv#Xx{=;E{YVTTNF4r{lR&W~wJZ~#pzsUu-Zxl@?9l@@T`X z14jT;CwAntW5*2WB>Q7-y19w&FmuC$dHrJz3AEv@c!yPlu~%WRUVnH9t`#l#KG}Oz z9()9IFF_Eq4FwU`;>{i^AN;#-hQu4b>#>O!L)36+PjX1^yH)ws!FKYK6m^k}|H(n& z&BcAU%&5!Ln*U63s`6!N=NLs3u_(ruE}t(r^|d;!7B z5UG~Y*CR=POa=(jB2XGoF@?A%Vpz-*4Ur_#6_HK=tF>$i1xVyKD4fR`kIXxdFhg+S zwZkSSPM}~+HMV>WbsT4ma7M6Y7d3-ne`V6HNzbgS^2DG6Ad=YMiR8RNZjqu8{>qnX zebhki3zGaE>CfcRGHyI1M~DswP}U~%y2lqZfVa33F16f(oD=fE@J?3acA!q-HEl?~cfKQh+ddULKrx5f`xvY=V#tzU(XC1yYsI zj39OCGxO-YZ^ttM_2_>7gJ&kIU)j&!f9Bj0sIS1oDC5h%Iz2m$rh%yz>L~UcU=$fb z3P)8Lkvn%Y#N!|^Q-#$20lzhbmVOmjyHuzG74R!EhJOWzg$S_i>+lz?ilQUg%#7n; zkE9BfDQ7`Rcy=YVVyZXLS=`T%B}Ow~tV@w&tS(0B5uKj6cZ*G+NK_(l#0^>Pe&)P| zAk;QddV~@#E8xB8vpPk-@ z1Hl`la>#85O#?=>VA*_F4p=EHr@*){g66M1tCv#9O}3wg+;i9{d5B1&V`wQ~a@bu< zbjDzDofl8+1VLwbA#5B!cQ}G$sG-Bn4QJ|PV0rKd$56cZYr%h}em;%W+P-zU^F8bbK}OoEi27ILwtKj4#wnt{a_Ev#{i$Bq z|NBF;Vc_lGZoyCgw`V|^ule@)nZMXi2w91V;CqErdysZ34hnBjSk4$Uh>+73yA^FN zf8^TSvmfSRPaifz6@KiTKu+VvNR&|K^1{b_@Sc{OslvzBj{Z-u{3g?BdJ6*AnejoMB)q z_hSsfJ~Q?T+E9=Jm?%%N{ZUD*e3}}a-+`hl^MgNr5iqowK>f(+aouFVH`ei=!)NUfG!5;G0UvzW#k%sf23C^hsu>xiX zN-q@dIJDESX&O2+<407nYMOHjx{>r9CVvbgLS=l9G6w%ho|(QpYA}Askw)9;B=+I;?_qf69Z?B|UyO~^JmD;1o9VX8`FJ09fQOBIM6gaV?Ma+28rayJm?UlL=4sLhA^AOdr&NvtvBYUo~|l5X>mFgy_x1FlSUP@?8Yj_ zSLk~M6Y!?e>5!xQ`MWRGW^t}wgu1rNe8P{}6`?$MJb<B^x&KCJo5NQAB)<^mo@3#iDy1~YsXh#{^pjf zbGlX0B4UgcGdtCS|DF4e3=S&D<`6ZVxA8B3e9Os2j46kHa{P^AKKu2$<;q1>8WvL& zPnib5kxbH+;Wm6PSAdm&wq@e0@ylBK)}?j)Q&kv^CO6wB8?E;@AW z&)h6ARH2FaZpAyITfTk;%Ct_to<^B~%h$V3dp~g6`x}Pe^ArDb=EOo!X_~^io6q|B zEWyA$YbT+{QcV-c*6|HLpHzH3Y6MOlf8^)WTKAzghH7IaW&2aBW)}SVTl_xUHvMJv zp;hYmUw+sqSp9}@!9%H4dMYJ;>k{%XXH2Kw&^JsZ*~f`R_gI?edJTB*$wgXjfuBtP&>16t$& z(VzN~M88_e-~UDCe3)N>1JP_IK0m6F6q}g(rgGz_d**{`o%9UsW_^sV8ieq9&!V$wY02natu0elG9 zyr2b94&f8V=Y?ts^csHQ8}qVlAQ7=XPpZkN69@hs9}>g}J|sdkQxu;zdV>vzH8yDM-`PG<)6xpR5l>kZs}qN$SR&Es!Fc`U#3L?cV^&zzVxF;S}tE|FM~NRlDF z7j0zM68sw{nwf{cb;95?fB%KDi|V9#xE;h8%TN7uEO)#)qd4EXpU-}CQsi{8KY=ks zyL_*cs1z5}{}c5f>in8F>!;*_$)KSMpM0GR9RYMLJ{R$wZ?00IkdC)PRZwi9r(_sN z3DA7rTdOZdiT+Kfnm=2e*RpWTT)(HJ&c0wtEL^d;e7vQ7;+*DC<2kMMOrJ6xH)Y0- zbI;TwXE_7jnpsA1v~tqfzK%AVb!yYJvKbA*qS{5(lb4=S4n6-?rM-Q5k0}8wyGiPW zW?(5}^AWgBjWDHu^rYK}%E=!M4l35}_?k3(lZprV{qO9pNQ44$zb_s2W`a>~(!-a% zo6(|)gx?d+1Owi9#v2I-_;=q;RA-W&U?LrlrsC0PAmz=(N<#dd561D9lND7NZ`|(* z1fm&VI+aXC0x>5Kzc;%!;Sc!(2~Q-RiAFsBKqOX5zw$h}_J%UP>AmjSOf(+$2f|@E z=3pcf568-jAX@ZG%lXoilPi+`c+l_hd(g|{i3E7|q^?Cgp>Wji4SG{vZ_t=v9r9(+xb)v6l_5_w5(;=j0Z%v;55>kt zay#v8%9!wqv_I(eXTqUy2#W%o*f?JK{>17a%D_7APX?3WWFQb5e`)S+D+}|^KUGwx zeEv){>JNBASU2qn#A-%fRz>2`us4xPcoL~dCKC?FCh);OjjM{s7F0Bd%{pnC5nM?${sZ=!ViPh!KbFy$%+7pQ+Ji$Q3=ZUA{nNX~r|M7zkEg4FN z(e6z}lgW4_k>KnDzm`lyqaaHr=nE&)i9mwS{~$6Y>fz> ziC-|EUK3xv^15!FZ~dUHD&+G;Gr=SfMN||{1!FF5{JEhD5tBC>NGFospg$Aw#A9yW z`)7A;CLZ!95HTfuskkp048|rAXW@e<^C$k?QU#s`QW?M(@FgSuL@G9gx4*xlDxJu9 zl3+O)5=tWii%rEEHD`n6-tdaBCmfAKVn877#|3vV=ery50_V`Q(lNiJm85y z7f4826MWl;%j!STKGW-q%)AlMM?JaYMQlc{wG20Vw|z9LDv}JOqp1vpFBMNG!01{0 zhaWXpg;M@#z#mWf!;rH?C>rzRwprP{8dz@N8%bp{(NHRpNkt;w0My7Ups!A(f`ND- z5l?zk5nm+YiTOqeU?So5$CLg@Jn4bh$Na>&DsMCuN+uGicsLPEB%+yEfY1JqB~^(? zIFU*E!tr1*0r~O7f_%q+Tv!Fd#3R5s9!ZBG|Grp=|L1?)RuzbQLy%W!TihFs_(QQU zzxQwR+|a8`IvI%iJ)uw}<4wdOr~f?z{`P_6-p8>{E0+76owLJV(t8$kK3xib-xGd5Km@; zFb%$#!P`zXR|P=LKpedA0rzA$5bGcas(hhnCIfPW17UyArSp&yWrji)&$Z+`~A^q8kR7S28|cqdl_5g3C9D;2;M;` z{DE{T99vZIM;sPAFop2x=h*S5A=2IJm)!dzn^qO~MUzqRDH@7nOB0O5mfm}cT|5Uu z13~r@cOxNRIJRu~PeUv}?e9pOd-|V|I4`%2v1zqX{}4=PBI5U^VYkAu^X*BYnHS`K z$k>c3e;5i0EP-#_mx-if7v{=T=C4epg3*L8kpxjv;Yc!eQSN+|1*$xOFhn=uO9R0$ zOkeEcTux=4Do9T}847!np?D@4Oa)?>!%hY!4?vJ#RDtV;A+n zXT`2E+p%j*VGzt?)aOa~V^`G|_fa^Nny^XA9Sul?6#{g_iAnn6WnKZ?h%D~daR?LEO29iB} zX+P-f^{4uJ)^@J!?nJDeOk;p26!9g(NpIBa1%)D^*vf3~kJT)ZYqYb{DJe)lyas@Q z;Z20Sv98L#b^QaKi8TJmN$0xm4J*4-t8!@v)2pMNKr-!tn@T3U0XT!$>SbSWvWDE; zV%AU<_W0r%PsE>$h9enYCK+3kd(*+DR(nI9kjE1UrXt}?Bn}hUJu>KQZz>!HGGVf9 z2|uK-=TmTjvLdoc!qtboiAXdVTl<9)c0si_0?!KQAl}hvD3FZxo|k*J1fXp!VXi7T z8W_7E)B-}|i^gMpxv!QmcVjY=@`OOlOv>vCC;Wj}KTH>KO7LkQcdCTVJ3AhMu*JzF zrw}N?>8<+|5dGj@0J;>11M&rf@z{Fl$)c%b6i|3Tq(IQ`i^ewO9x7$QtS69wZO;IH z*ci|#cKxR;5K6;c_~VH%G9n&?1hE@FZ9ob-55|FBLaJl`ay^-IZ|CHt7fsH+WMh{I zQ|=FYLlj&1Y5us!&fW4GiktY9rw88{sD z3wSdb9~_uBcI&fuSKzn{ku9R6kk=OvBh>Rki8nGyR7h7OP39{ZjKDv5Vw-XwX{=8D zEED!U=ugC9pb_k(JM2fIP7~a>vK8>60>vXfhZIgd-kAxtUBlwuO~L@<{DWBXMVL z!dTW^jeJHLx`Y)@Jt!R9CziO918;$hhmwdugR#4Ft>ajI={?MWwXf?0cX{sOanKit zd@${Ylp-dDp-INJ=bqA7v^oKONg=oo2UBU7nb^IoAeu>eBM}6#nKYu!cp&YMeIeH} zo?Yugz?*=LhuXo%Ay$dySgDDtP_rGmC&sgeg(0|)lpoVaq7XlL`TLlyGj{#Tf%{o; zXXonVKwrGOf9Ein%pA}zX4+P>{y?s(hD|vu9EO8RhY=!rLV;*99D9&Whs67_K@P9& z>q(~j`-jbGFcL(>fn5>oN)%hI*zVlA8rB-}MLi+xx3FbOr4XeBVtbe!(Kxm~4>4<| zFP(mvRd#l6z@ND4BtP4k8tCcket7@+Xo} z0ObpYV_#$?g6nJJ-7Axi=9Wx=WAG!e4f)d;9s(y5zSv{39lpyS#eTwvO;FSu^~Lt( zem;SP=OAmE_NB0^gOh~T#JZA7(jAuB%!POJU(x$ zhyI^#-+)}&x_-N7rZ@cT)_QCSp1rw&{gplY1D#E^jNkNGY0r41K~ Yk^Zr>qS^Lb&s3HyDzU01#bu@c8r<+(syv-3S0z6>*zQk;*!%^laRUA&$ zSzcP|bh&KKN~hCRT55AToHnOg;w-Ijl#FsZof-TIjGquc7)u)4QnU2nItspsp>n!?O=4x2@*;D0bev-))^#Kk zJ(i7?b#$Z?y@?L1D{WItw-T64F_`<*x+893x3k;Woov+cce9R3o$1Kj6TRPKD_&(s zU(e>v7{BI5w)jWP{{quz_wHu1x~4zKW?syEYft?~cA{cvtGsNIqP81Kv%2+Qdxc^s+BXG(S9w+A4P_yo((-g9Az@p4ZWn=2uYJDH`(?SEtuz z^r;If6s%%ghRIhMmFx3Gl$6ywNbz>p|vsr!pP$AThgQ*npTFRiYJ5D^azVV~k1@d;+LTmQ*k- zY6E;?b(?PQHB|fn)PQ(Z_xgNcy^#fNfkXL5Lqj7lGaMTY*LuL3wRO`ngsHmGu&?*p zyLC)Nb+*w^N7UJ1y_0|(P6tBX_GQQ`=dSlUMxt*M=-c9iKHie(3sOod6bK;b(FqEv ztGu8U#7kE@y-r=>S2$|3LYzE;BwG%)d+dS`4uk2gUaxDtB){&$T%f(KdR(Btt^!bx z%dNXeFv=lKc%V#zU5(ZU`NsbEAiAHd9F^N99b?1UQBA88b3nT(L+-iFk z>>dqKAV6&xi?;xkSwUi;b$S%H4Ul>OmDe?FoJ;iTE-@S%UI%T#+wwBEk@cuR>4_{Y zO?wi8xNg1VFwwpQ(hk*zwIR>0a>yw)G-3^vCu-WV^ip46Wv8JD=~a4-%8ew@-MZ4f ziiEnC)Q2&qb0cX91Vku7YD;hpsFG9u5!q;Bn~=0lO^QJ+^WiD5Kl+{B!6IFwAL;r)>!M1yk+w z>oLSp?;-Zt4P^mV(*Y3?A04i4%&6+_!7ZQFOR&L-0RRX(;H$+GfKkTiYg(#(BmW+iNydI@CY&W*xkSrl2Q+v00Ams^8r7BmF@yN!9uCxz!oAO z#H3bm9EEaheb+EaMdOg9X3KRKi7K!gQY_`AL@gnK;Ej}2DSAXGA&YiG!0vHCQiVhh zjuUbWG7UbgXVC$qt zF;psl(o|?3v;;Px!Urt@8NIxMq5>2Yh8wOdOc8dGgbhXy)KZs_)CoUMuLs3 zXC4|11vF5EFqvQrtdP*ZHldKkgmOxF1!4m>tNRZ@-3oJ7>{Vn(x)tS}LvF=aI2G8h zc8CRSBCv@};IlA$C7m$K0BM!iy&l?0g+2hzzKDAGQ2QW;cfzwF1t5XDIv?DRNjBY-*B_r^az|NQfk z#TEH?3s@1?fD@*0{rlOHJ*bTpFwP3~v{ve+LM{x6`+?{7$v@Ph5-f;*U%j!RsuRwlK^khBzE1MUx|_Eh#84` zE~xcEszEB@jX6o03Y$;O<{2f~Mf4##R^~$(205a_iOEAx7U*B>TaajI=R!%63j|3b zoeN_LhGTv5xt+!)$QM6F)3W4iOFgKdF&~cT3WZ7tN5~0vuYx9p?ZQX^Pn(0bB%uaM zfB=#}6nv2SmSG6ilbRPIC3OYd%%azX(@At~hEmVJN2S5{sDx08{3WrQo&1lQCre(O zMPe)XaZsyrp;nptsu(~tBPp}HS0E*cPyp+*qo^`;JA?AbO zli?1+87Kh?cWlBwi~T}g7Z#xa$3_o|I3Ymgco1WxmWD0FO0JDwm8@VR#SDhDO9~`F zHTwQJN4V998xdoQmcxyr1z}@WMKB097Wv*z;d>K2x)Z)PLfBrcZZGz|0hWNEL09G? z7Xd;JGL2-JP$Z|{DNqyv9UuYx3Mmf}*P$CzsFAE%i)S7+LKHXwe)83^Fno2p^wr^B zK$Cc!5H6<|MG;%sNYmTld6RPuFoC)XT%;TBg{z1#Oh}qoTdY@Djz~zW+8{fml>MZX zAu6Pl5iboYWdc{KLSlpw9a1O!)zK5PU#6|yQiqa%YA7x0o&`A17-arB&eL^H%@EEY;ZPjW!$OiFK zr1&B1;rEu*G8=!kWGba8NQkgEda>z-1#n=ry&ydeQZZscVe^w(E|w!CErhib04X5b zkQ~{K+D^$~2sbJ36j6|X1t>@W3c{uEiv^`^$3)V$7p$YqfJr4{1D%AE&MRsg znnf1FOST)<1~UqC>m=o?mq72@kr;wRet3W%S372m>=c?7mQ`w67eB74HcO!!Z9;PO zK};xCV3D7%7Ul|)qZpN>DFsO=XCUo1cHr=^i9`}6MI?|UYE;dSCcjAVU(6>}FT{Q$ zbn90LzXIWhF3hW5katk{DKsily}*rx9}gHvDg011#A$Mj#CnkYe5wI$P`?nIy!z!I zdaAOJTgZmdH>7e4N_Z&S0hvd(13d25)xu^0nTj~WPF=B^M%$MIG zFzbpm>xgNH$@vAdVnw(UVqsbl^O2+rAPXr(2#44n0!5-UNQ~`4S`yns_@HHwA?YNL z{cV6=D`<)$IYojCvLxiR6mp6LCj9rjgHR?Mgt9>gL5>w->(a}l*kWdp2P1)msA^z6 zhLL|zEXgF+1xXg&0xr9hWWY{xT9D-FKbg~|2eS* z3}ll=GO%qDG4Stbmke|e=Fsqyn=S;=`5jGD1n=maN1`+=Okx5A;++DXN!|(S3L^Xq z-VMz;jCXQQ!9_9WXz6gXPMru*DXd^0PaheU_-Ilf2TyEN?wh3Z-yXTEZOEGGwA3(r zmZvl%wt(=!|WPT-P$5hHC15uEc)Wj@0If*nIwrtT1*uU^^b*L4c zQ39fTjhulT0Xv^Lqi)<@m;z>$cX}A!?8RD?lhbY5UfwmMx%$D|2e5c87J@MujmI{A z=ZuE&t$+fHrD+;G&(bi9p-6IVabnwm2`)1aM zmk78JhXAZ|C=LO11``vRm;rNW_c8LPN!^llgcv*c{+SJIFaN{LX;pv?;5zgQ@>n(@ zKgU~VUBH&`U9-Fs#fzoniXV7~XJpTOTT0 zHxDSxxoXR@3vsf(4Ps`W1eiVK@k4#yf(=G8h^O2I@+Woep)R2i=WfPnx)!ye z1w556?iDZ6!6!-}uSgY=a~1)7_AKpF9nx{|Zj#UjlxQ;&n3#D0I$Jfe$HD_)bi71T z0vOPYaayMiU6yXLQ2Nrw0wIvMZjFg7}rp zeddmL_dosoFMj!Omah-iW_=VT*^SQtH|U0U^Ay~KaF9jS)o6H45ceFEfSq;CPF-rC_t1z5v6eB)9~sT$uRK>?t7%iA9Klq+Rd8 zMGMX%(@!Gh19+I&M{P=99wdxLQ7WRZ=izgMU=^*%zZ01~i0Vs`@#V8RwT*7#K(l%* z|7&DIb{_ycFTZuM&)^Kn{RV@!tU}eEC0PK_#sIjdojp>LJ^_#9{v|f$rEj~~&_p1x z7e5L2btB)DZ*4-Fs_@!}!-Vh@K7QT?b~ESmI@Rru@b(3@e5`pY6}!!WLd&u9&!XbJ z^S8;C4TX+Z7M#g;@M*_P%I2Y~6j(r-P=FvC58j$bhYnN*E7bFJanE3ddfqPdz|WPH zmB5N7DC$v-Ew>dYg<&&9tuU^rOEtC^j}w)`FxkUbFI-ylVPQ>LMpn?ithTuMwS46l zWz5OXJIX2n&FTD=e{|I8%+8OSyRloG?Ba`IN*U090VTYZ?-oISke6TuxbRW z_NB0*3pvL^*DzRzzcmcj!MCzsfVJuiumU{V;KTwVf`gb~2gOCsnf)u+YYBE&0l;B& zMi;V0gMGt*AO6}f;L$bs)^Ivke*t!YCwwCCKwb^g*>pvj2@Hflsr@(2-OTE5EmKRg zDtQz-{8j|Sit)zI0eEd%E&tuZ6OMx*i5#>ca?d#8?DUi%J8<jFbZY-(2@yRnZ`v^t+zBv0}Mq+ zP4kvTX_TSBp3xjYOCKCiHkX|*yM5RSGLQl}$)joo((r1Uk(jhcZMw)$+K_29E(7iq zyoqj{%F%2t960J&2*8oci^$dsS6OH9s!#@E451A@MC@b(G-8l&*GYaU_osPj5S2#L zxXyd#mS1?sDhdTtLDI~y_j+7H8W?GOzG#L!OU?=?JS!inAiJyf?1lNN)abgCwupd7t5CJ-GLroxK@+M%Wum#aO8bKf6g%%X9 zgC7L7g4ifa)?9baWQy_E$1zJa+7CX4!evk7rz0v;XtcXjt;jk_9esd)9;`E* zFi3PzJ_UW908Iey%ma=q6cb4P1hmHaKn3H#Dp*!0(nkP;|07Y)D)_kM)D{^mG$RyO zA-WMYhUa_aG$TQSVsod~SV1nCldnnEHPJ>HivK?&!xOj zAVD)6cwv8ihW*8`T0Z+&oEP`~uJrN|%t^0-1iG@tS1>I%w- z?q5;Jhl+a^Na209;*BxJ`Nk%?$N(Wl_)`z5+qAxu|L*v@`m5o>(nWutxaf~vsdjr* zQeyiL@KsZ$E&bz9K!z#Cjz>X=%dx+qB1C7q7uh@!T<)i6siK^Ai=s`=_j+s?h#-?X zL2WE5uHy6mnR3hoCBJ{{qiia}4SD0iy;!5c*pG*HIbSl>!$$M9Q^&b(IY4&+HO{w9 zofc{!QWYgv7$sK*_TbIK^d3~24iTc9h)AW#7ymNVSB3CPcR=AdgnTi>$K$Q_tG_0c z*5*)327D{Of zbTE*Sr#?5SI$GjuApw=)?ja*6&g76jwF8b?EDzdhJlHmA>}cF)1-OOlfP*yaYFk)` zJ_8A4l2>3qj50rO8_P8Q+qU|wMggh-x}sEERzfaUt|3Ugn>gPCF1?K))0k@Pr8-@L zVMc2{AHuM!27^*Y(IuE=$eP@Tl}i|dV8ZtKJ!Q%ez;#x}GN#@c|G0AkJG_l){l+Se=e|c)u471KpU#fb{p3Z)n>VkONVMR0owCoi7LD|!)?4SYZFk5yNyR> zjR1`SrRO0#AQwRzbsK%MlYoi1jSrs_eN+p(jsKQ4!an3SelBZ-MbK?LE^7p6z-`u zZsSH-^P)Bdlm1Lhs-xE8Hr|&t8rkeN4$2y_aI)KYVW@Vb+xQ7;SuC%iv&n7jkex)R zNp54StkLol-Nx^p5lc{?*KO>VwK~*1ZsVu2Mhoh0!eD);0mo+L-t#KRAiK-Dot=etul(k8yRRIfGBYZWtarmcV z!6~RA;lEGTXo*p#BE>KEVwNxY)*Sp;Gw!kJa)kP7RN~2|ch?&_DTfi1CM;_#j2}Av5u5VJsITh(t+h=pX@Ws?YvXv|IX`gR3^iBNKV{{wm;(T5 zHC$UYUH#=l+*mb*mG`e+HCts(eAk)~8^;f=*}!V}iCwKVhaV#StdpB0PFRfBAL84) zCbu-g!h;hGUot|ZERGaa4c7?BR_0ATiUy{CyK4u#xqtK8k5u(3C!hcACLD<%3PWxS z=N^i%+~SI*U7ol(D#)tm4|-sJ$vD`M;WltJimccPc*IDdQx2(F4IzTT!#8+#2G^i) zb_U(At6GHzKku2VU!vRZ*+Q3D@!cJz(EubI ztB_=%xkbD{IF>-wNhIN-7ePo#x>9l-5GC@a2f&=Fs3umdiKR#B%r?(voq zuS!n^uP7d&#I4#czb`~FwOgk&gSbj74ohqXGHG;tNc2Wxk=#7JlX3?lQAa`x$52R- z6d;3NbZHyg&F{a|KV>VnlssFcbaNkVi*p3vMfrb%^FG$!+g)v2L<#E><2KdU^BoMu z=|I6PyX6Yh$t|;?Uv$c$_pz@S%J*-GvCDYr#>Lss`Uez`O;{4>%iqfysW0fuH)M@W z5cK8qLnEOt9~tU{zT72iq}re_cZeD($4g~9DKgYP`;l17jT%(t|4^+1_r_3#u6$K? zQVqKDQCTA$3tf4itdTl~uKb~_<#pu_StHvEU3saj(JauFpFY3?=PqlIVIj`eKxPeL zAz~KrQN_O28u^XqP8>C*E?+nLT-ql7^0}LF_h9*^R#wd~*fg(UCysQ**&N=XuyWY@ z|Fvl>PQ^dkG;R5Fbn;tm9K=KVpOChplN>DGqE3q1v_f7+q#Le-hBNNO5AtB8FhE<2 zY|0kib6)R^1)ZK!c##lzoc$v{_LhmgR!X^CP=?9#QVPIaBJTu5aMuurTj%rBzB!&7 z->hX+I!QZUL<;yyDSfe}%%k#wZ|-!dWI}M-z*m3k)K-;NDW$0zuy66GrL#xu+EQAV zzK=@Ffp%s18swk86~x3%=QlBxFFxNh3c6RTa?rIoY31);TrEbwh*8gODU9M{zCFFaV(V5L zE9KXIZv`vu|Lyl~VC=^JZ(sgr=C~20tKsKgdD6tf{$YeZ=G-s36!&co)hUnNef%EV z*#4W&53+0_q6BG?z84Y7M2gq&?FM?_&L8N~rreK2B$N=HRiX%828A$ISLl9Mi|vy) z@lDaW+2bm}XT3z^9MOc5avaf`lm}iibeV$$X`JE$I?{~_UwWY@>!T}dq&pyuxMo4| z3Uo&a=?>sPx&!M$cNovy1tFO(pfoTYc9A6~r-+x+9JEtJ2(XXcdwzmfZD1k>niIUphU2Q{{fALbKnpbfw68eY-_ zm=$eY|Ez1r*wPuYc*X+`~N}1d&qaE2foxTkNHpmO+CvP90RXep3`sTSIHY@o~Qkv=bRu|VD<-~yIeE3o1 zMB$>-deTDh9FZu&tn2X_^3l{p`yIb^VljRJ1PWf;D)Aj=+}$A%#VsQ803omNAz*D3 zDQ%SXq|43pg>n_AzZk>a*G$U7u83yQgf}$tJ!ES0QpyQC4`3l*31-9i!BfNBAZ+nG zxZVZOFaUYL{MBBpk6Ug81XdJN!!yIwV5O_m{i2PzC~=5WNB;4ZO{YFTq$W|s^iX{z zQu5Sxs7p|;S>1<0q$zDi+58CAq>97~QZ7+vwDMRBkzWn-4Wg_JaWq`F`y*^YUHh+2H;+ZJ)kGr9Uu{Pee z<9IO|gmY1(`$zZ@+p7p)^R2I zb1nX>TWk48w>D)ZGPnf@Vt|uM-#zUSfw}n3kn%}^5P$}>_@Gcl`Q0MAFuLRgRX%qI z{Zbg4^rGpqk0hI*E-`FWo?v&7x&Z}s{{7pUv$zrksl_E3>>g&k4c-W6*`}q$X?3Oe z8tpwE$6Q1V&>ryOh2qy~50Qq$y<(iG)16}k*luK;B>{%6{T0{%mW#XP(7IdP@2iZF zpns6XMs>nmg9vm*9j0UOOBOgYBx{W`LpngiS00RaZ^)}&5j|nYIT17t-n??c0_87Z zImIp6!j&vKl2pHe!S9LpPeBPbWfrE#!AK06;2cpT5B3;QqHkrji&8C0F$}|{TiC@* z$dWkWOaK!&2wG>0s*qP9nqZ#j!d#&VH~XklmoF2LBCv6a(7&9r00Q{42Z1btey&5p zdl^J9q7H+12wZZQm;bK;=eO>>j@9!SKRB-jzq^49f&HGjpRH}9Vg z?Xv6sRrqYhK|#IN|#d$8``>NgA4{b&6rvfFsW zgR>pCfopO8^SvkHjmeMc>a!2>g^x|(A3ivm-PT|Fkj|LiKjmR39^C(k*SVFl`Yx_N zIE4@Fb?e(GyC3&3vXDqv&}Kv#$AQKzqG#m9)A$K{>W;os9^FGfiL4KqBV3%MuK-~d zv6Zn#r{?jf)P>O%DA2E#LQ!oO!}$YyCQRRb0IP3AXh1t2Gmr@rD=X25XLF@=}; zKle;Xq7A*G4~vnx(N!3nop%l>20{VSse7rs4?n~?#zCsl?}|dtdsP1HD|;?OG=MY8 z3xB+mE#nh^vM5UyMfi=EtISsXOT5U&8XoDJBk4r!hkihabKAr1NOGV`y1hlY{$XL& zL~x4g)rG3m?cXg_(RGn17nC>dctFQC&%G7OeH-)`@?%7!LFJA$Dg1Vma#vvuM?Y$` zku@ZzgeXEevbpLO5Qc#K62r(ZdUTHsd!Os~)?ss;vNy&K@~igFaK3j3NyJFLU(BZR zmmbsc^Zmz`geLDNE#+3P}~h2q{A>qE;X+3^O(;bwZwu z5^Wm;U-2G}Z0iQpOLS1q_OjH)G5*%lsqAJ z4^s1){E~r4a;3qlK_A}yiJFkS~s0dFsoS?x2%1PZ!EwBpi~ zU^C5ZjJz~O?-C5WZ(jr={m8zsdiZ|+{=P}-zWe#;mzKH@|1eKYqmr+Asip9xl5(L% zg?kPJ5O5JD0AYYK!tOqX@Dr;I-hZONL0r@oH=#tT9U;5`++k~%^db3HsI7GgT?j!V zzMqa2yiQ^b-Qhs=Jq1*IBr>51Z6@P$S=o1_JMDI#Z!*l0#?CADZIgd`bxWdKu}J{yQ6sdes5hX=EK{giE?-%3gDMFYFJg_eE7mO(GHT>YK zD;x4g(M;~qjQ9^2py(Dovvn_=K} zQNoo9LI6xeVhLSRE`)C1#!vZ==|>-i?VxaBaGve|?mXN13;$sOD&H?pD?_XY34rfH z)l%wmoQY-rXeBJ`ubw`Yeo2bUO#CVlo!1|6Q1qkueajo?_Zy?K!&kQhuV^X zr7$Uq@!|avM2HwbtaNKnKtK#!UlVS~vVtK~v@Oi5XiNF&ZzR>dj1Rm%1rz`7jTy_3 zS2V;eNki+!>-+Hf0&E>f0XQR0`E>Cs!l(f%^ZSgnkw_-Nlz}n=q{a0(ECiLbCwb4C zcb|AXmLgG_AH2hEr!q@1W~xkeXmZALduJdzps< z4EHg-@xVB!xcGr7B--f%6PtEEOt=Gc1AD8Ga3+9YE=Wk3c8c~m-+jO=N=ER%A87FA z1BC*W@Cv9&(Yp9{5fPQg4>lnr>p19Lv`Em9(CIteE&_~qVS{j{tr%3mueCbdPVNo< zGxjNq>yei;_P+r|I-M!T<1e8g)Q0vb<9!F~VU>3rtap3|WDfJa2Pc;ovOlW!ZN}d} z*m~4u=!!`}l)uCl`0N#2rf31{QJz75Ck`MFWsmT_;%?=CI@rQaXQt501HHH&L*a@C} zD?AGJ8R9h>uQB7H8~KxOHPLNEcax%mYx(c|A=O3Yy|@SmS584**S3e3ADRfE^BwY> zLE}9bPn3aZ2%!b}h6}U19#qg?X4-s@qCLeh8aWtHSySNjj7J~AMXS6fz6%J~ydK}j z)t=z@9vatlq`Q{pCykCJij|qW0k6Rd7=PHo-#b+A{Dg8)qxc7h#!mgRdr$5ce;ot6V`9b$$Z z^ex`4jU2(iYW0-pge9elRs(d|;?}9f~xVOeWLJ{Pa>M z6?KH&WUGvAcVHP+8(q{>+k!6Rm(XwcofJ$P<1UrUUBM3lxR;o_1aYn11eo+z&2(=%eSa{H-FJY+xLkKm7Ejciz8! z*Qfs!wPyyuvIs2Z4%~F-HQP%M{Nc6=yrRwLn}0pN^|}LneF}mxx(4q4-D#s0`H$f- z2A?DFp*A}{WBCiep2@~@=Wn98k#W>-CbC+d{7rC7p`XUo;xi7PI=<^S(Q(DI)uZ(U zril@A`QLtXWOFT5Nzy!`R$XLT4Lvu-@hq`xVw$h&UxjgM(YQoUkJa6~a&4EMNvvFL zrDy18HLtcZy}I7L^6YbZTh1!eb*iKNtkyEo*h!Tc`rNg^_FR)tmc=C-dPPl98pdG9 z;$LC0Lj8U$PB<2xGkUu>SeeA?9!tkRMLCRqJd^-F9()e-e||7s)hhY)KSfR@q7sJ0 zQ5_!|;Kir4Y&gLuqHPjBP54}(U(noK)_TV2C|_5pDa7v@mz1DFy}bYNKTTxWNmZIc zyt)V<5|%>!G?b~mP`6N~r3>}W5&gX*`p+BDe?h*!dS$XZ(S6?Z)Y@)qdQUe$>n~N~ zi{<7>j4Q5B=2!e>s=v6UdBlho)TiJx6`!Yp4M}7_f9u1Er61&RquLQ%|EQ`|uhzuu z{rt?2j^N8ba+Jwz~7eSWL1Y-V5PVkfSil5qxkm zqQvkCQ)e6>1o}#1b+?sBpQo?c(3?oEK2J{yfw$7d3(v&39sK=|8$HFXv#52nhOCnm zHBvzM#_3EaD?dH6<@;a?&2TH8m3ZEdCzSOd zvkE(QKfm_VlS{Xvw+g*J{_&^l_!WPv_Zz4ch&UJJqw$%C4?#vy(Z|GRK0YKwTlkxQ zTabOVRufzEV?1fKy?Bx`|1&;Bg=6p`k)XF1;%Z;q=d!8-cC+d<#f>ow_>_N4F5QC~Y3J$uw0{J}UM$e~IJ6deN&F(Y z$5qzgTH7p`I(rIT4O8r8sSo?{}J`lqWa%a4`1^mHm9^O;;w7{#wN~Q z*_B$`)w8mv*Xruk@i#1bEq!H|zM*SfqI*>VrVQq(CRp+?_M%L%)#k2cY`S{?gxs@? z&8Q+msQJ&yc<#tmt1Q}5*j3GFs-x!oE~A|WPADfdN-nI-b*pTSx}))tew8^(T8gJT z1>@FOJw1uDtzpu2D%z(%GOLVLIkPA#8`P!BFWIl{KepGhD;$4NkFft)$=R4K=D3et z#Fp8n+b1ZmIc`&`Z4+!yvbSt5Ww%3NY4uOca)i{&)K}Ct+p+fFIBr%yu{StejtA7m zjxp*cWraG+_9xrh%2T!r?E92mw(}g5)GoHh=C$8#pQrqt-K$)DyzMOIzgdZWyZuc2 zROJ*FXICpvI&NS`tMl2%4jk~k3CE~`#CUgJdlJClin8}eO%dO)d**k2eTuy+vBqLQ zq2g<~YczJemP`a9DPJTR@}=W}R5G0VL}M3g@l+rcjEBH|Qu8IVF_!spBLTM|N2%FWpObwe?os2~MmfxQV$3vkQTs5;Mx3`8(tn?)lae#rg zNHFEkq{NX?#=8J?PNuNKIyKpp%YQbnK5Vztfe<~FY#*>NMGo#sjEf~ST zcqR~wgnX7Skj~YQVNEmBv1ld~N`@i{%Swf@TH6%8hXp=iXiVi~h8w`~ktSd+k?U`a(&L0>o$ zgpV0F>tng&MzbR(`UC3{>5i3Mz1G>?iPe}lmI@_OFh^0JA3tJovmw`4&lXfiBT;k( zqQR68J-&oFUbZJP$zT}NNu+#-=<1iP$r z0j58cPAAf-c*;tq1Hp8}^ycd7*g0AX{ENn7!DuYvPlc^$Zc8l-R>#7@H2mv`74$<+ z5+QR^?qDs8RL9_DC;Yx}AQedfqLA5?n>3EiXo|(cz&`+3l9^Bh@XS`%)2e3W+QJe$Ld~!Evm0Rs?bt34#C7v_F!HT4rlA=nxi?8qBQe zjbzq#uSxWR1gU5|7)@JggbK-wKO8jMXyw`yF%-SnN+~cahz*EHBN;KL&BQz*@&e=Q z5?w1(t5$ZM?GH+~yhHlr;gwxoRySS_rP9erI-N;}qZ!LeCe7)&Z2?HK<&XPAkfd-R z9E$`p$=rqYY+-dE9gSzO3m}fsR5B1T{bF==IN-D5RyY|7T0zUQf@UE1Mm^IpJ`N^? zW0^!K77s^~W>Ag?622JzPlS@mcrukVL%9hnnPkWc`pif&_ecXR)ZZ7CybE*R& zKWWfd0N|#RR>nL!x5dNEYAk5^GifUs%EZG#D{Rio9q_QF)j$=xCkaVTg&^B;)6C8E zvLzES3ASW31bEWH2=?Us%8rh;2=7*keS^RIv>S(PSXwPn*Z(UY^8Kwb1~ytuLMMC+N*k$Xv0A z_E|Vr)xbQt&L&n(g7%X=wy)4 zJUjP~W)`f%RDORXX@xT3SUM6k&&fT~%tFe}L=-glg zzDEew9E)~+aSY@(p76&q{s4T5KqP9eEgG|2&XY-zflY)XAs9cn9p<|5zf}9A@H5en z54H{>2{E>k=K7+k^B@MHZTxWyqe6brEp2uejaep_Plo)dOx*INVd9fM(5UBswR{RH zB^l0OZ&*nyp3IoNxd*1gQeYkYOF}I{5BWktbAxP;Kvkv#aX)rLA{a_U%#FE&t>ARr zf{PWgz>rih;)C%#H+NhsTQeaT^@l>RI2J66KOIb(o64|fL>8^1`#kY(a}pL0Mk$DGtLom+)7z1>pqe{2be+4hD}4#enbSdXq{*Pb!(n1` z0G7(U^jaS~syY>gn+em7}T;RgESK0IRP)wwqU z?61}SkdL%PJP9`;<4+_^p8ItWo?{{$_eaC9b1BFSM9|!xn-XHD!dJ0^@bzQx%@U~~ ze3)x;*MyicF67TxnRGl3*EA4@t7~4%HW5et#8Ew08D?`MamXFqWhfopR6L&W z!GeY|&>cQ=M=l;=OR6&o5FrHpBdGjMvqxdyake5sVAqBY#fdJI3d5a+EG=x$?KhT9T4g1n?if(1& zIy%lx^sGceGKD|%*t4PA!eisg?zLUF69k-@Oak1$lLYg4?9Vhsv1u6Rcp?(=n|I~z znZ;TrhW&6igUMtPFl9 zDh5pfN8h|ZxAG{~Q2qdelhl272L$Cu61AWOcLlpH2DYVW&-LdH97X#Hj;<9#@R)>N z3c=fXP>%NpBXHN#aH#x&jFn884~h1gWCm*n!-!fFzPKOz?_nmr*%X{!M1&A9xO`B+ z<|Db!=CHFoh~{9E;hzPfam4%ya}O)e(@5;hALlM;XA>6C0f;XEbDoICeNf!yPne^_ z+_bXyQC8Z~u{zb;o#^V>J4oLApAvnH<<)Y&{&?=!?X2mj07#t%8>1Gc&A?}Tg0*0m zQTQBP*S$7{WDF2q+f5c1PB_`ID0m);n|@|q6vGCI<|YrA`%X2<5n&tpE}AyvnHa3K-LM`hW2SJ!F1OgVqm{)V>%wy+O2NMX7eUK33gYbsm{6+3B^Vm`I{nLEY z{0_o5)#RTR4ovg4bDw;NII3i{)r8f&egiIMDq}i2 zGOIUOT`8*rrw1Jyt?nM2RQaZbr}-YKn9p8jC+??V6NZLCk*(=ivo^h9wbii(;dI98 z>7@)X{hKeR(vM9fdmOS!0jvOZ#J@-0T)=Yb*bgqo+?681kU{RHt@pfjR*zDi+q#I& zD=9x-;_%WU)>v8wW0r>7QkHvh5&O?0Tne*o=w4mM$_5K6E6eR!%+7PT?aW>F{{Vaq Boh6e@0yhf~k`V3;APEq-v(K2 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 Mwzw*stfKt?12+ag^8f$< diff --git a/examples/url-downloader/artifacts/facade.wasm b/examples/url-downloader/artifacts/facade.wasm index 681e63af008f276066bb3034c3f03aab634c2a30..bf18123c601b153193cdc3d0c78d403786226c1a 100755 GIT binary patch delta 30726 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 Wt+m}t+2!7Hr?cEs>8+`*tNnj#-g@!? diff --git a/examples/url-downloader/artifacts/local_storage.wasm b/examples/url-downloader/artifacts/local_storage.wasm index ca946751c9719816d9fd19acb2ad51382faf3b8a..fd8aaa0b118f18da44fea1a1905820d0578d0aab 100755 GIT binary patch delta 34100 zcmb__34B!5z5hLTmP~Rda1#Oq0_4uHC6K`E3!vmihDAUW_chFNM+p!h35eA?QEAJo zRMBI5t)+sBl`1NTE!w)IiWXZ`Y_+vjEcDqvY+Yz;TVHMK|NA>&Yj%%J=fa@Ttk&~*D9tc3j469r$?#2Y3PMaxhZo4)A#&gAuIgk8WbL44z|wsx7%HXkK0v_W@zAMPUM)2 zk`;~$6uLZarCe22m*RGK-40d72p;^n8KZupljhD|6siCI6cmoxJ_my^2;)Oz|wcgVt8*US+LX z-FbzoxZAqA)1BSQcE&Grj45;tz0~S%>$JMot?X{=TK+jp=^oP6U$UmVQ&~QAK!Iq| z?n$p)xjLKfwv@{%a#mj^<6M}T)I2mW_9EoYWcMU z4^vF0o$VW2*val=_p&`~(k*QG1$)`0&7CV}FT7~V`M+d~PMNUoZuV2wFz>2|S!#Xa z`)tl;mb`pfZp6>o^Xygj3-%cM2J2-nuou}qY!|zq-NkmW+u8iWHuhz9Ug-1ZKF+TA zCTm%8J$rz?#KwQ_Cv5R;Y}QoHo?xR+dXQDz`{s2$1?>7Y5vCQ!E2h4}&n75pi>WlI zx4zL*shEm>EfZK=;aAOHC<~~_=a4O4J=)@TQbB7WuD*E`y;^&EHiEc%mALvkH9+O(M3J0QK~4H^u+cTmDC z#MJF?v^ZJ}hq?QWUZow+o%E#f6=WV3g~g1g-S04a)OnQ(CNXzn>=owFwZ$Y-i|bIo z1I6uzYB*My^D&IcIx!N#*`OXf+7eT@3IH4e6YVj=jf7|O8!d)vzI_zE%>=q={0E_0 ze!p`_q34YjzsuAO#T-T$z*AdL2OK)q`^4>W0@Q$bMd#XLVy#&K zZm|aMdQ(RsR%W`^o1V3RwczNaX=tVDdegbq@9Z=%5aro=Q#~Qi`tt1ricO?2(W!-E`=IY7dY zNMKf=8>lD5Zv^7YQ^fkxkVq*>G0>4s+uE4Q@gxhfV6tALb1_rM6RbVJ2ync`2 zo=bF8qD~ZIHy0A=quOxK8%+pv$lU^pfDTPF>P!SDufi@o($XlB8uVo6UHXlmj~5aOD(a)$}`WuSIQHp~rr_IN?3 zR8WsOR6eJsxj>zIdWN=}x}aXA+Z?){2)ffyI#&=;ca!umhqtc>M|YZI+I<>rHn1z0 zNYIZqXaj`g^f@r8q#j6{QGl1NUxDBCbL+Z&Zq$i-M@s>433e4b=64y&60F1J!#?;t zhD*RM(@vkm>i}j9XL0{rh6@|!Hpdbh0)DZn&bf7H;;Qq}_Bl;u9%eHD5g{KHo=%LY z8d@LA7mPA6IBfs`f(-a{@&q9e=ez%N&L4;!A1wjwKpRb@SCFJi3t!-K6O6RQ02uHH zGW9t%tP_+{2b^F5lmPQ#ePUIH2iu7)lp+q>Lg)jT)QTNP!VA{-45CyN_ET!XYj}uM zvATZ2;w>j^2@1sCNJ^EYM~D)%=%fWWeJ)U{pyMeynA%sE*EK^4f&@4rkP*>Q+qDVnP3K=wTv{RvIDuq8uDirr=0*4UceVTxDUQs|% z0s;!nO-});2wWs#gVF=G)Wt+~!cHJaNui*SU?b&Oga%Ck4Fn-HCbk7yNXTD@5XfRc zIV7wC!GI0wk)sf|LY)n?Dk}QT3T}F93Lmo~$cO-gIzb1-HP{!@c|U}nD{F@y1`I3w z+FFPs6#@W@48+vqM_c-q^axBD;&=(oZZd2P7!K%$Rf4P>(1~JT*|i}1no6@m^E%g7 z3JoE9W2t^8t)>@dfzKhtD#%r#(S-C76x~i4qH;lI#CgKj0+|%%R=Nz2&m~8L9R=|M zMGN!_lL4f?qJY)8+p#KeV!O{pq>t?YrE(${1fEae8 zD=a+Huk$LIw~R(|LjXasmWFc57NC5rL4rQFK#~|d3N)+c0a#8hLKDCg9AuOkt`#&T z_R{YpFr6!);N^g#q0fz}XphLcq)u3m3kxwEq6R%&D^NAs3$8{HjXbZ?1-T}qWtmpM z)9uB&fvtH^Peip1f&`qPFR~}WennJ3XVVHHOvOT%K*tIkGYKyqSTO{PY9`v{E*G%{ zi2UGo;0=&EsPN&VErRG_-NYz^CCGnN`LS&$VIj9252xSLKDQDoqPX2yi|9=~VYLb3 zqYeNMt0DeHDJ>Th8!&Q&WlY7wEG`sHV7YEEL&-7*%N{)1;vjhcBg+^l*#I;M!x(88 z?L*hXE+(pTkwuKn6{x3u%njYJVXd!>@P*_@ zjN}_yczr4gknn)9(0IMS9QJm}Nh5xT(Xwzf?Tu=<#2Unw!kUItQ(kgvRN25OJE-VD z%}D`+UCCC2F2f|XzH$KoO^o@Z!AT|n%`a)K&(;Ju)E`)v{RvDmA)N(cRh7VpiR2f0 z8aXha3$uU{$j(wB6{&5hDg3*3n7}Sl;%H1l2Rnf$EP3pYM8Oz%b|u4GbQRc_5P-ES zncTJltk9A}ha_=Mxv85qMma{un(82AiD+Czb69_QOs$m@zz)K6D8kBgIc}}MOHHu? zFjE~ii-tg58Mahder4@GXaF~1s^B!QhA&B`eR01jC20rqIEtGK!-3qq(q>8rmFS23 zUDagdCPEzoapV9&T#$q05E@;u5ZP&%gIpp9J;+A|ae3jeik*=%9@-Q$de-|@(xdg{ zW|&g3(Xgu7^UvAB5{Ija`9#T)dQk#TQ-%A8T^wMoyM?t*@EC4b>u`FzF}ri1weAG} z2?)j*N-M$_KxE&p5i!#e$xm?0B?@^4hXPo|N?|%;rKrXbpvzi3ic6z~Vo3m>tb0rh z>)t7?d)OzSBcB_z<@T!$1;{lR_YP7LP8jQCj{{CDUBzOgqaqNXuYilRYD8u%b12GSMc z9)hj}Knl>-PghQ}wq5Qx!ZuQX5zu5G6=2`}y(OF-t`t#83L2)L2m?yGa@wWst*8#FjvjMMf0?OG1Rh@ z#2&uAxwb&wATcR96F@E`FIH6?zZU8Yl%$wLNlgkAfz*piA1sNCun39@8zc&qBVtmr zgtEofWMK(<5aUU`3pQBK4-In{gIDl@Bzci!R=^7Vk{O%Z#|q?Y4Uo)O8LbnFsZ=sAVGT)fTxO_+qC6I`*J6y~f@pcPV9@Hvd4}{l z$$E$*l{B^B8fpBIK&JSP;2QEQi(CWMFRTXPH_=8HCoG5=5#JIM(~KC8s9ykCicEq) z1j~pe625_Gunb8~u#7NWD?mrmk{~5L1{+zD9s_6>aWl}9pxtuNF5;qykQYg}LXd7n zpAjM33exo$6_Ru@vIwscQG#4`5CEEy5iyXOiL^`9EUE=uPD#yxooKa0&C{`@kCQXv z1H%0*k~6X;inGy24!t0Z6RK(h?G z0>dJvK|T%znHW^q1Q4C}?IC=@*f}G}OK>iLy$|6gjBFA_xA42hHnE-j(AavfG*Qch ziON45`vTj|e>AS%3v5fN0mSn^k1McEd|mxX1(HS%X`{0fY;?FffQqbj267a#4A9VQ zZ?w#-Bw>YWz$z0c90~?3)(;r7&wv+JyBL#Fa!ejHT87G_5fw%>_1?mJj1l#66^=oM zHa4)Y&3B9_+rocu+=%5}={sS0-|}s!6hM-&Bp~@zf1*K#%oQREnunwg3>X8}7;z_B zVtm>=e!c&3T}WRUR;R`r`FZ2Vv5oxl@y`s~jwK`90dyf{Fmye@mrNMvMo!cIn|Dn} zu_yVX6Ru_F@L3c6Y#(o%7`fnS;xGe!YUQH_4?w0%Sau$6F&!dcX2Oz)pw5YHkEsDM z_u&>_xqujn3QFuk0xp8NiM5*(_&XD4smByPZPNS^$L{R~iOk5s>U1@ z7<9-Cg{C^NvlrL}Kn8yUFp!sTR4jqzN^N%U?p5>-TByDPX4+bFDA}|X_xmcbCWyC6 zEZR(eA@MMg`njj6qQ_L~ER*jY`8?L=Oe#4L6|&*w85B61eiV8k_Es_8$Lo z<1nE9_QrFk5*8iB#*nxZs6C#B=z>HI1RoXX`qSK)awfK|drD-Qpq>VG&S!TNBT>hn zO&PDgzJq@_rRk(7fWmN*;yeKwfk+)QfPN37lG2bukf|of6IHEhT*WS$J$KUx3qNy& z9W;Wug+W9O)yy$P3KDxlq|~2KsfxcgHCYYDG_d^$oAfdBq^3p)uhW}O5MEa{k?=aT zxy0Qrk_H?3x@Hnye{P;CgcqHgN-iH1U|@nlNq8v`T2gqS-M=Ti`o|n3yyTcdjEOO8 zq&LdiiLYt>7=8=iJ1r^~qeH?#vep5^ZiplX5rijAQu;?#2dGMHUh6gBMm_F837J}=<3Z7p&OMQW zS0W;YQZ`J$1A5N@$?V((2CY`dAW1?Ca*;+pbePxA7+yFes7i0Ay#t|Exj>bMv(bT> z5K^FjCxF5FL1>_9O~iQs52KTqQuCJ&w+wM83|Bd5PQ?HI1Q5(2dcEl)n~K=rGT}cN z!;oC*6S$?$XntJb2WFf$T<{KI8FqndE{+#t>dS}u)S2~TC&bhywDTa20Wqh4Pw=n@ zjz5O-@=Is>5fGOZrpKq6*WBN$_^>Eph|`0bRXG(3R7r_i*80pn#}4g(?x#QdZeb~r z2w7($I*X2^N`SHei72P}cdP|D3|B-Y!j`QpuC7GEc0#jynSt{uELm@(uAkZAkx~cI z{=Y~aV9x+2rlY6R2U#k1F=E2;lsoZoKS5w#%7GFP=04nlw)z4;_MFY)TV~BE%t2p= zxfRPd9Kaso77a<-9KtGU+D+k%$o)aCS}yB-)WI&o3R|6V^(?f08zaQj(~&|s7K#Mc z7gLvsWD`#~XDDC7_RA?saD0haiNKYU(_Ub5LX((; z(1=Ygy9Z%Qe(uTB&nd#g1XndHTZ$l|HIkA-K6@W;=>u!PjQm$8pA;w!O`%HKSU(-! z0J%hYrI6{YcKvFNcBesI#23#VS2zfOuPJdj*i&>NHg%aQ)T(}n2nDM#H)CV;H7AnU z2SA%-bK1iq=8g!yryapw;5Q*ePNY0D_N^Rz9clBG*7mdW+(7;iXzLZJxhP_ZIl1_@BS z*>h)cX>=6Rm!X<118e#+RI|HOL$M)|S&J3Y00U}N^U%O%GeoY`Za|f49vRq9WJ=9s z4bPu(+OXbIBbr8LsC?A+f#s#lPb-+4-_&B2VFT#MmRFh=GACbd`tf_S`2CYv#i)gLDN1=&>*NA)G{UuT6@99s1x_NlSq7s=8DeEbVsID{dNOO*LnVRpQ3}V{ zBdQR#>W0bMR|OGTW_mxdmzS#K^?(7r3K&sEF{Go@T!Y}Zsf*wo!2y4k;2`jrIO-vN zqWE1i6hL9HW(7PBUNx_#C^hrtEl?e zDgYh{1cJP86;88&qi+J9{VU*W33yKlz(HGpDr`}yY7p#$dkunJ_L?HQ4F`{T(V@b*Rmp(T<%3*gh;|Q�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 V|Lneqt@dgZKEz*g)+#E!{|_8~4+H=J delta 32273 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 diff --git a/examples/url-downloader/curl_adapter/Cargo.toml b/examples/url-downloader/curl_adapter/Cargo.toml index c029a8f8..5080e66a 100644 --- a/examples/url-downloader/curl_adapter/Cargo.toml +++ b/examples/url-downloader/curl_adapter/Cargo.toml @@ -10,5 +10,5 @@ path = "src/main.rs" name = "curl_adapter" [dependencies] -fluence = { version = "=0.4.2", features = ["logger"] } +fluence = { version = "=0.5.0", features = ["logger"] } log = "0.4.8" diff --git a/examples/url-downloader/curl_adapter/src/main.rs b/examples/url-downloader/curl_adapter/src/main.rs index 66df238d..c3e6acc5 100644 --- a/examples/url-downloader/curl_adapter/src/main.rs +++ b/examples/url-downloader/curl_adapter/src/main.rs @@ -17,10 +17,13 @@ #![allow(improper_ctypes)] use fluence::fce; +use fluence::module_manifest; use fluence::WasmLoggerBuilder; use fluence::MountedBinaryResult; +module_manifest!(); + /// Log level can be changed by `RUST_LOG` env as well. pub fn main() { WasmLoggerBuilder::new().build().unwrap(); diff --git a/examples/url-downloader/facade/Cargo.toml b/examples/url-downloader/facade/Cargo.toml index 6a0123e2..d40090f7 100644 --- a/examples/url-downloader/facade/Cargo.toml +++ b/examples/url-downloader/facade/Cargo.toml @@ -10,6 +10,6 @@ name = "facade" path = "src/main.rs" [dependencies] -fluence = { version = "=0.4.2", features = ["logger"]} +fluence = { version = "=0.5.0", features = ["logger"]} anyhow = "1.0.31" log = "0.4.8" diff --git a/examples/url-downloader/facade/src/main.rs b/examples/url-downloader/facade/src/main.rs index 3b2fedc6..8ff919b8 100644 --- a/examples/url-downloader/facade/src/main.rs +++ b/examples/url-downloader/facade/src/main.rs @@ -16,8 +16,11 @@ #![allow(improper_ctypes)] use fluence::fce; +use fluence::module_manifest; use fluence::WasmLoggerBuilder; +module_manifest!(); + pub fn main() { WasmLoggerBuilder::new().build().unwrap(); } diff --git a/examples/url-downloader/local_storage/Cargo.toml b/examples/url-downloader/local_storage/Cargo.toml index 1120da76..c89e8b4b 100644 --- a/examples/url-downloader/local_storage/Cargo.toml +++ b/examples/url-downloader/local_storage/Cargo.toml @@ -10,5 +10,5 @@ name = "local_storage" path = "src/main.rs" [dependencies] -fluence = { version = "=0.4.2", features = ["logger"]} +fluence = { version = "=0.5.0", features = ["logger"]} log = "0.4.8" diff --git a/examples/url-downloader/local_storage/src/main.rs b/examples/url-downloader/local_storage/src/main.rs index 015ddc9c..8f6dabb0 100644 --- a/examples/url-downloader/local_storage/src/main.rs +++ b/examples/url-downloader/local_storage/src/main.rs @@ -14,11 +14,15 @@ * limitations under the License. */ -use std::fs; use fluence::fce; +use fluence::module_manifest; use fluence::WasmLoggerBuilder; + +use std::fs; use std::path::PathBuf; +module_manifest!(); + const SITES_DIR: &str = "/sites/"; /// Log level can be changed by `RUST_LOG` env as well. diff --git a/fluence-faas/Cargo.toml b/fluence-faas/Cargo.toml index 7221e0b7..7f6feb9a 100644 --- a/fluence-faas/Cargo.toml +++ b/fluence-faas/Cargo.toml @@ -9,7 +9,7 @@ edition = "2018" [dependencies] fce = { path = "../engine", version = "0.3.0" } fce-utils = { path = "../crates/utils", version = "0.1.29" } -fluence-sdk-main = { version = "0.4.2", features = ["logger"] } +fluence-sdk-main = { version = "0.5.0", features = ["logger"] } wasmer-runtime = { package = "wasmer-runtime-fl", version = "0.17.0" } # dynamicfunc-fat-closures allows using state inside DynamicFunc diff --git a/fluence-faas/tests/wasm_tests/arguments_passing/Cargo.toml b/fluence-faas/tests/wasm_tests/arguments_passing/Cargo.toml index 0dac9b76..f81c1937 100644 --- a/fluence-faas/tests/wasm_tests/arguments_passing/Cargo.toml +++ b/fluence-faas/tests/wasm_tests/arguments_passing/Cargo.toml @@ -14,5 +14,5 @@ name = "arguments_passing_effector" path = "src/effector.rs" [dependencies] -fluence = "=0.4.2" +fluence = "=0.5.0" safe-transmute = "0.11.0" diff --git a/fluence-faas/tests/wasm_tests/arrays_passing/Cargo.toml b/fluence-faas/tests/wasm_tests/arrays_passing/Cargo.toml index ad5fb1dc..55361fb6 100644 --- a/fluence-faas/tests/wasm_tests/arrays_passing/Cargo.toml +++ b/fluence-faas/tests/wasm_tests/arrays_passing/Cargo.toml @@ -14,5 +14,5 @@ name = "arrays_passing_effector" path = "src/effector.rs" [dependencies] -fluence = "=0.4.2" +fluence = "=0.5.0" safe-transmute = "0.11.0" diff --git a/fluence-faas/tests/wasm_tests/inner_records/Cargo.toml b/fluence-faas/tests/wasm_tests/inner_records/Cargo.toml index aac0cf5d..7f75653b 100644 --- a/fluence-faas/tests/wasm_tests/inner_records/Cargo.toml +++ b/fluence-faas/tests/wasm_tests/inner_records/Cargo.toml @@ -10,5 +10,5 @@ name = "inner_records_pure" path = "src/pure.rs" [dependencies] -fluence = "=0.4.2" +fluence = "=0.5.0" safe-transmute = "0.11.0" diff --git a/tools/cli/Cargo.toml b/tools/cli/Cargo.toml index 176d2708..0d36d6f9 100644 --- a/tools/cli/Cargo.toml +++ b/tools/cli/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "fcli" description = "Fluence FCE command line tool" -version = "0.2.0" +version = "0.3.0" authors = ["Fluence Labs"] repository = "https://github.com/fluencelabs/fce/tools/cli" license = "Apache-2.0" @@ -14,6 +14,7 @@ path = "src/main.rs" [dependencies] fce-wit-generator = { path = "../../crates/wit-generator", version = "0.2.0" } fce-wit-parser = { path = "../../crates/wit-parser", version = "0.2.0" } +fce-module-manifest-parser = { path = "../../crates/module-info-parser", version = "0.1.0" } anyhow = "1.0.31" clap = "2.33.1" diff --git a/tools/cli/src/args.rs b/tools/cli/src/args.rs index a2df7583..8f3fd930 100644 --- a/tools/cli/src/args.rs +++ b/tools/cli/src/args.rs @@ -34,7 +34,7 @@ pub fn build<'a, 'b>() -> App<'a, 'b> { pub fn embed_wit<'a, 'b>() -> App<'a, 'b> { SubCommand::with_name("embed") - .about("Embed IT to a provided Wasm file") + .about("Embed IT to the provided Wasm file") .args(&[ Arg::with_name(IN_WASM_PATH) .required(true) @@ -54,8 +54,19 @@ pub fn embed_wit<'a, 'b>() -> App<'a, 'b> { } pub fn show_wit<'a, 'b>() -> App<'a, 'b> { - SubCommand::with_name("show") - .about("Show IT of provided Wasm file") + SubCommand::with_name("it") + .about("Show IT of the provided Wasm file") + .setting(clap::AppSettings::ArgRequiredElseHelp) + .args(&[Arg::with_name(IN_WASM_PATH) + .required(true) + .takes_value(true) + .short("i") + .help("path to the Wasm file")]) +} + +pub fn show_manifest<'a, 'b>() -> App<'a, 'b> { + SubCommand::with_name("info") + .about("Show manifest and sdk version of the provided Wasm file") .setting(clap::AppSettings::ArgRequiredElseHelp) .args(&[Arg::with_name(IN_WASM_PATH) .required(true) diff --git a/tools/cli/src/build.rs b/tools/cli/src/build.rs index 393bb506..e102e822 100644 --- a/tools/cli/src/build.rs +++ b/tools/cli/src/build.rs @@ -14,7 +14,7 @@ * limitations under the License. */ -use crate::Result; +use crate::CLIResult; use crate::errors::CLIError; use std::process::Command; @@ -28,7 +28,7 @@ enum DiagnosticMessage { RunWithArgs, } -pub(crate) fn build(trailing_args: Vec<&str>) -> Result<()> { +pub(crate) fn build(trailing_args: Vec<&str>) -> CLIResult<()> { use std::io::Read; let mut cargo = Command::new("cargo"); diff --git a/tools/cli/src/main.rs b/tools/cli/src/main.rs index af1e3fa8..cfaeda05 100644 --- a/tools/cli/src/main.rs +++ b/tools/cli/src/main.rs @@ -29,73 +29,103 @@ mod args; mod build; mod errors; -pub(crate) type Result = std::result::Result; +pub(crate) type CLIResult = std::result::Result; -pub fn main() -> std::result::Result<(), anyhow::Error> { +pub fn main() -> Result<(), anyhow::Error> { let app = clap::App::new(args::DESCRIPTION) .version(args::VERSION) .author(args::AUTHORS) .setting(clap::AppSettings::ArgRequiredElseHelp) .subcommand(args::build()) .subcommand(args::embed_wit()) + .subcommand(args::show_manifest()) .subcommand(args::show_wit()) .subcommand(args::repl()); let arg_matches = app.get_matches(); match arg_matches.subcommand() { - ("build", Some(args)) => { - let trailing_args: Vec<&str> = args.values_of("optional").unwrap_or_default().collect(); - - crate::build::build(trailing_args)?; - - Ok(()) - } - ("embed", Some(arg)) => { - let in_wasm_path = arg.value_of(args::IN_WASM_PATH).unwrap(); - let wit_path = arg.value_of(args::WIT_PATH).unwrap(); - let out_wasm_path = match arg.value_of(args::OUT_WASM_PATH) { - Some(path) => path, - None => in_wasm_path, - }; - - let wit = String::from_utf8(std::fs::read(wit_path)?).unwrap(); - - fce_wit_parser::embed_text_wit( - std::path::PathBuf::from(in_wasm_path), - std::path::PathBuf::from(out_wasm_path), - &wit, - )?; - - Ok(()) - } - ("show", Some(arg)) => { - let wasm_path = arg.value_of(args::IN_WASM_PATH).unwrap(); - let wasm_path = std::path::Path::new(wasm_path); - - let result = fce_wit_parser::extract_text_wit(&wasm_path)?; - println!("{}", result); - - Ok(()) - } - ("repl", Some(args)) => { - use std::process::Command; - // use UNIX-specific API for replacing process image - use std::os::unix::process::CommandExt; - - let trailing_args: Vec<&str> = args.values_of("optional").unwrap_or_default().collect(); - - let mut repl = Command::new("fce-repl"); - repl.args(trailing_args); - let error = repl.exec(); - if error.kind() == std::io::ErrorKind::NotFound { - println!("fce-repl not found, run `cargo +nightly install frepl` to install it"); - } else { - // this branch should be executed if exec was successful, so just else if fine here - println!("error occurred: {:?}", error); - } - - Ok(()) - } - c => Err(crate::errors::CLIError::NoSuchCommand(c.0.to_string()).into()), + ("build", Some(args)) => build(args), + ("embed", Some(args)) => embed(args), + ("it", Some(args)) => it(args), + ("info", Some(args)) => info(args), + ("repl", Some(args)) => repl(args), + (c, _) => Err(crate::errors::CLIError::NoSuchCommand(c.to_string()).into()), } } + +fn build(args: &clap::ArgMatches<'_>) -> Result<(), anyhow::Error> { + let trailing_args: Vec<&str> = args.values_of("optional").unwrap_or_default().collect(); + + crate::build::build(trailing_args)?; + + Ok(()) +} + +fn embed(args: &clap::ArgMatches<'_>) -> Result<(), anyhow::Error> { + let in_wasm_path = args.value_of(args::IN_WASM_PATH).unwrap(); + let wit_path = args.value_of(args::WIT_PATH).unwrap(); + let out_wasm_path = match args.value_of(args::OUT_WASM_PATH) { + Some(path) => path, + None => in_wasm_path, + }; + + let wit = String::from_utf8(std::fs::read(wit_path)?).unwrap(); + + fce_wit_parser::embed_text_wit( + std::path::PathBuf::from(in_wasm_path), + std::path::PathBuf::from(out_wasm_path), + &wit, + )?; + + Ok(()) +} + +fn it(args: &clap::ArgMatches<'_>) -> Result<(), anyhow::Error> { + let wasm_path = args.value_of(args::IN_WASM_PATH).unwrap(); + let wasm_path = std::path::Path::new(wasm_path); + + let it = fce_wit_parser::extract_text_wit(&wasm_path)?; + println!("{}", it); + + Ok(()) +} + +fn info(args: &clap::ArgMatches<'_>) -> Result<(), anyhow::Error> { + let wasm_path = args.value_of(args::IN_WASM_PATH).unwrap(); + let wasm_path = std::path::Path::new(wasm_path); + + let sdk_version = fce_module_manifest_parser::extract_sdk_version_by_path(&wasm_path)?; + let module_manifest = fce_module_manifest_parser::extract_manifest_by_path(&wasm_path)?; + + match sdk_version { + Some(sdk_version) => println!("sdk version: {}", sdk_version), + None => println!("module doesn't contain sdk version"), + } + + match module_manifest { + Some(manifest) => println!("{}", manifest), + None => println!("module doesn't contain module manifest"), + } + + Ok(()) +} + +fn repl(args: &clap::ArgMatches<'_>) -> Result<(), anyhow::Error> { + use std::process::Command; + // use UNIX-specific API for replacing process image + use std::os::unix::process::CommandExt; + + let trailing_args: Vec<&str> = args.values_of("optional").unwrap_or_default().collect(); + + let mut repl = Command::new("fce-repl"); + repl.args(trailing_args); + let error = repl.exec(); + if error.kind() == std::io::ErrorKind::NotFound { + println!("fce-repl not found, run `cargo +nightly install frepl` to install it"); + } else { + // this branch should be executed if exec was successful, so just else if fine here + println!("error occurred: {:?}", error); + } + + Ok(()) +} diff --git a/tools/repl/Cargo.toml b/tools/repl/Cargo.toml index c61838f6..6048db45 100644 --- a/tools/repl/Cargo.toml +++ b/tools/repl/Cargo.toml @@ -13,7 +13,7 @@ path = "src/main.rs" [dependencies] fluence-app-service = { path = "../../fluence-app-service", version = "0.5.2", features = ["raw-module-api"] } -fluence-sdk-main = { version = "0.4.2", features = ["logger"] } +fluence-sdk-main = { version = "0.5.0", features = ["logger"] } anyhow = "1.0.31" clap = "2.33.1"